AWS問題集

2025-03-04 00:25

問題の和訳

あなたの会社のポリシーでは、保存される機密データ(データ・アット・レスト)の暗号化が求められています。
EC2 インスタンスに接続された EBS データボリュームにデータを保存する際、どの選択肢がデータを暗号化する方法として適切ですか?(3つ選択してください。)

選択肢の和訳

A. サードパーティ製のボリューム暗号化ツールを導入する
B. サーバー上で実行されるすべてのサービスに SSL/TLS を実装する
C. EBS に保存する前に、アプリケーション内でデータを暗号化する
D. ファイルシステムレベルでネイティブのデータ暗号化ドライバを使用してデータを暗号化する
E. 何もしない(EBS ボリュームはデフォルトで暗号化されている)


正解

A. サードパーティ製のボリューム暗号化ツールを導入する
C. EBS に保存する前に、アプリケーション内でデータを暗号化する
D. ファイルシステムレベルでネイティブのデータ暗号化ドライバを使用してデータを暗号化する


解説

A. サードパーティ製のボリューム暗号化ツールを導入する(正解)

AWS は EBS 暗号化を提供していますが、サードパーティのソリューション(例: VeraCrypt, BitLocker, dm-crypt など)を使用して追加の暗号化レイヤーを適用することも可能です。これはデータを保護する一つの方法です。

B. サーバー上で実行されるすべてのサービスに SSL/TLS を実装する(不正解)

SSL/TLS はデータの転送時(データ・イン・トランジット)の暗号化を行いますが、データ・アット・レストの暗号化には関係ありません。そのため、この選択肢は不正解です。

C. EBS に保存する前に、アプリケーション内でデータを暗号化する(正解)

データを保存する前にアプリケーションレベルで暗号化する(例: AES-256 で暗号化してから保存する)ことで、データ・アット・レストを保護できます。たとえば、データベースのカラムレベル暗号化や KMS(AWS Key Management Service)を利用した暗号化が該当します。

D. ファイルシステムレベルでネイティブのデータ暗号化ドライバを使用してデータを暗号化する(正解)

Linux の LUKS や Windows の BitLocker などのファイルシステムレベルの暗号化を活用することで、EBS ボリューム内のデータを保護できます。これはデータ・アット・レストの暗号化方法の一つとして有効です。

E. 何もしない(EBS ボリュームはデフォルトで暗号化されている)(不正解)

AWS では、EBS の暗号化はデフォルトでは有効ではありません(手動で有効化が必要)。そのため、「何もしない」ではデータは暗号化されず、不正解です。ただし、最近の AWS アカウントではデフォルトで EBS 暗号化が有効になっていることもありますが、環境によって異なるため、確実に暗号化するには明示的な設定が必要です。


まとめ

  • 正解: A, C, D
  • 誤解しやすいポイント: SSL/TLS はデータ転送時の暗号化であり、データ・アット・レストの暗号化にはならない
  • AWS の仕様: EBS 暗号化は手動で有効化する必要がある(最近の AWS アカウントではデフォルト有効の場合もある)

 

Question Translation (問題の和訳)

ある顧客が AWS に SSL 対応の Web アプリケーションをデプロイしようとしています。
また、次のような役割の分離を実施したいと考えています。

  • EC2 サービス管理者: インスタンスへのログインや API コールを実行できる
  • セキュリティ担当者: アプリケーションの X.509 証明書(秘密鍵を含む)の管理と専用アクセスを持つ

この要件を満たすための適切な選択肢はどれか?


選択肢の和訳

A. 証明書を S3 バケットにアップロードし、セキュリティ担当者が所有し、Web サーバーの EC2 ロールのみがアクセスできるようにする。
B. Web サーバーを起動する際に CloudHSM から証明書を取得するよう設定し、CloudHSM をセキュリティ担当者が管理する。
C. Web サーバーのシステム権限を設定し、証明書へのアクセスをセキュリティ担当者のみに制限する。
D. IAM ポリシーを設定し、証明書ストアへのアクセスをセキュリティ担当者のみに許可し、SSL を ELB(Elastic Load Balancer)で終端する。


Correct Answer(正解)

B. Web サーバーを起動する際に CloudHSM から証明書を取得するよう設定し、CloudHSM をセキュリティ担当者が管理する。
D. IAM ポリシーを設定し、証明書ストアへのアクセスをセキュリティ担当者のみに許可し、SSL を ELB で終端する。


