助け合いフォーラム
AWS ソリューションアーキテクト - アソシエイト(SAA-C03)
問題ID : 30368
問題を開く
AWS CloudFormationスタックセットの説明として正しいものはどれか。
正解
スタックセットを利用して、複数のリージョンもしくは複数のAWSアカウントで同一のCloudFormationスタックを作成できる
解説
AWS CloudFormationで作成したテンプレートを基に、複数のAWSアカウントもしくは複数のリージョンでスタックを構築したい場合には「スタックセット(StackSets)」を利用します。管理者アカウントで作成したテンプレートを利用して、ターゲットアカウント(プロビジョニングを行うアカウント)とプロビジョニングを行うリージョンを指定することで、一度の操作で複数の同じ環境を構築できます。
テスト環境を複数構築したい場合や、新たにアカウントを払い出す際に下準備となる操作(IAMやセキュリティグループの設定など)をスタックセットとして作成しておく、といった利用ができます。
以上より正解は
・スタックセットを利用して、複数のリージョンもしくは複数のAWSアカウントで同一のCloudFormationスタックを作成できる
です。
その他の選択肢については以下の通りです。
・AWSリソースをスタックセットとして扱うことにより一括管理する
・CloudFormationにおけるAWSリソースを管理する単位であり、作成・削除などはスタックセット単位で行われる
いずれも「スタック」の説明ですので誤りです。
スタックとはCloudFormationにおけるAWSリソースを管理する単位のことで、作成・更新・削除等の操作はスタック単位で行われます。
・JSONまたはYAML形式で記述されたAWSリソースの設計書である
テンプレートの説明ですので誤りです。
テスト環境を複数構築したい場合や、新たにアカウントを払い出す際に下準備となる操作(IAMやセキュリティグループの設定など)をスタックセットとして作成しておく、といった利用ができます。
以上より正解は
・スタックセットを利用して、複数のリージョンもしくは複数のAWSアカウントで同一のCloudFormationスタックを作成できる
です。
その他の選択肢については以下の通りです。
・AWSリソースをスタックセットとして扱うことにより一括管理する
・CloudFormationにおけるAWSリソースを管理する単位であり、作成・削除などはスタックセット単位で行われる
いずれも「スタック」の説明ですので誤りです。
スタックとはCloudFormationにおけるAWSリソースを管理する単位のことで、作成・更新・削除等の操作はスタック単位で行われます。
・JSONまたはYAML形式で記述されたAWSリソースの設計書である
テンプレートの説明ですので誤りです。
参考
【AWS CloudFormation】
AWS CloudFormationは、AWSクラウド上で環境を自動的に構築するサービスです。JSONやYAML形式で記述されたテンプレートをもとに、AWSのインフラストラクチャを構築および管理します。
CloudFormationは「IaC(Infrastructure as Code)」を実現するAWSのサービスです。IaCとは、仮想サーバー、データベース、ネットワーク設定などのITインフラをコードで定義する技術です。IaCの主なメリットは、以下のとおりです。
・再現性のある環境構築 … 異なる複数の環境で一貫性のあるインフラ構成を再現できる
・環境の共有 … 定義されたコードを他のユーザーが使用できる
・変更管理の向上 … コードによりリソース構成やパラメータの変更管理が容易になる
・人的エラーの削減 … 手動操作を減らすことで、設定ミスなどのエラーが発生しにくくなる
CloudFormationを用いると、EC2やELBなどのサーバー環境だけでなく、CloudWatchのような運用支援サービスも含め、ほぼ全てのAWSリソースをコード化して、構築および運用を自動化できます。
[CloudFormationの利用イメージ]
■テンプレートとスタック
CloudFormationは、リソース構成を定義したテンプレートをもとに環境を構築し、その環境を「スタック」という単位で管理します。テンプレートはJSONまたはYAML形式で記述され、AWSリソースの構成や設定を定義する設計図の役割を果たします。
例えば、Webアプリケーションをリリースする場合には、必要なAWSリソース(VPCやEC2インスタンスなど)をテンプレートに定義し、CloudFormationがプロビジョニング(構築)します。もしWebアプリケーションが不要になった場合は、スタックを削除することで関連するリソースをまとめて解除できるため、不要になった環境を簡単に削除できます。
テンプレートは自分で記述して作成する方法以外にも、AWSが提供するサンプルテンプレートや、マネジメントコンソールのGUIを使用して作成できます。
[JSON、YAMLでの記述例(EC2インスタンス作成)]
[マネージメントコンソールのテンプレート作成画面(EC2インスタンス作成)]
■サービスロール
サービスロールは、CloudFormationに対して、ユーザーの代わりにスタック内のリソースを操作する許可を与えるためのIAMロールで、スタックの定義時に指定することができます。
サービスロールを指定すると、CloudFormationはスタックで実行されるすべての操作にこのロールの権限を使用します。これにより、ユーザーが直接各リソースに対するアクセス権限を持っていなくても、AWSリソースのプロビジョニングを行うことができます。
■スタックセット
AWS CloudFormationで作成したテンプレートを基に、複数のAWSアカウントで、または複数のリージョンでスタックを構築したい場合には「スタックセット(StackSets)」を利用します。管理者アカウントで作成したテンプレートを利用して、ターゲットアカウント(プロビジョニングを行うアカウント)とプロビジョニングを行うリージョンを指定することで、一度の操作で複数の同じ環境を構築できます。
テスト環境を複数構築したい場合や、新たにアカウントを払い出す際に下準備となる操作(IAMやセキュリティグループの設定など)をスタックセットとして作成しておく、といった利用ができます。
【AWS Service Catalog】
AWS Service Catalogは、主にCloudFormationテンプレートを製品として登録し、他のAWSユーザーへ共有できるサービスです。共有先のAWSユーザーは、セルフサービスで製品からAWS環境をデプロイ(構築)できます。製品の管理者は、製品のバージョンや、製品がいつ・誰に使用されたかを一元的に管理できるので、共有するAWS環境の一貫性とコンプライアンスを維持できます。
例えば、システム管理者が構築したAWS環境をService Catalogに登録してアプリケーション開発者に共有することで、アプリケーション開発者は容易に自身のAWSアカウント内に開発環境をデプロイできます。また、システム管理者は共有したAWS環境のバージョンや使用履歴を一元管理できます。
【環境構築の自動化サービス】
インフラ環境を自動的に構築・管理するサービスには、「AWS CloudFormation」のほかに「AWS Elastic Beanstalk」などがあります。
CloudFormationはインフラやサーバーに関する知識が必要ですが、多くのAWSサービスに対応しており、柔軟な設定が可能です。
Elastic BeanstalkはCloudFormationほどの柔軟性はありませんが、サーバーやインフラに関する深い知識がなくても、定番の構成を利用して簡単にアプリケーションを公開できます。
※詳細は「Elastic Beanstalk」の分野を参照してください。
AWS CloudFormationは、AWSクラウド上で環境を自動的に構築するサービスです。JSONやYAML形式で記述されたテンプレートをもとに、AWSのインフラストラクチャを構築および管理します。
CloudFormationは「IaC(Infrastructure as Code)」を実現するAWSのサービスです。IaCとは、仮想サーバー、データベース、ネットワーク設定などのITインフラをコードで定義する技術です。IaCの主なメリットは、以下のとおりです。
・再現性のある環境構築 … 異なる複数の環境で一貫性のあるインフラ構成を再現できる
・環境の共有 … 定義されたコードを他のユーザーが使用できる
・変更管理の向上 … コードによりリソース構成やパラメータの変更管理が容易になる
・人的エラーの削減 … 手動操作を減らすことで、設定ミスなどのエラーが発生しにくくなる
CloudFormationを用いると、EC2やELBなどのサーバー環境だけでなく、CloudWatchのような運用支援サービスも含め、ほぼ全てのAWSリソースをコード化して、構築および運用を自動化できます。
[CloudFormationの利用イメージ]
■テンプレートとスタック
CloudFormationは、リソース構成を定義したテンプレートをもとに環境を構築し、その環境を「スタック」という単位で管理します。テンプレートはJSONまたはYAML形式で記述され、AWSリソースの構成や設定を定義する設計図の役割を果たします。
例えば、Webアプリケーションをリリースする場合には、必要なAWSリソース(VPCやEC2インスタンスなど)をテンプレートに定義し、CloudFormationがプロビジョニング(構築)します。もしWebアプリケーションが不要になった場合は、スタックを削除することで関連するリソースをまとめて解除できるため、不要になった環境を簡単に削除できます。
テンプレートは自分で記述して作成する方法以外にも、AWSが提供するサンプルテンプレートや、マネジメントコンソールのGUIを使用して作成できます。
[JSON、YAMLでの記述例(EC2インスタンス作成)]
[マネージメントコンソールのテンプレート作成画面(EC2インスタンス作成)]
■サービスロール
サービスロールは、CloudFormationに対して、ユーザーの代わりにスタック内のリソースを操作する許可を与えるためのIAMロールで、スタックの定義時に指定することができます。
サービスロールを指定すると、CloudFormationはスタックで実行されるすべての操作にこのロールの権限を使用します。これにより、ユーザーが直接各リソースに対するアクセス権限を持っていなくても、AWSリソースのプロビジョニングを行うことができます。
■スタックセット
AWS CloudFormationで作成したテンプレートを基に、複数のAWSアカウントで、または複数のリージョンでスタックを構築したい場合には「スタックセット(StackSets)」を利用します。管理者アカウントで作成したテンプレートを利用して、ターゲットアカウント(プロビジョニングを行うアカウント)とプロビジョニングを行うリージョンを指定することで、一度の操作で複数の同じ環境を構築できます。
テスト環境を複数構築したい場合や、新たにアカウントを払い出す際に下準備となる操作(IAMやセキュリティグループの設定など)をスタックセットとして作成しておく、といった利用ができます。
【AWS Service Catalog】
AWS Service Catalogは、主にCloudFormationテンプレートを製品として登録し、他のAWSユーザーへ共有できるサービスです。共有先のAWSユーザーは、セルフサービスで製品からAWS環境をデプロイ(構築)できます。製品の管理者は、製品のバージョンや、製品がいつ・誰に使用されたかを一元的に管理できるので、共有するAWS環境の一貫性とコンプライアンスを維持できます。
例えば、システム管理者が構築したAWS環境をService Catalogに登録してアプリケーション開発者に共有することで、アプリケーション開発者は容易に自身のAWSアカウント内に開発環境をデプロイできます。また、システム管理者は共有したAWS環境のバージョンや使用履歴を一元管理できます。
【環境構築の自動化サービス】
インフラ環境を自動的に構築・管理するサービスには、「AWS CloudFormation」のほかに「AWS Elastic Beanstalk」などがあります。
CloudFormationはインフラやサーバーに関する知識が必要ですが、多くのAWSサービスに対応しており、柔軟な設定が可能です。
Elastic BeanstalkはCloudFormationほどの柔軟性はありませんが、サーバーやインフラに関する深い知識がなくても、定番の構成を利用して簡単にアプリケーションを公開できます。
※詳細は「Elastic Beanstalk」の分野を参照してください。
正解とされている選択肢の文章が不自然
公開日 2023/12/19
選択肢:複数のリージョン、複数のAWSアカウントで同一のCloudFormationスタックを作成できる
の文章が不自然だと思う。
次のようであるべきなのでは?
複数のリージョン、複数のAWSアカウントで同一のCloudFormationスタックを利用できる
あるいは、
複数のリージョン、複数のAWSアカウントで利用できる同一のCloudFormationスタックを作成できる
b
birdpixy
2023/12/20 10:26
スタックはスタックセットで定義されたAWSリソースのグループなので「複数のリージョン、複数のAWSアカウントで同一のCloudFormationスタックを作成できる」に不自然さを感じないのですが…。
スタックセットでは、1 つの CloudFormation テンプレートを使用して、複数のリージョンの AWS アカウント にスタックを作成できます。
https://dev.classmethod.jp/articles/introducing-cloudformation-stacksets/#toc-1
CloudFormation StackSetsを使うことで、1つのテンプレートから複数のAWSアカウント、リージョンに対しStackを作成することが可能です。
コメント
スタッフからの返信
この投稿に対して返信しませんか?
w whitebeard
2023/12/21 08:26
問題の本質を考えると「同一のスタック作成できるとこ」よりも、 「同一のスタックを利用する」ことに重きを置いているように感じたからです。