AWS CloudFormation(クラウドフォーメーション)でEC2(イーシーツー)インスタンスを自動作成する方法を完全解説
生徒
「AWS(エーダブリューエス)でサーバーを作るときって、毎回画面をポチポチ操作しないといけないんですか?」
先生
「AWS CloudFormation(クラウドフォーメーション)を使えば、画面操作をしなくてもEC2(イーシーツー)インスタンスを自動で作れますよ。」
生徒
「自動で作れるんですか?プログラミング初心者でもできますか?」
先生
「大丈夫です。テンプレートという設計図を書くだけなので、順番に見ていきましょう。」
1. AWS CloudFormation(クラウドフォーメーション)とは?
AWS CloudFormation(クラウドフォーメーション)は、AWS(エーダブリューエス)のインフラ構成を自動化するためのサービスです。サーバーやネットワークを人の手で作るのではなく、文章で書いた設定をもとにAWSが自動で環境を作ってくれます。
このような考え方は「インフラ自動化」や「Infrastructure as Code(インフラストラクチャー・アズ・コード)」と呼ばれ、最近のクラウド運用では欠かせない技術です。
2. EC2(イーシーツー)インスタンスの基本を理解しよう
EC2(イーシーツー)とは、AWS上で使える仮想サーバーのことです。パソコンの中にもう一台パソコンを作るようなイメージで、Webサイト公開やアプリ実行に使われます。
CloudFormation(クラウドフォーメーション)を使うことで、このEC2インスタンスを「何台」「どんな性能で」「どのOSで作るか」をまとめて指定できます。
3. CloudFormationテンプレートの仕組み
CloudFormation(クラウドフォーメーション)では「テンプレート」と呼ばれる設定ファイルを使います。テンプレートはYAML(ヤメル)またはJSON(ジェイソン)形式で書きます。
テンプレートには、EC2インスタンスの種類、AMI(エーエムアイ)、インスタンスタイプ、セキュリティ設定などをまとめて記述します。これが設計図の役割を果たします。
4. EC2インスタンスを作成するテンプレート例
以下は、最小構成でEC2(イーシーツー)インスタンスを自動作成するCloudFormation(クラウドフォーメーション)テンプレート例です。
AWSTemplateFormatVersion: '2010-09-09'
Description: EC2 instance sample
Resources:
MyEC2Instance:
Type: AWS::EC2::Instance
Properties:
ImageId: ami-0abcdef1234567890
InstanceType: t2.micro
このテンプレートでは、AMI(エーエムアイ)と呼ばれるOSの元になるイメージと、インスタンスの性能を指定しています。t2.microは無料枠でも使われることが多いサイズです。
5. AWSマネジメントコンソールから実行する方法
AWSマネジメントコンソールからCloudFormation(クラウドフォーメーション)を開き、「スタックの作成」を選びます。そこに先ほどのテンプレートを貼り付けるだけで準備は完了です。
画面の指示に従って進めると、数分後にはEC2(イーシーツー)インスタンスが自動的に作成されます。手動操作と比べて、作業ミスが減るのが大きなメリットです。
6. コマンドラインでCloudFormationを実行する
AWS CLI(エーダブリューエス・シーエルアイ)を使えば、コマンド操作でもEC2インスタンスを作成できます。サーバー管理や自動化に慣れてきたら便利です。
aws cloudformation create-stack \
--stack-name sample-ec2-stack \
--template-body file://ec2.yml
{
"StackId": "arn:aws:cloudformation:..."
}
7. CloudFormationを使うメリット
CloudFormation(クラウドフォーメーション)を使う最大のメリットは、同じ構成を何度でも再現できる点です。テスト環境、本番環境を同じ設定で簡単に作れます。
また、設定内容が文章として残るため、後から見返しても内容が分かりやすく、チーム作業にも向いています。
8. 初心者がつまずきやすいポイント
初心者がつまずきやすいのは、AMI(エーエムアイ)IDの指定ミスや、リージョン違いです。AMIは地域ごとに異なるため、使うリージョンに合ったものを選ぶ必要があります。
エラーが出た場合は、CloudFormationのイベント画面を見ることで原因を確認できます。焦らず一つずつ確認することが大切です。