Explanation(解説)

B. CloudHSM を利用(正解)

  • CloudHSM(Hardware Security Module) は、AWS が提供するハードウェアベースのセキュリティモジュールで、秘密鍵の管理をよりセキュアに行える。
  • CloudHSM のアクセスをセキュリティ担当者に限定し、EC2 インスタンスは必要なタイミングで CloudHSM から証明書を取得するよう設定することで、秘密鍵の厳密な管理が可能。

D. SSL を ELB で終端(正解)

  • ELB(Elastic Load Balancer)で SSL を終端することで、EC2 インスタンスには証明書の配置が不要になる。
  • 証明書の管理を AWS Certificate Manager(ACM) を使って実施でき、IAM ポリシーを設定すれば、セキュリティ担当者だけが証明書を管理できるようになる。
  • これにより、EC2 サーバー管理者が証明書や秘密鍵にアクセスできない構成を実現できる。

Incorrect Answers(不正解の選択肢)

A. S3 バケットに証明書をアップロード(不正解)

  • S3 に保存すると、EC2 ロール経由で証明書をダウンロードできるが、ダウンロードした証明書は EC2 インスタンス上に保存されるため、EC2 サーバー管理者がアクセスできる可能性がある。
  • 「秘密鍵を EC2 管理者から完全に隔離する」という要件を満たさない。

C. Web サーバーのシステム権限を変更(不正解)

  • OS のファイルパーミッションでアクセス制御する方法は、AWS のクラウド環境ではセキュリティ管理のベストプラクティスとは言えない。
  • EC2 インスタンスの管理者が root 権限を持っている場合、パーミッションを変更して秘密鍵にアクセスできてしまうため、役割の分離を完全には実現できない。

Final Recommendation(推奨構成)

🔹 最もセキュアな方法は「D. ELB で SSL 終端」

  • ELB を使用し、SSL/TLS 証明書を AWS Certificate Manager(ACM) に保存することで、EC2 管理者が証明書にアクセスすることを防げる。

🔹 追加で「B. CloudHSM を利用」も選択肢として有効

  • ELB を使えない場合や、高度なセキュリティ要件がある場合は CloudHSM を利用するのが適切。
  • CloudHSM を使用すれば、秘密鍵が EC2 インスタンスに保存されることなく、安全に運用できる。

Conclusion(結論)

💡 AWS のベストプラクティスは「SSL 終端を ELB に移す(D)」
💡 CloudHSM を使う場合は、EC2 から直接秘密鍵にアクセスしないように設定する(B)

この 2 つの方法を組み合わせることで、EC2 管理者とセキュリティ担当者の役割を完全に分離できる。

 

 

Question Translation (問題の和訳)

あなたは最近、都市部の騒音や空気品質を測定するセンサーを開発するスタートアップ企業に入社しました。

  • 会社は 100 台のセンサーで 3 か月間のパイロット運用を実施
  • 各センサーは 1 分ごとに 1KB のデータを AWS のバックエンドに送信
  • ピーク時の IOPS(秒間入出力数)は 10、1 か月のデータ量は 3GB
  • 現在のアーキテクチャ:
    • EC2 インスタンス(Auto Scaling & Load Balancer 付き) を使ったデータ取り込み
    • PostgreSQL RDS(500GB 標準ストレージ) にデータ保存

今後のビジネス要件

  • 最低 10 万台(100K)のセンサーをサポートするバックエンドが必要
  • データは 2 年間保存し、過去データとの比較が可能な状態にする
  • さらにスケールできる仕組みを確保

この要件を満たすアーキテクチャはどれか?


選択肢の和訳

A. RDS への書き込みをバッファリングするために SQS キューを追加する。
B. DynamoDB にデータを取り込み、古いデータは Redshift に移動する。
C. RDS を 96TB ストレージを持つ 6 ノードの Redshift クラスターに置き換える。
D. 現在のアーキテクチャを維持し、RDS のストレージを 3TB に増強し、IOPS を 10K にプロビジョニングする。


Correct Answer(正解)

B. DynamoDB にデータを取り込み、古いデータを Redshift に移動する。


Explanation(解説)

スケーリングの要件分析

データ量の計算
  • 現在(100 センサー): 1KB × 60分 × 24時間 × 30日 × 100 = 4.32GB/月
  • 本番(100K センサー): 1KB × 60分 × 24時間 × 30日 × 100,000 = 4.32TB/月
  • 2 年間保存すると: 4.32TB × 24か月 = 約 103TB
データベースの負荷
  • IOPS(100 センサー時)= 10 IOPS
  • 100K センサーでは 10,000 IOPS 以上必要になる可能性が高い

Option Analysis(選択肢の分析)

A. SQS キューを追加(❌ 不正解)

  • SQS を使うことで一時的なスパイクに耐えられるが、RDS 自体のスケーラビリティ問題は解決しない
  • 100K センサーでは RDS のスケールが限界に達するため、根本的な解決策にはならない。

B. DynamoDB + Redshift(✅ 正解)

  • DynamoDB はスケールしやすく、書き込みが高速(自動スケール)
  • Redshift は大量のデータの分析処理に向いている(クエリ最適化)
  • DynamoDB にリアルタイムデータを保存し、定期的に Redshift に移行することでコストとパフォーマンスを最適化できる
  • 100K センサー規模でも問題なく拡張可能

C. RDS を Redshift に変更(❌ 不正解)

  • **Redshift は OLAP(分析向け)**のデータウェアハウスであり、リアルタイムデータ処理には適さない。
  • RDS のワークロード(リアルタイムデータの挿入)を処理するのは Redshift の用途と異なるため、適切でない。

D. RDS のストレージと IOPS を増やす(❌ 不正解)

  • 100K センサーのデータを扱うにはRDS のスケールでは限界がある
  • PostgreSQL RDS の最大ストレージ(16TB)を超える可能性があり、長期的に維持できない。
  • 書き込み負荷が高くなるとRDS では処理が追いつかなくなるため、根本的な解決にならない。

Final Recommendation(推奨構成)

DynamoDB でデータを受け取り、古いデータは Redshift に移行する

  • DynamoDB はスケーラブルで、リアルタイムデータの取り込みに向いている。
  • Redshift は 2 年分のデータを蓄積し、大規模な分析に適している。
  • このアーキテクチャなら 100K センサー以上にも対応可能で、スケールアウトが容易。

Conclusion(結論)

💡 DynamoDB + Redshift が最もスケーラブルな選択肢
💡 RDS はスケール限界があるため、大規模な IoT データには不向き
💡 SQS や IOPS 増強では一時しのぎにしかならない

正解: ✅ B. DynamoDB にデータを取り込み、古いデータを Redshift に移行する。

 

 

Question Translation (問題の和訳)

ある Web 企業が、VPC に侵入検知および防御システム(IDS/IPS)を実装したいと考えている。
また、このプラットフォームは、VPC 内の数千台のインスタンスにスケール可能であることが求められる。

この要件を満たすアーキテクチャはどれか?


選択肢の和訳

A. 監視ソフトウェアを搭載したインスタンスを設定し、Elastic Network Interface(ENI)を プロミスキャスモード(promiscuous mode)に設定して、VPC 内のすべてのトラフィックをスニッフィングする。
B. 第 2 の VPC を作成し、すべてのトラフィックを第 1 の VPC から第 2 の VPC にルーティングして、そこにスケーラブルな仮想 IDS/IPS プラットフォームを配置する。
C. VPC 内のサーバーを設定し、route コマンドを使用して、すべてのトラフィックをスケーラブルな仮想 IDS/IPS に送信する。
D. 各ホストにエージェントを設定し、すべてのネットワークトラフィックを IDS/IPS プラットフォームに送信して検査する。


Correct Answer(正解)

D. 各ホストにエージェントを設定し、すべてのネットワークトラフィックを IDS/IPS プラットフォームに送信して検査する。


Explanation(解説)

なぜ D が正解なのか?

D のアプローチ(ホストベースエージェントを使用)は、AWS のVPC 環境でスケーラブルに IDS/IPS を実装するためのベストプラクティスに最も適している。

  • エージェントを各ホストにインストールすることで、VPC 内のすべてのインスタンスで監視可能
  • VPC フローログや AWS サードパーティーのセキュリティツール(例: AWS Network Firewall, AWS GuardDuty, Suricata, Snort)と統合可能
  • スケールアウトが容易で、大量のインスタンスにも対応可能

✅ AWS のようなクラウド環境では、「ネットワークレベルのパケットキャプチャ」よりも「エージェントベースのソリューション」が推奨される。


Incorrect Answers(不正解の選択肢)

