TxKxZxWx's blog

AWS SAA取得に向けて学習

AWS SAA取得に向けて 81日目 練習問題

例題1:

本番アプリケーションを配備しているEC2インスタンスを立ち上げた。

ユーザーの誤操作による偶発的なEC2インスタンスの削除を阻止する方法は?

 

答え:

DisableApiTermination属性を有効にする。

 

解説:

DisableApiTermination属性を有効にすると偶発的な削除を防ぐことができる。

デフォルトでは、Amazon EC2 コンソール、コマンドラインインターフェイス、または API を使用して、インスタンスを終了できる。

Amazon EC2 を使用してインスタンスを誤って終了できないようにするには、インスタンスの削除保護を有効にできる。

 

DisableApiTermination 属性は、インスタンスがコンソール、CLI、または API を使用して終了できるかどうかを制御する。

デフォルトでは、インスタンスの削除保護は無効になっている。

インスタンスが実行中またはインスタンスが停止中に、インスタンスを起動する際に、この属性の値を設定できる(Amazon EBS-backed インスタンスの場合)。

docs.aws.amazon.com

 

 

 

例題2:

お客様は、単一のVPCウェブアプリケーションのための不正侵入検知・防御システム(IDS・IPS)の導入を計画している。

IPSを使用してインターネットからのトラフィックを保護する最適な方法は?

 

答え:

  • VPCで実行している各インスタンスにIDS/IPSエージェントを実装する。
  • ウェブサーバーのフロントにリバースプロキシ層を実装し、各リバースプロキシサーバにIDS/IPSエージェントを実装する。

 

※IPSとは、不正侵入防止システム。

ネットワークやサーバーを監視し、不正なアクセスを検知して管理者に通知する役割を担うシステムとしてIDS(Intrusion Detection System:不正侵入検知システム)が知られている。

IPSはIDSと同様に不正なアクセスを検知するが、検知した通信を遮断する役割を担う点で異なる。

IDSは不正な通信を検知しても通信自体は許可するため、IPSはIDSよりセキュリティレベルが高い。

 

※リバースプロキシとは、代理人のような形でクライアントとWebサーバの間に入り、クライアントからの要求や、サーバからの応答を中継する装置。

幅広い用途で使用されるリバースプロキシは、インフラ構築において重宝される。

インターネットからの不正アクセスを防止したり、負荷を分散したりと、その用途は多岐にわたる。 

 

解説:

インスタンスまたはリバースプロキシ層にIDS/IPSエージェントを実装することで解決できる。

 

 

 

例題3:

アプリケーションは、処理のためにEC2インスタンスのグループにSQSキューを使用してデータを配信する。

アプリケーションの所有者は、EC2インスタンスのアプリケーションコードを変更せずに、配信データをアーカイブするメカニズムを追加したいと考えている。

データをアーカイブするためにアプリケーションを再設計する最適な方法は?

 

答え:

データをS3バケットに記録するLambda関数に加えて、SNSトピックを使用してデータをSQSキューに展開する。

 

解説:

SNSを使用してLambdaとSQSの両方に拡散できる。

Lambdaはデータのアーカイブに役立ち、EC2インスタンスを変更せずに同じSQSキューからのデータを処理できる。

 

 

 

例題4:

会社には、同一リージョンに開発、検証、本番の3つのVPCがある。

検証は開発と本番の両方にピアリング接続している。

また全てのVPCには重複しないCIDRブロックがある。

同社はマイナーリリースを開発から本番に移行し、市場投入までの時間を短縮したいと考えている。

最適な方法は?

 

答え:

  • VPCは同じアカウントで重複しないCIDRブロックを持つ。
    ルートテーブルには、全てのVPCのローカルルートが含まれている。
  • 適切なルートとともに開発と本番の間に新しいピアリング接続を作成する。

 

解説:

VPCの開発と本番間の通信は、検証経由で通信することはできない。

また、ピアリング接続の前提条件:「VPCは全て、同じAWSアカウントに存在し、重複するCIDRブロックはない。」は満たされている。

従って、「開発と本番の間に新しいピアリング接続を作成する。」が正解。

docs.aws.amazon.com

 

 

 

例題5:

高い性能が必要なアプリケーションがあり、できるだけ多くのEC2インスタンス間のネットワークのレイテンシーを最小限に抑える必要がある。

これを達成する方法は?

 

答え:

クラスタープレイスメントグループにて単一のAZ内のインスタンスを論理的にグループ化する。

 

解説:

クラスタープレイスメントグループを用いることでEC2インスタンス間のネットワーク遅延を最小限に抑えることができる。

 

クラスタープレイスメントグループは、単一のAZ内のインスタンスを論理的にグループ化したもの。

クラスタープレイスメントグループは、同じリージョン内の複数のピア VPC にまたがることができる。

