7
5

More than 3 years have passed since last update.

はじめてのcloudformation

Posted at

そもそもcloudformationとは?

AWS cloudformation はAWSの環境構築を自動化できるサービスです。
YAMLファイルを書いてデプロイすることで、環境を構築することが出来ます。

今回は、cloudformationやりたいけど、何をどうすればいいかわからない人のために
とりあえずに一歩を書いてみました。

やってみる

今回作成する環境

Sample-Vpc という VPC1つと
Sample-Vpc1-Subnet1 というsubnetを1つ作成します

cloudformationUntitled Diagram.drawio - diagrams.net - Google Ch.png

YAMLファイルの作成

まず、 Create-Network.yml という名前でファイルを作成します。

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 - スタック - Google Chrome 2021-01-22 1.png

  • cloudformationの設定・実施

テンプレートの準備完了 から テンプレートファイルのアップロード で、先程作成した Create-Network.yml ファイルをアップロードします。
次へ進みます。

スタックの作成準備CloudFormation - スタック - Google Chrome 2021-01-22 1.png

スタックの名前を記載します。
ここでは Create-Network とします。

スタックの詳細CloudFormation - スタック - Google Chrome 2021-01-22 1.png

スタックオプションなど設定できますが、一旦最初はしなくてよいかと思います。
アクセス許可だったり、タグを付けて費用の管理をしやすくしたり出来ます。

CloudFormation - スタック - Google Chrome 2021-01-22 1.png

最終確認です。
一番下まで行って特に問題なければ スタックの作成を行います。

最終確認CloudFormation - スタック - Google Chrome 2021-01-22 1.png

作成を行うと、このような画面になります。
イベント のタブを開くと今なんの処理をしているか確認することが出来ます。

確認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

VPCお使いの VPC _ VPC Management Console - Google Chrome .png

次は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

subnetVPC Management Console - Google Chrome 2021-01-22 .png

cloudformationの削除・確認

作成したVPCやsubnetを削除したい場合は、cloudformationのスタックの削除を行います。
※途中でVPCやsubnetの変更を手動で行うと削除や更新ができなくなるので、cloudformationで変更を行いましょう

  • 削除方法

削除したいスタックに移動し、削除 を行います。
確認が出るのでそのまま進めます。

削除CloudFormation - スタック Create-Network - Google Chro.png

削除を進めるとイベントにDelete が走り、削除が行われます。

deleteCloudFormation - スタック Create-Network - Google Chro.png

すべて削除が行われたら、スタックがなくなりイベントにはDELETE_COMPLETEと出力されます

でぇてCloudFormation - スタック Create-Network - Google Chro.png

  • 削除したリソースの確認

まずはVPC。
Sample-Vpc はもう削除されてありません。

VPCこっちお使いの VPC _ VPC Management Console - Google Chrome .png

お次はsubnet。
こちらも Sample-Vpc1-Subnet01 は削除されてないです。

VPC消えたVPC Management Console - Google Chrome 2021-01-22 .png

こちらで、はじめてのcloudformationでの構築・削除は終わります。

勉強後イメージ

よくわからんけど、とりあえず回してみることはこれでできるかと。
後は他の人のコードとか、出来たもの見ながらいろいろ作っていきます。

参考

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5