A. ENI を promiscuous mode に設定する(❌ 不正解)

  • AWS の VPC はレイヤ 2(データリンク層)ではなくレイヤ 3(ネットワーク層)で設計されているため、ENI を promiscuous mode に設定しても、VPC 全体のパケットをキャプチャできない。
  • AWS では VPC 内で promiscuous mode はサポートされていない。

B. 別の VPC を作成してトラフィックをすべて転送(❌ 不正解)

  • VPC 間で全トラフィックをルーティングするのは、管理が非常に複雑で、レイテンシーが増大する。
  • AWS のネイティブ機能(VPC フローログ、GuardDuty、AWS Network Firewall)を活用する方が合理的。

C. route コマンドを使用してトラフィックを IDS/IPS に送信(❌ 不正解)

  • VPC のルーティングテーブルでは、EC2 インスタンス間のトラフィックを「特定の IDS インスタンス」に転送することはできない。
  • AWS では 中央の IDS/IPS に強制的にすべてのトラフィックを通過させるルーティングは推奨されていない。

Final Recommendation(推奨構成)

D. 各ホストにエージェントをインストールし、ログを中央の IDS/IPS プラットフォームに送るのが最適解

  • AWS GuardDuty や Suricata、Snort などのツールと統合可能
  • スケールしやすく、数千台のインスタンスをサポートできる
  • AWS ベストプラクティスに沿ったセキュリティアーキテクチャ

Conclusion(結論)

💡 AWS 環境でスケーラブルな IDS/IPS を実装するには、エージェントベースのアプローチが最も適している。
💡 物理ネットワークとは異なり、AWS では VPC のトラフィックを「キャプチャ」することは難しいため、ホストごとの監視が推奨される。
💡 正解は ✅ D(各ホストにエージェントを設定し、IDS/IPS にログを送信する)

 

ある企業が Amazon S3 にデータを保存している。
企業のセキュリティポリシーでは、保存データ(at rest)の暗号化が必須とされている。

どの方法を使用すれば、データを保存時(at rest)に暗号化できるか?(3つ選択)


選択肢の和訳

A. Amazon S3 のサーバーサイド暗号化(SSE-KMS)を AWS Key Management Service(KMS)の管理キーを使って実行する。
B. Amazon S3 のサーバーサイド暗号化(SSE-C)をカスタマー提供キー(customer-provided keys)を使って実行する。
C. Amazon S3 のサーバーサイド暗号化に EC2 のキーペアを使用する。
D. Amazon S3 のバケットポリシーを使用して、保存データへのアクセスを制限する。
E. データをクライアント側で独自のマスターキーを使用して暗号化し、その後 Amazon S3 にアップロードする。
F. SSL を使用して、Amazon S3 への転送中にデータを暗号化する。


Correct Answers(正解)

A. Amazon S3 サーバーサイド暗号化(SSE-KMS)
B. Amazon S3 サーバーサイド暗号化(SSE-C)
E. クライアント側でデータを暗号化(Client-Side Encryption)


Explanation(解説)

Amazon S3 では、保存時(at rest)のデータ暗号化を行う方法は 2 つのカテゴリに分類される。

  1. サーバーサイド暗号化(Server-Side Encryption, SSE)

    • AWS 側で暗号化を実施
    • データは S3 にアップロードされた後に暗号化される
    • 3つの方法がある
      • SSE-S3(AES-256 による S3 デフォルト暗号化)
      • SSE-KMS(AWS Key Management Service を利用)
      • SSE-C(カスタマーが提供したキーを使用)
  2. クライアントサイド暗号化(Client-Side Encryption)

    • データを アップロード前にクライアント側で暗号化
    • 独自のマスターキーや AWS KMS を利用可能
    • S3 は 暗号化されたデータをそのまま保存

Why These Answers Are Correct(正解の理由)

A. SSE-KMS(サーバーサイド暗号化 - KMS 管理キー)

  • Amazon S3 の SSE-KMS を使用すると、AWS Key Management Service(KMS)管理キーで暗号化が可能。
  • 監査ログやキー管理ができ、AWS の推奨オプションの 1 つ。
  • 設定方法: aws s3 cp myfile s3://mybucket --sse aws:kms

B. SSE-C(サーバーサイド暗号化 - カスタマー提供キー)

  • カスタマーが独自のキーを管理し、S3 にアップロード時にキーを提供する方法。
  • S3 はキーを保持せず、データを復号するためには毎回キーを提供する必要がある。
  • 設定方法: aws s3 cp myfile s3://mybucket --sse-c --sse-c-key "your-encryption-key"

E. クライアントサイド暗号化(Client-Side Encryption)

  • S3 にアップロードする前に、データを独自のキーを使って暗号化。
  • ユーザー側で完全に鍵を管理できる。
  • AWS SDK を使用して、KMS または独自のキーを使って暗号化が可能。
  • 例: AWS Encryption SDKOpenSSL を使う

Why These Answers Are Incorrect(不正解の理由)

C. SSE に EC2 キーペアを使用(不正解)

  • EC2 キーペア(SSH キー)は、S3 の暗号化には使用できない。
  • S3 の SSE は、SSE-S3, SSE-KMS, SSE-C の 3 つのみ対応。

D. S3 バケットポリシーでアクセス制御(不正解)

  • S3 バケットポリシーは「アクセス制御」のためのものであり、暗号化とは関係ない。
  • 暗号化されたデータでも、適切なアクセス権がないと保護できないため、両方を組み合わせるのが推奨。

F. SSL でデータ転送中に暗号化(不正解)

  • SSL(TLS)は転送中(in transit)の暗号化であり、保存時(at rest)の暗号化ではない。
  • S3 の要件では「保存時の暗号化」が求められているため、適切でない。

Final Recommendation(推奨構成)

最も安全な方法は、SSE-KMS またはクライアントサイド暗号化を使用すること。
S3 のバケットポリシーと組み合わせて、セキュリティを強化するのがベストプラクティス。

🔹 正解: A(SSE-KMS)、B(SSE-C)、E(クライアントサイド暗号化)

 

 

Question Translation (問題の和訳)

あなたは、大規模な e コマースサイトのセキュリティ強化のために雇われた。
現在の環境は VPC 内に構築されたマルチティア(multi-tier)アーキテクチャ で、以下のような構成になっている:

  • ELB(Elastic Load Balancer) を使用して Web 層とアプリケーション層の前に配置
  • 静的アセット(画像、CSS、JS など)は S3 から直接提供
  • データベースは RDS(リレーショナルデータベース)と DynamoDB(NoSQL)を併用
  • 毎晩のデータアーカイブを S3 に保存し、EMR で分析

最近、疑わしいログ(questionable log entries) を発見し、不正アクセスの試みがあると疑っている

コスト効率がよく、スケーラブルな対策を提案せよ。


選択肢の和訳

A.

  • DirectConnect(専用回線)をパートナー施設で契約
  • 1Gbps の DirectConnect 接続を確立し、オンプレミスで WAF(Web Application Firewall)を配置
  • インターネットトラフィックをフィルタリング後、DirectConnect 経由で VPC に転送

B.

  • 悪意のある IP を特定し、Web 層サブネットの NACL(Network ACL)で INBOUND DENY(着信拒否)を設定

C.(正解 ✅)

  • 新しい ELB を作成し、Auto Scaling された WAF(Web Application Firewall)インスタンスを追加
  • Route 53 の DNS 設定を変更し、すべての Web トラフィックを WAF 経由にリダイレクト
  • Web 層のセキュリティグループ(SG)を更新し、WAF からのトラフィックのみ許可

D.

  • ELB の設定を変更し、TLS 1.2 以外を無効化
  • 「Advanced Protocol Filtering」を有効化し、ELB 自体を WAF として機能させる

Correct Answer(正解)

C. WAF を Auto Scaling で構成し、Web トラフィックをフィルタリングする


Explanation(解説)

この問題のポイントは、スケーラブルでコスト効率の良いセキュリティ対策を選択すること です。
選択肢 C(AWS WAF + Auto Scaling) は、AWS のベストプラクティスに沿った最適なアプローチです。

✅ C. WAF を ELB の前段に設置し、セキュリティグループで制限

  • AWS WAF(Web Application Firewall)を EC2 インスタンス上で構成し、ELB の前段に配置する
  • Auto Scaling を活用して、負荷に応じて WAF をスケールアウト・スケールイン
  • Route 53 を更新し、すべての Web トラフィックを WAF 経由で流す
  • Web 層の Security Group を更新し、WAF からのアクセスのみ許可(ゼロトラスト)
  • これにより、悪意のあるリクエストを WAF でブロックし、Web 層への直接アクセスを防ぐ

Why Other Answers Are Incorrect(不正解の理由)

