今回、CDPは最終的にはCloudFormationのテンプレートにしたいという声があったので、挑戦してみました。
まずはVPC(器)の構築です。
テンプレートはSUZ-LAB Formation VPC Basic (suz-lab_vpc-basic.json)になります。
実行すると下記のようにVPC(サブネット/ルーテチング/Network ACL)が構築されます。
詳細は、CloudFormationでVPCの構築の記事になります。
次はCDPのテンプレートです。
拡大解釈はしてますが、「Operational Firewallパターン」です。
テンプレートはSUZ-LAB Formation Operational Firewall (suz-lab_operational-firewall.json)になります。
実行すると下記のようにセキュリティグループが作成されます。
詳しくは、Operational Firewallパターンをオレオレ解釈してCloudFormationのテンプレートにしてみたの
記事になります。
機能要件のようなセキュリティグループについては「Functional Firewallパターン」で別途定義します。
そして、次もCDPのテンプレートです。
VPCの場合、必要になって来るNATインスタンス「OnDemand NATパターン」です。
テンプレートはSUZ-LAB Formation OnDemand NAT (suz-lab_ondemand-nat.json)になります。
実行すると下記のようにNATインスタンスとルーティングが作成されます。
NATインスタンスには、上記のセキュリティグループ(op-nat, op-ec2)を付与します。
詳細は、OnDemand NATパターンをCloudFormation化の記事になります。
踏み台サーバ(step)のテンプレートも用意しました。
テンプレートはSUZ-LAB Formation STEP (suz-lab_step.json)になります。
実行すると、下記のように踏み台サーバ(step)が作成されます。
踏み台サーバ(step)には、当然、上記のセキュリティグループ(op-step, op-ec2)を付与します。
最後に、上記を重ねて作成してみます。
テンプレートはSUZ-LAB Formation ALL (suz-lab_all.json)になります。
実行すると下記のようにVPC(サブネット、ルーティング、NetworkACL)、セキュリティグループ、
NATインスタンス、踏み台サーバ(step)がすべて作成されます。
(規模が大きくなるため、内容を少し割愛しています)
今回の内容をGitHubに置いておきました。