Q55 — AWS SAA-C03 第17章
第 55/89 問 | ← 第17章
Q1355. ある企業は、オンプレミスの顧客取引データベースをAWSに移行する必要があります。このデータベースはLinuxサーバー上で実行されるOracle DBインスタンス上に存在します。新たなセキュリティ要件により、データベースパスワードを毎年ローテーションする必要があります。これらの要件を満たすうち、運用オーバーヘッドが最も少ないソリューションはどれですか?
- A. AWS SCTを使用してデータベースをAmazon DynamoDBに変換します。パスワードをAWS Systems Manager Parameter Storeに保存し、Amazon CloudWatchアラームを作成して、毎年のパスワードローテーションを実行するAWS Lambda関数を呼び出します。
- B. データベースをAmazon RDS for Oracleに移行します。パスワードをAWS Secrets Managerに保存し、自動ローテーションを有効化します。毎年のローテーションスケジュールを設定します。 ✓
- C. データベースをAmazon EC2インスタンスに移行します。AWS Systems Manager Parameter Storeを使用して接続文字列を保管・ローテーションし、AWS Lambda関数を毎年のスケジュールで実行します。
- D. AWS SCTを使用してデータベースをAmazon Neptuneに移行します。Amazon CloudWatchアラームを作成して、毎年のパスワードローテーションを実行するAWS Lambda関数を呼び出します。
正解: B. データベースをAmazon RDS for Oracleに移行します。パスワードをAWS Secrets Managerに保存し、自動ローテーションを有効化します。毎年のローテーションスケジュールを設定します。
解説
正解はBです。データベースをAmazon RDS for Oracleに移行し、パスワードをAWS Secrets Managerに保存して自動ローテーションを有効化し、毎年のローテーションスケジュールを設定します。 【要件の確認】 ・オンプレミスのOracleデータベースをAWSへ移行すること。 ・データベースパスワードを毎年ローテーションすること。 ・運用オーバーヘッドを最小限に抑えること。 【なぜBが正しいのか】 ・Amazon RDS for Oracle:完全マネージド型のOracleデータベースサービスであり、OS管理、パッチ適用、バックアップなどの運用負荷を大幅に削減します。また、Oracleのネイティブ機能を維持しつつ、管理作業をAWSに委譲できます。 ・AWS Secrets Manager:データベースパスワードやAPIキーなどのシークレットを安全に保管・管理するサービスです。RDS(Oracleを含む)向けに組み込みの自動ローテーション機能を提供しており、カスタムスケジュール(例:毎年)でのローテーションが可能です。また、RDSと統合されており、ローテーション後に資格情報が自動的に更新されます。 ・運用オーバーヘッドの最小化:RDSがバックアップ、スケーリング、パッチ適用を自動で処理し、Secrets Managerがパスワードローテーションを完全に自動化するため、手動介入が不要です。 【他の選択肢が不適切な理由】 A:DynamoDBはNoSQLデータベースであり、Oracle(リレーショナル)ワークロードとは互換性がありません。AWS SCT(Schema Conversion Tool)はOracleからAurora PostgreSQLなどへのスキーマ変換には使用されますが、DynamoDBへの変換には対応していません。また、CloudWatch+Lambdaによるローテーションは、Secrets Managerが既に提供している機能を自前で実装するものであり、不必要な複雑さとオーバーヘッドを招きます。 C:EC2への移行では、OSの更新、バックアップ、スケーリングなどすべての管理をユーザーが行う必要があり、運用負荷が高くなります。さらにParameter Storeは自動ローテーション機能を提供しないため、Lambdaによるローテーションの実装・保守が必要となり、Secrets Managerを利用するより非効率です。 D:Neptuneはグラフデータベースであり、Oracle(リレーショナル)ワークロードとは根本的に互換性がありません。AWS SCTはOracleからNeptuneへの変換をサポートしておらず、データベースパラダイムが異なります。また、CloudWatch+Lambdaによるローテーションも、Secrets Managerのネイティブ機能に比べて冗長です。 【重要な検討事項】 ・データベースエンジンの互換性:Oracleワークロードを維持するには、Amazon RDS for Oracleが唯一の適切な選択肢です。DynamoDBおよびNeptuneは、NoSQLやグラフといった特殊なユースケース向けであり、Oracleの置き換えとしては不適切です。 ・パスワードローテーションの自動化:AWS Secrets Managerは、安全かつ自動的な資格情報ローテーションを最小限の手間で実現できる最適なサービスです。一方、Parameter Storeはローテーションロジックを自前で実装する必要があり、運用負荷が増加します。 ・運用オーバーヘッド:RDSは完全マネージドであり、EC2は手動管理が必要です。また、DynamoDBやNeptuneへの再設計は、ワークロードがそのモデルに真正に適合しない限り、推奨されません。 【正しいアーキテクチャ(選択肢B)】 ・OracleデータベースをAWS DMSまたはネイティブツールを用いてAmazon RDS for Oracleへ移行。 ・パスワードをAWS Secrets Manager(静止時暗号化あり)に保存。 ・Secrets Managerで毎年のローテーションを有効化。RDSはローテーション後に資格情報を自動更新(RDS ProxyやIAM認証を活用すればアプリケーション変更不要)。 【結論】 選択肢Bは、以下のすべての要件を満たす唯一のソリューションです: ・Oracle互換性の維持(Amazon RDS for Oracle)。 ・毎年のパスワードローテーションの自動化(AWS Secrets Manager)。 ・運用オーバーヘッドの最小化(完全マネージドRDS+ネイティブローテーション機能)。 他の選択肢は、互換性のないデータベース(DynamoDB/Neptune)を選択しているか、手動ローテーション(EC2+Parameter Store)を前提としており、要件を満たしません。