A. DirectConnect + ハードウェア WAF(不正解)

  • DirectConnect は VPC とオンプレミスを接続するためのサービスであり、DDoS や WAF 対策には適していない
  • コストが高すぎる(DirectConnect + ハードウェア WAF の導入・運用コスト)
  • スケーラビリティが低く、AWS のクラウドネイティブな WAF と比べて柔軟性に欠ける

B. NACL(IP ベースのブロックのみ)(不正解)

  • NACL(Network ACL)は静的ルールのフィルタリングしかできず、攻撃者が IP を変えると無効
  • アプリケーションレイヤー(L7)の攻撃(SQLインジェクション、XSS、ボット攻撃など)を防げない
  • WAF のような高度なフィルタリングができないため、根本的な解決策にならない

D. ELB の「Advanced Protocol Filtering」を使う(不正解)

  • ELB 自体には WAF 機能はない
  • TLS 1.2 のみを許可するのは良いが、これは「通信の暗号化」に関するもので、アプリ層の攻撃対策にはならない
  • AWS WAF を使わないと、アプリケーション層の攻撃(SQLインジェクション、XSSなど)は防げない

Final Recommendation(推奨構成)

✅ WAF + Auto Scaling + ELB を活用するのが最適解!

💡 AWS WAF を ALB(Application Load Balancer)と統合し、AWS マネージドルールを適用することで、コスト効率よく強固なセキュリティを実現できる!

最適な AWS セキュリティ構成

  1. AWS WAF を ALB に統合

    • AWS WAF のマネージドルール(SQLインジェクション、XSS、ボット対策)を適用
    • Geo IP フィルタリングで特定地域からのアクセスを制限
  2. Auto Scaling を活用

    • 負荷に応じて WAF インスタンスを増減
    • 大量の攻撃トラフィックに対してスケール可能
  3. Route 53 の更新

    • すべての Web トラフィックを WAF 経由で流す
  4. Security Group(SG)の強化

    • Web 層の SG を更新し、WAF からのトラフィックのみ許可
    • 直接アクセスを防ぎ、ゼロトラストを実現

Conclusion(結論)

最もスケーラブルでコスト効率が良い解決策は「C: WAF を ELB の前に配置」
AWS WAF + ALB + Auto Scaling を活用し、アプリ層の攻撃を防ぐのがベストプラクティス!

🚀 AWS WAF の導入で、DDoS、SQL インジェクション、XSS などの攻撃から Web アプリを保護!

 

 

Question Translation (問題の和訳)

あなたの会社は、次世代のペット用首輪(ペットの健康情報を収集するデバイス) を開発中。
この首輪は、2秒ごとに30KBのバイオメトリクスデータ(JSON 形式)を収集・送信 する。

求められるアーキテクチャ要件:

  1. リアルタイム分析が可能であること
  2. 耐久性(durable)、スケーラブル(elastic & parallel)なデータ処理を実現すること
  3. 分析結果を保存し、データマイニングが可能であること

選択肢の和訳

A.

  • S3 にセンサーのデータを保存
  • AWS Data Pipeline でバッチ処理し、Redshift に格納

B.(正解 ✅)

  • Amazon Kinesis でセンサーのデータを収集
  • Kinesis Client を使用してリアルタイム解析
  • 解析結果を EMR(Hadoop)で Redshift に格納し、データマイニング

C.

  • SQS(キュー)を使用してデータを収集
  • Amazon Kinesis でデータを処理
  • 処理結果を Microsoft SQL Server(RDS)に格納

D.

  • EMR でデータを収集
  • Amazon Kinesis でデータを処理
  • DynamoDB に保存

Correct Answer(正解)

B. Amazon Kinesis + EMR + Redshift を使う構成が最適


Explanation(解説)

この問題のポイントは、リアルタイム分析を実現しつつ、耐久性とスケーラビリティを確保し、データマイニングのために結果を保存すること です。

✅ B. Kinesis + EMR + Redshift(正解の理由)

  1. リアルタイムデータストリーミング

    • Amazon Kinesisストリーミングデータ処理 に最適であり、2秒ごとに送信されるデータの収集に適している。
    • Kinesis Data Streams を使用すると、大量のセンサーデータをリアルタイムで処理可能。
  2. 耐久性(Durability)とスケーラビリティ(Elastic & Parallel)

    • Kinesis は 並列処理が可能な分散ストリーム処理サービス であり、スケールアウトが容易。
    • Kinesis Client Library(KCL) を活用することで、リアルタイムデータ処理をスケーラブルに実装可能。
    • EMR(Hadoop)を使うことでバッチ処理 & 並列データ処理 を強化できる。
  3. 分析結果の永続化(Persisted for Data Mining)

    • Redshift(AWS のデータウェアハウス)に保存することで、データマイニングが容易
    • BIツール(QuickSight, Tableau など)との統合が簡単
    • 将来的な拡張にも柔軟に対応できる

