Route53について

Route53の概要

DNS

DNSはインターネットにおける人向けのURLをシステム向けの住所となるIPアドレスに変換するための仕組み

企業サーバーに一時的にDNS情報を保持するキャッシュDNSサーバーと実際に名前解決機能がある権威DNSサーバーがある

Route53はAWSが提供する権威DNSサーバーでポート53で動作することからRoute53と呼ばれる DNSレコードというIPアドレスとURLを紐付けた表を確認してルーティングする

Route53

権威DNSサーバーの機能をマネジメント型で簡単に利用できるサービス

・主要機能はドメイン登録 / DNSルーティング / ヘルスチェックの3つ ・ポリシーによるルーティング設定  トラフィックルーティング / ファイルオーバー / トラフィックフローに基づく様々な条件のルーティング設定が可能 ・AWS側で100%可用性を保証するSLA ・マネージドサービスとして提供しており、ユーザー側で冗長性などを考慮する必要がない

ホストゾーン

ドメインとそのサブドメイントラフィックのルーティングする方法についての情報を保持するコンテナ

◾️パブリックホストゾーン  ・インターネット上に公開されたDNSドメインレコードを管理するコンテナ  ・インターネットのDNSドメインに対するトラフィックのルーティング方法を定義

◾️プライベートホストゾーン  ・VPCに閉じたプライベートネットワーク内のDNSドメインのレコードを管理するコンテナ  ・VPC内のDNSドメインに対して、どのようにトラフィックをルーティングするかを定義  ・1つのプライベートホストゾーンで複数VPCに対応  ・VPCが相互アクセス可能であれば複数リージョンのVPCでも同じホストゾーンを利用可能

DNSレコード

ルーティング方法を設定するためにDNSレコードを作成し、各種レコードを設定する

SOA  ドメインDNSサーバー / ドメイン管理者のメール、アドレス、シリアル番号などを保持してゾーン転送時に情報が更新されているかの判断に利用する

・A  ホスト名とIPアドレスの関連付けを定義するレコード

・MX  メール配送先(メールサーバー)のホスト名を定義するレコード

・CNAME  正規ホスト名に対する別名を定義するレコード  特定のホスト名を別のドメイン名に転送する時などに利用する

DNSレコード

ALIASレコードというRoute53固有の仮想リソースレコード

◾️ALIASレコード  ・DNSクエリにAWSサービスのエンドポイントのIPアドレスを返答  ・静的ウェブサイトとして設定されたS3バケット  ・CloudFront  ・ELB  ・ホストゾーン内のリソースレコードセット

◾️ALIASレコードのメリット  ・DNSクエリに対するレスポンスが高速  ・CNAMEにマッピングできないZoneApex(ドメイン名そのもの)を設定可能  ・ALIASレコードに対するクエリが無料であり、Route53と連携したDNSLookupを高速化する  ・CloudFrontでのクエリ回数を削減

トラフィックルーティンのタイプ

様々なルーティング方式を選択して設計することが可能

◾️シンプルルーティング  ・レコードセットで事前に設定された値のみに基づいてDNSクエリに応答する  ・静的なマッピングによりルーティングを決定

◾️加重ルーティング  ・複数エンドポイント毎の重み設定によりDNSクエリに応答する  ・重みつけの高いエンドポイントに多くルーティングする

◾️フェイルオーバールティング  ・ヘルスチェックの結果に基づいて、利用可能なリソースをDNSクエリに応答する  ・利用可能なリソースにのみルーティングされる

◾️複数値回答ルーティング  ・ランダムに選ばれた最大8つの別々のレコードを使用してIPアドレスを設定して、複数の値を返答する  ・IPアドレス単位でヘルスチェックを実施してルーティングすることで、正常なリソースの値を返す   ELBに代わるものではないが、正常であることが確認できる複数のIPアドレスを返す機能により、DNSを使用してアベイラビリティーとロードバランシングを向上させることが可能

トラフィックルーティングのタイプ

様々なルーティング方式を選択して設計することが可能

◾️レイテンシールーティング(Latency)  ・リージョンの遅延によりDNSクエリに応答する  ・基本的にはユーザーの最寄りのリージョンに返答する  ・リージョン間の遅延が少ない方へルーティングされる

◾️位置情報ルーティング(Geolocation)  ・ユーザーのIPアドレスにより位置情報を特定して、地域毎に異なるレコードを返す  ・ネットワーク構成に依拠しない、精度の高いレコードの区分けが可能

◾️地理的近接性ルーティング  ・ユーザーとリソースの場所に基づいて地理的近接性ルールを作成して、トラフィックをルーティングする   AWSリソースを使用している場合は、リソースを作成したAWSリージョン   AWS以外のリソースを使用している場合は、リソースの緯度と経度  ・必要に応じてバイアスを設定し、特定のリソースにルーティングするトラフィックの量を変更できる  ・トラフィックフローを利用する必要がある

トラフィックフロー

従来はALIASレコードを駆使して複雑なルーティングポリシーを作成していたが、トラフィックフローによる視覚的なフローでの複雑なポリシー設定が可能となった

Well-Architected Frameworkについて

Well-Architected Framework

AZの選択

1つのリージョンにつき2つのAZを利用してアーキテクチャーを設計することが基本(3つ以上はコスト効率が下がる)

VPC

2つ以上のVPCアーキテクチャを設計するのが基本となる

◾️1つのVPC ・可用性が低下するため、アイデンティティ管理やハイパフォーマンスコンピューティングなどその用途は限られる ・1人などの小規模で利用する場合は2つ以上VPCを利用するのが面倒なケースもある

◾️2つ以上のVPC ・2つ以上のVPCで可用性を確保するのが適切なAWSアーキテクチャ設計となる

5つの設計原則

Reliability:信頼性

障害による中断、停止と障害復旧による影響を軽減するinfrastructureを構成する

【設計事項】 ・インフラストラクチャサービスの障害復旧の自動化など軽減設計 ・復旧手順のテストによる検証 ・需要変化に応じた水平方向へのスケーラビリティに高可用性の確保 ・キャパシティの推測をやめる ・モニタリングと自動化を進める

信頼性の主要サービス

◾️基盤 ・IAM、VPC、AutoScaling、ELB、CloudFormation

