助け合いフォーラム
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クラウド上での環境構築を自動で行うサービスの1つです。自動的に構築を行うサービスとしては他に「Elastic Beanstalk」などがあります。
![<img src="/mondai3/img/jpg/kkk58470.jpg">](https://ping-t-production-strg.s3.ap-northeast-1.amazonaws.com/uploads/question_image/file/22907/kkk58470.jpg?X-Amz-Expires=600&X-Amz-Date=20240727T033246Z&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEAgaDmFwLW5vcnRoZWFzdC0xIkgwRgIhANHJuOowIP70c5JvzZjwVv5qS91hqIWdQFZzYJWrf%2BvoAiEAvoVVFMmtRzvvs5kU35dlS89gfzMOt4V6dNlhGoNwtKIqsQQI4v%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw2MjM0Mjk4MjcyNzUiDH%2FzNF8qx%2BnHRiOCJSqFBAQWQnV37gSoyaGHp1Jz5xS766UNOpZxuBfnriUqNRkTRQvse4S%2BUx5wWq3Cq1N85EgDWHpTUdk0z0onEOaGztMin1WP6QWXrlX8SmK5wxvk8von2NK6jFMcwAQfaEH7twN%2BjyrnhKNxNFO5vt8vs0H%2FJXTjGK6ePeLRthQ4%2FxqLEtmuQ%2BYoUojAqQBWCEjP5KpAAje2xJqxViGg9iqYP0STI7gWVAYeEmv1nzs4AxvJNdf1fYRBilxZ2PIgn1mvR%2FK7dxbz2smHtg2HhzsZjaJ5H8WHqRLQINQrr714HX9u4k1RvZzzuCtmNDvgC93ASD8mKQlAuaAA1SGfG60tXKUayewaXZFPlGcR%2B6A1j7d5INESj%2BLzK0Jp2dP10GooOXm8UnTCLj2nkFFxMh9VIE64CY1avR%2F0kV72Po7FoTcVcuzoH2IbOrSgIyT8N4Ij8F5fOqcqbDdyhmNRfLmd0N7ZP25qoU6K3rIMeMWKgPzaeT54s2i%2Bnhszui3m0Sy9he9RwbFlf%2FMmaHob3lafQzjThxSkzqFbWm1mogY3tfKExSH1iRtyX1Y%2BAim4wtO1ZizqEDqMkW8SAzD0xxIneYuT3GPr66KWSCEHKHW6t20NRYGyXTEr%2FwELefBQKzfDPLRwL4OPSeHHkEUiypb763zevR2RhLks%2B4EKNse0Py4eASWiTbwwuP%2BQtQY6pQHuYZCSXCZiYnz1Mbqq4CBIMnYufh%2FzzOnVAmaVI9V%2FHpM72SD2qm%2Bk6YSrekCCOcmaa5EwsV9AQDxwXatoy96nbNYBSbjYNXQIq5ygpCHI03EDC%2FTaH%2B9sanKP4qnQopFS5G9SAJl1OdRKmgycdC3TW8IYhWC1%2BFhsTJeNsF824TVcPR4VGJbPfwr75zlJD9Jhh6YhJhq1UMNJaqEm5AFczAffBV0%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAZCJ2QHLFRAGVRWFZ%2F20240727%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=d169322a3861b759aedb003500624785dac6a123d7b2ba7a34f1fef0ea9fcb90)
CloudFormationではElastic Beanstalkより多くのAWSサービスに対応しており柔軟な構成を組むことができますが、その分各AWSサービスやロードバランサーなどのインフラストラクチャ(基盤)技術についての知識も必要です。
※JSON、YAMLとは、どちらもテキスト形式のデータ定義言語です。記述方式に差異はありますが、いずれも人間が記述しやすく、また読みやすい形式の言語です。
![【図を表示3】](https://ping-t-production-strg.s3.ap-northeast-1.amazonaws.com/uploads/question_image/file/22910/kkk58489.jpg?X-Amz-Expires=600&X-Amz-Date=20240727T033246Z&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEAgaDmFwLW5vcnRoZWFzdC0xIkgwRgIhANHJuOowIP70c5JvzZjwVv5qS91hqIWdQFZzYJWrf%2BvoAiEAvoVVFMmtRzvvs5kU35dlS89gfzMOt4V6dNlhGoNwtKIqsQQI4v%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw2MjM0Mjk4MjcyNzUiDH%2FzNF8qx%2BnHRiOCJSqFBAQWQnV37gSoyaGHp1Jz5xS766UNOpZxuBfnriUqNRkTRQvse4S%2BUx5wWq3Cq1N85EgDWHpTUdk0z0onEOaGztMin1WP6QWXrlX8SmK5wxvk8von2NK6jFMcwAQfaEH7twN%2BjyrnhKNxNFO5vt8vs0H%2FJXTjGK6ePeLRthQ4%2FxqLEtmuQ%2BYoUojAqQBWCEjP5KpAAje2xJqxViGg9iqYP0STI7gWVAYeEmv1nzs4AxvJNdf1fYRBilxZ2PIgn1mvR%2FK7dxbz2smHtg2HhzsZjaJ5H8WHqRLQINQrr714HX9u4k1RvZzzuCtmNDvgC93ASD8mKQlAuaAA1SGfG60tXKUayewaXZFPlGcR%2B6A1j7d5INESj%2BLzK0Jp2dP10GooOXm8UnTCLj2nkFFxMh9VIE64CY1avR%2F0kV72Po7FoTcVcuzoH2IbOrSgIyT8N4Ij8F5fOqcqbDdyhmNRfLmd0N7ZP25qoU6K3rIMeMWKgPzaeT54s2i%2Bnhszui3m0Sy9he9RwbFlf%2FMmaHob3lafQzjThxSkzqFbWm1mogY3tfKExSH1iRtyX1Y%2BAim4wtO1ZizqEDqMkW8SAzD0xxIneYuT3GPr66KWSCEHKHW6t20NRYGyXTEr%2FwELefBQKzfDPLRwL4OPSeHHkEUiypb763zevR2RhLks%2B4EKNse0Py4eASWiTbwwuP%2BQtQY6pQHuYZCSXCZiYnz1Mbqq4CBIMnYufh%2FzzOnVAmaVI9V%2FHpM72SD2qm%2Bk6YSrekCCOcmaa5EwsV9AQDxwXatoy96nbNYBSbjYNXQIq5ygpCHI03EDC%2FTaH%2B9sanKP4qnQopFS5G9SAJl1OdRKmgycdC3TW8IYhWC1%2BFhsTJeNsF824TVcPR4VGJbPfwr75zlJD9Jhh6YhJhq1UMNJaqEm5AFczAffBV0%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAZCJ2QHLFRAGVRWFZ%2F20240727%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=657264598c6689c5e96afda9fa4c6566bfe62f6da3f629b6de15506d841a064a)
CloudFormationはいわゆるIaC(Infrastructure as Code)です。IaCとは、仮想化されたサーバーやデータベース、ネットワーク構成などの環境をコード(コンピュータが処理可能な形式)で定義し、それを実行することによって再現(構築)するという技術をいいます。IaCのメリットには、例えば以下のようなものがあります。
・同じ作業を別の人間が実施できる
・同じ、または似た構成の環境を何度も作成できる
・環境がコード化されていることにより、リソース量やパラメータなど環境の変更管理が容易になる
CloudFormationではほぼすべてのAWSリソースをコード化することができます。EC2やELBなどサーバー環境の構築だけでなくAmazon CloudWatchなど運用支援のサービスも含まれているため、CloudFormationを利用することで構築および運用を自動化することができます。
●テンプレートとスタック
以下はCloudFormationの利用イメージです。
![【図を表示】](https://ping-t-production-strg.s3.ap-northeast-1.amazonaws.com/uploads/question_image/file/22909/k58489.jpg?X-Amz-Expires=600&X-Amz-Date=20240727T033246Z&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEAgaDmFwLW5vcnRoZWFzdC0xIkgwRgIhANHJuOowIP70c5JvzZjwVv5qS91hqIWdQFZzYJWrf%2BvoAiEAvoVVFMmtRzvvs5kU35dlS89gfzMOt4V6dNlhGoNwtKIqsQQI4v%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw2MjM0Mjk4MjcyNzUiDH%2FzNF8qx%2BnHRiOCJSqFBAQWQnV37gSoyaGHp1Jz5xS766UNOpZxuBfnriUqNRkTRQvse4S%2BUx5wWq3Cq1N85EgDWHpTUdk0z0onEOaGztMin1WP6QWXrlX8SmK5wxvk8von2NK6jFMcwAQfaEH7twN%2BjyrnhKNxNFO5vt8vs0H%2FJXTjGK6ePeLRthQ4%2FxqLEtmuQ%2BYoUojAqQBWCEjP5KpAAje2xJqxViGg9iqYP0STI7gWVAYeEmv1nzs4AxvJNdf1fYRBilxZ2PIgn1mvR%2FK7dxbz2smHtg2HhzsZjaJ5H8WHqRLQINQrr714HX9u4k1RvZzzuCtmNDvgC93ASD8mKQlAuaAA1SGfG60tXKUayewaXZFPlGcR%2B6A1j7d5INESj%2BLzK0Jp2dP10GooOXm8UnTCLj2nkFFxMh9VIE64CY1avR%2F0kV72Po7FoTcVcuzoH2IbOrSgIyT8N4Ij8F5fOqcqbDdyhmNRfLmd0N7ZP25qoU6K3rIMeMWKgPzaeT54s2i%2Bnhszui3m0Sy9he9RwbFlf%2FMmaHob3lafQzjThxSkzqFbWm1mogY3tfKExSH1iRtyX1Y%2BAim4wtO1ZizqEDqMkW8SAzD0xxIneYuT3GPr66KWSCEHKHW6t20NRYGyXTEr%2FwELefBQKzfDPLRwL4OPSeHHkEUiypb763zevR2RhLks%2B4EKNse0Py4eASWiTbwwuP%2BQtQY6pQHuYZCSXCZiYnz1Mbqq4CBIMnYufh%2FzzOnVAmaVI9V%2FHpM72SD2qm%2Bk6YSrekCCOcmaa5EwsV9AQDxwXatoy96nbNYBSbjYNXQIq5ygpCHI03EDC%2FTaH%2B9sanKP4qnQopFS5G9SAJl1OdRKmgycdC3TW8IYhWC1%2BFhsTJeNsF824TVcPR4VGJbPfwr75zlJD9Jhh6YhJhq1UMNJaqEm5AFczAffBV0%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAZCJ2QHLFRAGVRWFZ%2F20240727%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=b27bb11905c4be11a7d1459ff8d3410fe1da63c4e7c899a08c7c69c69133c253)
CloudFormationを利用し始めるには、ユーザーはまず「テンプレート」というコードを作成します。テンプレートはJSONまたはYAML形式で書かれたコードです。テンプレートは、例えばEC2インスタンスのインスタンスタイプやRDBのパラメータの定義など、AWSリソースをどのように利用するか、という設計図にあたります。
テンプレートを作成した後は、CloudFormationに読み込ませることによりAWSリソースがプロビジョニング(構築)されます。このときAWSリソースは「スタック」という単位で管理されます。
例えばWebアプリケーションをリリースしたい場合、CloudFormationのテンプレートにはEC2インスタンスやS3など必要なAWSリソースを定義し、プロビジョニングします。Webアプリケーションが不要になった場合、(一つ一つのAWSリソースではなく)プロビジョニングしたスタックをすべて削除することで、Webアプリケーションとして利用していたリソースを削除することができます。
スタックは1つのテンプレートから複数作成することもできます。またスタックを削除した場合も、テンプレートからもう一度同じスタックを作成することも可能です。
なお、上例では複数のAWSリソースを定義していますが、VPCだけ、EC2インスタンスだけ、といったプロビジョニングも可能です。
テンプレートは自分で作成することも可能ですが、AWSによって配布されているサンプルを利用したり、マネジメントコンソールからGUIで作成することもできます。
![【図を表示2】](https://ping-t-production-strg.s3.ap-northeast-1.amazonaws.com/uploads/question_image/file/22911/kk58489.jpg?X-Amz-Expires=600&X-Amz-Date=20240727T033246Z&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEAgaDmFwLW5vcnRoZWFzdC0xIkgwRgIhANHJuOowIP70c5JvzZjwVv5qS91hqIWdQFZzYJWrf%2BvoAiEAvoVVFMmtRzvvs5kU35dlS89gfzMOt4V6dNlhGoNwtKIqsQQI4v%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw2MjM0Mjk4MjcyNzUiDH%2FzNF8qx%2BnHRiOCJSqFBAQWQnV37gSoyaGHp1Jz5xS766UNOpZxuBfnriUqNRkTRQvse4S%2BUx5wWq3Cq1N85EgDWHpTUdk0z0onEOaGztMin1WP6QWXrlX8SmK5wxvk8von2NK6jFMcwAQfaEH7twN%2BjyrnhKNxNFO5vt8vs0H%2FJXTjGK6ePeLRthQ4%2FxqLEtmuQ%2BYoUojAqQBWCEjP5KpAAje2xJqxViGg9iqYP0STI7gWVAYeEmv1nzs4AxvJNdf1fYRBilxZ2PIgn1mvR%2FK7dxbz2smHtg2HhzsZjaJ5H8WHqRLQINQrr714HX9u4k1RvZzzuCtmNDvgC93ASD8mKQlAuaAA1SGfG60tXKUayewaXZFPlGcR%2B6A1j7d5INESj%2BLzK0Jp2dP10GooOXm8UnTCLj2nkFFxMh9VIE64CY1avR%2F0kV72Po7FoTcVcuzoH2IbOrSgIyT8N4Ij8F5fOqcqbDdyhmNRfLmd0N7ZP25qoU6K3rIMeMWKgPzaeT54s2i%2Bnhszui3m0Sy9he9RwbFlf%2FMmaHob3lafQzjThxSkzqFbWm1mogY3tfKExSH1iRtyX1Y%2BAim4wtO1ZizqEDqMkW8SAzD0xxIneYuT3GPr66KWSCEHKHW6t20NRYGyXTEr%2FwELefBQKzfDPLRwL4OPSeHHkEUiypb763zevR2RhLks%2B4EKNse0Py4eASWiTbwwuP%2BQtQY6pQHuYZCSXCZiYnz1Mbqq4CBIMnYufh%2FzzOnVAmaVI9V%2FHpM72SD2qm%2Bk6YSrekCCOcmaa5EwsV9AQDxwXatoy96nbNYBSbjYNXQIq5ygpCHI03EDC%2FTaH%2B9sanKP4qnQopFS5G9SAJl1OdRKmgycdC3TW8IYhWC1%2BFhsTJeNsF824TVcPR4VGJbPfwr75zlJD9Jhh6YhJhq1UMNJaqEm5AFczAffBV0%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAZCJ2QHLFRAGVRWFZ%2F20240727%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=9e1279e5c871139d90ed51a53f5089384bd069ccbf33ac76ec20faf828696334)
●サービスロール
サービスロールは、CloudFormationに対して、ユーザーの代わりにスタック内のリソースを操作する許可を与えるためのIAMロールで、スタックの定義時に指定することができます。
サービスロールを指定すると、CloudFormationはスタックで実行されるすべての操作にこのロールの権限を使用します。これにより、ユーザーが直接各リソースに対するアクセス権限を持っていなくても、AWSリソースのプロビジョニングを行うことができます。
●スタックセット
AWS CloudFormationで作成したテンプレートを基に、複数のAWSアカウントで、または複数のリージョンでスタックを構築したい場合には「スタックセット(StackSets)」を利用します。管理者アカウントで作成したテンプレートを利用して、ターゲットアカウント(プロビジョニングを行うアカウント)とプロビジョニングを行うリージョンを指定することで、一度の操作で複数の同じ環境を構築できます。
テスト環境を複数構築したい場合や、新たにアカウントを払い出す際に下準備となる操作(IAMやセキュリティグループの設定など)をスタックセットとして作成しておく、といった利用ができます。
【AWS Service Catalog】
AWS Service Catalogは、主にCloudFormationテンプレートを製品として登録し、他のAWSユーザーへ共有できるサービスです。共有先のAWSユーザーは、セルフサービスで製品からAWS環境をデプロイ(構築)できます。製品の管理者は、製品のバージョンや、製品がいつ・誰に使用されたかを一元的に管理できるので、共有するAWS環境の一貫性とコンプライアンスを維持できます。
![<img src="/mondai3/img/jpg/k64007.jpg">](https://ping-t-production-strg.s3.ap-northeast-1.amazonaws.com/uploads/question_image/file/25527/k64007.jpg?X-Amz-Expires=600&X-Amz-Date=20240727T033246Z&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEAgaDmFwLW5vcnRoZWFzdC0xIkgwRgIhANHJuOowIP70c5JvzZjwVv5qS91hqIWdQFZzYJWrf%2BvoAiEAvoVVFMmtRzvvs5kU35dlS89gfzMOt4V6dNlhGoNwtKIqsQQI4v%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw2MjM0Mjk4MjcyNzUiDH%2FzNF8qx%2BnHRiOCJSqFBAQWQnV37gSoyaGHp1Jz5xS766UNOpZxuBfnriUqNRkTRQvse4S%2BUx5wWq3Cq1N85EgDWHpTUdk0z0onEOaGztMin1WP6QWXrlX8SmK5wxvk8von2NK6jFMcwAQfaEH7twN%2BjyrnhKNxNFO5vt8vs0H%2FJXTjGK6ePeLRthQ4%2FxqLEtmuQ%2BYoUojAqQBWCEjP5KpAAje2xJqxViGg9iqYP0STI7gWVAYeEmv1nzs4AxvJNdf1fYRBilxZ2PIgn1mvR%2FK7dxbz2smHtg2HhzsZjaJ5H8WHqRLQINQrr714HX9u4k1RvZzzuCtmNDvgC93ASD8mKQlAuaAA1SGfG60tXKUayewaXZFPlGcR%2B6A1j7d5INESj%2BLzK0Jp2dP10GooOXm8UnTCLj2nkFFxMh9VIE64CY1avR%2F0kV72Po7FoTcVcuzoH2IbOrSgIyT8N4Ij8F5fOqcqbDdyhmNRfLmd0N7ZP25qoU6K3rIMeMWKgPzaeT54s2i%2Bnhszui3m0Sy9he9RwbFlf%2FMmaHob3lafQzjThxSkzqFbWm1mogY3tfKExSH1iRtyX1Y%2BAim4wtO1ZizqEDqMkW8SAzD0xxIneYuT3GPr66KWSCEHKHW6t20NRYGyXTEr%2FwELefBQKzfDPLRwL4OPSeHHkEUiypb763zevR2RhLks%2B4EKNse0Py4eASWiTbwwuP%2BQtQY6pQHuYZCSXCZiYnz1Mbqq4CBIMnYufh%2FzzOnVAmaVI9V%2FHpM72SD2qm%2Bk6YSrekCCOcmaa5EwsV9AQDxwXatoy96nbNYBSbjYNXQIq5ygpCHI03EDC%2FTaH%2B9sanKP4qnQopFS5G9SAJl1OdRKmgycdC3TW8IYhWC1%2BFhsTJeNsF824TVcPR4VGJbPfwr75zlJD9Jhh6YhJhq1UMNJaqEm5AFczAffBV0%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAZCJ2QHLFRAGVRWFZ%2F20240727%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=f60edf0a9b61b22c1f1c4762d7f7448cb000c04f70801ede95f86d9214f62777)
例えば、システム管理者が構築したAWS環境をService Catalogに登録してアプリケーション開発者に共有することで、アプリケーション開発者は容易に自身のAWSアカウント内に開発環境をデプロイできます。また、システム管理者は共有したAWS環境のバージョンや使用履歴を一元管理できます。
AWS CloudFormationはAWSクラウド上での環境構築を自動で行うサービスの1つです。自動的に構築を行うサービスとしては他に「Elastic Beanstalk」などがあります。
![<img src="/mondai3/img/jpg/kkk58470.jpg">](https://ping-t-production-strg.s3.ap-northeast-1.amazonaws.com/uploads/question_image/file/22907/kkk58470.jpg?X-Amz-Expires=600&X-Amz-Date=20240727T033246Z&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEAgaDmFwLW5vcnRoZWFzdC0xIkgwRgIhANHJuOowIP70c5JvzZjwVv5qS91hqIWdQFZzYJWrf%2BvoAiEAvoVVFMmtRzvvs5kU35dlS89gfzMOt4V6dNlhGoNwtKIqsQQI4v%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw2MjM0Mjk4MjcyNzUiDH%2FzNF8qx%2BnHRiOCJSqFBAQWQnV37gSoyaGHp1Jz5xS766UNOpZxuBfnriUqNRkTRQvse4S%2BUx5wWq3Cq1N85EgDWHpTUdk0z0onEOaGztMin1WP6QWXrlX8SmK5wxvk8von2NK6jFMcwAQfaEH7twN%2BjyrnhKNxNFO5vt8vs0H%2FJXTjGK6ePeLRthQ4%2FxqLEtmuQ%2BYoUojAqQBWCEjP5KpAAje2xJqxViGg9iqYP0STI7gWVAYeEmv1nzs4AxvJNdf1fYRBilxZ2PIgn1mvR%2FK7dxbz2smHtg2HhzsZjaJ5H8WHqRLQINQrr714HX9u4k1RvZzzuCtmNDvgC93ASD8mKQlAuaAA1SGfG60tXKUayewaXZFPlGcR%2B6A1j7d5INESj%2BLzK0Jp2dP10GooOXm8UnTCLj2nkFFxMh9VIE64CY1avR%2F0kV72Po7FoTcVcuzoH2IbOrSgIyT8N4Ij8F5fOqcqbDdyhmNRfLmd0N7ZP25qoU6K3rIMeMWKgPzaeT54s2i%2Bnhszui3m0Sy9he9RwbFlf%2FMmaHob3lafQzjThxSkzqFbWm1mogY3tfKExSH1iRtyX1Y%2BAim4wtO1ZizqEDqMkW8SAzD0xxIneYuT3GPr66KWSCEHKHW6t20NRYGyXTEr%2FwELefBQKzfDPLRwL4OPSeHHkEUiypb763zevR2RhLks%2B4EKNse0Py4eASWiTbwwuP%2BQtQY6pQHuYZCSXCZiYnz1Mbqq4CBIMnYufh%2FzzOnVAmaVI9V%2FHpM72SD2qm%2Bk6YSrekCCOcmaa5EwsV9AQDxwXatoy96nbNYBSbjYNXQIq5ygpCHI03EDC%2FTaH%2B9sanKP4qnQopFS5G9SAJl1OdRKmgycdC3TW8IYhWC1%2BFhsTJeNsF824TVcPR4VGJbPfwr75zlJD9Jhh6YhJhq1UMNJaqEm5AFczAffBV0%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAZCJ2QHLFRAGVRWFZ%2F20240727%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=d169322a3861b759aedb003500624785dac6a123d7b2ba7a34f1fef0ea9fcb90)
CloudFormationではElastic Beanstalkより多くのAWSサービスに対応しており柔軟な構成を組むことができますが、その分各AWSサービスやロードバランサーなどのインフラストラクチャ(基盤)技術についての知識も必要です。
※JSON、YAMLとは、どちらもテキスト形式のデータ定義言語です。記述方式に差異はありますが、いずれも人間が記述しやすく、また読みやすい形式の言語です。
![【図を表示3】](https://ping-t-production-strg.s3.ap-northeast-1.amazonaws.com/uploads/question_image/file/22910/kkk58489.jpg?X-Amz-Expires=600&X-Amz-Date=20240727T033246Z&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEAgaDmFwLW5vcnRoZWFzdC0xIkgwRgIhANHJuOowIP70c5JvzZjwVv5qS91hqIWdQFZzYJWrf%2BvoAiEAvoVVFMmtRzvvs5kU35dlS89gfzMOt4V6dNlhGoNwtKIqsQQI4v%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw2MjM0Mjk4MjcyNzUiDH%2FzNF8qx%2BnHRiOCJSqFBAQWQnV37gSoyaGHp1Jz5xS766UNOpZxuBfnriUqNRkTRQvse4S%2BUx5wWq3Cq1N85EgDWHpTUdk0z0onEOaGztMin1WP6QWXrlX8SmK5wxvk8von2NK6jFMcwAQfaEH7twN%2BjyrnhKNxNFO5vt8vs0H%2FJXTjGK6ePeLRthQ4%2FxqLEtmuQ%2BYoUojAqQBWCEjP5KpAAje2xJqxViGg9iqYP0STI7gWVAYeEmv1nzs4AxvJNdf1fYRBilxZ2PIgn1mvR%2FK7dxbz2smHtg2HhzsZjaJ5H8WHqRLQINQrr714HX9u4k1RvZzzuCtmNDvgC93ASD8mKQlAuaAA1SGfG60tXKUayewaXZFPlGcR%2B6A1j7d5INESj%2BLzK0Jp2dP10GooOXm8UnTCLj2nkFFxMh9VIE64CY1avR%2F0kV72Po7FoTcVcuzoH2IbOrSgIyT8N4Ij8F5fOqcqbDdyhmNRfLmd0N7ZP25qoU6K3rIMeMWKgPzaeT54s2i%2Bnhszui3m0Sy9he9RwbFlf%2FMmaHob3lafQzjThxSkzqFbWm1mogY3tfKExSH1iRtyX1Y%2BAim4wtO1ZizqEDqMkW8SAzD0xxIneYuT3GPr66KWSCEHKHW6t20NRYGyXTEr%2FwELefBQKzfDPLRwL4OPSeHHkEUiypb763zevR2RhLks%2B4EKNse0Py4eASWiTbwwuP%2BQtQY6pQHuYZCSXCZiYnz1Mbqq4CBIMnYufh%2FzzOnVAmaVI9V%2FHpM72SD2qm%2Bk6YSrekCCOcmaa5EwsV9AQDxwXatoy96nbNYBSbjYNXQIq5ygpCHI03EDC%2FTaH%2B9sanKP4qnQopFS5G9SAJl1OdRKmgycdC3TW8IYhWC1%2BFhsTJeNsF824TVcPR4VGJbPfwr75zlJD9Jhh6YhJhq1UMNJaqEm5AFczAffBV0%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAZCJ2QHLFRAGVRWFZ%2F20240727%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=657264598c6689c5e96afda9fa4c6566bfe62f6da3f629b6de15506d841a064a)
CloudFormationはいわゆるIaC(Infrastructure as Code)です。IaCとは、仮想化されたサーバーやデータベース、ネットワーク構成などの環境をコード(コンピュータが処理可能な形式)で定義し、それを実行することによって再現(構築)するという技術をいいます。IaCのメリットには、例えば以下のようなものがあります。
・同じ作業を別の人間が実施できる
・同じ、または似た構成の環境を何度も作成できる
・環境がコード化されていることにより、リソース量やパラメータなど環境の変更管理が容易になる
CloudFormationではほぼすべてのAWSリソースをコード化することができます。EC2やELBなどサーバー環境の構築だけでなくAmazon CloudWatchなど運用支援のサービスも含まれているため、CloudFormationを利用することで構築および運用を自動化することができます。
●テンプレートとスタック
以下はCloudFormationの利用イメージです。
![【図を表示】](https://ping-t-production-strg.s3.ap-northeast-1.amazonaws.com/uploads/question_image/file/22909/k58489.jpg?X-Amz-Expires=600&X-Amz-Date=20240727T033246Z&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEAgaDmFwLW5vcnRoZWFzdC0xIkgwRgIhANHJuOowIP70c5JvzZjwVv5qS91hqIWdQFZzYJWrf%2BvoAiEAvoVVFMmtRzvvs5kU35dlS89gfzMOt4V6dNlhGoNwtKIqsQQI4v%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw2MjM0Mjk4MjcyNzUiDH%2FzNF8qx%2BnHRiOCJSqFBAQWQnV37gSoyaGHp1Jz5xS766UNOpZxuBfnriUqNRkTRQvse4S%2BUx5wWq3Cq1N85EgDWHpTUdk0z0onEOaGztMin1WP6QWXrlX8SmK5wxvk8von2NK6jFMcwAQfaEH7twN%2BjyrnhKNxNFO5vt8vs0H%2FJXTjGK6ePeLRthQ4%2FxqLEtmuQ%2BYoUojAqQBWCEjP5KpAAje2xJqxViGg9iqYP0STI7gWVAYeEmv1nzs4AxvJNdf1fYRBilxZ2PIgn1mvR%2FK7dxbz2smHtg2HhzsZjaJ5H8WHqRLQINQrr714HX9u4k1RvZzzuCtmNDvgC93ASD8mKQlAuaAA1SGfG60tXKUayewaXZFPlGcR%2B6A1j7d5INESj%2BLzK0Jp2dP10GooOXm8UnTCLj2nkFFxMh9VIE64CY1avR%2F0kV72Po7FoTcVcuzoH2IbOrSgIyT8N4Ij8F5fOqcqbDdyhmNRfLmd0N7ZP25qoU6K3rIMeMWKgPzaeT54s2i%2Bnhszui3m0Sy9he9RwbFlf%2FMmaHob3lafQzjThxSkzqFbWm1mogY3tfKExSH1iRtyX1Y%2BAim4wtO1ZizqEDqMkW8SAzD0xxIneYuT3GPr66KWSCEHKHW6t20NRYGyXTEr%2FwELefBQKzfDPLRwL4OPSeHHkEUiypb763zevR2RhLks%2B4EKNse0Py4eASWiTbwwuP%2BQtQY6pQHuYZCSXCZiYnz1Mbqq4CBIMnYufh%2FzzOnVAmaVI9V%2FHpM72SD2qm%2Bk6YSrekCCOcmaa5EwsV9AQDxwXatoy96nbNYBSbjYNXQIq5ygpCHI03EDC%2FTaH%2B9sanKP4qnQopFS5G9SAJl1OdRKmgycdC3TW8IYhWC1%2BFhsTJeNsF824TVcPR4VGJbPfwr75zlJD9Jhh6YhJhq1UMNJaqEm5AFczAffBV0%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAZCJ2QHLFRAGVRWFZ%2F20240727%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=b27bb11905c4be11a7d1459ff8d3410fe1da63c4e7c899a08c7c69c69133c253)
CloudFormationを利用し始めるには、ユーザーはまず「テンプレート」というコードを作成します。テンプレートはJSONまたはYAML形式で書かれたコードです。テンプレートは、例えばEC2インスタンスのインスタンスタイプやRDBのパラメータの定義など、AWSリソースをどのように利用するか、という設計図にあたります。
テンプレートを作成した後は、CloudFormationに読み込ませることによりAWSリソースがプロビジョニング(構築)されます。このときAWSリソースは「スタック」という単位で管理されます。
例えばWebアプリケーションをリリースしたい場合、CloudFormationのテンプレートにはEC2インスタンスやS3など必要なAWSリソースを定義し、プロビジョニングします。Webアプリケーションが不要になった場合、(一つ一つのAWSリソースではなく)プロビジョニングしたスタックをすべて削除することで、Webアプリケーションとして利用していたリソースを削除することができます。
スタックは1つのテンプレートから複数作成することもできます。またスタックを削除した場合も、テンプレートからもう一度同じスタックを作成することも可能です。
なお、上例では複数のAWSリソースを定義していますが、VPCだけ、EC2インスタンスだけ、といったプロビジョニングも可能です。
テンプレートは自分で作成することも可能ですが、AWSによって配布されているサンプルを利用したり、マネジメントコンソールからGUIで作成することもできます。
![【図を表示2】](https://ping-t-production-strg.s3.ap-northeast-1.amazonaws.com/uploads/question_image/file/22911/kk58489.jpg?X-Amz-Expires=600&X-Amz-Date=20240727T033246Z&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEAgaDmFwLW5vcnRoZWFzdC0xIkgwRgIhANHJuOowIP70c5JvzZjwVv5qS91hqIWdQFZzYJWrf%2BvoAiEAvoVVFMmtRzvvs5kU35dlS89gfzMOt4V6dNlhGoNwtKIqsQQI4v%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw2MjM0Mjk4MjcyNzUiDH%2FzNF8qx%2BnHRiOCJSqFBAQWQnV37gSoyaGHp1Jz5xS766UNOpZxuBfnriUqNRkTRQvse4S%2BUx5wWq3Cq1N85EgDWHpTUdk0z0onEOaGztMin1WP6QWXrlX8SmK5wxvk8von2NK6jFMcwAQfaEH7twN%2BjyrnhKNxNFO5vt8vs0H%2FJXTjGK6ePeLRthQ4%2FxqLEtmuQ%2BYoUojAqQBWCEjP5KpAAje2xJqxViGg9iqYP0STI7gWVAYeEmv1nzs4AxvJNdf1fYRBilxZ2PIgn1mvR%2FK7dxbz2smHtg2HhzsZjaJ5H8WHqRLQINQrr714HX9u4k1RvZzzuCtmNDvgC93ASD8mKQlAuaAA1SGfG60tXKUayewaXZFPlGcR%2B6A1j7d5INESj%2BLzK0Jp2dP10GooOXm8UnTCLj2nkFFxMh9VIE64CY1avR%2F0kV72Po7FoTcVcuzoH2IbOrSgIyT8N4Ij8F5fOqcqbDdyhmNRfLmd0N7ZP25qoU6K3rIMeMWKgPzaeT54s2i%2Bnhszui3m0Sy9he9RwbFlf%2FMmaHob3lafQzjThxSkzqFbWm1mogY3tfKExSH1iRtyX1Y%2BAim4wtO1ZizqEDqMkW8SAzD0xxIneYuT3GPr66KWSCEHKHW6t20NRYGyXTEr%2FwELefBQKzfDPLRwL4OPSeHHkEUiypb763zevR2RhLks%2B4EKNse0Py4eASWiTbwwuP%2BQtQY6pQHuYZCSXCZiYnz1Mbqq4CBIMnYufh%2FzzOnVAmaVI9V%2FHpM72SD2qm%2Bk6YSrekCCOcmaa5EwsV9AQDxwXatoy96nbNYBSbjYNXQIq5ygpCHI03EDC%2FTaH%2B9sanKP4qnQopFS5G9SAJl1OdRKmgycdC3TW8IYhWC1%2BFhsTJeNsF824TVcPR4VGJbPfwr75zlJD9Jhh6YhJhq1UMNJaqEm5AFczAffBV0%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAZCJ2QHLFRAGVRWFZ%2F20240727%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=9e1279e5c871139d90ed51a53f5089384bd069ccbf33ac76ec20faf828696334)
●サービスロール
サービスロールは、CloudFormationに対して、ユーザーの代わりにスタック内のリソースを操作する許可を与えるためのIAMロールで、スタックの定義時に指定することができます。
サービスロールを指定すると、CloudFormationはスタックで実行されるすべての操作にこのロールの権限を使用します。これにより、ユーザーが直接各リソースに対するアクセス権限を持っていなくても、AWSリソースのプロビジョニングを行うことができます。
●スタックセット
AWS CloudFormationで作成したテンプレートを基に、複数のAWSアカウントで、または複数のリージョンでスタックを構築したい場合には「スタックセット(StackSets)」を利用します。管理者アカウントで作成したテンプレートを利用して、ターゲットアカウント(プロビジョニングを行うアカウント)とプロビジョニングを行うリージョンを指定することで、一度の操作で複数の同じ環境を構築できます。
テスト環境を複数構築したい場合や、新たにアカウントを払い出す際に下準備となる操作(IAMやセキュリティグループの設定など)をスタックセットとして作成しておく、といった利用ができます。
【AWS Service Catalog】
AWS Service Catalogは、主にCloudFormationテンプレートを製品として登録し、他のAWSユーザーへ共有できるサービスです。共有先のAWSユーザーは、セルフサービスで製品からAWS環境をデプロイ(構築)できます。製品の管理者は、製品のバージョンや、製品がいつ・誰に使用されたかを一元的に管理できるので、共有するAWS環境の一貫性とコンプライアンスを維持できます。
![<img src="/mondai3/img/jpg/k64007.jpg">](https://ping-t-production-strg.s3.ap-northeast-1.amazonaws.com/uploads/question_image/file/25527/k64007.jpg?X-Amz-Expires=600&X-Amz-Date=20240727T033246Z&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEAgaDmFwLW5vcnRoZWFzdC0xIkgwRgIhANHJuOowIP70c5JvzZjwVv5qS91hqIWdQFZzYJWrf%2BvoAiEAvoVVFMmtRzvvs5kU35dlS89gfzMOt4V6dNlhGoNwtKIqsQQI4v%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw2MjM0Mjk4MjcyNzUiDH%2FzNF8qx%2BnHRiOCJSqFBAQWQnV37gSoyaGHp1Jz5xS766UNOpZxuBfnriUqNRkTRQvse4S%2BUx5wWq3Cq1N85EgDWHpTUdk0z0onEOaGztMin1WP6QWXrlX8SmK5wxvk8von2NK6jFMcwAQfaEH7twN%2BjyrnhKNxNFO5vt8vs0H%2FJXTjGK6ePeLRthQ4%2FxqLEtmuQ%2BYoUojAqQBWCEjP5KpAAje2xJqxViGg9iqYP0STI7gWVAYeEmv1nzs4AxvJNdf1fYRBilxZ2PIgn1mvR%2FK7dxbz2smHtg2HhzsZjaJ5H8WHqRLQINQrr714HX9u4k1RvZzzuCtmNDvgC93ASD8mKQlAuaAA1SGfG60tXKUayewaXZFPlGcR%2B6A1j7d5INESj%2BLzK0Jp2dP10GooOXm8UnTCLj2nkFFxMh9VIE64CY1avR%2F0kV72Po7FoTcVcuzoH2IbOrSgIyT8N4Ij8F5fOqcqbDdyhmNRfLmd0N7ZP25qoU6K3rIMeMWKgPzaeT54s2i%2Bnhszui3m0Sy9he9RwbFlf%2FMmaHob3lafQzjThxSkzqFbWm1mogY3tfKExSH1iRtyX1Y%2BAim4wtO1ZizqEDqMkW8SAzD0xxIneYuT3GPr66KWSCEHKHW6t20NRYGyXTEr%2FwELefBQKzfDPLRwL4OPSeHHkEUiypb763zevR2RhLks%2B4EKNse0Py4eASWiTbwwuP%2BQtQY6pQHuYZCSXCZiYnz1Mbqq4CBIMnYufh%2FzzOnVAmaVI9V%2FHpM72SD2qm%2Bk6YSrekCCOcmaa5EwsV9AQDxwXatoy96nbNYBSbjYNXQIq5ygpCHI03EDC%2FTaH%2B9sanKP4qnQopFS5G9SAJl1OdRKmgycdC3TW8IYhWC1%2BFhsTJeNsF824TVcPR4VGJbPfwr75zlJD9Jhh6YhJhq1UMNJaqEm5AFczAffBV0%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAZCJ2QHLFRAGVRWFZ%2F20240727%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=f60edf0a9b61b22c1f1c4762d7f7448cb000c04f70801ede95f86d9214f62777)
例えば、システム管理者が構築したAWS環境をService Catalogに登録してアプリケーション開発者に共有することで、アプリケーション開発者は容易に自身のAWSアカウント内に開発環境をデプロイできます。また、システム管理者は共有したAWS環境のバージョンや使用履歴を一元管理できます。
正解とされている選択肢の文章が不自然
公開日 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
問題の本質を考えると「同一のスタック作成できるとこ」よりも、 「同一のスタックを利用する」ことに重きを置いているように感じたからです。