Why Other Answers Are Incorrect(不正解の理由)

A. S3 + Data Pipeline + Redshift(バッチ処理のみでリアルタイム不可)

  • S3 はリアルタイム処理ができないデータの蓄積のみ
  • Data Pipeline はスケジュールされたバッチ処理であり、リアルタイム分析には向かない
  • 要件の「リアルタイム分析」を満たせないため不適

C. SQS + Kinesis + RDS(スケールが難しく、RDS がボトルネック)

  • SQS は「メッセージキュー」であり、ストリーミング処理には適さない
  • Microsoft SQL Server(RDS)は、大量のストリーミングデータをリアルタイムで処理するのに適していない
  • スケールしづらく、リレーショナル DB での分析は負荷が高くなる

D. EMR + Kinesis + DynamoDB(DynamoDB はデータマイニングに不向き)

  • EMR はバッチ処理向けであり、データ収集には不向き
  • DynamoDB は NoSQL であり、データマイニングのための集計処理には向かない
  • 分析結果を長期間保存するデータウェアハウスとしては、Redshift の方が適している

Final Recommendation(推奨構成)

💡 Kinesis + EMR + Redshift の組み合わせがベスト!

  1. リアルタイムデータ収集 & 分析 → Kinesis Data Streams
  2. ストリームデータ処理 & 並列分析 → Kinesis Client / EMR(Hadoop / Spark)
  3. データマイニング用の永続ストレージ → Redshift(DWH)
  4. ダッシュボード / 可視化 → Amazon QuickSight, Tableau など

Conclusion(結論)

最適な選択肢は「B: Kinesis + EMR + Redshift」
Kinesis でリアルタイムデータを収集し、スケール可能なストリーム処理を実現!
EMR でデータ解析を行い、Redshift に保存してデータマイニングを可能にする! 🚀

 

Question Translation (問題の和訳)

あなたは VPC のインターネット接続を設計 しています。

  • Web サーバーはインターネット経由でアクセス可能にする必要がある。
  • アプリケーションは高可用性(Highly Available)を実現する必要がある。

