CloudFormation のベストプラクティスから 〇× クイズを作ってみた
AWS CloudFormation のベストプラクティス - AWS CloudFormation
AWS 認定試験対策になれば幸いです。
Q1. スタック内のリソースが増加しても常に単一のスタックのみを使用するべきであるか
答え
×
リソースのライフサイクルや所有権に応じたスタックを分割した方が管理しやすい場合もあります。
最初はすべてのリソースを 1 つのスタックに置いてもかまいませんが、スタックの規模が大きくなり範囲が拡大するにつれて、単一のスタックの管理は面倒で時間かかる場合があります。共通のライフサイクルと所有権を持つリソースのグループ化により、所有者は独自のプロセスやスケジュールを使用して、他のリソースに影響を与えることなくリソースのセットを変更できます。
Q2. あるスタックのリソースの値を他のスタックから参照できるか
答え
〇
CloudFormation ではクロススタック参照が可能です。
ライフサイクルと所有権に基づいて AWS リソースを整理するときに、別のスタックにあるリソースを使用するスタックを構築することもできます。
Q3. 複数の AWS 環境でテンプレートを再利用すべきではないか
答え
×
テンプレートを再利用することで環境を複製できます。
スタックとリソースをセットアップした後、テンプレートを再利用してインフラストラクチャを複数の環境に複製できます。
Q4. テンプレートを使用する前に検証するべきか
答え
〇
デプロイ前に検証することが推奨されています。
スタックの作成または更新にテンプレートを使用する前に、CloudFormation を使用してテンプレートを検証できます。テンプレートを検証することで、CloudFormation がリソースを作成する前に、依存関係の循環などの構文エラーや意味的エラーを捕捉するのに役立ちます。
Q5. スタック内のリソースを CloudFormation 以外から変更してもよいか
答え
×
CloudFormation 以外での変更は非推奨です。
スタックのリソースを CloudFormation 以外の方法で変更しないでください。変更するとスタックのテンプレートとスタックリソースの現在の状態の間で不一致が起こり、スタックの更新または削除でエラーが発生する場合があります。
Q6. スタックを更新する前に変更セットを使用した方がよいか
答え
〇
更新前に変更セットを作成することが推奨されています。
変更セットを使用して、変更が実行中のリソース、特に重要なリソースに与える可能性のある影響を確認できます。
Q7. テンプレート内ではすべての値をハードコードするべきであるか
答え
×
疑似パラメータなどを使用して柔軟性を高めることが推奨されています。
組み込み関数で擬似パラメータを使用すると、リージョンおよびアカウント間でスタックテンプレートのポータビリティが向上します。
Q8. テンプレートコードはリビジョン管理するべきであるか
答え
〇
Git リポジトリなどで管理することで変更を追跡できます。
リソースの変更を確認し正確な履歴を保持するには、コードの確認とリビジョン管理を使用します。この方法は、テンプレートの異なるバージョン間の変更を追跡するのに役立ちます。また、スタックリソースの変更を追跡するのにも役立ちます。また、履歴を保守することで、いつでもスタックをテンプレートの特定のバージョンに戻すことができます。
Q9. パラメータの入力値を制限することはできないか
答え
×
パラメータの入力値を制限することは可能です。
制約を使用すると、許可される入力値を記述することで CloudFormation がスタックを作成する前に無効な値を捕捉できます。
Q10. スタックを起動する前にクォータを確認するべきであるか
答え
〇
デプロイ前に関連するリソースタイプのクォータを確認することが推奨されています。
スタックを起動する前に、必要なすべてのリソースを AWS アカウントの制限に触れずに作成できることを確認します。
Discussion