AWS CloudFormationtとは
AWS CloudFormationは、AWSのシステム構成をテンプレート化し、管理、修正を容易にする、Amazon Web Services リソースのモデル化およびセットアップに役立つサービスです。テンプレート(JSON形式)は1回作成すると、同じ構成を何度も構築できます。
アップデート
リソースインポートでCloudFormationレジストリタイプがサポートされるようになりました。 (AWSニュースより) レジストリにAWS以外のリソースおよびプライベートリソースなどのリソースタイプをインポートできるようになります。
特徴
CloudFormationレジストリは、AWSとサードパーティーのリソースの管理をモデル化し自動化しやすくします。
CloudFormationレジストリには、CloudFormationアカウントで使用できるプライベートとパブリックの両方のリソースが表示されます。
プライベートリソースプロバイダー AWSアカウントで使用するために明示的に登録したリソースプロバイダーです。自分で作成するか共有されているリソースプロバイダーを利用します。 CloudFormation CLIを使用して、プライベートリソースプロバイダーを作成できます。
パブリックリソースプロバイダー 特定のAWSサービスリソースを管理するためにAWSによって提供されるプロバイダーです。
CloudFormationへのリソースプロバイダーの登録
プライベートリソースプロバイダーを使用するには、まず使用するアカウントとリージョンでCloudFormationに登録する必要があります。リソースプロバイダーを登録すると、そのアカウントとリージョンのCloudFormationレジストリに表示され、スタックテンプレートで使用できます。
リソースプロバイダーを登録するにはAWS CLIのregister-typeコマンド、またはCloudFormation CLIのsubmitコマンドを使用します
- リソースプロバイダーを登録するためのIAMアクセス許可 リソースプロバイダーの登録の一部として、スキーマハンドラーパッケージを含むS3バケットを指定します。 CloudFormationがこのS3バケットとスキーマハンドラーパッケージにアクセスするには、次のIAM権限が必要です。
s3:ListBucket
s3:GetObject
S3バケットに対するこれらの権限をcloudformation.amazonaws.com
に付与します ポリシーの例(Using the AWS CloudFormation registryより)
ArtifactCopyPolicy: Type: AWS::S3::BucketPolicy Properties: Bucket: !Ref ArtifactBucket PolicyDocument: Version: "2012-10-17" Statement: - Sid: Allow CloudFormation to copy artifacts from the bucket Effect: Allow Principal: Service: cloudformation.amazonaws.com Action: - s3:ListBucket - s3:GetObject Resource: - !Sub "arn:${AWS::Partition}:s3:::${ArtifactBucket}" - !Sub "arn:${AWS::Partition}:s3:::${ArtifactBucket}/*"
- 使用するリソースプロバイダーのバージョン指定
同じリソースプロバイダーの複数のバージョンを登録することができます。 CloudFormationオペレーションに使用するリソースプロバイダーのバージョンを指定できます。
AWS CLIを使用して、使用するリソースプロバイダーのバージョンを指定する例 (Using the AWS CloudFormation registryより)
aws cloudformation set-type-default-version --type RESOURCE --type-name My::Resource::Example --version-id 00000003
リソースプロバイダーのバージョンを指定するには、set-type-default-versionコマンドを使用します。
CloudFormationで登録済みリソースプロバイダーを表示する
アカウントにリソースプロバイダーを登録すると、CloudFormationコンソールでリソースプロバイダーの詳細を表示できます。 プライベートリソースプロバイダーは、CloudFormationレジストリのプライベートセクションに表示されます。
AWS Configにリソースタイプを記録する
AWS Configがプライベートリソースタイプを自動的に追跡しリソースへの変更を記録するように指定できます。 これによりプライベートリソースタイプの構成ルールを記述して構成のベストプラクティスを確認することができます。