本文へスキップ
BecomeCoder

AWSコース · 第13章 開発者ツールと自動化 ― 作って届けるまでを速くする · レッスン63

IaCの実際 ― CloudFormation・CDK・そのほかの開発支援

導入

第2章で「インフラをコードで書く(IaC)」という方法を紹介しました。ここでは、実際にどんなサービスでそれを行うのかを見ていきます。

説明

AWS CloudFormationは、AWSリソースの構成をテンプレート(YAMLまたはJSON)で書き、その通りの環境をまとめて作成・更新・削除できるサービスです。まとまりをスタックと呼び、スタックごと削除すれば作ったリソースも一括で片付きます。

Resources:
  MyBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: my-example-bucket

同じ構成を何度でも再現でき、変更の履歴もコードとして残せるのがIaCの価値です。関連サービスも押さえておきましょう。

サービス役割
AWS CDK(Cloud Development Kit)TypeScriptやPythonなどプログラミング言語でインフラを書き、CloudFormationテンプレートを生成する
AWS SAM(Serverless Application Model)サーバーレス構成(Lambda・API Gateway・DynamoDB)を短く書くためのCloudFormationの拡張
AWS AmplifyWeb・モバイルアプリのフロントエンドと、その裏側(認証・API・ホスティング)をまとめて構築・公開する
AWS Cloud9ブラウザ上で使える統合開発環境(IDE)。環境構築なしにコードを書ける
AWS Systems Manager稼働中のサーバーへのパッチ適用・コマンド実行・設定値の保管(パラメータストア)などの運用作業を自動化(第8章)
flowchart LR
    Code["CDK(好きな言語で記述)"] --> Tmpl["CloudFormationテンプレート"]
    SAM["SAM(サーバーレス向けの短い記法)"] --> Tmpl
    Tmpl --> Stack["スタックとして環境を構築"]
    Stack --> R["VPC / EC2 / RDS / S3 …"]

手作業(マネジメントコンソール)との違いは「再現性」です。人が画面をクリックして作った環境は、同じものをもう一度作れる保証がありません。コードにしておけば、開発・検証・本番で寸分違わぬ環境を作れます。

読んでみよう

「AWS標準のIaC=CloudFormation」「プログラミング言語で書く=CDK」「サーバーレス特化=SAM」。IaCの利点は「再現性・自動化・変更履歴」の3点セットで問われます。