CloudFormation †
スタックドリフト(実際のリソースとコードの差違)の解決 †
リファクタリング †
Former2: CloudFormation, Terraform, Troposphere のテンプレートを生成するサービス †
リソースのインポート †
パスワード/ランダム文字列生成 †
StackSets: 複数のAWSアカウント、複数リージョンのリソースを一度のオペレーションで操作 †
- 例
- 同時アカウントの最大数:1、20アカウントを対象に一つIAM roleを作る場合。約13分かかった。
スタックインスタンスからAWSアカウントを削除する †
- StackSetの「Failure tolerance: 0」だと、どれか一つのAWSアカウントで失敗するとそこで中断してしまう。
- スタックインスタンスに削除したAWSアカウントが含まれているとそこで失敗する。
- ステータス: OUTDATED
- 状態の理由: Cancelled since failure tolerance has exceeded
CloudFormer: 既存のリソースをCloudFormationへ変換 †
- VPCとcloudtrailだけを選択して出力した例
{
"AWSTemplateFormatVersion": "2010-09-09",
"Resources": {
"vpc6c2d5a0b": {
"Type": "AWS::EC2::VPC",
"Properties": {
"CidrBlock": "172.31.0.0/16",
"InstanceTenancy": "default",
"EnableDnsSupport": "true",
"EnableDnsHostnames": "true"
}
},
"traildefault": {
"Type": "AWS::CloudTrail::Trail",
"Properties": {
"IncludeGlobalServiceEvents": true,
"IsLogging": "true",
"S3BucketName": "cloudtrail-bucket-example"
}
},
"dchpassoc1": {
"Type": "AWS::EC2::VPCDHCPOptionsAssociation",
"Properties": {
"VpcId": {
"Ref": "vpc****"
},
"DhcpOptionsId": "dopt-****"
}
}
},
"Description": ""
}
Mappings: key, value変換 †
- 例: AWS::Region マクロから、特定のAMI-IDを参照している
AWSTemplateFormatVersion: "2010-09-09"
Mappings:
RegionMap:
us-east-1:
HVM64: ami-0ff8a91507f77f867
HVMG2: ami-0a584ac55a7631c0c
us-west-1:
HVM64: ami-0bdb828fd58c52235
HVMG2: ami-066ee5fd4a9ef77f1
...
Resources:
myEC2Instance:
Type: "AWS::EC2::Instance"
Properties:
ImageId: !FindInMap [RegionMap, !Ref "AWS::Region", HVM64]
ベストプラクティス †
Drift: CloudFormation以外で行った操作の検出 †
- CloudFormation > スタックを選択 > ドリフトの検出
テンプレート検証エラーの解決 †
- 「Requires capabilities : [CAPABILITY_NAMED_IAM]」IAMリソースを使う場合、"CAPABILITY_NAMED_IAM" , "CAPABILITY_IAM" が必要
コスト見積 †
Stack毎に見積が出せる。
エディタ †
yamlとjsonが使える。
|
|