Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS IaCの注目アップデート 2024年10月版

Kenji Kono
October 28, 2024

AWS IaCの注目アップデート 2024年10月版

2024年10月までの AWS Infrastructure as Code 関連の注目アップデートを解説しています。JAWS-UG 名古屋 「IaC運用のリアルを語りたい!LT大会」でお話させていただきました。
https://jawsug-nagoya.connpass.com/event/332005/

前回(2024年5月まで)はこちらです: https://speakerdeck.com/konokenj/iac-updates-2024-05

Kenji Kono

October 28, 2024
Tweet

More Decks by Kenji Kono

Other Decks in Programming

Transcript

  1. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Infrastructure as Code の 注⽬アップデート 2024年10⽉版 ⾼野 賢司 シニア ソリューション アーキテクト アマゾン ウェブ サービス ジャパン合同会社 2024/10/28 2
  2. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • Infrastructure as Code (IaC) の 技術⽀援をリード • Baseline Environment on AWS (BLEA) の 開発コアメンバー https://github.com/aws-samples/baseline-environment-on-aws @konokenj こ う の け ん じ ⾼野 賢司 シニア ソリューション アーキテクト @名古屋 アマゾン ウェブ サービス ジャパン合同会社
  3. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. アップデート紹介の履歴 重要なアップデートは繰り返し紹介します 過去に公開した資料と重複するスライドにはラベルをつけています → 4 2024/5/22 版 https://speakerdeck.com/konokenj/iac-updates-2024-05 再掲 初出: 2024/5/22
  4. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. IaC 全般 / 開発ツールのアップデート 6
  5. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. IaC は ⽣成AI とクラウドをつなぐ鍵 • AWS CloudFormation, AWS CDK (TypeScript, Python), HashiCorp Terraform (HCL) をサポート 7 Amazon Q Developer が GA / IaC をサポート 2024/4/30 ⼀般提供開始 (GA) AWS CDK の例 AWS CloudFormation の例 https://aws.amazon.com/about-aws/whats-new/2024/04/amazon- q-developer-generally-available/ Amazon CodeWhisperer にて AI を活⽤した新しいコード修正、 IaC サポート、および Visual Studio との統合提供を開始 https://aws.amazon.com/jp/blogs/news/amazon-codewhisperer- offers-new-ai-powered-code-remediation-iac-support-and- integration-with-visual-studio/ 再掲 初出: 2024/5/22
  6. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • IaC コードのセキュリティ スキャンをサポート • ⾃動スキャンは Pro Tier のみ • 検出対象は Amazon CodeGuru Detector Library で確認できる https://docs.aws.amazon.com/codegur u/detector-library/typescript/tags/aws- cdk/ 8 Amazon Q Developer が GA / IaC をサポート 2024/4/30 ⼀般提供開始 (GA) https://aws.amazon.com/about-aws/whats-new/2024/04/amazon- q-developer-generally-available/ Amazon CodeWhisperer にて AI を活⽤した新しいコード修正、 IaC サポート、および Visual Studio との統合提供を開始 https://aws.amazon.com/jp/blogs/news/amazon-codewhisperer- offers-new-ai-powered-code-remediation-iac-support-and- integration-with-visual-studio/ 再掲 初出: 2024/5/22
  7. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • AWS マネジメントコンソールの 操作から AWS CLI コマンド、 CDK コード (Java, Python, TypeScript), CloudFormation テンプレートを⽣成 • ⽣成されたコードを開発の出発点として 改善していくことを推奨 • CDK / CloudFormation コード⽣成回数は Amazon Q Developer の Tier に依存 ※ CLI コマンドの⽣成回数は無制限 • すべての商⽤リージョンの EC2, VPC, RDS コンソールで利⽤可能 10 Amazon Q Developer Console-to-Code https://aws.amazon.com/jp/about-aws/whats- new/2024/10/general-availability-console-to-code-generate-code/ 2024/10/10 ⼀般提供開始 マネジメントコンソールの 右上から記録を開始 記録した操作を選択して コードを⽣成 ⼀部のリソースは作成前に コードをプレビュー可能
  8. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • AWS リソースをスキャンして CloudFormation テンプレートを ⽣成し、インポート可能 • 無料で利⽤可能 • スキャン回数やリソース数に 制限あり *1 • 対応リソースの⼀覧ページを提供 (リソースインポート、 ドリフト検出、IaC Generator) *2 11 IaC Generator 2024/2/5 ⼀般提供開始 *1 ... https://docs.aws.amazon.com/AWSCloudFormation/latest/ UserGuide/generate-IaC.html#generate-template-considerations *2 ... https://docs.aws.amazon.com/AWSCloudFormation/latest/ UserGuide/resource-import-supported-resources.html AWS CloudFormation にアプリケーション全体をインポート https://aws.amazon.com/jp/blogs/news/import-entire-applications- into-aws-cloudformation/ 再掲 初出: 2024/5/22
  9. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • リソーススキャンの結果に内訳が 表⽰されるように • ⽣成したテンプレートを AWS Infrastructure Composer で グラフィカルに確認可能に • ⽣成したテンプレートを AWS CDK App に変換するための ⼿順とコマンドが表⽰されるように (cdk migrate) 12 IaC Generator で リソースの確認が容易に 2024/8/22 ⼀般提供開始 CloudFormation simplifies resource discovery and template review in the IaC Generator - AWS https://aws.amazon.com/jp/about-aws/whats- new/2024/08/cloudformation-resource-discovery-template-review- iac-generator/ ↑ スキャンの概要 ← テンプレート
  10. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS CDK のアップデート 2024年5⽉ ~ 10⽉ 16
  11. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. CDK に移⾏するための CLI コマンド。 3種類の⽅法で CDK App (コード) を ⽣成し、インポートまで補助 • --from-scan は IaC Generator の リソーススキャンを使⽤ • 最⼤ 100リソースまで⽣成可能 • 関連リソースはすべて含まれる • --from-stack はデプロイ済みの CloudFormation スタックを使⽤ • --from-path はローカルの CloudFormation テンプレートを使⽤ • L1 コンストラクトで記述される • ⽣成された README.md を読もう︕ 17 $ cdk migrate 2024/2/2 プレビュー開始 CDK Migrate: AWS CDK への移⾏コマンドの発表 https://aws.amazon.com/jp/blogs/news/announcing-cdk-migrate-a- single-command-to-migrate-to-the-aws-cdk/ AWS CDK v2.126.0 ... --from-scan オプションを追加 AWS CDK v2.100.0 ... migrate コマンドを追加 (experimental) 再掲 初出: 2024/5/22
  12. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. CDK に既存のリソースを インポートするCLI コマンド。 • 通常はインポートするリソースを プロンプトで⼊⼒するが 物理名 (bucketName 等) を コードで指定すると⾃動⼊⼒される CDK Migrate と CDK Import の⽐較︓ • CDK Migrate ... 新規 CDK アプリの ためにコードを⽣成 • CDK Import ... 既存 CDK アプリに リソースをインポート ※ コードは⾃分で書く必要がある 18 $ cdk import 2023/10/7 ⼀般提供開始 CDK Migrate: AWS CDK への移⾏コマンドの発表 https://aws.amazon.com/jp/blogs/news/announcing-cdk-migrate-a- single-command-to-migrate-to-the-aws-cdk/ AWS CDK v2.100.0 ... import コマンドが stable に AWS CDK v2.20.0 ... import コマンドを追加 (experimental) 再掲 初出: 2024/5/22
  13. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • $ cdk deploy --no-rollback で CloudFormation の⾃動ロールバックを 無効化したデプロイが失敗した場合に ⼿動でロールバックを⾏うコマンド • $ cdk rollback --orphan <logicalid> で 指定したリソースをスキップ可能 • $ cdk rollback --force は ロールバックの初回実⾏、 失敗したリソースの特定、 スキップするリソースの指定を⾃動で⾏う 20 $ cdk rollback aws-cdk v2.162.0 (2024/10/11) https://github.com/aws/aws-cdk/releases/tag/v2.162.0 $ npx cdk deploy --no-rollback Console $ npx cdk rollback Console 失敗 スタックの状態が CREATE_FAILED / UPDATE_FAILED の場合は RollbackStack API が呼ばれる https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RollbackStack.html スタックの状態が UPDATE_ROLLBACK_FAILED の場合は ContinueUpdateRollback API が呼ばれる https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ContinueUpdateRollback.html Note
  14. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • Bootstrap で作成された S3 バケットに アップロードされたアセットのうち、 CloudFormation スタックから 参照されていないものを削除する (ガベージコレクション) • 実験的機能のため利⽤には注意が必要 • 未使⽤のアセットにタグ付けした後に 削除を⾏う。--action オプションで プロセスを個別に実⾏することも可能 21 $ cdk gc aws-cdk v2.163.0 (2024/10/11)🔷 Experimental https://github.com/aws/aws-cdk/releases/tag/v2.163.0 https://github.com/aws/aws-cdk/blob/main/packages/aws-cdk/README.md#cdk-gc • --action [print, tag, delete-tagged, full] ... 実⾏するアクションの種類 (default: full) • --rollback-buffer-days ... 削除タグがついてから実際に削除されるまでの⽇数 • --created-buffer-days ... アセットが作成されてから削除可能になるまでの⽇数 • --confirm ... 削除実⾏前にプロンプトを表⽰する (default: true) Options
  15. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • CloudFormation リソースを使⽤して グローバルテーブルを作成 (従来はカスタムリソースでの実装) • GSI やオートスケーリングを簡単に設定 • レプリカテーブルごとに Contributor Insights, 削除保護, PITR, テーブルクラス, キャパシティなどを きめ細かく制御可能 • インポートやドリフト検出に対応 22 aws_dynamodb.TableV2 コンストラクト aws-cdk v2.95.0 (2023/9/8) https://github.com/aws/aws-cdk/releases/tag/v2.95.0 A new and improved AWS CDK construct for Amazon DynamoDB tables https://aws.amazon.com/jp/blogs/devops/a-new-and-improved-aws-cdk-construct- for-amazon-dynamodb-tables/ import * as cdk from 'aws-cdk-lib'; import * as dynamodb from 'aws-cdk-lib/aws-dynamodb'; const app = new cdk.App(); const stack = new cdk.Stack(app, 'Stack', { env: { region: 'us-west-2' } }); const globalTable = new dynamodb.TableV2(stack, 'GlobalTable', { partitionKey: { name: 'pk', type: dynamodb.AttributeType.STRING }, contributorInsights: true, pointInTimeRecovery: true, replicas: [ { region: 'us-east-1', tableClass: dynamodb.TableClass.STANDARD_INFREQUENT_ACCESS, pointInTimeRecovery: false, }, { region: 'us-east-2', contributorInsights: false, }, ], }); // This is an ITableV2 instance for the replica table in us-east-1 const replica = globalTable.replica('us-east-1'); TypeScript
  16. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • 従来の Vpc コンストラクトは ⾃動的にサブネットや IP アドレスを 構成するため、使⽤が簡単な反⾯、 細かいカスタマイズがしづらかった • VpcV2 では⾼度なカスタマイズが可能 • Vpc に複数の CIDR を追加 • サブネットごとにサイズ変更、AZ 指定 • VPC IPAM との連携 • ルートテーブルのカスタマイズ • Vpc の置き換えではなく使い分けを推奨 23 @aws-cdk/aws-ec2-alpha VpcV2 コンストラクト aws-cdk v2.154.0 (2024/8/22) 🔷 Experimental Full control over VPC and subnet configuration · aws/aws-cdk-rfcs https://github.com/aws/aws-cdk-rfcs/blob/main/text/0507-subnets.md API https://docs.aws.amazon.com/cdk/api/v2/docs/aws-ec2-alpha-readme.html const stack = new Stack(); const myVpc = new VpcV2(this, 'Vpc', { secondaryAddressBlocks: [ IpAddresses.amazonProvidedIpv6({ cidrBlockName: 'AmazonProvidedIp'}), ], }); new SubnetV2(this, 'subnetA', { vpc: myVpc, availabilityZone: 'us-east-1a', ipv4CidrBlock: new IpCidr('10.0.0.0/24'), ipv6CidrBlock: new IpCidr('2a05:d02c:25:4000::/60'), subnetType: SubnetType.PRIVATE_ISOLATED, }) TypeScript
  17. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • aws-cdk-lib に含まれる カスタムリソースの設定を⼀括変更できる (内部的には Aspect を使⽤) • addRetentionLifetime ... CloudWatch Logs の保存期間を指定 • addRemovalPolicy ... CloudWatch Logs の削除ポリシーを指定 • addLambdaRuntime ... 同じランタイムファミリーのバージョンを変更 24 custom_resources.CustomResourceConfig クラス aws-cdk v2.154.0 (2024/8/22) 🔷 Experimental https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.custom_resources-readme.html#custom-resource-config import * as cdk from 'aws-cdk-lib'; import * as logs from 'aws-cdk-lib/aws-logs'; import * as lambda from 'aws-cdk-lib/aws-lambda'; import { CustomResourceConfig } from 'aws-cdk-lib/custom-resources'; const app = new cdk.App(); const config = CustomResourceConfig.of(app); config.addLogRetentionLifetime(logs.RetentionDays.TEN_YEARS); config.addRemovalPolicy(cdk.RemovalPolicy.DESTROY); config.addLambdaRuntime(lambda.Runtime.PYTHON_3_12); TypeScript
  18. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • StringParameter.fromStringParameterArn で 他の AWS アカウントのパラメータを参照 • Parameter Store の共有パラメータの制約 • Advanced Parameter 階層であること • パラメータが同じリージョンにあること。 同⼀アカウント内のクロスリージョン参照は crossRegionReferences を使⽤ • AWS Resource Access Manager (RAM) での準備 1. 共有アカウントで、パラメータと消費アカウントを 指定して AWS RAM リソース共有を作成 2. 消費アカウントで、リソース共有の招待を承認 25 SSM Parameter Store のクロスアカウント共有 aws-cdk v2.154.0 (2024/8/22) https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/parameter-store-shared-parameters.html https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.custom_resources-readme.html#custom-resource-config const sharedParam = ssm.StringParameter.fromStringParameterArn( this, 'SharedParam', 'arn:aws:ssm:us-east-1:1234567890:parameter/dummyName' ); // the value can be accessed via sharedParam.stringValue Tags.of(bucket).add('Hoge', sharedParam.stringValue); TypeScript
  19. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 新しく stable になったモジュール • appconfig (v2.130.0) • apigatewayv2 (v2.112.0) • synthetics (v2.99.0) • batch (v2.96.0) • appsync (v2.60.0) 新しい L2 コンストラクト(⼀部) • ecs.ServiceManagedVolume (v2.122.0) • cloudfront.KeyValueStore (v2.118.0) • stepfunctions.DistributedMap (v2.127.0) • codedeploy.EcsDeploymentGroup (v2.50.0) • codebuild.Fleet (v2.145.0) • codepipeline.Pipeline (PipelineType.V2 / v2.133.0 からデフォルト) 28 CDK の最新情報は X で配信しています AWS CDK の アップデート情報を つぶやいています #cdk_releases * v2.29.0 (2022年6⽉) から https://twitter.com/hashtag/ cdk_releases?src=hashtag_click&f=live Community News https://x.com/konokenj
  20. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 多くの⽇本⼈が Contributor / Community Reviewer として 活躍しています 29 AWS CDK への 積極的な貢献 ありがとう ございます︕ https://github.com/aws/aws-cdk/ blob/main/CONTRIBUTORS.md https://github.com/aws/aws-cdk/ wiki/CDK-Community-PR-Reviews Community News
  21. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS CDK にコントリビュートする 流れやテクニックを ワークショップで体験できる Top Contributor の go-to-k さんと badmintoncryer さんによって作成 30 AWS CDK Contribute Workshop https://jaws-ug-cdk.github.io/cdk-conf-2024-contribute-workshop/ ※ AWS がメンテナンスしているワークショップではありません Community News
  22. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS CloudFormation のアップデート 2024年5⽉ ~ 10⽉ 33
  23. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • これまでは依存リソースが安定化す るまで待ってから次を作成していた • 暗黙的な依存関係(Ref, GetAtt)の 場合は安定化を待たずに 次のリソースの作成を続け、 必要ならリトライする 楽観的な安定化を導⼊ • あわせて詳細ステータスが導⼊され リソースの作成や安定化待ちの 状態を識別可能に 34 CloudFormation は 楽観的な安定化により 最⼤ 40% ⾼速化 AWS CloudFormation のデプロイを楽観的な安定化で⾼速化した⽅法 https://aws.amazon.com/jp/blogs/news/how-we-sped-up-aws- cloudformation-deployments-with-optimistic-stabilization/ 2024/3/11 ⼀般提供開始 再掲 初出: 2024/5/22
  24. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • CloudFormation が設定エラーを より早く返すようになった • これまでは誤ったプロパティ名や 値 *1 を指定した場合でも そのリソースの操作が⾏われるまで エラーが返らなかった • 最初のリソース操作の前に 検証が⾏われるようになり、 試⾏錯誤の時間を短縮 35 CloudFormation が スタック操作を 事前に検証 *1 ... プロパティ名の検証が主体。値の検証の有無や条件は 各リソースごとに異なる AWS CloudFormation でスタック操作の新しい検証チェックにより 開発からテストまでのサイクルを⾼速化 https://aws.amazon.com/jp/about-aws/whats-new/2024/03/aws- cloudformation-new-validation-checks-stack-operations/ 2024/3/14 ⼀般提供開始 存在しないプロパティ名 "QName" を指定した場合のエラー表⽰ 再掲 初出: 2024/5/22
  25. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • 変更セットで変更前/後の値を 確認できるように • !Ref や !GetAtt での参照や SSM Parameter Store, Secrets Manager の動的参照も 解決した上で差分を計算する • AWS CLI や SDK の場合は DescribeChangeSet API に --include-property-values を指定 36 CloudFormation 変更セットの 可視性を強化 https://aws.amazon.com/jp/about-aws/whats- new/2024/04/aws-cloudformation-changesets-enhanced- change-visibility-deployments/ 2024/4/16 ⼀般提供開始 SSM Parameter Store の値を解決した結果 EC2 インスタンスが置換されることを検知 再掲 初出: 2024/5/22
  26. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • CloudFormation で失敗した操作の CloudTrail のイベントを すぐに参照可能に • 権限不⾜などのエラーの原因を 特定しやすくなった 37 CloudFormation と CloudTrail が連携し 問題の特定が容易に https://aws.amazon.com/about-aws/whats- new/2024/05/aws-cloudformation-deployment- troubleshooting-aws-cloudtrail-integration/ 2024/5/23 ⼀般提供開始 AWS CloudFormation コンソールで「根本原因を検出」すると・・・ AWS CloudTrail コンソールが適切な条件を埋め込んだ状態で表⽰される 下線部を クリック
  27. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • Amazon S3 バケットが空でないときなど、 リソースが削除できずに スタックの削除に失敗した場合、 強制削除が可能に • DELETE_FAILED 状態でのみ使⽤可 (⼀度削除に失敗したあと) • 強制削除をしても、 削除に失敗しているリソースは消えない (削除は試⾏するが失敗したらスキップ) • --retain-resources の場合は削除を試⾏しない 38 CloudFormation スタックの強制削除 https://aws.amazon.com/about-aws/whats- new/2024/05/aws-cloudformation-dev-test-cycle-new- parameter-deletestack-api/ 2024/5/23 ⼀般提供開始 $ aws cloudformation delete-stack --stack-name s3-delete --deletion-mode FORCE_DELETE_STACK Console
  28. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • CloudFormation カスタムリソースの タイムアウトが以前の 1時間固定から 任意の時間を指定可能に • ServiceTimeout プロパティで指定 • 1秒単位で最⼤ 3600秒(1時間) • 開発中でコードにバグがある場合など、 リソースプロバイダー(Lambda 関数または SNS Topic 経由)が処理結果を 正常に返さないときの待ち時間を短縮できる 39 CloudFormation カスタムリソースの タイムアウトを設定可能に https://aws.amazon.com/jp/about-aws/whats-new/2024/06/aws-cloudformation-dev-test-cycle-timeouts-custom-resources/ 2024/6/10 ⼀般提供開始 最⼤ 1時間 待機 リソース プロバイダー (Lambda 関数) Amazon S3 Bucket イベント時に呼び出し Create / Update / Delete 処理結果を取得 処理結果を JSON ファイル として格納 AWS CloudFormation カスタムリソースを含む テンプレート
  29. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • CloudFormation テンプレートを Git リポジトリに push するだけで 継続的なデプロイが可能 • AWS 外に認証情報を保持しない • GitHub, GitHub Enterprise, GitLab, BitBucket をサポート • EventBridge に同期ステータスの 変更イベントが発⾏される • 同期の完了や失敗を通知可能 40 CloudFormation Git Sync Build your event-driven application using AWS CloudFormation Git sync status changes - AWS https://aws.amazon.com/jp/about-aws/whats-new/2024/07/build-event-driven-application-aws-cloudformation/ Automate safe AWS CloudFormation deployments from https://aws.amazon.com/jp/blogs/devops/automate-safe-aws-cloudformation-deployments-from-github/ 2023/11/26 ⼀般提供開始 * 2024/7/29 追加。イベントスキーマはこちら https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/event-detail-resource-sync-status-change.html 再掲 初出: 2024/5/22
  30. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • スタックの変更内容を プルリクのコメントとして⾃動投稿 (⾮同期) • リソースの追加、変更、削除の 概要や置換の有無、 変更前後の値などを確認できる 41 CloudFormation Git Sync がプルリクに 変更内容を⾃動投稿 AWS CloudFormation Git sync now supports pull request workflows to review your stack changes - AWS https://aws.amazon.com/jp/about-aws/whats-new/2024/09/aws-cloudformation-git-sync-supports-pull-request-workflows/ 2024/9/20 ⼀般提供開始 新規 / 既存の Git Sync で有効化可能
  31. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • CloudFormation テンプレートの ベストプラクティスと 潜在的なエラーをチェックするツール • CloudFormation Registry Resource Provider Schemas を使⽤して より⾼精度な検証が可能に • 100 以上のルールがリライトされ JSON スキーマによる共通ロジックを 使⽤可能に • リージョンごとのリソースタイプの 検証をサポート 42 AWS CloudFormation Linter (cfn-lint) v1 詳細と移⾏⽅法はこちら↓ AWS CloudFormation Linter (cfn-lint) v1 | AWS DevOps Blog https://aws.amazon.com/jp/blogs/devops/aws-cloudformation-linter-v1/ 2024/6/19 ⼀般提供開始 https://github.com/aws-cloudformation/cfn-lint GitHub Action も提供
  32. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 43 CloudFormation に RetainExceptOnCreate 削除ポリシーを追加 https://aws.amazon.com/jp/about-aws/whats-new/2023/07/aws-cloudformation-deletion-policies-dev-test-cycle/ 2023/7/31 ⼀般提供開始 AWS::S3::Bucket AWS::SQS::Queue Create → ✅ Success Update → ❌ Fail Delete → Skip DeletionPolicy: Retain の場合 使われていないのに残る AWS::S3::Bucket AWS::SQS::Queue Create → ✅ Success Update → ❌ Fail Delete → ✅ Success DeletionPolicy: RetainExceptOnCreate の場合 残らない ロールバック︕ でも Retain なのでスキップ ロールバック︕ 直前の操作が Create なので削除 • リソースを作成したスタック操作がロールバックされるときにのみ対象リソースを削除し、 それ以外のときは Retain と同じようにリソースを不慮の削除から保護する削除ポリシー
  33. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Thank you! Kenji Kono @konokenj 63