Instiq
第4章 · デプロイ·v2.1.0·更新 2026/6/28·読了目安 約8分

変更要約: in-scopeサービス網羅(軸B): s1にCodeArtifact/CloudShell、s3にAmplifyの定義・役割・選択基準を追記。

4.2IaC:CloudFormation と SAM

この節の要点

CloudFormation による宣言的なインフラ定義(スタック・テンプレート)と、サーバーレス向けの簡潔記法 AWS SAM、再現性のあるデプロイの利点を理解します。

インフラを手作業で作らず、テンプレートとしてコード化するのが Infrastructure as Code(IaC) です。AWS では CloudFormation が中核で、サーバーレスには SAM が便利です。

4.2.1CloudFormation と SAM

CloudFormation(YAML/JSON の宣言的テンプレートでリソースのスタックをデプロイ・再現性/バージョン管理)と、AWS SAM(Lambda/API Gateway/DynamoDB 向けの簡潔記法で、CloudFormation に変換される)の役割の違いを対比した図。
CloudFormation と SAM
  • CloudFormation:YAML/JSON の宣言的テンプレートでリソース群(スタック)をまとめてデプロイ。
  • AWS SAM:Lambda/API Gateway/DynamoDB などサーバーレス向けの簡潔記法。内部で CloudFormation に変換される。
  • IaC により再現性・バージョン管理・レビューが可能になり、環境差異(ドリフト)を抑えられる。

CloudFormation テンプレートは複数のセクションで構成されます。Parameters で入力値(環境名など)を受け取り、Resources でリソースを宣言、Outputs でスタックの出力(エンドポイント等)を公開、Mappings/Conditions で環境差を吸収します。変更を適用する前に 変更セット(Change Set) で「何が作成/更新/削除されるか」を確認でき、事故を防げます。手作業の変更でテンプレートと実体がずれた状態が ドリフト で、ドリフト検出で発見できます。SAMAWS::Serverless::Function などの短い記法でサーバーレスを表現し、デプロイ時に通常の CloudFormation へ展開されます。SAM CLI を使えば sam local でローカル実行・sam deploy でデプロイができ、内部では成果物を S3 にアップロードしてからスタックを更新します。同種のツールに、汎用プログラミング言語でテンプレートを生成する CDK もあります。

続きは無料登録で読めます

冒頭を無料で公開中。無料登録でこの節の全文と、第4章以降を含む全参考書・全問題集が読めます。