◾️変更管理 ・CloudTrail、AWSConfig

◾️障害管理 ・CloudWatch

Performance Efficiency:パフォーマンス効率

システム要件のリソース最適化によるインフラの効率化

【設計事項】 ・システム要件を満たすためのコンピューティングリソースを効率化する ・システム要件やAWSサービスの進化に応じてAWSインフラの効率化を推進する  先端技術の一般化  グローバル化を即座に達成  サーバレスアーキテクチャの利用  より頻繁な実験

パフォーマンス効率の主要サービス

◾️コンピューティング ・AutoScaling、Lambda

◾️ストレージ ・EBS、S3、Glacier、EFS

◾️データベース ・RDS、DynamoDB、Elastic serach、Aurora、Redshift

◾️容量と時間のトレードオフ ・CloudFront、ElasticCache

Security:セキュリティ

AWS内のデータ / システム / アセットの保護とモニタリングによりセキュリティを高める

【設計事項】 ・全てのレイヤーでのセキュリティを適用 ・アクセス追跡、モニタリングを確実な実施 ・条件ドリブンのアラートをトリガーとしてセキュリティイベントへの応答を自動化 ・AWS責任共有モデルに基づく対象範囲の保護に集中する ・セキュリティのベストプラクティスの自動化  ソフトウェアベースのセキュリティ設定を使用し、迅速でコスト効率のいいスケーリングを安全に実行する  仮想サーバーのカスタムベースラインイメージによる新サーバーへの適用自動化  インフラストラクチャ全体のテンプレ化による管理

セキュリティの主要サービス

◾️データ保護 ・ELB、EBS、S3、RDS、KMS

◾️権限管理 ・IAM、MFA

◾️インフラ保護 ・VPC

◾️検出制御 ・CloudTrail、CloudWatch、AWSGuardDuty、AmazonInspector

Cost Optimization:コスト最適化

不必要なリソースの削減や最適な料金選択によりコストを削減

【設計事項】 ・不必要なリソース削減 ・透明性のある費用ぶか ・マネージド型サービスの利用によるコスト削減 ・固定の償却コストを変動コストへと転換 ・スケールによるコストメリット ・データセンターへの投資不要化

コスト最適化の主要サービス

◾️需要と供給の一致 ・AutoScaling

◾️コスト効率の高いリソース ・EC2購入方式、Trusted Advisor

◾️支出の認識 ・Cloud Watch、見積もりツール

◾️継続した最適化 ・AWS最新情報、TrustedAdvisor

Operational Excellence:運用上の優秀性

運用上の優秀性とは計画変更が起こった場合や予期せぬイベントの発生時において、自動化された運用実務および文書化されテストされレビューされた手順があること

【設計事項】 ・コードに基づく運用実施 ・ビジネス目的に沿った運用手順 ・定期的かつ小規模で増加的な変更実施 ・予期せぬイベントへの応答テスト ・運用イベントと障害からの学習 ・運用手順を最新のものに保持すること

## 運用上の優秀性の主要サービス ◾️準備 ・CloudFormation、Codeシリーズ、RunbookPlaybook

◾️運用 ・SystemManager、ServiceCatalog、CloudTrail、AWSArtifact、AWSGuardDuty、CloudWatch、AWSConfig、APIGateway

◾️進化 ・継続的かつ段階的な改善のために時間とリソースを割り当て、運用の有効性と効率性を向上させる

AWSベストプラクティス

AWSのベストプラクティスとして11の原則を定義している

◾️スケーラビリティの確保 ◾️環境の自動化 ◾️使い捨てリソースの使用 ◾️コンポーネント疎結合 ◾️サーバーではなくサービス ◾️最適なデータベース選択 ◾️増大するデータ量対応 ◾️単一障害点の排除 ◾️コスト最適化 ◾️キャッシュの利用 ◾️セキュリティの確保

①スケーラビリティの確保 需要の変化に対応できるアーキテクチャを設計する ・EC2 Auto Recovery、EC2 Auto Scaling、Cloud Watch、RDS、DynamoDB

②環境の自動化 システムの安定性、整合性及び組織の効率性を改善するため主要プロセスを自動化する ・CloudFormation、Codeシリーズ、ECS、ElasticBeanstalk、OpsWorks、CloudWatch

③使い捨てリソースの使用 サーバーなどのコンポーネントを一時的なリソースとして利用、設計する ・EC2、AutoScaling

コンポーネント疎結合 コンポーネント間の相互依存を減らした構成とすることで、1つのコンポーネント変更や障害の影響を削減する ・ELB、SNS、SQS

⑤サーバーではなくサービス(サーバレス) マネージド型サービスとサーバーレスアーキテクチャにより効率的な設計と運用を実現 ・Lambda、SNS、SQS、ELB、SES、DynamoDB、AmazonAPIGateway、AmazonCognito

⑥最適なデータベース選択 ワークロードに応じた最適なデータベース技術を利用する ・RedShift、RDS、DynamoDB、Aurora、ElasticSearch

⑦増大するデータ量対応 Iot / ビックデータなどで絶えず増加するデータの保持を効率的に実施する ・S3、Kinesis、Glacier

⑧単一障害点の排除 AWSのサービスの多くは高可用性が保証されているものが多いものの、以下の主要サービスはELBなどによる高可用性設計が必要 ・アーキテクチャで高可用性を実現すべきサービス  EC2、DirectConnect、RDS

・利用する主要サービス  ELB

⑨コスト最適化 リソースが最適なサイズから必要に応じたスケールアウト、スケールインの実施と最適な料金プランの選択 ◾️需要と供給の一致 ・AutoScaling

◾️コスト効率の高いリソース ・EC2購入方式、Trusted Advisor

◾️支出の認識 ・Cloud Watch、見積もりツール

◾️継続した最適化 ・AWS最新情報、TrustedAdvisor

⑩キャッシュの利用 繰り返し取り出すデータやコンテンツについてはキャッシュを利用する構成とする ・CloudFront、EastiCache

⑪セキュリティの確保 全てのレイヤー、境界、リソース内 / 外においてセキュリティを実装する ◾️データ保護 ・ELB、EBS、S3、RDS、KMS

◾️権限管理 ・IAM、MFA

◾️インフラ保護 ・VPC