同じクラスタープレイスメントグループ内のインスタンスは、TCP/IP トラフィックのフローあたりのスループット上限が高くなり、ネットワークの二分帯域幅の広い同じセグメントに配置されます。

docs.aws.amazon.com

 

 

 

例題6:

ソリューションアーキテクトは、AWS上のウェブアプリケーションを開発している。

アーキテクトは、開発するアプリケーションは普及することが予想しているため、負荷に応じて拡張する必要がある。

また、ソフトウェア開発に集中し、インスタンスのプロビジョニングや管理を行わずに新しい機能を導入したいと考えている。

最適なソリューションは?

 

答え:

Amazon API GatewayAWS Lambda

 

解説:

API GatewayとLambdaはAWSマネージメントサービスであり、自動的にスケーリングできる。

API GatewayとLambdaを組み合わせることで、サーバーレスAPIが簡単に作ることができる。

Lambdaを使用すれば、サーバーのプロビジョニングや管理なしでコードを実行できる。

Lambdaを使用すれば、実質どのようなタイプのアプリケーションやバックエンドサービスでも管理を必要とせずに実行できる。

コードさえアップロードすれば高可用性を実現しながらコードを実行およびスケーリングするために必要なことは、全てLambdaにより行われる。

コードは、他のAWSサービスから自動的にトリガーするよう設定することも、ウェブやモバイルアプリケーションから直接呼び出すよう設定することもできる。

 

※プロビジョニングとは、必要に応じてネットワークやコンピューターの設備などのリソースを提供できるよう予測し、準備しておくこと。

 

 

 

例題7:

従業員によって、本番環境のEC2インスタンスが誤って削除されてしまった。

今後発生しないことを保証する最善の方法は、インスタンスの削除に対する防御壁を追加することです。

従業員が本番環境のインスタンスを削除させないようにする最善の方法は?

 

答え:

  • インスタンスに本番環境用の識別タグを付ける。
    従業員グループを変更して、開始・停止・再起動のAPI呼び出しのみを許可し、インスタンスを削除する呼び出しを禁止する。

  • インスタンスに本番環境用の識別タグを付ける。
    本番タグでインスタンスへの削除するAPI呼び出しを明示的に拒否して、従業員にリソースレベルのアクセス権限を追加する。

 

解説:

インスタンスにタグを付け、ユーザーがインスタンスの開始/停止を明示的に許可しても、インスタンスの削除を拒否することで防御壁を追加できる。

 

 

 

例題8:

Amazon VPCサブネットの特性は?

 

答え:

  • デフォルトサブネットはパブリックサブネットで、メインルートテーブルがインターネットゲートウェイにルーティングされる。

  • 各サブネットは、単一のAZにマッピングされる。

 

解説:

各サブネットが完全に1つのAZ内に含まれている必要がある。

1つのサブネットが複数のAZに跨がることはできない。

個別のAZでインスタンスを起動することにより、1つの場所で発生した障害からアプリケーションを保護できる。

docs.aws.amazon.com

 

デフォルトサブネット:

デフォルトでは、デフォルトサブネットはパブリックサブネットに指定されている。

メインルートテーブルがインターネット用のサブネットのトラフィックをインターネットゲートウェイに送信するため。 

デフォルトサブネットをプライベートサブネットにするためには、送信元0.0.0.0/0からインターネットゲートウェイへのルートを削除する。

しかし、この操作を行った場合、そのサブネットで実行されているEC2インスタンス全てがインターネットにアクセスできなくなる。 

docs.aws.amazon.com

 

 

 

例題9:

会社はAWSのus-east-1リージョンでウェブアプリケーションを運用している。

 アプリケーションは、Auto Scalingグループに登録されたEC2インスタンスとRDSマルチAZ配置のデータベースで実行される。

会社のセキュリティ部門は、EC2、IAM、およびRDSリソースへの変更を追跡するために、信頼性が高く耐久性と機密性を確保するログ管理ソリューションを開発するように依頼した。

要件を満たすソリューションは?

 

答え:

ログを保存する1つの新しいS3バケットを作成し、グローバルサービスを使用して、新しいCroudTrailを作成する。

ログを保存するS3バケットでIAMロール、S3バケットポリシー、およびS3 MFA Deleteを使用する。

 

解説:

以下の2つの設定を満たすことで、アプリケーションの保守に役立つ。

  • グローバルサービスオプションが有効になっている1つの新しいS3バケット
  • 秘密保持のためのS3バケットポリシー、およびS3 MFA Delete

 

※CroudTrail ログファイルはS3 SSEを使用して暗号化され、S3バケットに保存される。

IAMまたはS3バケットのポリシーを使用してログファイルへのアクセスを制御できる。

さらにセキュリティを追加するには、S3バケットS3 Multi Factor Authentication (MFA)Deleteを有効にする。

aws.amazon.com