AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版 (AWS認定資格試験テキスト)
書籍情報
山下光洋:著者
基礎知識から合格する解答力を身につける!
AWSプラットフォームでシステム設計やアプリケーション開発をするために必要な技術スキルと経験を検証するのが「AWS認定ソリューションアーキテクト-プロフェッショナル」試験です。プロフェッショナル試験では、具体的な業務要件や課題をケース問題で出題されるため、基本となる知識をベースに、要件や課題に対応した最適な解答を導く応用力が求められます。 本書は、2022年秋に改訂された「SAP-C02 」試験に向けたテキスト&問題集になっています。出題分野である「複雑な組織に対応するソリューションの設計」「新しいソリューションのための設計」「既存のソリューションの継続的な改善」「ワークロードの移行とモダナイゼーションの加速」に対応して、具体的な要件や課題を読み解きながら、ポイントとなるサービスの利用方法を紹介し、最適な解答につながるように丁寧に解説しています。 各節末のポイントのまとめは試験の直前に知識の確認に利用してもらえ、各章末の確認テストや最終章の模擬試験は合格に必要な解答力をしっかり身につけてもらえます。
コンテンツ
第1章 AWS認定ソリューションアーキテクト-プロフェッショナル
1 試験の概要
-
IMDb: https://psbr.hatenablog.com/entry/imdb
- Amazonの子会社
- AWS Data Exchangeを使っていて、S3バケットに様々なデータをインポートしている
-
AWS Data Pipeline: AWSリソースやコマンドからAWSリソースへデータを変換、コピーする一連の処理をパイプラインとして設定できる
- 現在、マネジメントコンソールからアクセスできなくなったため、今後は重要なサービスではなくなる可能性がある
-
Amazon EMR: EMR(Elastic Map Reduce)はApacheHadoopやSparkなどのOSSをマネージドサービスで提供
-
AWS Glue: ETLサービス
- データを指定した方法で変換してS3などストレージやデータベースにデータを保管できる
-
Amazon Kinesis Data Analytics: ストリーミングデータをSQLなど使い慣れた言語を使ってリアルタイムに抽出検索
-
Amazon Kinesis Data Firehose: 最低60秒のバッファでデータをS3、OpenSearchServiceなどに簡単に格納
-
Amazon Kinesis Data Streams: 秒あたり数GBのデータをリアルタイムにストリーミング処理できます。
-
AWS Lake Formation: データレイクの構築、管理を簡易化
-
Amazon Managed Streaming for Apache Kafka(Amazon MSK): マネージドなApache Kafkaを提供するサービス
-
Amazon OpenSearch Service: Amazon Elasticsearch Serviceの後継サービス
- テキストや非構造化データの全文検索や視覚化、ダッシュボード分析が可能
-
Amazon QuickSight: BIサービス
-
Amazon AppFlow: 外部SaaSからのノーコードなデータ連携サービス
-
AWS AppSync: GraphQL APIとPubSub APIを高速に開発できる
2 お勧めの学習方法
-
模擬試験 AWS Skill Builder
-
検証用のAWSアカウント
- 会社、個人でAWSアカウントを利用して実際に動かしてみる
-
Well-Architected Framework
- https://aws.amazon.com/jp/architecture/well-architected/?wa-lens-whitepapers.sort-by=item.additionalFields.sortDate&wa-lens-whitepapers.sort-order=desc&wa-guidance-whitepapers.sort-by=item.additionalFields.sortDate&wa-guidance-whitepapers.sort-order=desc
- 6つの柱を抑えておく
- オペレーショナル・エクセレンス
- セキュリティ
- パフォーマンス
- コスト最適化
- 信頼性
- 持続可能性
-
その他リソース
- AWS Black Belt
- AWS FAQ
第2章 複雑な組織への対応
1 組織のネットワーク設計
-
VPC内のEC2からリクエストを実行するためには以下のいずれかが必要
- インターネットゲートウェイがアタッチされたVPCのパブリックネットワークでEC2を起動する
- インターネットゲートウェイがアタッチされ、NATゲートウェイが起動しているVPCのプライベートサブネットでEC2を起動
- VPCエンドポイントを設定
-
VPCエンドポイント
- ゲートウェイエンドポイント
- VPCのサービス専用のゲートウェイをアタッチする
- 対象サービスはS3とDynamoDB
- インターフェースエンドポイント
- VPCのサブネットにENI(Elastic Network Interface)を作成
- ENIに割り当てられたプライベートIPアドレスを使用してサービスにアクセス
- ENIとサービス間のプライベート接続を提供しているのがAWS PrivateLinkという技術
- ゲートウェイエンドポイント
S3ゲートウェイエンドポイント
ゲートウェイエンドポイントは利用料金が不要
オンプレからアクセスする場合はプロキシサーバーを経由してアクセス
プロキシサーバーの可用性を考慮すると、ELB、EC2、Auto Scalingを検討する必要がある
S3インターフェースエンドポイント
インターフェイスエンドポイントは利用料金が発生する
インターフェイスエンドポイントは指定したサブネットにENIを作成
インターフェイスエンドポイントが作成されるとDNS名が発行される
このDNSをS3のエンドポイントに指定してアプリケーションなどからリクエストを実行
VPCエンドポイントにはエンドポイントポリシーがあり、デフォルトでは全てのリソース、すべてのアクションを許可している
AWS PrivateLinkを使用したサードパーティサービスの提供
独自のソフトウェアサービスをサードパーティサービスと呼ぶことがある
AWSクライアントVPN
クライアントからVPCへのアクセス
VPCを介したオンプレミスやインターネット、他のVPCへのOpenVPNベースのVPNクライアントを使用した安全なアクセスを可能にする
-
認証タイプ
- Active Directory(ユーザーベース)
- AWS Managed Microsoft ADまたは、AD Connectorを使用
- シングルサインオン(SAMLベースのフェデレーション、ユーザーベース)
- IAM SAML IDプロバイダー
- 相互認証(証明書ベース)
- AWS Certificate Managerにアップロードしたサーバー証明書とクライアント証明書を使用
- Active Directory(ユーザーベース)
-
基本設定
- クライアントが使用するIPアドレス用にをCIDRで設定
- AWSクライアントVPNにサブネットを関連付ける
- 関連付けられたサブネットにはENIが作成され、ENIにはセキュリティグループがアタッチされる
-
接続ログ
- オプションでCloudwatchLogsに接続ログを記録することができる
-
接続ハンドラ
- 接続時にLambda関数で任意のプログラムを実行して、接続の許可・拒否判定ロジックを実装できる
AWS Site-to-Site VPN
VPCに仮想プライベートゲートウェイをアタッチして、データセンターなどのオンプレミスのルーターと、インタネットプロトコルセキュリティ(IPSec)VPN接続が可能
-
仮想プライベートゲートウェイ
- ASN(自律システム番号)を指定することもできる
- 指定しない場合はAmaxonのデフォルトASN(64512)が使用
-
カスタマーゲートウェイ
- オンプレミス側のルーターなどのこと
- 動的ルーティングでは、BGP(ボーダーゲートウェイプロトコル)ASNの指定が可能
- パブリックなASNが無い場合は、プライベートASNを指定できる
- 証明書ベースではなく、事前共有キーで認証する場合は、インターネットから接続可能なIPアドレスが必要
- 証明書ベースの認証をする場合は、AWS Certificate Managerにプライベート証明書をインポートして指定可能
-
静的ルーティングと動的ルーティング
- カスタマーゲートウェイデバイスがBGPをサポートしている場合は動的ルーティング
- サポートしていない場合は静的ルーティングを選択
-
VPN接続
- Internet Key Exchangeバージョン2(IKEv2):暗号化のための共通鍵を交換する仕組み
- NATトラバーサル: オンプレミス側でNATルーターを介したVPN接続が可能
- デッドピア検出(DPD):接続先のデバイスが有効かどうかを確認
-
複数のSite-to-SiteVPN接続
- 1つの仮想プライベートゲートウェイから、複数のカスタマーゲートウェイにVPN接続を作成可能
- この設計はVPN CloudHubと呼ばれる
-
冗長なSite-to-SiteVPN接続
- カスタマーゲートウェイデバイスを冗長化する構成
-
ソフトウェアVPN
- EC2インスタンスにソフトウェアVPNをセットアップして、インターネットゲートウェイ経由でVPN接続も可能
- 次のような要件の場合利用
- コンプライアンス要件により、接続両端を完全にコントロールする必要がある
- IPsec以外のVPNプロトコルが必要
AWS Direct Connect(DX)
ユーザーまたはパートナーのルーター(Customer Router)からDirect Connectのルーター(DX Router)に標準のイーサネット光ファイバーケーブルを介して接続するサービス
この接続を使用して、VPCやAWSパブリックサービスへの仮想インターフェースを作成
インターネットサービスプロバイダーを利用する必要なく、オンプレミス拠点間の専用線の代替として、AWSへの接続に使用できるサービス
-
接続
- 専用接続
- ホスト接続
-
VPNバックアップのDirectConnect
-
回復性レベル
- 最大回復性:Direct Connectローケーション全体、またはロケーション内部に物理障害があっても、冗長化を継続できる回復性レベル
- 高い回復性
- 開発とテスト
- クラシック
- AWS Direct Connect フェイルオーバーテスト
-
仮想インターフェース
- AWS Direct Connect接続を使用するには、仮想インターフェイス(VIF)が必要
- 仮想インターフェイスの種類は以下(覚えておく)
- プライベート仮想インターフェイス
- オンプレミスのOSでEFSにマウントできる
- パブリック仮想インターフェイス
- S3,DynamoDBにアクセスできる
- トランジット仮想インターフェイス
- Direct Connect Gatewayに関連付けられたTransit Gatewayにアクセスできる
- プライベート仮想インターフェイス
-
LAG(Link Aggregation Group)
-
Direct Connect の料金
- ポート時間
- 容量、接続タイプによって時間料金が決まる
- データ転送
- プライベートVIFの場合は、データ転送を行うAWSアカウントに課金される
- ポート時間
-
Direct Connect 専用接続
- 1,10,100Gbpsから選択可能
-
Direct Connect ホスト接続
- 500Mbpsを選択可能
-
Direct Connectのポート時間料金が発生するタイミング
- 接続確立していないが、接続が作成されてから90日後から
- 90日経っていないが、Direct Connectエンドポイントとカスタマールーターの接続が確立されたときから
VPC ピア接続
VPCピア接続を使用することで、VPCが他のVPCとの接続をプライベートネットワークで行える
AWS Transit Gateway
最大5000のVPCやオンプレミス環境の接続を簡素化する
-
VPCアタッチメント
-
VPN接続
-
Direct Connectトランジット仮想インターフェイス
-
Transit Gatewayピアリング接続
-
Transit Gateway Network Manager
-
Global Accelerator連携のVPN高速化
-
Route 53 プライベートホストゾーンとRoute 53 Resolver
- Route 53 プライベートホストゾーン
- Route 53 Resolver
2 マルチアカウント
クロスアカウントアクセス
- 組織内でのクロスアカウントアクセス
- 複数のAWSアカウントに対して認証が必要な場合の管理
- IAMユーザは特定のAWSアカウントで管理
- 組織内の各AWSアカウントにはIAMロールを作成
- AWS STSのAssume RoleアクションによってIAMロールから一時的認証情報を取得して使用
- 信頼関係
- 誰がIAMロールに対して、sts
を実行できるかを許可しているのが信頼関係
- 誰がIAMロールに対して、sts
カスタムIDブローカーアプリケーション
クロスアカウントだけでなく、オンプレミスのアプリからも同様にSDKにより開発したプログラムでIAMロール二リクエストを実行することにより、一時的な認証情報を使用してAWSのサービスをアプリケーションから使用したり、マネジメントコンソールへのリダイレクトURLを生成できる
サードパーティ製品へのアクセス許可
外部のサービスに対して必要なリソースへの操作を許可することもできる
ただし、「混乱した代理問題」が課題
-
※AWS作図くんの例
-
「混乱した代理問題」を解決するのが「外部ID」
AWS Directory Service
サーバー認証に、組織で管理している既存のActiceDirectoryを使用したいケースがある
- AD Connector
- オンプレミスのデータセンターなどで稼働しているActiveDirectoryの認証をそのまま使えるサービス
- AD Connectorを使えば、Amazon Workspaces, Amazon WorkDocs, Amazon WorkMail, Amazon QuickSightなどのAWSマネージドディレクトリと連携するサービスを、既存のADのユーザ情報で利用できる
- Simple AD
- Samba 4 Active Directory Compatible Server
- 最大5000ユーザー
- 5000を超える場合はAWS Managed Microsoft ADを利用
- また、他ドメインとの信頼関係、MFA(多要素認証)が必要な場合もAWS Managed Microsoft ADを使用する
- 5000を超える場合はAWS Managed Microsoft ADを利用
- AWS Directory Service for Microsoft Active Directory(AWS Managed Microsoft AD)
- Microsoft Active Directoryのマネージドサービス
- 5000を超えるユーザー
- 他ドメインとの信頼関係
- MFA(他要素認証)
IAMアイデンティティセンター(AWS SSOの後継)
複数のAWSアカウントとSalesforceやBOXなどの外部アプリケーションへのSSOが可能
-
IAMアイデンティティセンターの認証
- アイデンティティセンターディレクトリ
- 認証情報(ユーザ名、パスワード)をIAMアイデンティティセンターで管理、デフォルト設定
- ActiveDirectory
- AWS Managed Microsoft ADか、AD Connectorを選択できる
- 外部IDプロバイダー
- Azure AD,Okta,OneLoginなど外部IDプロバイダーを使用できる
- アイデンティティセンターディレクトリ
-
AWSアカウントへの許可セット
- IAMアイデンティティセンターで許可セットを作成して、AWSアカウントにSSOした際の権限を設定できる
-
外部アプリケーションの追加
-
IAMアイデンティティセンターを使用しないケース
- すでにAD FS(Active Directory Federation Services)や、認証だけでなくOkta、OneLoginのポータルサイトも使用している場合に、
- IAMアイデンティティセンターを使用せずに設定するケースもある
AWS Organizations
AWS Organizationsを利用していない複数のアカウント環境では、次の重複作業が発生
- アカウント作成時にクレジットカード、電話番号などの登録
- 各アカウントのIAMロールのポリシー設定
- 請求管理
- CloudTrailなどのさまざまなサービスはアカウントごとの設定
AWS Organizationsを利用した場合
-
AWS Organizations APIによるアカウント作成の自動化
-
SCP(サービスコントロールポリシー)による組織単位のポリシー設定
-
一括請求管理
-
各AWSサービスとのサービス統合
-
アカウント作成の自動化
- 通常、あWSアカウントの作成時には、メールアドレス、パスワード、住所、電話番号、クレジットカードが必要
- SMSか通話での本人確認も必要
- Organizationsでは、既存アカウントを組織のメンバーアカウントとして招待できますが、新規メンバーアカウントもマネジメントコンソール、CLI、SDKから追加可能
-
SCP(サービスコントロールポリシー)
- Organizations組織でOUやアカウントに設定するポリシー
- 予防コントロールとして、OUに所属するアカウント、またはアカウントでの権限を制限できる
- SCPはOUの階層において下のレベルへ継承される
-
SCPの許可リスト戦略
-
SCPの拒否リスト戦略
-
一括請求(コンソリデーテッドビリング)
- 1つの請求書、統合請求データ:コストと使用状況データを複数カウントに渡って複合的に分析できる
- 合計量によるボリュームディスカウント:複数アカウントの合計容量による従量制の割引が受けられる
- リザーブドインスタンス(RI)、Savings Plansの共有
- 組織のアカウントの合計使用量にリザーブドインスタンス、Savings Plansを適用できるので選択しやすくなる
-
MEMO: Saving Plans https://aws.amazon.com/jp/savingsplans/
- Savings Plans は、1 年または 3 年の時間単位で利用をコミットする代わりに、オンデマンド料金と比較して最大 72% の請求額の削減を可能にする柔軟な料金モデルです。
- AWS は 3 種類の Savings Plans を提供しています:
- Compute Savings Plans
- EC2 Instance Savings Plans
- Amazon SageMaker Savings Plans
-
AWS CloudFormation StackSets
- 複数リージョン、複数アカウントにスタックを作成して、変更・削除・管理できる機能
- Organizationsと統合することで、組織、OU、アカウントを指定して、スタックを作成・変更・削除できる
-
AWS CloudTrail (ユーザのアクティビティやAPI使用量をトレース)
- Organizations組織のマスターアカウントで、組織内のすべてのアカウントについてCloudTrailを有効化できる
- 書き出されるS3オブジェクトのプレフィックスには組織IDが含まれる
-
AWS Service Catalog
- IAMユーザ二CloudFormationスタックで作成されるリソースへの直接的なアクセス権限を与えられずに、事前に用意されたテンプレートからスタックを作成できる
- 例えば、スタックによって作成されたEC2インスタンスなどのリソースには直接アクセスできませんので、決められたインスタンスタイプ以外を起動したり、セキュリティグループを勝手に変更することはできない
- 管理者があらかじめテンプレートを製品としてService Catalogに登録し、IAMユーザに許可する製品のリストをポートフォリオとして設定
- ポートフォリオはいわばIAMユーザにとってのサービスカタログメニューで、Organizations組織でOUを指定して共有できる
-
AWS Resource Access Manager(RAM)
- Organizationsと連携して組織、OUとの共有が可能
- Transit Gateway、サブネット、Route53Resolverの転送ルールを複数アカウントで共有可能
- License Managerではソフトウェア・ライセンスを複数アカウントにまたがって管理
-
AWS Control Tower
- 複数アカウントのベストプラクティスであるランディングゾーンを児童構築する
- ランディングゾーンは、Organizations組織のベストプラクティス構成
- ログアカウントと監査アカウント
- SecurityOUにログと監査のアカウントを作成
- ログアカウントにはCloudTrailとConfigのログが集約される
- Athenaなどを使用して集約されたログを分析可能
- 監査アカウント
- 各アカウントのSNSトピックのサブスクライバーのLambda関数から、監査アカウントのSNSトピックへ通知がパブリッシュ(送信)される
- アカウトの追加、招待
- アカウントは、Service Controlポートフォリオで作成されたAccountFactoryで新規作成、または追加ができる
- アカウント認証
- Organizationsと連携するIAMアイデンティティセンターによって、各アカウントへのシングルサインオン設定が可能
- コントロール(ガードレール)
- ダッシュボード
- Control Tower ランディングゾーンは作成して終わりでなく、ダッシュボードで確認、設定が可能
3 確認テスト
第3章 ソリューション設計と継続的改善
1 運用上の優秀性
デプロイ関連サービス
-
この節では、リリース作業を自動化するAWSデプロイサービスと、サービスを活用することにより実現しやすくなったデプロイメントパターンを解説
-
Cloud9
- 統合開発環境(IDE)をブラウザさえあれば実行できる
-
CodeGuru
- ソースコードのレビューによってバグや問題の抽出、パフォーマンスの最適化を自動化
-
CodeStar
- CodePipeline、CodeCommit、CodeBuild、CodeDeployなどを組み合わせたCICDパイプライン
-
CodeArtifact
- パッケージを適切なアクセス権限でチーム内に公開、共有可能
-
OpsWorks
- Chef、Puppetの機能をマネージドで提供
-
AWS Codecommit
- リポジトリのアクセス許可はIAMポリシーで制限可能
- リポジトリのソースコードなどのデータはKMSのAWSマネージドキーによってサードパーティ暗号化されている
- リポジトリへのアクセス履歴はCloudTrailによって記録
-
AWS CodeBuild
- ビルド環境:AWSが用意したLinux、Windowsコンテナを選択したり任意のコンテナを用意したりもできる
- ソースコード:CodeCommit以外にもS3バケット、Github、Bitbucketが選択可能
- CodeBuildで実行される、テストやコンパイル、パッケージ作成、コンテナイメージ作成などはbuildspec.ymlに事前定義されたコマンドによって実行される
- 作成されたパッケージ(アーティファクトファイル)は、指定したS3バケットへ保存されたり、buildspec.ymlに定義したdocker pushコマンドでアップロードしたECRリポジトリに保存される
-
AWS CodeDeploy
- EC2インスタンス、ECSのコンテナ、Lambda関数、オンプレミスサーバーへのデプロイを自動化するサービス
- EC2インスタンス・オンプレミスのデプロイ設定
- AllAtOnce
- 正常なホストの最小数値:0
- 一度にすべてのインスタンスにデプロイ
- HalfAtATime
- 正常なホストの最小数値:50%
- 一度に最大半分のインスタンスにデプロイ
- OneAtAAtime
- 正常なホストの最小数値:1
- 一度に1つのインスタンスにデプロイ
- AllAtOnce
- ECSのデプロイ設定
- ECSで実行しているコンテナデプロイは、カナリアとリニアから選択可能
- Canary:最初一定の割合のみにリリースしたあと、指定した期間後に残りのリリースを完了
- Linear:最初一定の割合のみにリリースしたあと、指定した感覚でデプロイ対象を増分する
- ECSCanary10Percent5Minutes:最初10%のみ移行、5分後に残り90%も移行
- ECSLinear10Percent1Minutes:すべての移行が完了するまで、1分ごとに10%ずつ移行
- ECSAllAtOnce:一度にすべてのコンテナにデプロイ
- Lambdaのデプロイ設定
- AWS Lambdaにはバージョン、エイリアスという機能がある
- バージョン:イミュータブルで開発後にバージョンを作成したら変更できない
- エイリアス:バージョンと紐づけ管理する
- こうすることで迅速なデプロイとロールバックが可能
- LambdaCanary10Percent5Minutes
- LambdaLinear10PercentEvery1Minutes
- LambdaAllAtOnce
-
AWS CloudFormation
- テンプレートをもとにAWSリソースをスタックという単位で作成する
- カスタムリソース
- Resourcesにカスタムリソースを含めて任意のLambda関数を実行することができる
- カスタムリソースを使用してLambda関数を実行することによって、CloudFormationがサポートしていない処理や、必要な情報を動的に取得可能
- CloudFormationヘルパースクリプト
- EC2インスタンスへデプロイするアプリケーション向けに、CloudFormationヘルパースクリプトが用意されている
- Amazon Linux AMIにはすでにインストールされていて、
/opt/aws/binにあるcfn-init: パッケージのインストール、ファイルの作成、サービスの開始などが可能cfn-signal: CreationPolicy、またはWaitConditionにシグナルを送信するために使用可能
- スタックポリシー
- スタックに含まれるリソースノ更新は、テンプレートの更新によって行う
- 意図しない更新を防ぐためにはスタックポリシーを使用できる
- DeletionPolicy(削除ポリシー)
- スタック削除時に特定のリソースを保護することができる
- データベースやストレージを保護する際などに有効
- AWS CDK
- ソースコードからCloudFormationテンプレートを生成することができる
-
AWS CodePipeline
- ソース、ビルド、デプロイのCI/CDパイプラインを自動化
-
AWS Elastic Beanstalk
- 開発者がすばやくAWSを使い始めることができるようにするサービス
.ebextensions: EB CLIを実行するカレントディレクトリに、.ebextensionsディレクトリを作成して、配下にconfigファイルを配置することで、アプリケーションのカスタマイズが可能
デプロイメントパターン
-
ローリングデプロイ
- 指定したバッチサイズ(インスタンス数、割合)ずつ更新デプロイします。
-
ブルー/グリーンデプロイ
- 現在のアプリケーションバージョンをブルー
- 新しいバージョンをグリーンとしてデプロイ
- リクエスト送信先を切り替えてリリース方法をブルー/グリーンデプロイと呼ぶ
- Route53を使用したデプロイ
- Application Load Balancerを使用したデプロイ
- EC2 Auto Scalingを使用したデプロイ
モニタリング
-
AWS Healthイベント
- AWSアカウントに影響を及ぼすイベントをモニタリングできる
- AWS Personal Health Dashboard
- マネジメントコンソールにサインインんして、ダッシュボードとイベントログで、過去90日のアカウント固有のイベントとパブリックイベントを確認可能
- 問題のイベントタイプコードの例:
- アカウント通知のイベントタイプコードの例
- スケジュールされた変更のイベントタイプコードの例
- AWS Health API
- Service Health Dashboard
- インターネット上の公開ページで、パブリックイベントを確認可能
-
Amazon CloudWatch
- メトリクス、ダッシュボード
- アラーム
- 以上検出
- CloudWatch Logs
- AWSサービスうやCloudWatchエージェントによるアプリケーションログなどさまざまなログを収集できる
- CloudWatch Synthetics
- CanaryというLambda関数を設定したスケジュールで実行し、指定したウェブページへ定期的に自動アクセス
- その時点のスクリーンショットの取得と、Webページに含まれるコンテンツのダウンロード時間などを記録
- CloudWatch RUM
- RUM(リアルユーザモニタリング)は、エンドユーザの場所や使用デバイス別のパフォーマンスやエラー発生情報を収集、モニタリングできる
-
Amazon VPCのモニタリング
- VPC Flow Logs
- ENIへのインバウンド/アウトバウンドトラフィックに関する情報は、CloudWatchLogsまたはS3バケットへ送信可能
- VPC Flow Logsでは各種のAWS情報をモニタリング可能
- トラフィックミラーリング
- AWS X-Ray
- アプリケーションの潜在的なバグとボトルネックを抽出
- X-RayのPutTrace Segments APIアクセ本により、実行時間やリクエストの成功失敗がX-Rayに送信される
- 結果をサービスマップやトレース情報で確認可能
- SIEM on Amazon OpenSearch Sevice
- SIEM(Security Information and Event Management)と呼ばれるログの収集、一元的なモニタリング、分析が可能なシステムを、
- Amazon OpenSearchServiceを中心として構築できる
- OpenSearch Dashboardsで可視化、分析可能
- VPC Flow Logs
構成管理、メンテナンス
- AWS Systems Manager
- LinuxやWindowsのEC2インスタンス、オンプレミスサーバにSSMAgent(AWS Ssytems Managerエージェント)をインストールすることで、Systems Managerのマネージドインスタンス(管理対象)にできる
- Session Manager
- セキュリティグループでSSHポートを許可する必要もキーペアを使用する必要も内
- ブラウザのSessionManagerからsudo可能なssm-userを使って対話式コマンドを実行可能
- RunCommand
- EC2、オンプレミスサーバーなどマネージドインスタンスに、コマンドドキュメントに事前定義されたコマンドを実行可能
- 定形運用をドキュメント化して、Run Commandにより1回のみ実行したり、Lambdaから動的に実行するなども可能
- コマンド実行対象のインスタンスは、インスタンスID、タグ、リソースグループから指定可能
- パッチマネージャ
- マネージドインスタンスへのパッチ適用を自動化できる
- Automation
- 定義済みのオートメーションドキュメントを実行
- 例)Health EventのEventBridge連携の自動アクションで紹介したAWS-RestartEC2Instanceの例を紹介
- インスタンスIDとIAMロールがパラメータで定義されている
- OpsCenter
- 運用で発生した問題の確認やステータスを一言管理できる
AWS Config
-
AWSアカウント内のリソースの設定情報を収集する
-
ControlTowerによって組織内のアカウントすべてのリソースの設定情報を集約することもできます。
-
設定変更の際にイベント通知
-
有効にしておいたルールによって組織で決められたルールやコンプライアンス要件に準拠しているかを確認できる
-
非準拠になり修復する必要がある場合は、修復アクションを設定して自動修復することも可能
-
自動修復にはSystemsManagerAutomationを選択可能
-
S3バッチオペレーション
- S3のオブジェクト管理機能にバッチオペレーションがある
- 数十億のオブジェクトを大規模に管理可能
- S3バッチオペレーションが使用するIAMロールには、batchoperations.s3.amazonaws.comからの信頼ポリシーが必要
2 セキュリティ
ルートユーザーの保護
-
ルートユーザはIAMポリシーを設定できず、すべてのアクションが可能
-
ルートユーザは基本的に使用せず、複雑なパスワードとMFAを設定して保護しておくこと
-
メールアドレスは個人に紐づくものではなく、企業のエイリアスやメーリングリストを使用する
-
ルートユーザーにしかできないタスク
- アカウント設定の変更:アカウント名、Eメールアドレス、パスワードの変更
- アクセスキーの作成:ルートユーザーにもアクセスキーを作成できますが非推奨なので作成しないこと
- 請求情報へのIAMアクセスの有効化:有効化したあとはIAMユーザー、IAMロールに請求情報へのアクションをポリシーで許可できる
- MFA Delete:S3バケットのMFA Deleteを設定
- S3バケットポリシーの修復:誰もアクセスできないS3バケットポリシーを設定してしまった場合は、ルートユーザーによって削除、編集可能
-
ルートユーザ使用時に通知する
- GuardDutyで検知
- Amazon GuardDuty→AmazonEventBridge→AmazonSNS
- GuardDutyで検知
最小権限の適用
IAM Access Analyzer: 最小権限の原則を適用するために便利なサービス
-
IAM Access Analyzer
- 外部に共有されているリソースの識別
- IAMポリシーの検証
- CloudTrailログに基づいたIAMポリシーの作成
- 外部に共有されているリソースの識別
- IAMロール、S3バケット、KMSキー、RDSスナップショットといったアカウントやパブリックなどのアカウント外部と共有可能なリソースを調べて、
- 外部と共有されたリソースを検出する
- Organizationsの組織全体での検出が可能だが、リージョンごとに有効化する必要がある
- IAMポリシーの検証
- IAM Access AnalyzerはIAMポリシーの作成時に、セキュリティ・エラー・警告・提案の4つの視点で検証してくれる
- CloudTrailログに基づいたIAMポリシーの作成
- IAMユーザー、IAMロールが実行したリクエストのCloudTrailログを分析して、適切なIAMポリシーを生成してくれる
-
アクセス許可の境界
- IAMユーザー、IAMロールを作成しポリシーを設定するユーザーが過剰な権限を適用することを防ぐ機能
- 例)Lambda関数やEC2インスタンス向けのIAMロールを作成することを許可されたユーザがいるとする。
- 開発ユーザ自身はapp-bucketにアクセスすることは許可されているが、機密情報が保存されたsecure-bucketへのアクセスは許可されていない
- このとき、開発ユーザーがIAMロールとIAMポリシーを作成する際に、secure-bucketへのフルアクセス許可のあるIAMロールを作成下とすると、開発ユーザはIAMロールをEC2インスタンスに設定して、EC2インスタンス上でCLIなどでの操作でsecure-bucketへアクセスできてしまう
- だからといって、開発ユーザからIAMロールやIAMポリシーの権限を奪ってしまうと開発スピードが落ちる
- この問題を解決するのがアクセス許可の境界
- アクセス許可の境界はIAMユーザー、IAMロールに追加で設定する管理ポリシーです。
VPCのセキュリティ
- VPCにおけるセキュリティ設定の基礎
- ルートテーブル
- セキュリティグループ:ALB,EC2,ENIを保護するファイアウォール
- ネットワークACL:サブネットを保護するファイアウォール
AWS KMS
CMK(カスタマー管理キー)を管理して、データキーを生成・暗号化・復号するなど、復号化に必要なキー管理、キーオペレーションを提供するマネージド・サービス
さまざまなAWSサービスとシームレスに統合することができる
-
KMSキーの種類
- カスタマー管理キー:AWSユーザーが作成、管理、完全に制御するキー。キーストレージ料金とリクエスト量に応じた料金が発生
- AWS管理キー:AWSが作成、管理するキー。特定のサービスを使用したり、暗号化するときに選択することで作成される。リクエスト量に応じた課金のみ
-
エンベロープ暗号化
- 対象暗号化
- 非対称暗号化
-
キーのローテーション
- KMSキーには年ごとに自動ローテーション機能がある
- カスタマー管理キーでは、自動ローテーションはオプションで有効にできる
- AWS管理キーは自動ローテーションが矯正される
- 有効にするとKMSは毎年新しいキーマテリアルを生成
- 私達はキーIDを指定して暗号化/復号をするのみで、ローテーションされたキーマテリアルの指定は意識しない
-
キーのエイリアス
- カスタマー管理キーにはエイリアスが設定できる
- アプリケーションからはキーIDのかわりにエイリアスを指定してキーへのアクションを実行できる
-
キーのインポート
- カスタマー管理キーの作成時にキーをインポート可能
- オンプレミスで作成したキーマテリアルをアップロードしてカスタマー管理キーとして使用できる
-
KMSをサポートするサービス
- AWS Systems Manager Parameter Store
- AWS Secrets Manager
- Amazon DynamoDB
- デフォルトはDynamoDBが管理するキーで暗号化出来る
- Amazon EBS
- Amazon RDS
- 暗号化されていないRDSを暗号化するには:スナップショットを暗号化、暗号化されたスナップショットから復元すると同じ暗号化形式で復号化出来る
- Amazon WorkSpaces
- Amazon EMR
- ストレージにS3またはEBSを使用します
- Amazon Redshift
- 4階層のキーで暗号化される。KMSキー>クラスターキー>データベースキー>データ暗号化キー>クラスタ内のデータブロック
- Amazon S3
- クライアントサイド暗号化
- CSE-C
- CSE-KMS
- サーバーサイド暗号化
- SSE-S3
- SSE-KMS
- SSE-C
- クライアントサイド暗号化
AWS CloudHSM
キー保存、暗号化を実行するハードウェアを物理的に専有するサービスが、AWS CloudHSM
CloudHSMはFIPS 140-2レベル3に準拠している
AWS KMSもFIPS 140-2レベル2に準拠しているが、レベル3が必要な場合はCloudHSMを選択
- CloudHSMの構成
- KMSカスタムキーストア
- CloudHSMのバックアップ
- CloudHSMのユースケース(TDE)
AWS Certificate Manager
パブリックなSSL/TSL証明書の保存、更新を提供する無料のサービス
Croud Front,Elastic Load Balancer, API Gatewayと連携してユーザー所有のドメインの証明書を作成出来る
所有者の確認はメール認証化、CNAME認証で行われる、発行済みの証明書をインポートすることも出来る
ACMはサイトシールを提供していない
AWS Private Certificate Authority
プライベートな独自の証明機関(CA)階層を作成し、ユーザー、デバイス、アプリケーションなどの認証のプライベート証明書を作成可能
Amazon Cognito
Webアプリケーションやモバイルアプリケーションに安全に認証を提供するサービス
- Cognitoユーザープール
- サインアップ・サインインを短期間でアプリケーションに実装
- 認証基盤を開発しなくても、モバイルアプリケーションやWebアプリケーションからのサインアップ、サインインのために使用可能
- 開発コストを下げて開発機関を短くするためにも有用
- Cognitoユーザープールのみで認証も可能、SNSなど外部での認証も可能
- MFA、アドバンスドセキュリティ他
- パスワードポリシー
- メールアドレス、電話番号の検証
- MFA(多要素認証)
- アドバンスドセキュリティ
- Lambdaトリガー
- サインアップイベント、サインインイベントをトリガーにAWS Lambda関数を実行できる
- サインアップ・サインインを短期間でアプリケーションに実装
- IDプール
- モバイルアプリケーションやクライアントサイドJavaScriptが動作しているアプリケーションで、AWSのサービスに対して安全にリクエストを実行したい場合、CognitoIDプールを利用する
AWS Secrets Manager
データベースなどの認証情報を保持し、取得にはSecrets ManagerへのAPIリクエストを使用します。
認証情報のローテーション更新が必要となった際には、Secrets Managerがデータベースの認証情報を更新して保持します
アプリケーションからはSecrets ManagerへGetSecretValueリクエストを実行することで、常に現在の認証情報を取得できるので、認証情報の再配布やそのための長時間に渡るシステムダウンタイムはない
- ローテーション戦略
Amazon Inspector
EC2インスタンス、ECRコンテナイメージ、Lambda関数を自動的に検出して、脆弱性のスキャンを継続的に行い、レポートで可視化するサービスです。
以前はInspector用のエージェントが必要で、EC2のみスキャン可能でしたが、そのバージョンはAmazon Inspector Classicになった
AWS WAF
Web Application Firewall
CloudFront,APIGateway,ApplicationLoadBalancer,AppSync GraphQL API, Cognitoユーザープール、App Runnerへのリクエストに対応できる
- AWS WAFの構成と料金
- AWS WAFの代表的なマネージドルール
AWS Shield
DDoS攻撃から保護するサービスで、StandardとAdvancedがある
-
AWS Shield Standardは無料で有効になり、AWSサービスへのベーシックなネットワークレイヤー攻撃を自動的に緩和する
-
Advancedは1ヶ月3000USDのサブスクリプションサービスで、Organizations組織で利用可能
-
AWS Shield Advancedで可能になること
-
AWS Shield Engagement Lambda
- DDoS攻撃を自動検知して、エスカレーションアクションを自動化する設計パターン
AWS Network Firewall
VPC向けのステートフルなマネージドネットワークファイアウォール及びIPSサービス
Network Firewallはトラフィック量に応じて自動的にスケールし、複数のAZにエンドポイントをデプロイすることで高可用性を実現
AWS Firewall Manager
- 複数アカウントで以下を一元管理
- AWS WAF
- AWS Shield Advanced
- VPCセキュリティグループ
- AWS Network Firewall
- Amazon Route53 Resolver DNSファイアウォール
Amazon GuardDuty
CloudTrail,S3データログ、VPC Flow Logs、DNSクエリログを分析して脅威を抽出する
Amazon Macie
S3バケットに保存された機密データを機械学習とパターンマッチングで検出・監視出来る
- 参考
- https://dev.classmethod.jp/articles/introduce-to-amazon-macie/
- Macieは女の子の名前で「武器」「活発でスポーティで魅力的な人の代表名」という意味
AWS Security Hub
AWS Security Hubは、GuardDutyやMacieなどAWSのセキュリティサービスや外部のサードパーティサービスの検出結果を、AWS Security Finding形式という共通のJSONフォーマットに変換して結合する
Amazon Detective
GurardDutyの検出結果や、取り込んだログデータソースから、簡単に調査、原因の特定が行えるサービス
例えば、いつもは呼び出されないAPIリクエストがいつもとは違う送信元から呼び出されたことがGuardDutyで検出されたとする。 Detectiveではその送信元から最初と最後の呼び出しや、合計時間、IAMロールなどに関連付けている他の検出結果など、調査二必要な情報を次々に確認出来る
3 信頼性
災害対策
-
RPOとRTO
- RPO(Recovery Point Objective):目標復旧時点
- RTO(Recovery Time Objective):目標復旧時間
-
オンプレミスからのバックアップ&リカバリー
-
AWS Storage Gateway
- オンプレミスから主にS3などのAWSストレージサービスを透過的に使用するためのサービス
- ゲートウェイ種類
- AmazonS3ファイルゲートウェイ
- ボリュームゲートウェイ
- テープゲートウェイ
- Amazon FSxファイルゲートウェイ
- オンプレミスにデプロイする仮想イメージ
- VMware ESXi
- Microsoft Hyper-V 2012R/2016
- Linux KVM
-
AWS マルチリージョンのバックアップ&リカバリー
- AWSリージョンで稼働しているWEB層/アプリ層/DB層の3層システムの災害対策サイトを他のAWSリージョンにする例
- AMI,ESBは対象範囲がリージョンなので、クロスリージョンコピーをする必要がある
- DLM(Data Lifecycle Manager)で自動取得し、クロスリージョンコピーをスケジューリング出来る
-
AWS Backup
- システム全体のストレージ、データベースサービス之バックアップを一元管理して自動化出来る
- 以前から各ストレージ之バックアップ機能(EBSのDataLifecycleManager、RDSの自動スナップショット、DynamoDBのAPIバックアップなど)はあったが、
- それらのスケジュールや世代管理はそれぞれで設定する必要があったが、この機能で一元管理が可能
- バックアップボールト
- バックアップを管理する抽象的な入れ物
- バックアッププラン
- ルールとリソースを指定
- ルール:バックアップスケジュール、保存世代、対象のボールトを指定
- リソース:同じリージョンの対象リソースタイプ(EBS、RDSなど)をすべて指定したり、特定のタグキーと値で限定したり出来る
- ルールとリソースを指定
-
パイロットライト
- Web層やアプリ層はAMIとCloudFormationテンプレートを作成しておく
- 災害発生時はスタックを作成して復旧
- RDSはクロスリージョンリードレプリカを作成しておき、障害発生時はマスターへ昇格し、スタンバイデータベースを作成
- DynamoDBはグローバルテーブルでレプリカを作成しておく
- ※AWS Elastic Disaster Recovery: システムダウンタイム時間を最小に抑えながら、オンプレミスのサーバーをAWSへ復旧
-
ウォームスタンバイ(最小構成のスタンバイ)
- パイロットライト構成に加えて、WEB層とアプリ層を最小構成で稼働させておく
- パイロットライトよりもRTOを短縮できるがコストが増加する
-
マルチサイトアクティブ/アクティブ
- すべてのリソースを常時稼働させておく構成
-
AWS Global Accelerator
- フェールオーバー時間をさらに短縮出来る
-
AWS Fault Injection Simulator
- 用意されたシナリオによる障害をAWSリソースに注入することで、災害をシュミレーション出来る
疎結合化による信頼性の改善
- 外部API呼び出し処理を、SNSとSQSでファンアウト(Fanout)して、アプリケーションEC2インスタンスが行っていた処理をLambdaで実行
- 順番を守るため、SNSトピックとSQSキューの両方でFIFOトピックとFIFOキューを選択しておく
- このような構成にすることで極力外部のAPIに依存しない設計にすることが出来る
データベースへのリクエスト改善
- RDS Proxy
リフト&シフトからの信頼性の改善
- WEB層、アプリ層をステートレスにすることで異なるリージョンでも切り替えられるようにする
EC2 Auto Scaling
EC2インスタンスを自動で増減する機能
-
スケーリングポリシー
- スケールアウト・スケールインをいつ行うか、どのような状態になったら行うか、どうなりそうなら行うかを設定
-
同期的設計
- 普通の3層設計
-
非同期的設計
- SQS+Lambdaを挟んだ設計
- ※オフロード戦略:少ない処理を先に終わらせ、並列処理が必要なものを非同期で行う
-
SQSに基づくスケーリング
- キューの属性ApporoximateNumberOfMessagesを取得
- Auto ScalingグループからのInService状態のインスタンス数を取得
- CloudWatchのPutMetricDataAPIで送信する。ココマdの処理を定期的に繰り返すLambda関数をデプロイする
- AutoScalingグループのスケーリングポリシーによって、PutMetricDataされたメトリクスのしきい値アラームに応じたスケールアウト・スケールインアクションが実行される
-
ファンアウト
- fanout: 扇形に広がるという意味
- SNSトピック+SQSキューで複数のキューにためて、複数のAutoScalingグループで処理させる
-
優先処理を考慮したキュー
- SQSの優先度の高い方から取得して処理実施
-
ライフサイクルフック
- スケールアウト時にソフトウェアのデプロイを完全に完了したことを確認してからInServiceにしたり
- スケールイン時に必要なデータをコピー完了してからターミネートする場合などに利用できる
- ※一時的にPending
状態にする
- ※一時的にPending
Amazon Route 53
パブリックまたはプライベートなホストゾーンやリゾルバーを提供するDNSサービス。ドメインの購入、管理も可能
- Route53ヘルスチェック
- IPアドレスかドメインとポートを指定して、接続テストが実行可能
- フェイルオーバールーティングポリシー
- 2つのリージョン間でDNSクエリに対して返すIPアドレスが変わる設定
- 位置情報ルーティングポリシー
- 位置情報でルーティングを決める設定
- レイテンシールーティングポリシー
- 低いレイテンシーのレコードを返す設定
AWS Service Quotas
AWSの各サービス使用量には制限がある
調整可能な制限値と使用量が、現在のAWSアカウントでどうなっているかをAWS Service Quotasで確認可能
- クォータモニタ(AWS Limit Monitor)
- サービス使用量が制限に近づいているかのモニタリングを自動化するソリューション実装
4 パフォーマンス
EC2のパフォーマンス
-
インスタンスタイプ
- m6g.large
- m:ファミリー
- 6:世代
- g:追加機能
- large:サイズ
- 新しい世代を選択したほうがコスト、パフォーマンスでメリットのある場合が多い
- m6g.large
-
追加機能について
- d: インスタンスストアが使用できる
- n: ネットワーク強化
- a: AMDプロセッサ搭載
- g: Gravitonプロセッサ搭載
-
インスタンスファミリー
- 汎用(T3,T4g,M5,M6g,A1など):Web、アプリなど
- コンピューティング最適化(C5,C7g):HPC,メディアトランスコード、機械学習推論など
- メモリ最適化(R5,R6g,X1):大きなデータセット処理など
- 高速コンピューティング(P4,G5,F1,Trn1):機械学習推論、GPUグラフィックス処理など
- ストレージ最適化(I3,D3,H1):ビックデータ処理など
-
バーストパフォーマンスインスタンス
- T2,T3,T3a,T4gインスタンスにはCPUバーストパフォーマンスがある
- 通常はインスタンスサイズごとに決まっているベースラインまでのCPUが使えるが、ベースラインを超えてバースト可能
- ベースラインを超えるときにはCPUクレジットが消費され、ベースラインを下回っているときにはCPUクレジットが蓄積される
- CPU使用率がベースラインを超え続けるような使い方はバーストパフォーマンスインスタンスとしては不向きなので、M5などのインスタンスを検討する
-
拡張ネットワーキング
- 現行世代を含むほとんどのインスタンスタイプでは、Elastic Network Adapter(ENA)がサポートされている
- 起動時拡張ネットワーキングが有効になっている
- enaモジュールがインストールされていることを確認:
modinfo ena - ネットワークインターフェースドライバーの確認:
ethtool -i eth0
-
ジャンボフレーム
- 最大送信単位(MTU
Transmission Unit)は単一パケットで渡すことの出来る最大許容サイズのこと - EC2ではすべてのインスタンスで1500MTUがサポートされている
- かつ、ほとんどのインスタンスで、9001MTU(ジャンボフレーム)がサポートされている
- イーサネットではMTUは1500バイトまでと規定されているhttps://e-words.jp/w/MTU.html
- 最大送信単位(MTU
-
プレイスメントグループ
- ネットワークレイテンシを低くして、ネットワークパフォーマンスを向上させる選択肢としてプレイスメントグループがある
- クラスタプレイスメントグループ
- 拡張ネットワーキング、ジャンボフレームで高いネットワークスループットを実現
- パーティションプレイスメントグループ
- パーティションというセグメントに配置し、各パーティションは異なるラックになる
- スプレッドプレイスメントグループ
- 1つ1つ異なるラックに配置され、1つのAZごとに7つまでインスタンス起動が可能
- クラスタプレイスメントグループ
- ネットワークレイテンシを低くして、ネットワークパフォーマンスを向上させる選択肢としてプレイスメントグループがある
ストレージのパフォーマンス
-
Amazon FSx for Lustre
- Lustreという、大規模なHPC(ハイパフォーマンスコンピューティング)やスーパーコンピューターで使用されている分散ファイルシステムがある
- FSx for Lustreは、Lustreを簡単に効率よく起動出来る
- SSD、HDDからストレージを選択可能
- S3と統合することで、S3のオブジェクトをインポートすることも、S3にエクスポートすることも可能
-
Amazon S3のパフォーマンス最適化
- S3マルチパートアップロードとダウンロード
- S3 Transfer Acceleration
- 離れた大陸や地域からアップロードが実行される場合、さまざまな影響を受けレイテンシーが高くなる可能性がある
- Transfer Accelerationを有効にすることで、全世界のエッジロケーションを経由してアップロードを実行出来る
-
Amazon DynamoDBのパフォーマンス最適化
- 投票アプリケーションのように、まとめて集計するように全アイテムにアクセスすることが多く、書き込みの処理時間を短くする要件の場合はランダムサフィックスを検討
Amazon CloudFront
-
Webコンテンツの配信
- CloudFrontの配信設定のことをディストリビューションと呼ぶ
-
オリジンへのアクセス制限
- OAC(Origin Access Control)
- S3バケットがオリジンの場合は、OACが使用できる
- OACは2022年8月にリリースされた
- 以前はOAI(Origin Access Identity)が使用されていたが、SSE-KMSに対応していなかったり、POST、PUTリクエストがそのままではできなかったりと課題があった
- カスタムヘッダー
- オリジンがALB等の場合に有効
- IPアドレス制限
- OAC(Origin Access Control)
-
オンデマンドビデオ、ライブストリーミングビデオの配信
- S3二アップロードされた動画をAWS Elemental MediaConvertによってHLSなどに変換して、配信用のS3バケットに保存し、
- CloudFrontディストリビューションから再生アプリケーションやデバイスへ配信
- AWS Elemental MediaLivで、リアルタイムにエンコードしたコンテンツをAWS Elemental MediaStoreに保存して、CloudFrontを使用して配信可能
-
フィールドレベルの暗号化
-
署名付きURLと署名付きCookieを使用したプライベートコンテンツの配信
-
エッジ関数
- CloudFrontディストリビューションへのHTTPリクエスト、レスポンスの処理をエッジ関数でカスタマイズ出来る
- エッジ関数には、CloudFront FunctionsとLambda@Edgeの2種類がある
AWS Global Accelerator
AWSグローバルネットワークを利用することで、AWSリージョンへのネットワーク経路を最適化、静的エニーキャストIPアドレスが提供される
BYOIPとしてIPアドレスを持ち込むことも可能
- CloudFrontと似ている
- リージョンまたぎのLBみたいなものみたい
- 参考)https://qiita.com/miyuki_samitani/items/9a320888a833b4aed08c
Amazon ElastiCache
マネージドなインメモリのデータストアとして、Memcachced,Redisを提供
- MemcachedとRedis
Amazon RDSのパフォーマンス
- インスタンスクラス
- ストレージ
- リードレプリカ
- 読み取り可能なスタンバイを備えたマルチAZ
Amazon Aurora
MySQL,PostgreSQLと互換性のあるそれぞれのタイプを用意している、高いパフォーマンスデータベースエンジン
- サーバーレス
- Serverless V2を使用すると、インスタンスクラスを指定する必要はなく、ACU(Aurora Capacity Unit)の最小値、最大値を決めます
- 開始して間もない、リクエスト量の読めないアプリに向いている
Amazon API Gateway
- API Gatewayキャッシュ
- API エンドポイント
- エッジ最適化APIエンドポイント
- リージョンAPIエンドポイント
- プライベートAPIエンドポイント
- 使用量プラン
- APIの認証
- IAM認証
- Cognitoオーソライザー
- Lmabdaオーソライザー
5 コスト最適化
Amazon EC2のコスト
-
リザーブドインスタンス
- Savings Plansもあるが、リザーブドインスタンスも依然として有効な割引オプション
-
スポットインスタンス
- 各AZの各インスタンスタイプの使用されていない量によって決定されるスポット料金
- 上限料金をリクエストして使用
- スポット料金が上限料金を超えた場合か、AZに利用可能なキャパシティがなくなった場合、スポットインスタンスは中断される
- 中断に備えたベストプラクティス
- リクエスト料金にデフォルトのオンデマンドインスタンス料金を使用
- 中断されたインスタンスのかわりにのインスタンスをすぐに起動できるように、AMI,起動テンプレートを準備しておく
- S3、DynamoDB、RDS、EFSなどにデータを保存する
- SQSからジョブメッセージを受信して処理をし、中断時には可視性タイムアウトによって他のインスタンスから再試行可能な構成にする
- 中断前の処理が必要な場合、メタデータのポーリングかEventBridgeで検知し処理を完了させる
- Fault injection Simulatorでスポットインスタンス中断を発生させてアプリケーションをテストする
- 中断に備えたベストプラクティス
-
Dedicated Hosts(専有ホスト)
- 専用物理サーバにEC2インスタンスを起動出来る
-
Saving Plans
- 1年または3年期間で時間あたりの使用料金を契約することで、割引料金で使用可能
- EC2 Instance Savings Plans
- Compute Savings Plans
- SageMaker Savings Plans
- 1年または3年期間で時間あたりの使用料金を契約することで、割引料金で使用可能
Amazon S3のコスト
-
S3ストレージクラス(S3標準とS3標準IA)
-
S3 Intelligent-Tiering
- アップロード後の経過日数によってアクセス頻度の変化するパターンが一定でない場合、S3 Intelligent-Tieringを使用することでコスト最適化が可能
-
S3 リクエスタ支払い
- リクエスト料金とデータ転送料金をリクエストした側のアカウントに請求するのが、リクエスタ支払い
- リクエスタ料金を有効にすると、AWSアカウント以外からのアクセスができなくなる
x-amz-request-payerをヘッダーに含めることで課金される
-
S3 Storage Lens
- 複数アカウント、複数のS3バケットの使用状況をS3コンソールのダッシュボードで分析可能
Amazon DynamoDBのコスト
DynamoDBのアイテムの読み込み・書き込みにはオンデマンドモードとプロビジョンドキャパシティモード
-
オンデマンドモード
- 書き込み、読み込みリクエストが発生するごとに料金が発生
- 書き込みは1KBの項目100万回あたりの料金:$1.4269
- 読み込みは4KBの項目を強い整合性読み込みは100万回、結果整合性の読み込みは200万回分の料金:$0.285
- 書き込み、読み込みリクエストが発生するごとに料金が発生
-
プロビジョンドキャパシティモード
- 1秒間の書き込み・容量に対して設定するWCU、読み込み回数・容量に対して設定するRCUを設定
- 1WCU:1KB/1秒 1回
- 1RCU:4KB/1秒 強い整合性1回 結果整合性2回
-
比較
- プロビジョンドキャパシティモードの1時間あたりの料金に合わせた場合、オンデマンドモードでは520回リクエストが可能
- プロビジョンドキャパシティモードは1秒間に1回実行できるので、毎秒実行したとして3600回実行可能のため、オンデマンドモードのほうが高くなる
- 頻度が少ない場合や、急激なスパイクが発生する場合はオンデマンドモードのほうが優位性がある
- 継続的なリクエストが発生して、ゆるやかな増減がある場合はプロビジョンドキャパシティモードのほうが良い
- 請求モードは24時間に1回切り替えることが可能
-
DynamoDB Accelerator(DAX)
- VPC内でDynamoDBキャッシュ二アクセス出来る
- マイクロ秒での応答が必要なケースでDAXを検討する
その他リザーブドオプション
- Amazon RDS
- Amazon ElastiCache
- Amazon Redshift
- Amazon Open Search Service
コスト配分タグ
タグをサポートしているリソースに適切なタグを設定することは、コスト分析、モニタリングに役立つ
請求メニューのコスト配分タグで指定してアクティブにできる
- Organizationsタグポリシー
- SCP:SCPで特定のリソース作成時にタグ付けを必須にする
AWS Cost Explorer
コストの使用状況のグラフビューを使用できる
- コストの予測
- 日付範囲に未来の日付を含めることで予測を作成可能
- 予約とSavings Plans
- 使用状況だけでなく、予約の使用状況と過去実績に基づく推奨事項が確認可能
AWS Cost Anomaly Detection
支払いパターンをモニタリングしながら異常なコストを検出する
AWS Cost and Usage Repots
より詳細な課金の情報を、S3に保存されるCSV、Parquestデータで確認可能
CSVデータを個別にダウンロードして確認、分析するのではなく、AthenaからSQLクエリで分析したり、さらにQuickSightを使用して可視化されたグラフのGUIで分析可能
AWS Budgets
AWSアカウント、Organizations組織にまたがった全体の予算や、特定の条件でフィルタリングした条件での予算を作成出来る
請求アラーム
アカウントの請求設定で、「請求アラートを受け取る」オプションを有効にしていると、バージニア北部のCloudWatchで請求アラームを設定可能
マネージドサービスの利用
AWSの請求だけがコストではない、EC2はOSの運用管理も必要
- EC2中心のアーキテクチャからサーバーレスアーキテクチャへ
- NATインスタンスをNATゲートウェイに変更する
- NATゲートウェイは、内部的な冗長化、復元可用性を持っている
- NATインスタンスは、送信先・送信元チェックを無効化したEC2インスタンス
データ転送料金の削減
-
NATゲートウェイの料金削減
- 時間利用料金とデータ処理料金が発生
- データ処理料金はデータ量に応じて増加する
-
メディア配信コストの最適化
AWS Compute Optimizer
EC2,AutoScalingグループ,EBSボリューム,Lambda関数,Fargate(ECS)に付いて、使用率メトリクスを分析し、リソースサイズの選択が最適化どうかレポートして、コスト削減とパフォーマンスに関する推奨事項を提供
6 確認テスト
第4章 移行とモダナイゼーションの加速
1 移行評価とアプローチ
7つのR
移行する際の考え方についての7つのRが公開されている
- Refactor
- アプリケーションをフルにカスタマイズ出来るケース
- Replatform
- アプリケーションのカスタマイズは行わない
- オンプレミスで利用している成約はそのまま引き継ぐ
- Repurchase
- これまで組織で構築し運用していたシステムをSaaSなどに変更する方法
- 例)サーバーに構築していたRedmineをBacklogやJiraなどのSaaSに変更するケース、社内メールサーバをクラウドメールサーバーに変更するなど
- Rehost
- シンプルな載せ替えのこと
- アンマネージドサービスであるEC2を中心に構成
- Relocate
- VMware Cloud on AWSの使用を開始し、そのままAWSへ移行する手段
- Retain
- 検討した結果オンプレミスのままというビジネス判断をしたもの
- システムを見直すいい機会になった
- Retire
- 移行を検討する段階で、不要なシステムやインフラがあれば、Retire(廃止)します
移行評価支援のサービス
-
AWS Cloud Adoption Readiness Tool(CART)
- クラウド支援準備ツール
- 6つのパースペクティブについての質問に答えることで準備状況に関する大まかな推奨事項のレポートを生成
- https://cloudreadiness.amazonaws.com/#/cart
-
AWS Application Discovery Service
- オンプレミスのサーバーの使用状況や設定データを収集することでAWSへの移行計画をサポート
- AWS Migration Hubに統合されており、収集した情報はAWS Migration Hubで確認できる
- WindowsやLinuxにインストール出来るエージェント型
- VMware向けのエージェントレスコネクタ型
データ、アプリケーション移行のサービス
-
AWS Snowファミリー
- Snowcone
- Snowball Edage Storage Optimized(ストレージ最適化)
- Snowball Edage Compute Optimized(コンピューティング最適化)
- Snowball Edage Compute Optimized with GPU(コンピューティング最適化GPU)
- Snowmobile
- エクサバイト規模のデータ転送をサポートする
-
AWS DataSync
- オンプレミスなどのデータをS3,EFS,FSxへ安全かつ高速に転送するサービス
-
AWS Application Migration Service(MGN)
- オンプレミスサーバをAWSに移行するサービス
- MGNの料金
- 90以内に移行が完了したサーバーにはコスト発生なし
-
AWS Database Migration Service(DMS)
- データベースの移行サービス
2 移行後アーキテクチャとモダナイゼーション
クラウドジャーニー:移行してからクラウドの最適化を勧め、継続的な改善が出来る状態にしていくこと
コンテナ
-
Amazon ECS(Amazon Elastic Container Service)
- クラスタ、タスク定義、サービスの設定があり、コンテナイメージの保存先としてECRも利用できる
- Amazon ECR(Amazon Elastic Container Registry)
- コンテナイメージを管理するレジストリ
- ECS,EKS,App Runnerなどのコンテナ実行サービスから使用できる
- ECS クラスタ
- コンテナを実行するためのサービスとタスクのグループがクラスタ
- 組織のチームや部門ごとに分けたり、アクセス権限やコストで分離したりする
- タスク定義
- コンテナイメージ、タスクサイズ、使用するポート、コンテナタスクがAWSサービスへのアクセスを許可するためのIAMロール、コンテナを実行するためのIAMロール、環境変数、ログ記録などを定義
- JSONで直接記述することも可能
- サービス
- 実行するタスク定義、コンテナを配置するVPC、サブネット、セキュリティグループ、スケーリングポリシー、ALBのターゲットブループ、インフラストラクチャなどが設定出来る
- 起動タイプトキャパシティプロバイダー
- 起動タイプ:AWS FargateとEC2のどちらで実行するか選択可能
- Fargateでコンテナを起動すれば、OS、クラスタの可用性、ソフトウェアの管理が必要なくなり、コンテナの実行に集中出来る
- キャパシティプロバイダー
- より詳細にコントロール出来るコンテナの実行環境
- 起動タイプ:AWS FargateとEC2のどちらで実行するか選択可能
- ネットワークモード
- ECSイベントストリーム
-
AWS Proton
- コンテナの実行環境を環境テンプレートとサービステンプレートに分けて、自動構築、管理出来るサービス
- 環境テンプレート:VPC、IAMロール、ECSクラスタなどが作成
- サービステンプレート:ALB、ECSタスク、ECSサービス、ECR、CodePipleineが作成
-
Amazon EKS(AMazon Elastic Kubernetes Service)
- コンテナオーケストレーションのためのオープンソースソフトウェアのマネージドサービス
- EKSでもEC2起動タプとFargateを使用できる
-
AWS App Runner
- Githubのそー^すリポジトリまたはECRイメージからアプリケーションを継続的にデプロイ、運用出来る
-
Amazon Managed Service for Prometheus
- Prometheusとの互換性を持つモニタリングサービス
- コンテナによって構築されたマイクロサービスと相性の良いモニタリングソフトウェア
- Prometheusクエリ言語を使用して、コンテナで構築されたサービスのモニタリングとアラートを出せます
-
Amazon Managed SErvice for Grafana
- Grafanaのフルマネージドサービス
- KibanaやOpenSearch Dashboardsのようにさまざまなデータソースを可視化、分析できるダッシュボード
- Prometheusもデータソースとして使用可能
Amazon Kinesis
ストリーミングデータを扱うサービス
- Amazon kinesis DataStreams
- ストリームデータを収集して順番通りにリアルタイム処理を実現する
- Amazon Kinesis Firehose
- 大量のデータを、指定した送信先へ簡単に送る
- Amazon Kinesis Data Analytics
- Kinesis Data Streams, Kinesis Data Firehoseのストリーミングデータをもとに、SQLクエリを使用して分析
- Amazon Kinesis Video Streams
- 動画ストリームをAWSに収集して、Amazon Rekognition Videoなどと連携してリアルタイムな動画分析が行える
- Amazon Managed Streaming for Apache Kafka(Amazon MSK)
- マネージドなApache Kafkaを提供するサービス
S3を中心としたデータレイク
-
データレイク
- クラウドに送信されたデータを収集して保存し、保存したデータを加工処理したり、分析処理したり、可視化したりします
- 可視化された結果から気づきを得て、ビジネス戦略を練ったり、エンドユーザーに対して提案したりしている
-
AWS Glue
- フルマネージドなETL(Extract Transform Load)サービス
- S3のデータをGlueデータカタログでカタログ化し、これはAthenaやRedshift Spectrumでも使用可能
-
Amazon Athena
- S3内のデータをSQLを使用して簡単に分析出来るサービス
- S3に保存した、CSV,JSON,ParquestなどのデータをSQLで分析する要件の場合は、まずAthenaを検討する
- S3内のデータをSQLを使用して簡単に分析出来るサービス
-
AWS Lake Formation
- データレイクの芝やい構築、きめ細やかなアクセス制限を設定出来る
- ブループリント
- LakeFormationに用意されているブループリントを使用すると、RDSデータベース、CloudTrail、Application Load BalancerからS3へデータを収集するために必要なリソースを自動で作成可能
-
AWS Data Exchange
- データプロバイダーが提供するデータ製品をS3バケットにインポート出来る
-
Amazon AppFlow
- Salesforce、ServiceNow,Slack,Datadog,Zendeskなど様々なSaaSサービスから、コード開発することなく、S3やRedshiftなどのAWSサービスへデータを連携でkリウ
-
Amazon SageMaker
- 機械学習のトレーニングのための環境構築、作成した推論モデルのデプロイなどを提供しているサービスが、Amazon SageMaker
-
Amazon Comprehend
- 文章テキストから自動でキーワードを抽出したり、ネガティブ/ポジティブを判定したり出来る
-
Amazon Rekognition
- 画像、動画を分析できるサービス
- S3バケットにアップロードした画像データから顔を比較して個人を特定して顔認証を実現したり、写真内の要素を検出して自動でラベルを設定したりで着る
-
Amazon Forecast
- S3に蓄積した過去の時系列データをもとに、将来予測を作成出来る
-
Amazon Fraud Detector
- オンライン決済詐欺や偽アカウントによる不正を自動検知出来る
-
Amazon Kendra
- S3,FSx,RDSなどのAWSサービスや、SaaSのストレージサービスの情報をインデックスして、自然言語検索サービスを構築できる
-
Amazon Translate
- 翻訳サービスで、すぐに使い始めることも出来る
-
Amazon Polly
- テキストを音声に変換するサービス
- 言語ごとに男性・女性の音声が用意されていて、プロパティで選択できる
-
Amazon Transcrive
- 音声をテキストに変換するサービス
-
Amazon Textract
- 手書きのドキュメント化rあ自動で文字を抽出して、テキストデータに出来る
- OCRと呼ばれる技術に該当するサービスですが、従来のOCRのレベルにとどまらず、どこに書いてあっても自動で抽出出来る
-
Amazon Lex
- Alexaと同じ会話形AIチャットボットを作成出来る
- Amazon ConnectやKendraと連携して、サポートセンターを構築するのに役立つ
Amazon Simple Email Service
-
SES受信
- Route53などのDNSサービスで、MXレコードをSESドメインに向けて設定する
-
SES送信
- エンドユーザーからの問い合わせフォームや資料請求、ECサイトでの購入確認メールの送信など、取引における送信メールの自動化、マーケティング目的のダイレクトメールや、エンドユーザーへの一括アナウンスを自動化
-
Amazon PinPoint
- マーケティングのためのサービス
- 顧客にメール、ショートメッセージ、アプリケーションプッシュメッセージなどキャンペーンメッセージを送る
AWS Transfer Family
S3バケット、EFSファイルシステムへのデータ保存に、SFTP、FTPS、FTPプロトコルを使用できる
IPアドレスに依存した設計
-
Network Load BalancerにIPアドレスを固定する
- 固定IPアドレスを持ち込んで設定出来る
-
Elastic Network Interface
- プライベートIPアドレス、MACアドレスやセキュリティグループ、Elastic IPアドレスなどを紐づけておくことが出来る
-
Egress-Only インターネットゲートウェイ
- VPCではIPv6を使用できる
- IPv4では、プライベートサブネットからインターネットへの出口にNATゲートウェイを使用するが、IPv6ではEgress-Onlyインターネットゲートウェイを使用する
低遅延を実現するサービス
-
AWS Outposts
- AWSのデータセンターで運用されているものと同様のハードウェア機器がラックサーバー単位で指定したオンプレミスデータセンターに設置される
- 最も近い場所でAWSサービスを使用できるサービス
- 物理的な管理はすべてAWSが実施
-
AWS Local Zones
- リージョンの拡張
- リージョンよりもユーザーに近い拠点で一部のサービスを使用可能
-
AWS Wavelength
- 5Gねとワークの通信事業者のネットワークへの直接的なデータ送受信が可能になる
- 日本ではKDDI5Gネットワークが利用できる
マネージドデータベース
-
目的別データベーストマネージドデータベース
-
Amazon Neptune
- グラフデータベースで、ノード同士の関係性を保存して検索する機能を提供
-
Amazon DocumentDB
- MongoDBと互換性を持ったマネージドデータベースサービス
-
Amazon Keyspaces
- Apache Cassandra互換のマネージドデータベースサービス
- Cassandraクエリ言語、API、Cassandraドライバーをサポートしているので、これまで同様の開発者ツールを使える
-
Amazon Timestream
- 時系列データを管理することに特化したマネージドデータベースサービス
マネージドアプリケーションサービス
-
AWS AppSync
- GraphQL APIとPub/Sub APIを高速に開発出来る
- DynamoDBテーブル、OpenSearch Serviceなどへ安全に接続してデータの読み書きが行える
-
AWS Device Farm
- アプリケーション二台する複数のブラウザ、複数のモバイルデバイスからのテストを実行
3 確認テスト
第5章 模擬テスト
1 問題
2 解答と解説
X.確認テストまとめ
2-3.確認テスト
-
2つのアカウントでクロスアカウントアクセス
- IAM チュートリアル: AWS アカウント間の IAM ロールを使用したアクセスの委任 - AWS Identity and Access Management
-
外部IDの正しい使い方
-
ADConnector
- オンプレミスのActive Directoryを利用して、AWS IAMアイデンティティセンターのIDソースにする
-
S3ゲートウェイエンドポイント
- 追加料金不要でS3アクセス
- S3インターフェイスエンドポイントは追加料金がかかる
- PrivateLinkはインターフェースエンドポイントを実現している技術の名称
-
PC端末からVPCにVPN接続する必要がある、どの方法が運用負荷がかからないか
- AWS クライアントVPN
-
マネージドSite-to-SiteVPN接続を作成するために必要な要素
- カスタマーゲートウェイ:オンプレミス側のIPアドレスなどの設定
- 仮想プライベートゲートウェイ:VPC側二アタッチしてカスタマーゲートウェイとVPN接続
-
仮想プライベートゲートウェイのAWS site-to-siteVPN接続でサポートされている機能
- デッドピア検出
-
コンプライアンス要件によりVPN接続両端を完全にコントロールする必要がある
- ソフトウェアVPN:EC2にソフトウェアVPNをインストr-うするので、インスタンスレベル、OSレベルでコントロール出来る
-
ISPを介さない500Mbpsの接続が必要
- Direct Connectホスト接続
- Direct Connect専用接続:1Gbps,10Gpbs,100Gbpsから選択する
-
DirectConnect ロケーション全体またはロケーション内部に物理障害があってもDirect Connectの冗長化を継続できる回復性は次のどれ?
- 最大回復性
-
S3,DynamoDBへの専用接続が必要
- パブリック仮想インターフェース
-
Direct Connectのポート時間料金が発生するのはどれ?
- 接続確率していないが、接続が作成されてから90日後から
- 90日経っていないが、Direct Connectエンドポイントとカスタマールーターの接続が確率されたときから
-
数十のVPCと複数のデータセンター拠点との複雑な接続が必要、運用負荷を軽減しルーティングの一元管理ができる?
- Transit Gateway
-
複数リージョンでのTransit Gatewayを使った接続は次のどれで実現可能か?
- Transit Gatewayピア接続
-
オンプレミスト双方向のDNSアクセスを実現できるのは次の打ちどれか?
- Route53 Resolver
-
Organizationsを使用するメリットはどれ?
- SCPによるOU単位でのセキュリティ管理
- 一括請求による請求管理の簡易化とディスカウントオプションの適用
-
予防コントロール、検出コントロール、ログ集約アカウント、監査アカウント、AWS IAMアイデンティティセンター連携などマルチアカウントの組織におけるベストプラクティスを自動で簡単に構築出来るOrganizationsと連携したサービスはどれ?
- AWS Control Tower
3-6.確認テスト
-
CodeDeployでEC2インスタンスにアプリケーションをデプロイする直前にOSレベルでの処理を実行したい
- appspec.ymlのBeforeInstallに処理を記述する
-
CloudFormationスタック之作成時にLambda関数を実行して追加の処理を実行したい
- カスタムリソース
- Lambda関数のARNを指定して実行出来る
- カスタムリソース
-
CodeCommitとECRのどちらかが更新されたときに、ECSへのリリースをしたい
- CodePipelineのソースでCodeCommitとECRのそれぞれを設定して2つのEventBridgeルールによってCodePipleineが実行されるようにする
-
EC2インスタンスのホストがリタイアする前に自動でEC2インスタンスのホストを変更したい
- AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULEDイベントでSystems Manager Automationを呼び出して自動処理が可能
-
AWS X-Ray で抽出できるもの
- アプリケーションのバグ
- アプリケーションのボトルネック
-
VPC内のトラフィックのパケット内容をモニタリング
- トラフィックミラーリング
-
企業はLinuxでのSSH接続を止めることにした、どの手順が必要か?
- EC2インスタンスが引き受けるIAMロール二Amazon SSM ManagedInstance Coreポリシーをアタッチし、IAMユーザはセッションマネージャを使用できるようにポリシー追加
- SSMエージェントがインストール済みのAMIを選択するか、EC2インスタンスにSSMエージェントをインストールする
- EC2インスタンスがSSMサービスへ通信できるようにネットワーク設定する
-
複数のEC2インスタンスに効率的にかつ正確にOSレベルでのコマンドを実行したい
- RunCommand
- 複数のターゲットに事前定義したコマンドを一括で実行可能
- RunCommand
-
特定のEC2インスタンスに特定のパッチを除外して、必要なパッチを適用する方法
- パッチマネージャでベースラインを設定し、対象のEC2インスタンスにタグを設定し、RunCommandを実行する
-
S3バッチオペレーションでできることを3つ
- オブジェクトロックの保持設定
- オブジェクトのコピー
- AWS Lambda関数の呼び出し
- すべてのオブジェクトタグを置換する
- すべてのオブジェクトタグを削除する
- アクセスコントロールリストを置き換える
- S3オブジェクトロックのリーガルホールド
-
なるべくコストを抑えてKMSをを利用したい
- AWS管理キーを使用する
- ストレージ料金分のコストが抑えられます
- AWS管理キーを使用する
-
複数のアプリケーションサーバーで使用するパラメータを暗号化して保持したい
- パラメータストア
- システムズマネージャーパラメータストアのSecureStringを使用すれば、
- KMSのキーで暗号化される
- パラメータストア
-
使用中のEBSボリュームを暗号化しなければならなくなった、どうしたらいい?
- スナップショットを作成して、スナップショットをもとに新規ボリュームを作成するときに暗号化を有効にする
- 新しくできた暗号化ボリュームをEC2インスタンスにアタッチする
-
特定のS3バケットでアップロードされるS3オブジェクトの保管時の暗号化設定が必要
- バケットのプロパティでデフォルトの暗号化を設定する
-
キー管理に専有ハードウェアと高可用性が必要、どの選択肢が最適?
- CloudHSMクラスタを複数のAZを指定して起動し、HSMインスタンスを複数作成して使用する
-
Webアプリにユーザがhttps接続できるように証明書が必要、CloudFrontで配信している場合どうしたらいいか
- CloudFrontにACM(AWS Certificate Manager)の証明書を設定する
-
開発するモバイルアプリにサインインする際にMFAが必要
- CognitoユーザープールでMFAを有効にする
-
EC2インスタンスがビットコインのマイングに使用されている可能性があることなどの脅威を検出するサービス
- Amazon GuardDuty
-
RDSデータベースで使用されているパスワードを毎月変更する必要がある
- Secrets Managerシークレットに格納して自動ローテーションを有効にする
-
組織は24時間365日対応のShield Response Team(SRT)を必要としています
- AWS Shield Advanced
-
オンプレミスのストレージ容量を節約しながらオンプレミスのアプリケーション・サーバーからiSCSIで接続してデータを保存したい
- Storage Gatewayボリュームゲートウェイキャッシュモード
-
EC2のスケールインが実行される前に追加の処理が必要、どうすればいいか?
- インスタンス終了するときのライフサイクルフックを設定して、EventBridgeルールを作成し、処理するLambdaをターゲットに設定
-
EC2同士のネットワークレイテンシを極力低くするためのオプションは?
- クラスタプレイスメントグループ
-
Auroraクラスタデータベースへの多くの接続とリクエストにより接続拒否が発生している。どうしたら改善されるか?
- RDS Proxy: SQLリクエストが調整される
-
CloudFrontディストリビューションで配信するサイトのオリジンがS3バケットです。直接S3バケットへのリクエストは拒否したい
- S3バケットポリシーでCloudFront OAC(OriginAccessControl)からのリクエストのみを許可する
- CloudFrontオリジン設定でOACを設定する
-
AWS Global Acceleratorが提供するものは?
- グローバルな静的エニーキャストIPアドレス
-
ElastiCache for Memcahedの特徴
- マルチスレッドでの実行が可能
- 自動検出機能によってノードを追加、削除する
-
Redisの方は?
- ソート済みセット型をサポート
- アトミックオペレーションによりキャッシュ内のデータ値をINCR/DECRコマンドで増減
- 永続性を持つ
-
API Gatewayで呼び出されるLambdaの実行回数を減らしたい
- API Gateway キャッシュを有効にする
-
リザーブドインスタンスを1年契約しているが、期限切れになったときなるべき未適用期間が発生しないようにしたい
-
組織ではオンプレミスアプリケーションをEC2に移行したあと、1年を目標期間として、順次コンテナ化して、部分的にサーバレスアーキテクチャに変更することも予定している。可能化限り割引を適用したい
- Compute Savings Plans
- EC2、Fargate、Lambdaに適用できるので、アーキテクチャを変更してもコンピューティングリソースの割引が受けられる
- EC2 Instance Savings Plans,EC2 Reserved Instance
にしか適用できない - SageMaker Savings Plan: Sagemakerインスタンスの割引プラン
- Compute Savings Plans
-
S3 Intelligent-Tieringの特徴
- アクセスされないオブジェクトは自動的に低頻度階層へ移動し、自動的にコストが最適になる
- Glacier:アーカイブされるのでアクセスするときは取り出しに3~5時間かかる
- ライフサイクルルール:アップロードした日から設定した日数追加したオブジェクトがS3標準IAへ移動する
- オブジェクトロック:コンプライアンスモードではオブジェクトが削除から保護される
-
S3オブジェクトに対してリクエストしたアカウントに請求が発生するようにしたい
- リクエスタ支払いを有効にして、リクエスト側はx-amz-request-payerをリクエストに含める。リクエスト料金とデータ転送料金がリクエスト側に請求される
-
コストの異常検知をするには?
- Cost Anormaly Detectionでコストモニターを作成する
-
課金状況に対して月ごとに増加する予算管理を死体
- コスト予算の月次予算設定で初期予算と成長率を入力する
-
AWS Compute Optimize
- EC2インスタンスタイプ、Lambda関数のメモリ最適化レポートを確認出来る
4-3.確認テスト
-
AWS Application Migration Service
- サーバー之継続移行が可能
-
SCTでスキーマ変換してDMSでデータ移行する
-
AWS Glue
- ETLツール
- S3バケットに格納されているJSONデータを変換して別のS3バケットに格納
-
Outposts
- ユーザの敷地内でAWSサービスを実行できるラックを設置して低レイテンシを実現
-
Amazon MQ
- Apache ActiveMQを提供するマネージドサービス
5-1.模擬テスト(メモ)
-
「ユーザー名をタグに設定しなければ作成できないように制限」しなければならない条件
- アクセス権の境界設定ポリシーが必要
- 制限を超えた権限を持つIAMロールをEC2にアタッチしても、境界以上の権限は拒否出来る
-
IAM Permissions boundary(アクセス権限の境界)で明示的に許可していないアクションでも条件次第で実行できるということを評価論理の流れを眺めて再認識してみた | DevelopersIO
-
S3 RTC(Replication Time Control)を有効にすることで、ほとんどのオブジェクトは数秒でレプリケートされ、
-
99.99%のオブジェクトは15分以内にレプリケートされる
-
15分のしきい値を超えたとき、イベント通知を作成可能
-
AWS Transfer Family
- パブリックアクセス可能なSFTP対応サーバーではElastic IPアドレスは設定できない
- https://dev.classmethod.jp/articles/202210-aws-transfer-family-sftp/
-
Amazon SESでエンドユーザーに対してメールを送信出来る
-
メールのイベントは設定セットを作成してメール送信時のパラメータで指定することで、イベントをKinesis Data Firehoseに送信できます
-
Kinesis Data FirehoseはS3バケットへデータを送信出来る
-
S3バケットに送信されたデータはAthenaからSQLクエリで検索、抽出が可能
-
User-Agentなどのパケット内容はVPC Flow Logsでは調査できない
-
VPCトラフィックミラーリングを使用する
-
Dedicated Hostsのアフィニティオプションを使うことで、ライセンス要件を満たせる
-
問題16
- AuroraやRDSデータベースのスナップショットは、クラスタやインスタンスを暗号化しているKMSのCMK(カスタマーマスターキー)で暗号化される
- スナップショット化r復元する際は、CMKを使用する権限が必要
- CMKはエクスポートできない
-
問題18
- DynamoDBに Saving Plansはない
-
問題19
- Elastic IPアドレスをサポートしているのはNetwork Load Balancer
- API GatewayやApplication Load Balancerはサポートしていない
-
問題23
- Kinesis Data Analyticsを四王するとストリーミングデータを1秒未満のレイテンシーで処理出来る
-
問題24
- Redisクラスタのライトスルー戦略
-
問題33
- IPv6アドレスを利用するには
- Egress-Onlyインターネットゲートウェイを使用することでアウトバウンド専用のネットワークを構築可能
-
問題34
- IAMユーザとMFA認証必須化
- TODO: 復習
-
問題36
- サードパーティ製品ごとに外部ID
-
問題60
- Kinesis Video Streams
- Rekognition Video
- 倉庫の監視カメラの映像をリアルタイム分析して、人を検出した際に通知したい
-
問題65
- ルートユーザーの認証に対して通知:RootCredentialUsageイベントで検知可能
- CloudTrailのログ集約と迅速な検索:1つのアカウントに集約して、Athenaでデータパーティション分割
- CloudTrailのログ改ざん検知:整合性検証オプションを有効にすればいい
-
問題66
- Application Discovery Serviceは移行の判断や移行の計画を立てることに役立つ
- オンプレミスのサーバーにエージェントをインストールして情報を収集するエージェント型と
- VMWare向けのコネクタ型がある
-
問題68
- FSx for Lustre:高速な共有ストレージ
- AWS Wavelenght:5Gネットワークの通信事業者のネットワークへの直接送受信
- AWS OutPuts:特定の場所にAWSサービスを構築
- AWS Local Zones:ユーザーに近い場所を選択できる
-
問題70
- amazon-efs-utils(EFSマウントヘルパー)をインストールして、
- マウントヘルパーコマンドで、-o tlsオプションを付けてマウントする
- このときEFSファイルシステムIDを指定するので名前解決できている必要がある
-
問題72
- RDS Proxy: データベース接続プールの作成ト再利用により多くのリクエストを調整処理出来る
メモ
AWS Connector for vCenter AWS Step Functions Timestream Timestream は、高速でスケーラブルかつフルマネージドの専用時系列データベースであり、毎日何兆もの時系列データポイントを保存して分析することができます。Timestream は、リレーショナルデータベースよりも最大 1000 倍高速になることがあります。 https://docs.aws.amazon.com/timestream/latest/developerguide/what-is-timestream.html
このソリューションは 2 部に分かれます。IAM Access Analyzer は CloudTrail ログを分析して、外部アクセスが許可されているかどうかを判断します。Macie は S3 バケットを分析して、パブリックオブジェクト、パブリックバケット、または機密情報が Amazon S3 にあるかどうかをチェックします。IAM Access Analyzer と Macie の調査結果は両方とも Security Hub で報告できます。Security Hub は Organizations と統合されているため、単一の Security Hub ダッシュボードを使用して、両方のセキュリティ問題を 1 か所でモニタリングできます。 IAM Access Analyzer と Security Hub の統合の詳細については、「AWS Security Hub との統合」を参照してください。 Security Hub との Macie 統合の詳細については、「Amazon Macie Integration with AWS Security Hub (AWS Security Hub との Macie 統合)」を参照してください。 Security Hub と Organizations との統合の詳細については、「AWS Security Hub: および AWS Organizations」を参照してください。
SCP を使用できるようにするには、組織内のすべての機能を有効にする必要があります。
AWS OutPosts サーバーとラックは異なるもの https://engineers.ntt.com/entry/2023/03/24/095642
EC2 Fleet
S3 Transfer Acceleration は、CloudFront エッジロケーションと最適化されたネットワークパスを使用して、オブジェクトの転送を高速化します。 マルチパートアップロードは、チャンクを並列にアップロードすることで、大きなファイルを高速に転送します。この方法では、アップロードのスピードが向上し、失敗したアップロードの回復性が向上します。
CloudWatch Synthetics を使用して、エンドポイントと API をモニタリングするために、スケジュールに従って実行される設定可能なスクリプトであるカナリアを作成できます。GET メソッドで API カナリアを作成して、サードパーティーサービスが期待どおりに応答しているかどうかを判断できます。Route 53 はアラームステータスを追跡でき、必要に応じてセカンダリリージョンにフェイルオーバーできます。 Amazon Timestream は、高速でスケーラブルな、サーバーレスの時系列データベースです。Timestream には、時系列関数をサポートし、消費者行動の傾向を特定するのに役立つ組み込みの時系列分析があります。Timestream は数百テラバイトのデータを保存できます。Timestream は、最新データのメモリストアと履歴データの磁気ストアにより、データライフサイクル管理を簡素化します。Timestream は、受信データに対してリアルタイム分析を実行するために、クエリを定期的かつ自動的にスケジュールできます。このソリューションはすべての要件を満たしています。 AWS PrivateLink VPC間のIPが被っても接続可能
Amazon QuickSightからAmazon Athenaに接続
Amazon WorkSpaces