こんにちは。いっちー(@tetestkake_blog)です!
今回はAWSのCloudFormationを使用してVPCを構築する方法を解説します!
CloudFormationを使用すると、jsonやyamlで定義したファイルをアップロードするだけで、AWSリソースを自動で作成してくれます。
ハンズオン形式でCloudFormationの使い方を見ていきましょう。

インフラの複製やコード管理化など、利点が非常に高いサービスです!
CloudFormationとは?
yamlやjsonでインフラを定義するとAWS環境の構築をしてくれるサービスです。
また、AWS Cloud Development Kit (AWS CDK) を使用すると、TypeScript、Python、Java、.NET を使用してクラウド環境を定義できます。
CloudFormaionを使用するメリット
CloudFormaionを使用すると、以下のようなメリットがあります。

インフラをコード化できるため、バージョン管理(Gitなど)が可能となるのはメリットが大きいですね!
VPC構築ハンズオン
ここからは実際にVPCをCloudFormationで構築していくハンズオンです。
以下の手順でVPCを構築します。
- インフラ構成yamlファイルを作成
- コンソールからyamlをアップロードしてVPCを作成
- スタックを削除して作成したリソースを削除
Step 1. インフラ構成yamlファイルを作成
VPC構築用のyamlファイルを作成します。
create_vpc.yaml
# 任意。お作法として指定
AWSTemplateFormatVersion: "2010-09-09"
Parameters:
VpcName:
Type: String
# デフォルトに値を設定すると、コンソールで値が入力された状態になる
Default: "sample-vpc"
# スタックに含めるリソースを宣言
Resources:
# Logical ID
# 他のリソースから参照する場合はこのIDを利用
SampleVPC:
# Resource type
# service-provider::service-name::data-type-name
Type: AWS::EC2::VPC
Properties:
# CIDRブロック
CidrBlock: 10.0.0.0/16
Tags:
# VPCの名前
- Key: Name
# ParametersのVpcNameを読み込む
Value: !Ref VpcName

上記yamlファイルはgithubにもアップロードしてあります!
Step 2. コンソールからyamlをアップロードしてVPCを作成
作成したyamlファイルをコンソールからアップロードして、実際にVPCを作成します。
CloudFormation > スタック > スタックの作成 > 新しいリソースを利用(標準)
から作成します。

以下の項目を設定します。
- テンプレートの準備
- テンプレートの準備完了
- テンプレートソース
- テンプレートファイルのアップロード
- テンプレートファイルのアップロード
- 先ほど作成したyamlファイルをアップロード

上記項目が設定できたら次へを押します。
スタックの詳細を指定では以下の項目を設定します。
- スタックの名前
- 任意の名前を入力
- VpcName
- 入力した名前がVPC名になる
- yamlでデフォルト値を定義したので、「sample-vpc」と既に入力されている

上記を入力して次へ進みます。
スタックオプションの設定画面では特に何も入力せず次へ進みます。
最後のレビュー画面で設定項目に問題がないことを確認して、「スタックの作成」ボタンをクリックします。
ステータスが「CREATE_IN_PROGRESS」から「CREATE_COMPLETE」になったら作成完了です。

VPCのコンソールに行き、VPCが新規作成されていたらOKです。

Step 3. スタックを削除して作成したリソースを削除
せっかく作成したVPCですが、削除してみましょう、
CloudFormationでは、スタックを削除すると作成したリソースも全て削除してくれます。
削除はスタックの詳細画面内「削除」ボタンから行います。

イベントのステータスが「DELETE_COMPLETE」になっていたらVPCの画面に行き、VPCが削除されていたら完了です。

ハンズオンはここまでです。お疲れ様でした!
さいごに
今回はAWSのCloudFormationを使ってVPCを構築する方法を解説しました。
CloudFormationを使用すると、インフラをコード管理できたり複製や管理が容易になったりとメリットがあります。
インフラ構築の機会にCloudFormationを使ってみてはいかがでしょうか?
お知らせ
にほんブログ村のランキングに参加しています。よろしければ下のボタンをポチッとしていただけると嬉しいです\(^^)/

参考資料
- AWS CloudFormationの特徴
- 【CloudFormation入門】5分と6行で始めるAWS CloudFormationテンプレートによるインフラ構築
- CloudFormationの全てを味わいつくせ!「AWSの全てをコードで管理する方法〜その理想と現実〜」 #cmdevio
コメント