NATインスタンスを生成する部分の手直しが必要なため、先にELBを配置しておきます。
ELBの生成
ELBは単体でおけばいいですから、サクッと置いてしましましょう。
"ElasticLoadBalancer": {
"Type": "AWS::ElasticLoadBalancing::LoadBalancer",
"Properties": {
"AvailabilityZones": { "Fn::GetAZs": "" },
"CrossZone" : "true",
"Listeners": [ {
"LoadBalancerPort": "80",
"InstancePort": "80",
"Protocol": "HTTP"
} ],
"HealthCheck": {
"Target": "HTTP:80/",
"HealthyThreshold": "3",
"UnhealthyThreshold": "5",
"Interval": "30",
"Timeout": "5"
}
}
},
"InstanceSecurityGroup": {
"Type": "AWS::EC2::SecurityGroup",
"Properties": {
"GroupDescription": "Enable HTTP access on the configured port",
"SecurityGroupIngress": [
{ "IpProtocol": "tcp", "FromPort": "80", "ToPort": "80", "CidrIp": "0.0.0.0/0" }
]
}
}
ヘルスチェックは、
健康判定に3発、不健康に5発の設定でチェック間隔は30秒としました。
・1.5分間通信可能なら「健康」で通信開始
・2.5分通信できない場合には、「不健康」で通信を切断
セキュリティ・グループは、
インバウンドでHTTPだけ設定しています、アウトバウンドはWEBサーバゾーンのセキュリティ・グループ間の設定を別途追加が必要ですね。(Circular dependenciesの関係)