2つ目のインスタンスが始まる前に、1つのインスタンスを完全に作成してプロビジョニングする方法についてAWSサイトで素晴らしい文書を発見しました。 https://aws.amazon.com/blogs/devops/tag/cloudformation/page/2/CloudType "CreationPolicy"属性が機能しない
documenationは、CreationPolicy属性とcfn-signalを使用して、AWS CloudformationにInstance1が発生したことを通知します。私はコードを試した。それは動く。しかし、問題はInstance1が出現するのを待つのではなく、Instance2が最初に現れることです。これはコードなので、インスタンスが登場するときにスクリーンショットを添付しました。
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "EC2 Head Node Instance ",
"Resources": {
"EC2Instance1": {
"Type": "AWS::EC2::Instance",
"CreationPolicy" : {
"ResourceSignal" : {
"Timeout": "PT10M",
"Count" : "1"
}
},
"Properties": {
"ImageId": "ami-3723c04f",
"UserData":{
"Fn::Base64":{
"Fn::Join": ["", [
"<script>\n",
"cfn-signal.exe -e 0 ",
" --stack ", {"Ref" : "AWS::StackName"},
" --resource EC2Instance1",
" --region ", {"Ref" : "AWS::Region"}, "\n" ,
"</script>\n"
]
]
}
},
"Tags" : [
{"Key" : "Name", "Value" : "QRM Head Node"}
]
}
},
"EC2Instance2": {
"Type": "AWS::EC2::Instance",
"Properties": {
"ImageId": "ami-3723c04f",
"Tags" : [{"Key" : "Dependency", "Value" : "EC2Instance1"}
]
}
}
}
"DependsOn"属性を使用してEC2Instance1の後にEC2Instance2が現れることを確認している場合は、userdataセクションでcfn-signalを使用してEC1が起動したことを通知するのはどうですか? – Jason
'DependsOn'を使うと、EC2Instance2がEC2Instance1が"作成された "後に出現することを保証します。 一方、EC2Instance1で必要なソフトウェアのインストールなどを行う場合は、「cfn-signal」を使用できます。EC2Instance2は、インストールが完了した後にのみ表示されます。その場合、 'cfn-signal'を使用することができます。 – krisnik
あなたの質問に基づいて、私は "DependsOn"があなたの要求に適切に合っていると思います。 – krisnik