AWS CloudFormationは、インフラストラクチャをコードで管理できる便利なツールです。この記事では、CloudFormationを使ってシンプルなVPCを作成する方法を解説します。
具体的には、VPC、サブネット、インターネットゲートウェイを含む基本的なネットワーク構成を構築します。
CloudFormationとは?
CloudFormationは、JSONまたはYAML形式で記述されたテンプレートを使って、AWSリソースを自動的にデプロイおよび管理できるサービスです。手動操作を削減し、一貫性のあるインフラ構築が可能になります。
作成するリソース
今回作成するテンプレートでは、以下のリソースを定義します:
- VPC
- パブリックサブネット
- インターネットゲートウェイ
- ルートテーブルとルート
サンプルテンプレート
以下はYAML形式のCloudFormationテンプレートの例です。
AWSTemplateFormatVersion: "2010-09-09"
Description: "Sample VPC with a public subnet and internet access"
Resources:
MyVPC:
Type: "AWS::EC2::VPC"
Properties:
CidrBlock: "10.0.0.0/16"
EnableDnsSupport: true
EnableDnsHostnames: true
Tags:
- Key: "Name"
Value: "MySampleVPC"
PublicSubnet:
Type: "AWS::EC2::Subnet"
Properties:
VpcId: !Ref MyVPC
CidrBlock: "10.0.1.0/24"
MapPublicIpOnLaunch: true
AvailabilityZone: !Select [ 0, !GetAZs "" ]
Tags:
- Key: "Name"
Value: "PublicSubnet"
InternetGateway:
Type: "AWS::EC2::InternetGateway"
Properties:
Tags:
- Key: "Name"
Value: "MyInternetGateway"
AttachGateway:
Type: "AWS::EC2::VPCGatewayAttachment"
Properties:
VpcId: !Ref MyVPC
InternetGatewayId: !Ref InternetGateway
PublicRouteTable:
Type: "AWS::EC2::RouteTable"
Properties:
VpcId: !Ref MyVPC
Tags:
- Key: "Name"
Value: "PublicRouteTable"
PublicRoute:
Type: "AWS::EC2::Route"
Properties:
RouteTableId: !Ref PublicRouteTable
DestinationCidrBlock: "0.0.0.0/0"
GatewayId: !Ref InternetGateway
SubnetRouteTableAssociation:
Type: "AWS::EC2::SubnetRouteTableAssociation"
Properties:
SubnetId: !Ref PublicSubnet
RouteTableId: !Ref PublicRouteTable
Outputs:
VpcId:
Description: "VPC ID"
Value: !Ref MyVPC
PublicSubnetId:
Description: "Public Subnet ID"
Value: !Ref PublicSubnet
テンプレートのデプロイ方法
- CloudFormationコンソールを開く
- AWSマネジメントコンソールでCloudFormationサービスを選択します。
- 新しいスタックを作成
- 「スタックの作成」をクリックし、「テンプレートファイルをアップロード」を選択します。
- テンプレートファイルを選択
- 上記のテンプレートをファイルとして保存し、アップロードします。
今回は”VPCSampleTemplate.yaml”という名前のファイルでテンプレートを作成してアップロードしました。
- スタック設定を入力
- スタック名を入力します(例: MySampleVPCStack)。
- スタックの作成を完了
- “次へ”を何回かクリックし、”確認して作成”のステップで”送信”をクリックすると、数分でリソースがデプロイされます。
確認して作成の画面まで来たら、画面の一番下までスクロールする。
論理IDが作成したスタック名、ステータスが”CREATE_COMPLETE”となれば作成が完了です。
確認と後片付け
作成されたVPCやサブネットは、VPCダッシュボードの「仮想プライベートクラウド」セクションで確認できます。実際にコンソール画面から確認してみましょう。
- VPC
- パブリックサブネット
- インターネットゲートウェイ
- ルートテーブルとルート
ちゃんと全てのリソースが作成されていました!
不要になったリソースは、CloudFormationスタックを削除することで簡単にクリーンアップできます。
ステータスのフィルターを”削除済み”に設定して、ステータスが”DELETE_COMPLETE”になっていれば正常に削除が完了しています。
まとめ
CloudFormationを使えば、手動で複数のリソースを作成する手間を省き、一貫性のあるインフラ構築が可能です。今回のテンプレートをもとに、より複雑な構成や追加機能を実装してみてはいかがでしょうか?
コメント