AWS CloudFormation - AWS でのデプロイオプションの概要

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS CloudFormation

AWS CloudFormation は、YAML または JSON で表されるカスタムテンプレート言語を使用して、顧客がほぼすべての AWS リソースをプロビジョニングおよび管理できるようにするサービスです。テンプレートは CloudFormation スタックと呼ばれるグループにインフラストラクチャリソースを作成し、これらのリソースを完全に制御しながら、アプリケーションの運用に必要なすべてのコンポーネントを定義およびカスタマイズできます。テンプレートを使用すると、インフラストラクチャにバージョン管理を実装したり、インフラストラクチャを迅速かつ確実にレプリケートしたりできます。

CloudFormation では、ルートテーブルやサブネット設定などの低レベルコンポーネントから CloudFront ディストリビューションなどの高レベルコンポーネントまで、すべてのアプリケーションインフラストラクチャコンポーネントのプロビジョニングと管理をきめ細かく制御できます。 CloudFormation は、他の AWS デプロイサービスやサードパーティーツールで一般的に使用され、より特殊なデプロイサービスと組み合わせて CloudFormation 、インフラストラクチャコンポーネントへのアプリケーションコードのデプロイを管理します。

AWS は、CloudFormation サービスの基本機能に加えて、以下の拡張機能を提供しています。

  • AWS Cloud Development Kit (AWS CDK) は、TypeScript、JavaScript、Python、Java、または C#/ を使用して AWS インフラストラクチャをプログラムでモデル化するオープンソースのソフトウェア開発キット (SDK) です。NET。

  • AWS Serverless Application Model (AWS SAM) は、AWS でのサーバーレスアプリケーションの構築を簡素化するためのオープンソースフレームワークです。関数、API、データベース、イベントソースマッピングを表現するための省略構文を提供します。

表 1: AWS CloudFormation デプロイ機能

機能 説明
プロビジョニング

CloudFormation は、テンプレートで定義されているインフラストラクチャコンポーネントを自動的に作成および更新します。

CloudFormation テンプレートを使用したインフラストラクチャの作成の詳細については、AWS CloudFormation 「ベストプラクティス」を参照してください。

構成する

CloudFormation テンプレートは、すべてのインフラストラクチャコンポーネントをカスタマイズおよび更新するための広範な柔軟性を提供します。

テンプレートのカスタマイズの詳細については、「テンプレートCloudFormation の構造」を参照してください。

デプロイ

CloudFormation テンプレートを更新して、スタック内のリソースを変更します。アプリケーションアーキテクチャによっては、インフラストラクチャで実行されているアプリケーションバージョンを更新するために、追加のデプロイサービスが必要になる場合があります。

をデプロイソリューションとして使用する方法の詳細については、「 を使用した Amazon EC2 でのアプリケーションの AWS CloudFormationデプロイ」を参照してください。 CloudFormation

スケール CloudFormation はユーザーに代わってインフラストラクチャのスケーリングを自動的に処理しませんが、 CloudFormation テンプレートでリソースの自動スケーリングポリシーを設定できます。
モニタリング

CloudFormation は、テンプレートで定義されたインフラストラクチャの更新の成功または失敗をネイティブにモニタリングし、テンプレートで定義されたリソースが仕様を満たさない場合にモニタリングするためのドリフト検出を提供します。アプリケーションレベルのモニタリングとメトリクスには、追加のモニタリングソリューションが必要です。

がインフラストラクチャの更新をモニタリングする方法の詳細については、「スタックの更新の進行状況 CloudFormation のモニタリング」を参照してください。

次の図は、 の一般的なユースケースを示しています CloudFormation。ここでは、シンプルな 3 層ウェブアプリケーションの作成に必要なすべてのインフラストラクチャコンポーネントを定義する CloudFormation テンプレートが作成されます。この例では、 で定義されたブートストラップスクリプトを使用してアプリケーションの最新バージョン CloudFormation を Amazon EC2 インスタンスにデプロイしていますが、追加のデプロイサービスを と組み合わせることも一般的です CloudFormation (インフラストラクチャ管理およびプロビジョニング機能 CloudFormation にのみ使用)。インフラストラクチャの作成には、複数の CloudFormation テンプレートが使用されます。この図では、 CloudFormation を使用して、IAM ロール、VPCs、サブネット、ルートテーブル、セキュリティグループ、Amazon S3 バケットポリシーを含むすべてのインフラストラクチャコンポーネントを作成します。個別の CloudFormation テンプレートを使用して、アプリケーションアーキテクチャの各ドメインを構築します。

AWS CloudFormation ユースケース

AWS CloudFormation ユースケース