QUIZ 15分

Q1. Terraformのstateファイルをチームで共有する際の推奨構成は?

A. Gitリポジトリにコミットする B. S3 + DynamoDB(State Locking)で管理する C. ローカルファイルシステムに保存する D. 環境変数に埋め込む

答えを見る

正解: B

S3にstateファイルを保存し、DynamoDBでState Lockingを行うことで、チームメンバーの同時編集を防ぎつつ安全にstateを共有できる。GitにstateをコミットするとシークレットがGit履歴に残るリスクがある。

Q2. AWS CDKでスタックを分割する主な基準は?

A. ファイルサイズを均等にする B. リソースのライフサイクルと変更頻度で分割する C. サービスの種類ごとに分割する D. AWSアカウントごとに分割する

答えを見る

正解: B

変更頻度が低いリソース(VPC、DB)と高いリソース(ECSタスク定義)を分離することで、デプロイのリスクを最小化し、変更の影響範囲を限定できる。

Q3. Terraformのモジュールでoutputを定義する主な目的は?

A. ログ出力のため B. モジュール間でリソースの参照情報を受け渡すため C. コストを計算するため D. テストの期待値を定義するため

答えを見る

正解: B

outputを通じて、あるモジュールで作成したリソース(VPC ID、サブネットID等)を別のモジュールから参照できる。モジュール間の依存関係を明示的に定義する手段。

Q4. IaCのセキュリティスキャンツール(checkov/tfsec)が検出する典型的な問題は?

A. コードのシンタックスエラー B. S3バケットのパブリックアクセス許可やRDSの暗号化未設定 C. インスタンスのCPU使用率 D. デプロイの所要時間

答えを見る

正解: B

checkovやtfsecはセキュリティベストプラクティスに基づいて、暗号化未設定、パブリックアクセス、過剰なIAM権限など、セキュリティ上の問題をデプロイ前に検出する。

Q5. Terraformでterraform planが重要な理由は?

A. リソースを自動的に作成するため B. 実際に変更を適用する前に、何が作成・変更・削除されるかを確認できるため C. stateファイルをバックアップするため D. モジュールをダウンロードするため

答えを見る

正解: B

terraform planは実際の変更を適用せずに、作成・更新・削除されるリソースの一覧を表示する。意図しない破壊的変更を事前に検知できる重要なセーフティネット。

Q6. GitOpsの原則として正しいのは?

A. Gitリポジトリをインフラの信頼できる唯一の情報源(Single Source of Truth)とする B. 手動でインフラを変更してからGitに反映する C. CIパイプラインは不要 D. Gitブランチは使わない

答えを見る

正解: A

GitOpsではGitリポジトリの状態が望ましいインフラの状態を表し、コントローラー(ArgoCD等)が実際のインフラをGitの状態に自動的に収束させる。変更は必ずGitを通じて行う。

Q7. マルチ環境管理で「dev環境を夜間停止」する主な目的は?

A. セキュリティの強化 B. クラウドコストの削減 C. デプロイ頻度を下げる D. テストデータの保護

答えを見る

正解: B

開発環境は夜間・週末に使用されないため、リソースを停止・縮小することでクラウドコストを大幅に削減できる。これはFinOpsの基本的なプラクティス。

Q8. CDKのassertionsライブラリの主な用途は?

A. 実際のAWSリソースを検証する B. CloudFormationテンプレートの内容をユニットテストで検証する C. デプロイの成否を確認する D. コストを見積もる

答えを見る

正解: B

CDK assertionsはcdk synthで生成されたCloudFormationテンプレートに対して、リソースのプロパティやリソース数を検証するユニットテストを書ける。実際のAWSへのデプロイなしに高速にテストできる。