【図解】AWSの環境を自動で構築する方法【CloudFormation】

★悩み★
・AWSの環境で検証環境をすぐに作りたいなぁ。
・AWSで環境を自動で構築してくれるサービスはないのかなぁ。
・AWS CloudFormationの使い方が分からないなぁ。

こういった「悩み」に答えます。

★本記事の内容★
(1) AWSの環境を自動で構築する方法をご紹介【3つのサービス】
(2) CloudFormationで環境を自動で構築する方法【4ステップ】

これからご紹介する「AWSの環境を自動で構築する方法」を実践したことで、筆者は30以内で環境を自動構築することができました。

記事の前半では「AWSの環境を自動で構築する方法」をご紹介しつつ、記事の後半では「CloudFormationで環境を自動で構築する方法」を図を用いて解説します。

この記事を読み終えることで、「AWSの環境を自動で構築するAWSサービス」を把握できるだけでなく、「CloudFormationの使い方」も把握した状態になります。

「AWSとは何か?」や「AWSの基礎的なサービスは何か?」を知りたい方は、以下の記事をご覧ください。

AWSの環境を自動で構築する方法【3つのサービス】

AWSの環境を自動で構築するAWSサービスに関してご紹介します。

結論から言いますと、下記の3つのサービスがあります。

★環境を自動で構築するAWSサービス★
・ AWS CloudFormation
・ AWS OpsWorks
・ AWS Elastic Beanstalk

以降で、環境構築の自動化が必要な理由を解説しつつ、上記サービスをご紹介します。

環境構築の自動化が必要な理由

環境構築の自動化が必要な理由に関して説明します。

★自動化が必要な理由★
・手作業を無くしリスクを最小化したい
 → 手作業による構築ミスが発生する
 → 手作業だと環境構築に時間がかかる
 → 手作業だと短時間でスケールアップできない
・環境のバージョンを管理したい
 → 環境を前版にすぐに戻せる仕組みが欲しい

上記の理由から、環境構築の自動化が求められています。

AWS CloudFormationで環境構築の自動化

AWS CloudFormationを利用することで環境構築を自動化することができます。

★AWS CloudFormationとは★
AWSのインフラを記述する共通言語(json/yaml形式)を提供してくれます。
共通言語で記載したファイルを用いて、CloudFormationは自動で環境(EC2の作成やVPCの作成など)を構築します。

ちなみにVPCを作成するyaml形式のファイルは以下となります。

AWSTemplateFormatVersion: 2010-09-09
Resources:
  VPC:
    Type: AWS::EC2::VPC
    Properties:
      EnableDnsSupport: true
      EnableDnsHostnames: true
      CidrBlock: 10.0.0.0/16

AWS CloudFormationを利用することで、以下の利点を得られます。

★CloudFormation利用による利点★
・yaml/json形式で記述するため、Gitなどで環境のバージョン管理が可能
・再現性
 → 誰がいつしても同じ環境を構築可能
・再利用可能性
 → 作成したyaml/json形式のファイルは、異なるリージョンでも利用可能
・ドリフトの検出が可能
 → CloudFormationで構築後、手動で変更や改修した部分を自動検出可能

上記の利点を得たい人は、CloudFromationの利用を考えてみてはいかがでしょうか。

AWS Elastic Beanstalkでアプリ動作環境構築の自動化

AWS Elastic Beanstalkを利用することで、アプリケーションが動作する環境を自動で構築することができます。

★AWS Elastic Beanstalkとは★
負荷分散やスケーラブル(拡張性)を考慮した環境を自動で構築してくれます。
専用のコマンドラインインタフェースを利用します。

参照:Elastic Beanstalkのインタフェース

AWS Elastic Beanstalkを利用することで、以下の利点を得られます。

★Elastic Beanstalk利用による利点★
アプリケーションの可用性や拡張性を意識した環境構築からの解放
→ 可用性や拡張性を意識した環境を自動構築
→ 利用者はアプリケーションのソースコードをアップロードするのみ

可用性や拡張性を意識した環境構築を自動でしたい場合は、Elastic Beanstalkを利用することを考えてみましょう。

AWS OpsWorks

AWS OpsWorksを利用することで、「ソフトウェアのインストール・設定」や「アプリケーションのデプロイ」を自動化できます。

★AWS OpsWorksとは★
ソフトウェアのインストールやアプリケーションのデプロイを自動化することができます。
エンジンとして、設定管理ツールである「Chef」を採用しています。

AWS OpsWorksを利用することで、以下の利点を得られます。

★AWS OpsWorks利用による利点★
・ソフトウェアのインストールや設定などの手順書執筆からの解放
・誰がいつしても同じようにソフトウェアをインストール可能

ソフトウェアのインストールや設定を自動化したい場合、AWS OpsWorksを利用することを考えてみましょう。

