★悩み★
・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ってどう使うの?」と悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。
コメント