そもそもcloudformationとは?
AWS cloudformation はAWSの環境構築を自動化できるサービスです。
YAMLファイルを書いてデプロイすることで、環境を構築することが出来ます。
今回は、cloudformationやりたいけど、何をどうすればいいかわからない人のために
とりあえずに一歩を書いてみました。
やってみる
今回作成する環境
Sample-Vpc
という VPC1つと
Sample-Vpc1-Subnet1
というsubnetを1つ作成します
YAMLファイルの作成
まず、 Create-Network.yml
という名前でファイルを作成します。
AWSTemplateFormatVersion: '2010-09-09'
Description: "Create Network"
Resources:
# ------------------------------------------------------------#
# VPC
# ------------------------------------------------------------#
SampleVPC:
Type: "AWS::EC2::VPC"
Properties:
CidrBlock: 10.1.0.0/16
Tags:
- Key: Name
Value: Sample-Vpc
# ------------------------------------------------------------#
# Subnet
# ------------------------------------------------------------#
SampleSubnet01:
Type: "AWS::EC2::Subnet"
Properties:
VpcId: !Ref SampleVPC
AvailabilityZone: ap-northeast-1a
CidrBlock: 10.1.1.0/24
Tags:
- Key: Name
Value: Sample-Vpc1-Subnet01
cloudformationの実施・確認
- AWSへログイン
AWSへログインして、cloudformationに移動します
スタックの作成
で作成していきます
- cloudformationの設定・実施
テンプレートの準備完了
から テンプレートファイルのアップロード
で、先程作成した Create-Network.yml ファイルをアップロードします。
次へ進みます。
スタックの名前を記載します。
ここでは Create-Network
とします。
スタックオプションなど設定できますが、一旦最初はしなくてよいかと思います。
アクセス許可だったり、タグを付けて費用の管理をしやすくしたり出来ます。
最終確認です。
一番下まで行って特に問題なければ スタックの作成を行います。
作成を行うと、このような画面になります。
イベント
のタブを開くと今なんの処理をしているか確認することが出来ます。
確認CloudFormation - スタック Create-Network - Google Chro.png
- cloudformationで確認されたリソースの確認
まずはVPCを確認します。
yamlファイルの以下の箇所がこのVPCの設定になっております。
SampleVPC:
Type: "AWS::EC2::VPC"
Properties:
CidrBlock: 10.1.0.0/16
Tags:
- Key: Name
Value: Sample-Vpc
次はsubmet。
名前も指定されているものになっています。
yamlファイルでは以下の記載を行いました。
SampleSubnet01:
Type: "AWS::EC2::Subnet"
Properties:
VpcId: !Ref SampleVPC
AvailabilityZone: ap-northeast-1a
CidrBlock: 10.1.1.0/24
Tags:
- Key: Name
Value: Sample-Vpc1-Subnet01
cloudformationの削除・確認
作成したVPCやsubnetを削除したい場合は、cloudformationのスタックの削除を行います。
※途中でVPCやsubnetの変更を手動で行うと削除や更新ができなくなるので、cloudformationで変更を行いましょう
- 削除方法
削除したいスタックに移動し、削除
を行います。
確認が出るのでそのまま進めます。
削除を進めるとイベントにDelete が走り、削除が行われます。
すべて削除が行われたら、スタックがなくなりイベントにはDELETE_COMPLETEと出力されます
- 削除したリソースの確認
まずはVPC。
Sample-Vpc
はもう削除されてありません。
お次はsubnet。
こちらも Sample-Vpc1-Subnet01
は削除されてないです。
こちらで、はじめてのcloudformationでの構築・削除は終わります。
勉強後イメージ
よくわからんけど、とりあえず回してみることはこれでできるかと。
後は他の人のコードとか、出来たもの見ながらいろいろ作っていきます。