以上が、AWSの環境を自動で構築する方法となります。

CloudFormationで環境を自動で構築する方法【4ステップ】

CloudFormationで環境を自動で構築する方法をご紹介します。

今回は、CloudFormationを用いて下図の環境を作成しましょう。


上記環境を作成するための流れは以下となります。

★環境構築の流れ★
ステップ1:AWSマネジメントコンソールでCloudFormationを検索
ステップ2:自動構築したい環境を設計
ステップ3:環境を自動構築
ステップ4:自動構築した環境の動作確認

以降で、各ステップに関して説明します。

ステップ1:AWSマネジメントコンソールでCloudFormationを検索

AWSマネジメントコンソールでCloudFormationを検索する方法をご紹介します。

Webブラウザで下記URLからAWSマネジメントコンソールへアクセスします。

AWSマネジメントコンソール
※上記をクリックすると新規タブが開きます。

「サービスを検索する」直下にあるテキストボックスに「CloudFormation」と入力します(下図の赤枠部分)。

その後、「テンプレートによるリソースの作成と管理」をクリックしましょう。

以上で、「ステップ1:AWSマネジメントコンソールでCloudFormationを検索」は完了です。

ステップ2:自動構築したい環境を設計

次は、自動構築したい環境を設計しましょう。

CloudFormationのトップ画面の「スタックの作成」(下図の赤枠)をクリックします。


「デザイナーでテンプレートを作成」(下図の赤枠)を選び、「デザイナーでテンプレートを作成」(下図の青枠)をクリックします。


AWSの環境を設計する画面が表示されます。

「リソースタイプ」から配備したいリソースを選び、環境を作り上げましょう。
※「テンプレート」部分に以下のファイルの中身を貼り付けることで省略できます。


その後、作成した設計が適切がどうかを検証するためにページ上部にあるチェックボックス(下図の赤枠)をクリックします。

数秒後、「テンプレートは有効です。」(下図の青枠)が表示されれば、作成した設計には問題がないことが分かります。


最後に「保存」(下図の赤枠)をクリックし、ファイルに保存しましょう。


以上で、「ステップ2:自動構築したい環境を設計」は完了です。

ステップ3:環境を自動構築

次は、作成した設計を元に環境を自動構築していきます。

CloudFormationのトップ画面の「スタックの作成」(下図の赤枠)をクリックします。


「テンプレートの準備完了」(下図の赤枠)を選択し、「テンプレートファイルのアップロード」(下図の青枠)をクリックします。

「ファイルの選択」(下図の黄緑枠)をクリックし、ステップ2でダウンロードしたファイルをアップロードしましょう。

その後、ページ末尾にある「次へ」をクリックします。


以下の情報を入力し、「次へ」をクリックします。
・スタックの名前:今回は、ec2-publicsubnet-igwと入力
・KeyName:EC2のSSH接続時に利用したいpemを選択


スタックオプションの設定画面は、デフォルトのままページ末尾にある「次へ」をクリックします。


レビュー画面は、デフォルトのままページ末尾にある「スタックの作成」をクリックします。


更新ボタン(下図の赤枠)を定期的にクリックし、「CREATE_COMPLETE」が表示されることを確認します。

「CREATE_COMPLETE」が表示されれば、自動構築が正常終了したことになります。


以上で、「ステップ3:環境を自動構築」は完了です。

ステップ4:自動構築した環境の動作確認

自動構築した環境にログインできるかを確認しましょう。

EC2の管理画面を開き、自動作成されたEC2インスタンス(Nameがtest)のIPアドレス(下図の赤枠)を確認しましょう。


その後、コマンドプロンプトまたは端末を開き、以下のコマンドでSSH接続しましょう。

$ ssh -i xxxx.pem ec2-user@44.235.146.205
The authenticity of host '44.235.146.205 (44.235.146.205)' can't be established.
ECDSA key fingerprint is SHA256:TPo5oQyU2PFEWFTgcmR3uMigV2fJLUXjdRjIm0HpJ8s.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '44.235.146.205' (ECDSA) to the list of known hosts.

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
25 package(s) needed for security, out of 39 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-10-5-1-138 ~]$

上記のようにSSH接続が成功すれば、正常に動作していると判断できます。

上記の4ステップで、CloudFormationで環境を自動で構築することができます。

【まとめ】AWSの環境を自動で構築する方法【CloudFormation】

今回の記事を通して、AWSの環境を自動で構築する方法をご紹介することで、以下の悩みを解消しました。

★悩み★
・AWSの環境で検証環境をすぐに作りたいなぁ。
・AWSで環境を自動で構築してくれるサービスはないのかなぁ。
・AWS CloudFormationの使い方が分からないなぁ。

「AWSで環境を自動構築したいけどCloudFormationってどう使うの?」と悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。

 

 


 

コメント

タイトルとURLをコピーしました