今回、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に置いておきました。

suz-lab-centos-ami

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら