はじめに
今回は、CloudFormation
でKinesis Stream
作ろうとしたら失敗したので
対策したお話です。
作ろうとしたのは1個
ではなく、7個
です。
どうやら、非同期的に作成できるKinesis Stream
は5個
までのようです。
aws公式の資料はここです
CreateStream、DeleteStream、ListStreams は、1 秒間に最大 5 件のトランザクションを提供できます。
らしいです。
対策案1
-
CloudFormation
のスタックを分割する。 -
kinesis1.template
,kinesis2.template
のような感じに。
対策案2
-
CloudFormation
のスタックを分割する。` -
kinesis1.template
,kinesis2.template
のような感じに。 - 上記の
1
,2
をチェーン実行
する。
チェーン実行.template
{
"AWSTemplateFormatVersion" : "2010-09-09",
"Description" : "exec-chain",
"Resources" : {
"Bucket" : {
"Type" : "AWS::S3::Bucket"
},
"BucketPolicy" : {
"Type" : "AWS::CloudFormation::Stack",
"Properties" : {
"TemplateURL" : "https://s3-us-east-1.amazonaws.com/hoge/kinesis1.template",
"Parameters" : {
"BucketName" : { "Ref" : "Bucket" }
}
}
}
},
"Outputs" : {
"kinesis1" : {
"Value" : { "Fn::GetAtt" : ["BucketPolicy", "Outputs.kinesis1"]}
}
}
}
チェーン実行はこんな感じにしたらできます。
あとは、Create Stack
する間隔をあけれてあげれば良いです。
公式はこちら良い感じに待機してくれそうです。
おわりに
現状、対策1しかできていないですが、
今後、対策2も完成させて公開できればと思っております。
みなさま、運用していく中で、もっと良い方法あるよ!等ありましたら、ご教授ください。