久しぶりの投稿となります。最近はAWS関連で個人への仕事のご依頼も多く、自身のアカウントで検証環境を構築する機会が増えました。VPCやEC2などのリソースを整理する為、個人アカウントのインフラ環境をコード化するようにしています。
AWS CloudFormation操作の備忘も兼ねて、AWS環境の構築に必要な操作などをまとめていきたいと思います。初回は、VPCまわりのスタック作成手順について書いていきます。
CloudFormationスタックの作成手順
スタックの作成手順
AWS CloudFormationのスタックはymlファイルで作成できます。AWSコンソールにymlファイルをアップロードすることで、簡単にスタックを作成できます。そのほか、コマンドラインからも作成することが可能です。
私は、cloud9を使用してAWS CLIコマンドでスタックを作成しました。Cloud9やAWS CloudFormationスタック作成の環境構築手順を簡単にご紹介します。
1.Cloud9を作成する
下記の記事を参考にしてCloud9を作成しております。
2.Cloud9のサーバにymlファイルを配置する
今回は手動でサーバにymlファイルを作成しました。ファイル名は「vpc.yml」としました。一般的にはCodeCommitやGitリポジトリでファイルを管理する方法が多いかと思います。
CloudFormationスタックの作成
スタックの作成はAWS CLIで実行できます。コマンドは下記を使用しました。
$cd <vpc.ymlを配置したディレクトリ>
$ aws cloudformation create-stack --stack-name cloud-vpc --template-body file://vpc.yml
コマンド実行後、2分程度でCloudFormationスタックが作成されました。
–stack-nameで指定した名前が、スタック名となります。
ymlファイルの中身について
今回は、スタック作成の手順をメインとしているので、ymlファイルの中身については一部抜粋したものをご紹介します。
AWSTemplateFormatVersion: 2010-09-09
Description: template for VPC
Resources:
CFnVPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
InstanceTenancy: default
EnableDnsSupport: true
EnableDnsHostnames: true
Tags:
- Key: Name
Value: cloud-vpc
PublicSubnet1:
Type: AWS::EC2::Subnet
Properties:
CidrBlock: 10.0.0.0/24
VpcId: !Ref CFnVPC
AvailabilityZone: !Select [ 0, !GetAZs ]
MapPublicIpOnLaunch: true
Tags:
- Key: Name
Value: PublicSubnet1-update
#以下省略
ymlファイルの中身については、AWS公式のWEBサイトを参照ください。VPC作成スタックでは、VPC、サブネットのほか、ルートテーブルやインターネットゲートウェイも設定しています。
まとめ
今回は、AWS CLIでVPCまわりのCloudFormationスタックを作成する手順をご紹介しました。次回は、作成したVPC内に、別のスタックを使用してEC2を作成する手順をご紹介できればと思います。