◾️検出制御 ・CloudTrail、CloudWatch、AWSGuardDuty、AmazonInspector

S3について

S3の概要

AWSストレージサービス

AWSは3つの形式のストレージサービスを提供

◾️ブロックストレージ  ・EC2にアタッチして活用するディスクサービス  ・ブロック形式でデータを保存  ・高速、広帯域幅  ・EBS、インスタンスストア

◾️オブジェクトストレージ  ・安価かつ高い耐久性をもつオンラインストレージ  ・オブジェクト形式でデータを保存  ・S3、Glacier

◾️ファイルストレージ  ・複数のEC2インスタンスから同時にアタッチ可能な共有ストレージサービス  ・ファイル形式でデータを保存  ・EFS

Simple Storage Service(S3)

ユーザーがデータを容量制限なく保存可能なマネージド型で提供されるオブジェクト型ストレージ

◾️特徴 ・高い耐久性  99.999999999%

・安価なストレージ  容量単価:月額1GB / 約3円

・スケーラブルで安定した性能  データは冗長化されていて保存されデータ容量に依存しない性能がAWS側で保証される

・暗号化  転送中や保存時にデータを暗号化可能

◾️データ保存形式 ・バケット  オブジェクトの保存場所  名前はグローバルでユニークな必要あり

・オブジェクト  S3に格納されるファイルでURLが付与される  バケット内オブジェクト数は無制限   ・データサイズ  データサイズは0KBから5TBまで保存可能

S3のオブジェクト構成

・Key  オブジェクトの名前であり、バケット内のオブジェクトは一意に識別する

Value  データそのものであり、バイト値で構成される

・バージョンID  バージョン管理に用いる

メタデータ  オブジェクトに付随する属性の情報

