インフラストラクチャをコードとして管理する
VPC やロードバランサー、Auto Scaling グループから成る環境を、開発・検証・本番に同一構成で再現したいと考えています。構成定義を JSON または YAML のテキストで Git 管理し、スタック単位で一括して作成・更新・削除できる AWS のサービスはどれですか。
解説を読む(正解: B)
AWS CloudFormation は、AWS 上のインフラストラクチャリソースをテンプレート (JSON または YAML) に宣言的に記述し、スタックという単位でまとめて作成・更新・削除できる Infrastructure as Code (IaC) サービスです。テンプレートはテキストファイルなので Git でバージョン管理してコードレビューの対象にでき、同一テンプレートを別アカウントや別リージョンに適用することで環境間の構成差異 (構成ドリフト) を排除できます。設問が求める「テキストで版管理し、3 環境に同一構成を再現し、一括でプロビジョニングする」という要件をすべて満たすため B が正解です。A の AWS Elastic Beanstalk は、アプリケーションコードをアップロードするだけで容量のプロビジョニング、ロードバランシング、Auto Scaling、ヘルスモニタリングを自動化してくれる PaaS 的なサービスで、内部的には CloudFormation を利用していますが、任意のインフラ構成をユーザーがコードとして定義する仕組みではありません。C の AWS Service Catalog は、管理者が承認した製品 (多くは CloudFormation テンプレート) をカタログ化して利用者にセルフサービス提供するガバナンスのためのサービスであり、テンプレートそのものを作成・実行するエンジンではありません。D の AWS Config はリソースの構成変更を継続的に記録し、ルールに対する準拠状況を評価する監査サービスで、リソースをプロビジョニングする機能はありません。
Infrastructure as Code による環境の再現
開発・検証・本番の 3 環境に同一構成のネットワークとサーバーを繰り返し作成し、その構成をコードとしてバージョン管理したいと考えています。最も適したサービスはどれですか。
解説を読む(正解: D)
AWS CloudFormation は、AWS リソースの構成を JSON または YAML のテンプレートとして宣言的に記述し、そのテンプレートからスタックとしてリソース一式をまとめて作成・更新・削除できる Infrastructure as Code (IaC) のサービスです。テンプレートは単なるテキストファイルなので Git などのバージョン管理システムで履歴を管理でき、レビューや差分確認も通常のソースコードと同じ方法で行えます。設問のように開発・検証・本番という複数環境へ同一構成を繰り返し展開する用途では、同じテンプレートからパラメータだけを変えてスタックを作成すれば、環境間の構成差異 (いわゆる構成ドリフト) を防げるため、D が最も適しています。A の Amazon CloudWatch は、メトリクスやログを収集して監視・アラームを行う監視サービスであり、リソースを作成する機能は持ちません。B のマネジメントコンソールでの手動作成は、1 回限りの作業には有効ですが、繰り返し行うと作業者ごとの設定漏れや順序の違いが発生しやすく、構成をコードとして管理することもできません。C の AMI は EC2 インスタンスのディスクイメージを複製する仕組みであり、サーバー単体の複製には役立ちますが、VPC やサブネット、セキュリティグループ、ロードバランサーといったネットワーク構成全体をコード化して再現することはできません。
IaC と自動スケーリングによる運用自動化
検証環境を手作業で構築しているため設定差異と数日のリードタイムが生じており、本番の Web 層も手動でインスタンスを増減させています。プロビジョニングとキャパシティ調整を自動化し、人手の介在と設定ミスをなくしたいと考えています。適切な取り組みを 2 つ選択してください。
複数選択問題です (正解 2 つ)。選んでから判定してください。
解説を読む(正解: A、C)
自動化は、運用効率の向上と総所有コスト (TCO) 削減をもたらすクラウドエコノミクスの中核要素です。AWS CloudFormation は Infrastructure as Code (IaC) を実現するサービスで、VPC、EC2、セキュリティグループなどの構成を JSON または YAML のテンプレートとして記述し、スタックとして一括で作成・更新・削除できます。テンプレートから何度でも同一構成の環境を再現できるため、手順書に沿った手作業に起因する環境ごとの設定差異と構築リードタイムを解消できます。Amazon EC2 Auto Scaling は、Auto Scaling グループに対して目標追跡やステップスケーリングなどのポリシーを設定することで、CPU 使用率やリクエスト数といった需要指標に応じてインスタンス数を自動的に増減させ、伸縮性を確保しつつピークに合わせた過剰プロビジョニングを避けられます。したがって A と C が正解です。AWS Config はリソース構成の変更履歴を記録し、望ましい構成ルールへの準拠を評価するガバナンス・監査向けのサービスであり、リソースのプロビジョニングやスケーリングを自動実行するものではありません。AWS Trusted Advisor はコストやセキュリティなどの観点で推奨事項を提示しますが、提示された内容を適用するのは担当者の手作業であり、選択肢の記述自体が「手動で適用する」となっている点でも自動化にはなりません。AWS Cost Explorer は費用の可視化と傾向分析を行う請求管理ツールで、インフラの構築やキャパシティ調整には関与しません。