どの選択肢を採用すべきか?(2つ選択


Answer Choices Translation(選択肢の和訳)

A. ❌(誤り)

  • VPC 内に NAT インスタンス を作成。
  • デフォルトルートを NAT インスタンスに設定 し、すべてのサブネットで使用。
  • NAT のパブリック IP に DNS A レコードを設定。

👉 誤りの理由:
NAT インスタンスは「インターネットからの受信トラフィック」を処理できないため、Web サーバー公開には適さない。 NAT は プライベートサブネットのインスタンスがインターネットにアクセスするためのもの であり、Web サーバーの公開用途ではない。


B. ❌(誤り)

  • CloudFront(CDN)を使用し、Web サーバーのプライベート IP をオリジンとして設定。
  • Route 53 に CNAME レコードを作成し、CloudFront を指すように設定。

👉 誤りの理由:

  • CloudFront はオリジンサーバーがパブリック IP を持っているか、ALB などを経由する必要がある
  • VPC のプライベート IP に直接 CloudFront を接続することはできない。

C. ✅(正解)

  • ELB(Elastic Load Balancer)の背後にすべての Web サーバーを配置。
  • Route 53 に CNAME レコードを作成し、ELB の DNS 名を指すように設定。

👉 正解の理由:

  • ELB を使用することで高可用性(HA)が確保される。
  • 複数の Web サーバーに負荷分散が可能。
  • ELB は AWS が提供するスケーラブルなインターネット公開手段の一つ。
  • Route 53 で ELB に CNAME を向けるのはベストプラクティス。

D. ✅(正解)

  • すべての Web サーバーに Elastic IP(EIP)を割り当て。
  • Route 53 に EIP を登録し、ヘルスチェック & DNS フェイルオーバーを設定。

👉 正解の理由:

  • 各 Web サーバーが直接インターネットにアクセス可能になる。
  • Route 53 のヘルスチェック機能により、障害が発生したサーバーを自動で除外可能。
  • DNS フェイルオーバーにより、サーバーダウン時にも可用性を維持できる。
  • 高可用性は ELB より若干劣るが、小規模シナリオでは有効な選択肢。

E. ❌(誤り)

  • ELB に Elastic IP(EIP)を割り当て。
  • Route 53 に A レコードを作成し、EIP を指すように設定。

👉 誤りの理由:

  • ELB に EIP を直接割り当てることはできない。
  • ELB は AWS によって管理される動的 IP アドレスを持つため、EIP ではなく DNS 名を使用するのがベストプラクティス。
  • Route 53 の A レコードは EIP ではなく ELB の DNS 名を指定する必要がある。

Correct Answers(正解)

C. ELB + Route 53 CNAME(ベストプラクティス & 高可用性)
D. Elastic IP + Route 53(シンプルな高可用性ソリューション)

最適解は C(ELB)だが、D(EIP + Route 53)も選択肢として許容される。

 

Question Translation (問題の和訳)

あなたのチームは Tomcat ベースの Java アプリケーションを開発・テスト・本番環境にデプロイする必要がある。

  • Elastic Beanstalk を使用(開発ツールとの統合が容易なため)。
  • RDS を使用(管理が簡単なため)。
  • QA チームの要件: 毎晩、本番データのクリーンコピーを環境に復元する必要がある。
  • 他のソフトウェアチームの要件: その復元データに VPC 内の EC2 からアクセスできるようにする必要がある。

最適なデータ永続性とセキュリティを満たすセットアップは?


Answer Choices Translation(選択肢の和訳)

A. ❌(誤り)

  • RDS を Elastic Beanstalk の構成の一部として作成する。
  • セキュリティグループを変更し、アプリケーション・サブネット内のホストからアクセスを許可する。

👉 誤りの理由:

  • Elastic Beanstalk に RDS を組み込むと、環境を削除した際に RDS も削除される可能性がある
  • 他のチームの EC2 インスタンスが RDS にアクセスできなくなる可能性がある。
  • データの永続性とセキュリティ要件を満たさない。

B. ❌(誤り)

  • RDS を Elastic Beanstalk とは別に作成する。
  • アプリケーションの DB 接続文字列に RDS の IP アドレスをハードコーディングする。
  • セキュリティグループを変更し、VPC 内のすべてのホストの IP アドレスブロックに DB へのアクセスを許可する。

👉 誤りの理由:

  • RDS の IP アドレスは変更される可能性があるため、IP ハードコーディングは非推奨。
  • VPC 全体にアクセスを許可するのはセキュリティリスクが高い。

C. ✅(正解)

  • RDS を Elastic Beanstalk とは別に作成する。
  • アプリケーションの DB 接続文字列に RDS の「DNS 名」を環境変数として渡す。
  • クライアントマシン用のセキュリティグループを作成し、それを RDS のセキュリティグループの「許可リスト」に追加する。

👉 正解の理由:

  • RDS を Elastic Beanstalk から分離することで、環境を削除してもデータが保持される(データの永続性)。
  • DNS 名を使用することで、RDS の IP アドレスが変更されても影響を受けない。
  • セキュリティグループを適切に設定することで、VPC 内の必要な EC2 インスタンスからのアクセスを許可できる。
  • セキュリティリスクを最小限に抑えつつ、他のチームの EC2 からのアクセスも実現できる。

D. ❌(誤り)

  • RDS を Elastic Beanstalk とは別に作成する。
  • アプリケーションの DB 接続文字列に RDS の「DNS 名」を環境変数として渡す。
  • セキュリティグループを変更し、アプリケーション・サブネット内のホストのみがアクセスできるようにする。

👉 誤りの理由:

  • 他のチームの EC2 インスタンスから RDS へのアクセスができなくなる。
  • QA チームの「毎晩データを復元する」要件を満たせない可能性がある。

Correct Answer(正解)

C. RDS を別に作成し、DNS 名を利用 & 適切なセキュリティグループ設定を行う。

理由:

  • RDS のデータが環境削除の影響を受けず、データの永続性を確保できる。
  • RDS の IP アドレス変更にも対応できる。
  • 他のチームの EC2 インスタンスから RDS へ安全にアクセスできる。
  • 最もセキュリティとスケーラビリティに優れた設計。