・サブリソース  バケット構成情報を保存および管理するためのサポートを提供  例:アクセス制御リスト(ACL

S3の用途に応じてストレージタイプを選択する

◾️STANDARD ・複数箇所にデータを複製するため耐久性が非常に高い

◾️STANDARD-IA ・スタンダードに比べて安価 ・データの読み出し容量に応じた課金

◾️One Zone-IA ・アクセス頻度は低いが、必要に応じてすぐに取り出すデータむけ

◾️RRS ・Reduced Redundancy Storage低冗長化ストレージ ・Glacierから取り出したデータ配置など

◾️Amazon Glacier ・最安のアーカイブ用ストレージ ・データ抽出にコストと時間(3〜5時間)を要する ・ライフライクルマネジメントで指定 ・ボールロック機能でデータを保持

S3 Intelligent-Tiering

低頻度アクセスのオブジェクトを自動的に低頻度アクセス層に移動することでコストを削減する

S3の整合性モデル

S3は高い可用性を実現するため、データ更新・削除には結果整合性モデルを採用 同時書き込みはタイムスタンプ処理を実施

◾️新規登録 ・Consisitency Read ・登録後即時にデータが反映される

◾️更新 ・Eventual Consistency Read ・更新直後はデータ反映に時間がかかる

◾️削除 ・Eventual Consistency Read ・削除直後はデータ反映に時間がかかる

S3のアクセス管理

◾️IAMポリシー  ・IAMユーザー / サービスに対してS3サービスへのアクセス権限を設定することができる  ・一元的にユーザーへのアクセス権限を管理

◾️バケットポリシー  ・バケットへのアクセス権をJSONで設定  ・他アカウントへの許可も可能  ・バケット単位の高度なアクセス管理向け

◾️ACL  ・バケットと個々のオブジェクトへのアクセス権限をXMLで設定する  ・他アカウントへの許可も可能  ・簡易的にアクセス管理向け

◾️著名付きURL  ・AWS SDKで生成した著名付きURLでS3のオブジェクトへの一定時間アクセスを許可

S3の暗号化

◾️SSE-S3  ・S3の標準暗号化方式で簡易に利用可能  ・暗号化キーの作成、管理をS3側で自動で実施  ・ブロック暗号の1つである256ビットのAdvanced Encryption Standard(AES-256)を使用してデータを暗号化

◾️SSE-KMS  ・AWS KMSに設定した暗号化キーを利用した暗号化を実施  ・ユーザー側でAWS KMSを利用して暗号化キーを作成、管理することが可能  ・クライアント独自の暗号キーを利用可能

◾️SSE-C  ・ユーザーが指定したキーによるサーバー側の暗号化(SSE-C)を使用することが可能  ・利用設定や管理がになるのがデメリット

◾️クライアントサイド  ・クライアント側の暗号化ではAmazon S3に送信する前にデータを暗号化する方式  ・AWS KMSなどを利用して暗号化キーを作成、実施  ・アプリケーション内に保存したマスターキーを使用

S3アクセスアナライザー

アクセスポリシーに沿っているかを確認し、不正なアクセスが発生していないかアクセスポリシーを監視する機能

・IAMアクセスアナライザーに連動したS3向けの機能 ・バケットポリシー / ACLのモニタリング ・パブリックまたは共有バケットアクセスを検出 ・バケットポリシー、バケットACL、またはその両方  バケットアクセスのソースを検索して確認する場合は、この列の情報をまず使用して迅速で正確な訂正措置を実行する ・全てのパブリックバケットと共有バケットの結果を表示する ・バケットの実際のアクセス状況を確認する

ライフサイクル管理

バケット内のオブジェクト単位でストレージクラスの変更や削除時期などを設定することで実行を自動化する

設定方法 ・バケット全体やPrefixに設定 ・オブジェクト更新日を基準にして日単位で指定し、毎日0:00UTCにキューを実行 ・最大1000ルール ・IAに移動できるのは128KB以上のオブジェクト ・MFA Deleteが有効だと設定不可

レプリケーション

リージョン間を跨ぐクロスリージョンレプリケーションにより耐障害性を高める

◾️レプリケーションのトリガー  ・バケットに対するオブジェクト作成、更新、削除をトリガーにレプリケーションを実行する

◾️設定  ・バージョニング機能を有効にする  ・バケットは各別リージョンを指定  ・双方向レプリケーションも可能  ・データ転送費用が発生

バージョン管理

ユーザーによる誤操作でデータ削除などが発生してもバージョンから復元できる

設定 ・バケットをバージョン管理する ・バージョン保管されたオブジェクトを参照可能 ・ライフサイクル管理によって保存する期間の指定も可能 ・バケット削除時に古いバージョンの別途削除が必要

バックアップ

Glacierを利用してバックアップと復元が実施可能 ◾️アーカイブ  ・複数リージョンでレプリケートすることが可能  ・S3オブジェクトデータをライフライクル設定によりGlacierに移動

◾️リストア  ・バージョン管理機能によって削除されたデータを復元するのが基本

利用状況の確認

◾️S3の分析 ・データのアクセスパターンの簡易可視化 ・CSV形式で出力可能 ・バケット内の分析を実施 ・アクセス頻度の低いデータや保存期間を確認してライフライクルポリシー設定に活かしていく

◾️S3のイベント通知 ・バケット内イベントの発生をトリガーにして、SNS / SQS / Lamdbaに通知設定が可能 ・シームレスなシステム連携処理を実現

S3データの解析

◾️S3 Select(Glacier Select) ・S3の内部機能として有している検索機能でS3内で直接にクエリを実行し、データを取得できる ・GZIP圧縮データやCSVJSONに対して実行可能

◾️Amazon Athena ・Amazon S3内のデータを直接、簡単に分析できるようにするインタラクティブなクエリサービス ・Athena SQLクエリでSageMaker機械学習モデルを呼び出し、機械学習による推論も実行可能

◾️Amazon Macie ・機械学習によりAmazon S3の機密データを検出、分類、保護する、フルマネージド型サービス ・機密データ検出や調査を実施する

◾️Amazon Redshift Spectrum ・Amazon S3の格納データに対して、Amazon Redshiftから直接クエリを実行できる機能 ・Redshiftクラスターが起動されている前提であるため、Redshiftを利用している場合にお勧め

CORS

クロスリージョンリソースシェアリング(CORS)により、特定のドメインにロードされたアプリケーションが異なるドメイン内のリソースと通信する方法を定義

マルチパートアップロード

大容量オブジェクトをいくつかに分けてアップロードする機能

バッチオペレーション

S3オブジェクトの大量データに対して一括処理を実行することが可能

◾️ジョブ ・ジョブはS3バッチオペレーションの機能の基本単位で、ジョブを作成することでバッチオペレーションを作成 ・ジョブにはオブジェクトのリストに対して指定された操作を実行するために必要な全ての情報を登録 ・S3バッチオペレーションにオブジェクトのリストを渡し、それらのオブジェクトに対して実行するアクションを指定

◾️マニフェストマニフェストAmazon S3が作用するオブジェクトキーをリストするAmazon S3オブジェクト

マニフェストオブジェクトキー、ETag、およびオプションでバージョンIDを指定

・AmazonS3インベントリレポート / CSVファイルの2つの形式で設定

S3の用途

大量データを長期保存するという観点から用途を検討する

・コンテンツ配信 ・ログ、バッチの保管場所 ・バックアップ / ディザスタリカバリ ・webの静的ホスティング ・データレイク

S3外部接続

AWS Storage Gateway

標準的なストレージプロトコルを利用して外部システム環境とAWSのストレージサービスとを接続するサービス

利点

AWSが有する機能や性能を活用できることが大きな利点 ・標準的なストレージプロトコルを活用したシームレスな統合 ・キャッシュを活用した低レイテンシなアクセスが可能 ・AWSストレージサービスの堅牢性、低コスト、拡張性 ・効率的なデータ転送 ・AWSのモニタリング、管理、セキュリティとの統合

用途

データ移転や保存などAWSストレージを利用したい場合に用いる ・ビックデータ処理 / クラウドバースティング / システム移行のためにデータをAWSストレージに移動させたいケース ・バックアップ、アーカイブ、災害対策としてAWSにデータを保持 ・オンプレミス環境で容易にAWAストレージを活用

Storage Gatewayのタイプ

利用するデータタイプに応じて3つのゲートウェイを利用する

・ファイルゲートウェイ  Amazon S3オブジェクトにStorage Gatewayを経由してファイルデータを格納

・ボリュームゲートウェイ  AmazonS3およびEBSsnapshotsをバックエンドとしたブロックストレージ

・テープゲートウェイ Amazon S3とGlacierにデータを保管する仮想テープストレージとVTL管理

ファイルゲートウェイ

オンプレミスのファイルデータをAWS Storage Gateway経由でAmazon S3上のオブジェクトとして格納

・仮想アプライアンスNFS v3 / V4.1のインターフェースを提供 ・更新データは非同期でAWSに転送 ・ファイルとオブジェクトのマッピングは1対1 ・S3のライフサイクルポリシー / バージョニング / クロスリージョンレプリケーションなどが利用可能

ボリュームゲートウェイ

オンプレミス環境のディスクデータをAWS Storage Gateway経由でSnapshotとしてAmazon S3上に取得し、AWS環境のDisaster Recoveryを実現

iSCSIブロックストレージとしてインターフェースを提供 ・オンプレミスのローカルディスクのバックアップを自動的にAWS側で実施 ・更新データは非同期でAWSに転送 ・オンプレミス側のStorage Gatewayへリストア ・AWS上でEBSディスクへのリストアも可能

テープゲートウェイ

Storage Gatewayを仮想テープライブラリとして利用することで堅牢性の高い外部保管バックアップストレージを実現

・VTL(Virtual Tape Library)対応バックアップソフトウェアを利用し、Storage Gatewayを経由してバックアップデータをS3およびGlacierに格納

・オンプレミスおよびAWSのEC2環境で利用可能

・バックアップソフトウェアによりテープ取り出しオペレーションを行うことで安価なアーカイブストレージ(S3 / Glacier)を利用

・主要なバックアップソフトウェアをサポート

S3 Transfer Acceleration

クライアントとS3バケット間で長距離に渡るファイル転送を高速、簡単、安全に実行

・中央のバケットに対して世界中のお客様からアップロードが行われる

・大陸間で定期的にギガバイトからテラバイト単位のデータを転送する

・AmazonS3へのアップロード時にインターネット経由で利用可能な帯域幅を十分に活用できない

Amazon S3 Glacierの概要

バックアップなど中長期保存用のS3よりも安価なストレージ

・S3と同じ耐久性で値段が安い ・データ取得などの迅速性がない

Glacierの特徴

バックアップなど中長期保存用のS3よりも安価なストレージ ・Amazon S3 Glacierではデータはアーカイブに保存される ・1つのアーカイブの最大サイズは40TB ・保存可能なアーカイブ数とデータ量に制限なし ・各アーカイブには作成時に一意のアーカイブIDが割り当てられ、作成後はアーカイブを更新できない ・アーカイブを保存するためのコンテナとしてボールドを使用(1つのAWSアカウントでは最大1,000個のボールドを使用) ・Advanced Encryption Standard(AES)256ビット対象鍵を使用してデフォルトで自動的に暗号化 ・S3と違って直接データをアップロード、取得という処理ができないため、S3ライフライクル管理からか、プログラム処理によるアップロード / ダウンロードsが必要 ・Glacierの最低保持期間は90日

Glacierの仕組み

◾️ボールド  ・ボールドはアーカイブを格納するコンテナ  ・ボールドはリージョンに作成

◾️アーカイブ  ・アーカイブは写真、動画、ドキュメントなどの任意のデータでS3 Glacierでのストレージの基本単位  ・各アーカイブは一意のアドレスを持つ

◾️ジョブ  ・アーカイブにSELECTクエリを実行したりアーカイブを取得したり、ボールドのイベントリを取得したりする実行単位

◾️通知設定  ジョブの完了には時間がかかるため、ジョブの完了時にSNSと連携した通知設定が可能

Glacierの仕組み

アーカイブに一時的にデータをアーカイブ処理して、ボールドに長期保存するという仕組み

Glacierのデータ取り出しタイプ

◾️迅速  ・迅速取り出しでは、アーカイブのサブセットが迅速に必要になった場合に、データに素早くアクセスするモード  通常1〜5分以内で使用可能になる

◾️プロビジョニングキャパシティ  ・プロビジョンドキャパシティは、迅速取り出しの取得容量を必要な時に利用できることを保証する仕組み   ◾️標準  ・標準取り出しでは、数時間以内に全てのアーカイブにアクセスできるデフォルト設定  通常、標準取り出しには3〜5時間で完了

◾️大容量  大容量取り出しは、最も安価な取り出しオプションであり、大量のデータ(ペラバイトのデータを含む)を1日以内に低コストで取得できる  通常、大容量取り出しは5〜12時間で完了

アクセス管理

◾️IAMポリシー  ・IAMユーザーやリソースに対してS3サービスへのアクセス権限を設定する  ・一元的にリソースへのアクセス権限を管理

◾️ボールドポリシー  ・ボールドで直接アクセスポリシーを定義して、組織内のユーザーや社外ユーザーに対してもボールドへのアクセス権限を設定する

◾️データ取り出しポリシー  ・データ取り出しに関する制限を定義  ・無料利用枠のみに制限   または無料利用枠を超える量を取り出したい場合は、最大取得率を指定すると、取り出し速度を制限して取り出しコストの上限を設定

◾️ボールトロックポリシー  ・ロックによって変更を禁止することによりコンプライアンス管理を強力に実施することが可能

◾️著名  ・認証保護のために全リクエストに著名が必要

Amazon Glacier

バックアップなど中長期保存用のS3よりも安価なストレージ ◾️容量あたりの料金 ・GB / 月あたり0.005USD(0.5円ほど)  S3は標準で0.025USD / One zoneで0.0152USD / GB

◾️データ取り出し料金  ・迅速:0.033USD / GB  ・標準:0.011USD / GB  ・大容量:0.00275USD / GB

◾️データ取り出しリクエスト料金  ・迅速:11.00USD / リクエスト1,000件  ・標準:0.0571USD / リクエスト1,000件  ・大容量:0.0275USD / リクエスト1,000件

◾️プロビジョニングされた迅速取り出し  110.00USD / プロビジョンド容量単位

◾️データ転送料金  ・データ転送(イン)は無料  ・インターネットへのデータ転送(アウト)は1GB / 月まで無料 それ以上は有料

Glacier Deep Archive

Glacierよりも値段が安くデータ保存が可能だが、データ取得はさらに遅くなる中長期保存用ストレージタイプ ・Glacierよりさらに値段がやすい ・Glacierよりさらにデータ取得が遅い

・基本的なデータモデル、管理はGlacierと同じ ・1GBあたりの月額料金0.00099USDから利用可能でAWSの最低価格 ・データは3つ以上のAWSアベイラビリティゾーンにまたがって保存され、S3と同様に99.999999999%の耐久性を実現 ・標準取り出しでデータは12時間以内に取り出すことが可能 ・大量取り出しで48時間以内にデータを取り出す大容量取り出しをすることで取得コスト低減出来る

VPCについて

VPCの概要

Virtual Private Cloud(VPC) VPCAWSクラウド内に論理的に分離されたセクションを作り、ユーザーが定義した仮想ネットワークを構築するサービス

・任意のIPアドレス範囲の選択して仮想ネットワークを構築 ・サブネットの作成、ルートテーブルやネットワークゲートウェイの設定など仮想ネットワーキング環境を完全に制御可能 ・必要に応じてクラウド内外のネットワーク同士を接続することも可能 ・複数の接続オプションが利用可能  →インターネット経由  →VPN / 専用線(Direct Connect)

VPNとのDirect Connect

VPNの方が安く素早く利用できるが、信頼性や品質は専用線が勝る

◾️コスト ・VPN  安価なベストエフォート回線が利用可能

専用線  キャリアの専用線サービス契約が必要となりVPNより割高

◾️リードタイム ・VPN  クラウド上での接続設定で可能なため即時

専用線  物理対応が必要なため数週間

◾️帯域幅VPN  暗号化のオーバヘッドにより制限がある

専用線  ポートあたり1G / 10Gbps

◾️品質 ・VPN  インターネット経由のためネットワーク状態の影響を受ける

専用線  キャリアにより高い品質が保証される

◾️障害切り分け ・VPN  インターネットベースのため自社で保持している範囲以外の確認は難しい

専用線  物理的に経路が確保されているため比較的容易

VPCエンドポイント

VPCエンドポイントはグローバルIPをもつAWSサービスに対して、VPC内から直接アクセスするための出口

Gateway型はサブネットに特殊なルーティングを設定し、VPC内部から直接外のサービスと通信する ◾️特徴 ・アクセス制御:エンドポイントポリシーを設定 ・料金:無料 ・冗長性:AWS側が対応

PrivateLink型はサブネットにエンドポイント用のプライベートIPアドレスを生成し、DNSが名前解決でルーティングする

◾️特徴 ・アクセス制御:セキュリティグループを設定 ・料金:有料 ・冗長性:マルチAZ設計

VPC Flow logs

VPC Flow Logsはネットワークトラフィックを取得しCloudWatchでモニタリングできるようにする機能

・ネットワークインターフェイスを送信元 / 送信先とするトラフィックが対象

・セキュリティグループとネットワークACLのルールでaccepted / rejectされたトラフィックログを取得

・キャプチャウインドウと言われる時間枠(約10分間)で収集、プロセッシング、保存する

・RDS、Redshift、ElasticCache、WorkSpacesのネットワークインタフェーストラフィックも取得可能

・追加料金はなし

VPCの設定上限

VPCの各種設定においては上限数があるため、大規模に利用する場合は考慮する必要がある

・リージョンあたりのVPCの上限数 5 ・VPCあたりのサブネットの上限数 200 ・AWSアカウントあたりの1リージョン内のElasticIP数 5 ・ルートテーブルあたりのルート上限数 100 ・VPCあたりのセキュリティグループの上限数 500 ・セキュリティグループあたりのルールの上限数 50

VPCを分割するケース

アプリサービスや組織構成などの用途に応じてVPCを分割する

・アプリケーションによる分割 ・監査のスコープによる分割 ・リスクレベルによる分割 ・本番、検証、開発フェーズによる分割 ・部署による分割、共通サービスの切り出し

VPC Peering

VPC Peeringにより2つのVPC間でのトラフィックルーティングが可能

・異なるAWSアカウント間のVPC間をピア接続可能 ・一部のリージョン間の異なるVPC間のピア接続も可能 ・単一障害点や帯域幅ボトルネックは存在しない

EC2について

EC2の概要

EC2とは

数分で利用可能となる従量課金で利用可能な仮想サーバー

・起動、ノード追加、削除、マシンスペック変更が数分で可能

・汎用的なIntelアーキテクチャを採用

・管理者権限で利用可能

WindowsLinuxなどのほとんどのOSをサポート

・OSまでは提供されているタイプを選択することで自動設定され、OSより上のレイヤーを自由に利用可能

・独自のAmazon Machine ImageにOS設定を作成し、保存して再利用が可能

リザーブインスタンス

利用期間を長期指定して利用する形式で、オンデマンドに比較して最大75%割安になる

◾️利用期間 ・スタンダード  1年(40%割引)  3年(60%割引)

・コンバーティブル  1年(31%割引)  3年(54%割引)

◾️AZ / インスタンスサイズ / ネットワークタイプ変更可否 ・スタンダード  有

・コンバーティブル  有

◾️インスタンスファミリー / テナンシー / 支払オプションの変更可否 ・スタンダード  なし

・コンバーティブル  有

◾️リザーブインスタンスマーケットプレイスでの販売可否 ・スタンダード  可能

・コンバーティブル  今度可能となる予定

◾️ユースケース ・一定した状態または使用量が予測可能なワークロード ・災害対策などキャパシティ予約が可能なアプリケーション

スポットインスタンス

予備のコンピューティング容量を、オンデマンドインスタンスに比べて割引(最大90%引き)で利用できるEC2インスタンス

・予備用を入札式で利用するためとても安い(最大90%引き)

・起動に通常よりも少し時間がかかる

・予備用のため途中で削除される可能性がある  →一時的な拡張などの用途で利用

Saving Plan

1〜3年の期間に一定の使用量を守ることによりAmazon EC2コストを削減する ・リザーブインスタンスと同様に、1年または3年の期間に特定の量の処理能力(USD / 時間で測定)を使用する契約を結ぶことで適用される割引契約

AWSコンピューティング使用料金を最大72%節約できる

Amazon EC2AWS Fargate、AWS Lamdbaに適用可能

キャパシティの予約

特定のアベイラビリティーゾーンのEC2インスタンスに対して任意の期間キャパシティを予約する

◾️期間 ・キャパシティーの予約  コミットメントは不要で必要に応じて作成及びキャンセル可能

リザーブインスタンス  固定の1年または3年のコミットメントが必要

・Saving Plan  固定の1年または3年のコミットメントが必要

◾️キャパシティの利点 ・キャパシティーの予約  特定のAZで予約されるキャパシティー

リザーブインスタンス  特定のリージョンで予約されるキャパシティー

・Saving Plan  なし

◾️請求割引 ・キャパシティーの予約  なし

リザーブインスタンス  有

・Saving Plan  有

◾️インスタンスの制約 ・キャパシティーの予約  リージョンごとのオンデマンドインスタンス制限に制限

リザーブインスタンス  AZまたはリージョンあたり20の制限  制限引き上げ申請可

・Saving Plan  なし

物理対応可能なインスタンス

物理サーバーにインスタンスを起動して制御が可能なタイプのインスタンス

◾️ハードウェア専有インスタンス ・専有HWのVPCで実行されるEC2インスタンス ・ホストHWのレベルで、他のAWSアカウントに属するインスタンスから物理的に分離する ・同じAWSアカウントのインスタンスとはHWを共有する可能性がある

◾️Dedicated Host ・EC2インスタンス容量を完全にお客様専用として利用できる物理サーバー ・サーバーにバインドされた既存のソフトウェアライセンスを利用可能

◾️Bare Metal ・アプリケーションが基盤となるサーバーのプロセッサーとメモリーに直接アクセス可能なインスタンスAWSの各種サービスとの連携が可能でOSが直接下層のハードウェアにアクセス可能

ストレージ

EC2で直接利用するストレージは不可分なインスタンスストアと自分で設定するEBSの2つ

◾️インスタンスストア ・ホストコンピューターに内蔵されたディスクでEC2と不可分のブロックレベルの物理ストレージ ・EC2の一時的なデータが保持され、EC2の停止・終了と共にクリアされる ・無料

◾️Elastic Block Store(EBS) ・ネットワークで接続されたブロックレベルのストレージでEC2とは独立して管理される ・EC2をTerminateしてもEBSは保持可能でSnapshotをS3に保持可能 ・別途EBS料金が必要

EC2のバックアップ

EC2インスタンスは定期的にバックアップすることが重要

・定期的にバックアップをとる ・定期的にリカバリプロセスを確認する ・複数のAZに重要なアプリケーションをデプロイすること ・フェイルオーバー対応を準備すること ・イベントをモニタリングして対応できるようにすること ・インスタンス起動時に動的IPアドレス処理の設定を行うこと

EBS

EC2にアタッチされるブロックレベルのストレージサービス

◾️基本 ・OSやアプリケーション、データの置き場所など様々な用途で利用される ・実態はネットワーク接続型ストレージ ・99.999%の可用性 ・サイズは1GB〜16TB ・サイズと利用期間で課金

◾️特徴 ・ボリュームデータはAZ内で複数のHWにデフォルトでレプリケートされており、冗長化不要 ・セキュリティグループによる通信制御対象外で有り、全ポートを閉じてもEBSは利用可能 ・データは永続的に保存 ・EC2インスタンスは他のAZ内のEBSにはアクセスできない ・EC2インスタンスに複数のEBSを接続することはできるが、EBSを複数のインスタンスで共有することはできない ・他のインスタンスに付け替えできる

Snapshot

EBSはスナップショットを利用してバックアップを取得する

◾️特徴 ・Snapshotでバックアップ ・SnapshotからのEBSを復元する際は別AZにも可能 ・SnapshotはS3に保存される ・Snapshotの2世代目以降は増分データを保存する増分バックアップとなる(1世代目を削除しても復元は可能) ・Snapshot作成時にブロックレベルで圧縮して保管するため、圧縮後の容量に対して課金が行われる

Snapshot作成時はデータ整合性を保つため静止点の設定を推奨 ◾️Snapshot作成時はデータ整合性を保つため静止点の設定を推奨 ・ソフトウェアの機能を利用 ・ファイルシステムの機能を利用 ・バックアップソフトウェアの機能を利用 ・アプリケーションの停止 ・ファイルシステムのアンマウントなど

◾️保存期間や世代数は無制限 ◾️世代管理が必要な場合はAWSCLIやAPI等で自動化する

スナップショットとAMI

Amazon Machine ImageはOS設定のイメージで有り、Snapshotはストレージのバックアップとなる

◾️AMI ・EC2インスタンスのOS設定などをイメージとして保持して、新規インスタンス設定に転用するもの

◾️Snapshot ・ストレージ / EBSのその時点の断面のバックアップとして保持するもの ・ストレージの復元や複製に利用

EBSのボリュームタイプ

ユースケースに応じて性能やコストが異なる5種類のボリュームタイプから選択

◾️SSD ・汎用SSD  →仮想ディスクトップ  →低レイテンシーを要求するアプリ  →小〜中規模のデータベース  →開発環境

・プロビジョンドIOPS  →高いI/O性能に依存するNoSQLやアプリ  →10,000IOPSや160MB/s超のワークロード  →大規模DB

◾️HDD ・スループット最適化HDD  →ビックデータ処理  →DWH  →大規模なETL処理やログ分析

・コールドHDD  →ログデータなどアクセス頻度が低いデータ  →バックアップやアーカイブ

◾️マグネティック  →旧世代のボリュームで基本利用しない  →データへのアクセス頻度が低いワークロード

IAMについて

IAM

IAMの概要

責任共有モデル

セキュリティに対してAWSとユーザーとで責任分界して対応する責任共有モデルとなっている。

ユーザー側の責任範囲

・IAMによるアカウント管理 ・セキュリティグループの設定 ・アプリケーションのロールベースのアクセス設定 ・ネットワーク / インスタンスオペレーションシステム(バッチ)などの設定 ・OS / ホストベースのファイアーウォール設置

IAMとは

AWS Identity and Access Management(IAM)は安全にAWS操作を実施するための認証・許可の仕組み

AWS利用者認証の実施 ・アクセスポリシーの設定 ・ユーザー個人またはグループ毎に設定

ルートユーザー

最初に作成されるのがルートユーザーであり通常の管理には利用しないアカウント ・AWSアカウント作成時に作られるIDアカウント ・全てのAWSサービスとリソースを使用できる権限を有するユーザー ・日常的なタスクはルートユーザーを使用しないことが強く推奨される

IAMユーザー

・1アカウントで5000ユーザーまで作成可能 ・所属グループは10まで設定可能

IAMグループ

・1アカウントで300グループまで作成可能

IAMポリシー

ユーザーなどへのアクセス権限を付与

◾️管理ポリシー ・AWS管理ポリシー  AWSが作成及び管理する管理ポリシー

・カスタマー管理ポリシー  AWSアカウントで作成、管理する管理ポリシー  同じポリシーを複数のIAMエンティティにアタッチできる

◾️インラインポリシー ・自身で作成及び管理するポリシー  1つのプリンシパルエンティティ(ユーザー、グループ、またはロール)に埋め込まれた固有ポリシーで、プリンシパルエンティティにアタッチすることができる

IAMポリシーはJSON形式で設定

・Effect  Allow→許可  Deny→拒否

・Action  対象のAWSサービス  例:"s3:Get"

・Resource  対象のAWSリソース  ARNで記述

・Condition  アクセス制御が有効となる条件

ユーザーのアクティビティの記録

Access AdvisorのService Last Accessed Data  IAMエンティティ(ユーザー、グループ、ロール)が最後にAWSサービスにアクセスした日付と時刻を表示する機能

・Credential Report  利用日時などが記録されたIAM認証情報に係るレポートファイル

AWS Config  IAMのUser、Group、Role、Policyに関して変更履歴、構成変更を管理、確認することができる機能

AWS Cloud Trail  AWSインフラストラクチャ全体でアカウントアクティビティをログに記録し、継続的に監視し、保持することができる機能

アクセス権限の一時付与

AWS Security Token Service(STS)  動的にIAMユーザーを作り、一時的に利用するトークンを発行するサービス

・Temporary Security Credentials  AWSに対して一時的な認証情報を作成する仕組み

IAMの設計

IAM設計のベストプラクティス

1、アカウント設定などの必要な場合を除いて、ルートユーザーを利用しない

2、ルートアカウントなどの特権ユーザーに対して、MFAを有効化する

3、利用者ごとにIAMユーザーを作成する

4、組織利用の場合は、役割ごとのIAMグループを作成してグループで管理するのを基本とする

5、最小限の権限設定と不要な認証情報は削除を心がける

6、ユーザーのために強度の高いパスワードポリシーを設定する

7、EC2インスタンスで作動するアプリケーションなどプログラムから利用する場合はなるべくロールを使用する

8、モバイルやアプリケーションを含め、一時利用にはSTSなどで最小限の利用許可を与える

9、AWSアカウントのアクティビティを常に監視する

AWS 0rganizations

IAMのアクセス管理を大きな組織でも楽に実施できるようにするマネージド型サービス ・複数アカウントの一元管理  AWSアカウントをグループ化してポリシーを定期ようして一元的に管理する

・新規アカウント作成の自動化  コンソール / SDK / CLIAWSアカウントを新規作成して、作成内容をログ管理できる

・一括請求  複数AWSアカウントの請求を一括化する

機能セットの選択

支払一括代行とアカウントの全体管理の2つの方式を選択する

・Consolidated Biling Only  支払一括代行のみを実施する場合に選択

・All Feature  支払一括代行も含めて、企業内の複数アカウントを統制したい場合に選択

メモ ・パワーユーザー  管理者権限以外の全ての権限を有している

・IAMエンティティ  ユーザー、グループ、ロール

S3

S3の概要

AWSは3つの形式のストレージサービスを提供

◾️ブロックストレージ  ・EC2にアタッチして活用するディスクサービス  ・ブロック形式でデータを保存  ・高速、広帯域幅  ・例:EBS、インスタンスストア

◾️オブジェクトストレージ  ・安価かつ高い耐久性を持つオンラインストレージ  ・オブジェクト形式でデータを保存  ・例:S3、Glacier

◾️ファイルストレージ  ・複数のEC2インスタンスから同時にアタッチ可能な共有ストレージサービス  ・ファイル形式でデータを保存  ・例:EFS

Simple Storage Service(S3)

ユーザーがデータを容量制限なく保存可能なマネージド型で提供されるオブジェクト型ストレージ

【特徴】 ・高い耐久性  99.999999999%

・安価なストレージ  容量単価:月額1GB / 約3円

・スケーラブルで安定した性能  データは冗長化されて保存されデータ容量に依存しない性能がAWS側で保証される

・暗号化  転送中や保存時にデータを暗号化可能

【データ保存形式】 ・バケット  オブジェクトの保存場所  名前はグローバルでユニークな必要あり

・オブジェクト  S3に格納されるファイルでURLが付与される  バケット内オブジェクト数は無制限

・データサイズ  データサイズは0KBから5TBまで保存可能

S3のオブジェクト構成

・Key  オブジェクトの名前であり、バケット内のオブジェクトは一意に識別する

Value  データそのものであり、バイト値で構成される

・バージョンID  バージョン管理に用いるID

メタデータ  オブジェクトに付随する属性の情報

・サブリソース  バケット構成情報を保存および管理するためのサポートを提供  例:アクセス制御リスト(ACL

S3 Inteligent-Tiering

低頻度アクセスのオブジェクトを自動的に低頻度アクセス層に移動することでコストを削減する

S3の値段

保存データ容量、データ取得リクエストおよびデータ転送アウトに応じて課金される

◾️容量当たりの料金  ・最初の50TB / 月 0.025USD / GB  ・次の450TB / 月 0.024USD / GB  ・500TB / 月以上 0.023USD / GB

◾️データ取り出しリクエスト料金  PUT、COPY、POST、LISTリクエスト(1,000リクエスト当たり):0.0047USD  GET、SELECT、他の全てのリクエスト(1,000リクエスト当たり):0.00037USD

◾️データ転送料金 データ転送(イン)は無料 インターネットへのデータ転送(アウト)は以下の通り 1GBまで / 月 0.00USD / GB 次の9.999TB / 月 0.114USD / GB 次の40TB / 月   0.089USD / GB 次の100TB / 月  0.086USD / GB 150TB / 月より大きい 0.084USD / GB

S3の整合性モデル

S3は高い可用性を実現するため、データ更新・削除には結果整合性モデルを採用 同時書き込みはタイムスタンプ処理を実施

◾️新規登録  ・Consistency Read  ・登録時即時にデータが反映される

◾️更新  ・Eventual Consistency Read  ・更新直後はデータ反映に時間がかかる

◾️削除  ・Eventual Consistency Read  ・削除直後はデータ反映に時間がかかる

S3のアクセス管理

◾️IAMポリシー  ・IAMユーザー / サービスに対してS3サービスへのアクセス権限を設定することができる  ・一元的にユーザへのアクセス権限を管理

◾️バケットポリシー  ・バケットへのアクセス権をJSONで設定  ・他アカウントへの許可も可能  ・バケット単位の高度なアクセス管理向け

◾️ACL  ・バケットと個々のオブジェクトへのアクセス権限をXMLで設定する  ・他アカウントへの許可も可能  ・簡易的にアクセス管理向け

◾️著名付きURL  ・AWS SDKで生成した著名付きURLでS3のオブジェクトへの一定時間アクセスを許可

S3の暗号化

◾️SSE-S3  ・S3の標準暗号化方式で簡易に利用可能  ・暗号化キーの作成、管理をS3側で自動で実施  ・ブロック暗号の1つである256ビットのAdvanced Encryption Standard(AES-256)を使用してデータを暗号化

◾️SSE-KMS  ・AWS KMSに設定した暗号化キーを利用した暗号化を実施  ・ユーザ側でAWS KMSを利用して暗号化キーを作成、管理することが可能  ・クライアント独自の暗号キーを利用可能

◾️SSE-C  ・ユーザーが指定したキーによるサーバー側の暗号化(SSE-C)を使用することが可能  ・利用設定や管理が煩雑になるのがデメリット

◾️クライアントサイド暗号化(CSE)  ・クライアント側の暗号化では、AmazonS3に送信する前にデータを暗号化する方式  ・AWS KMSなどを利用して暗号化キーを作成、実施  ・アプリケーション内に保存したマスターキーを使用