【AWS】EC2インスタンスを作成する方法/EC2のたて方/ハンズオン手順

AWS

「AWSでEC2インスタンスを作成する方法が知りたい」

このような疑問に現役インフラエンジニアの筆者が自身が検証した手順をご紹介します。

この記事で分かること

  • EC2インスタンスを作成する方法/EC2のたて方
  • このハンズオン作業のゴール
  • 筆者の環境
  • 筆者が検証したハンズオンの手順

この作業では、以下の構成を作成します。

EC2インスタンスを作成する方法/EC2のたて方

このハンズオン作業のゴール

構成図にある青い矢印の「HTTP」で、ローカルPCからインターネットを経由し、EC2にインストールしたApacheより、画面に「Hello, World!!」と表示されるのが確認できるところまでををゴールとします。

筆者の環境

ローカル開発環境 Windows10からブラウザよりAWSマネジメントコンソールに接続して作業
EC2のOS Amazon Linux 2
SSH通信 TeraTermを利用
作図 dwarioのAWS19アイコンを利用

筆者が検証したハンズオンの手順

  1. step01 VPCを作成する
  2. step02 サブネットを作成する
  3. step03 インターネットゲートウェイを作成する
  4. step04 ルートテーブルを作成する
  5. step05 EC2を作成する
  6. step06 ローカルPCから疎通確認をする

はじめに、step01・step02・step03・step04でAWS上にネットワーク接続するためのベースを作成します。

つづいて、step05でEC2を作成します。

最後に、step06でApacheをインストールインターネット経由で「Hello, World!!」が表示できるか確認していきます。


step01 VPCを作成する

step01では以下の構成を作成します。

VPCを作成する手順

> AWSマネジメントコンソール
> VPCダッシュボード
> 左ペイン
> 「VPC」をクリック
> 右上の「VPCを作成」をクリック
> VPC を作成 > VPC の設定 より以下を入力
名前タグ – オプション 任意のVPC名 今回は「VPC」と記載
IPv4 CIDR ブロック 任意のIPアドレスブロック※ 今回は「172.16.0.0/16」と記載
その他の項目 デフォルトのまま

step02 サブネットを作成する

つづいて、サブネットを作成します。

今回の作業で作成するサブネット

AZ ap-northeast-1a Test Public Subnet 1a (172.16.5.0/24)

step03 インターネットゲートウェイを作成する

step03とstep04では、以下のようにインターネットゲートウェイとルートテーブルを作成します。

インターネットゲートウェイとルートテーブルを作成して設定することにより、VPCに作成したEC2インスタンスが外部と通信可能になります。

まずは、インターネットゲートウェイを作成していきます。

インターネットゲートウェイを作成する手順

> AWSマネジメントコンソール
> VPCダッシュボード
> 左ペイン > 「インターネットゲートウェイ」をクリック
> 「インターネットゲートウェイの作成」をクリック
> インターネットゲートウェイの作成 > インターネットゲートウェイの設定 > 名前タグに任意の名前を記載する。今回は「IGW」とする。
> 「インターネットゲートウェイの作成」をクリック
> インターネットゲートウェイの画面に戻ったら、上記で作成した「IGW」にチェックを入れる。
> 右上のアクション > VPCにアタッチ をクリックする
> VPCにアタッチ > 使用可能なVPCにstep01で作成した「VPC」を選択する
> 「インターネットゲートウェイのアタッチ」をクリックする
> 以下のように、作成した「IGW」の状態が「Attached」になっていることを確認する


step04 ルートテーブルを作成する

step04ではルートテーブルを作成します。今回は、作成したTest Public Subnet 1a に適用するルートテーブルを作成します。

今回の作業で作成するルートテーブル

Route Table Public Test Public Subnet 1a (172.16.5.0/24)

ルートテーブル作成の手順

Route Table Publicの作成

> AWSマネジメントコンソール
> VPCダッシュボード
> 左ペイン > 「ルートテーブル」をクリック
> 画面右上のルートテーブルの作成をクリック
> ルートテーブルの作成で以下を入力
名前タグ Route Table Public
VPC step01で作成した「VPC」を選択
> つづいて「作成」をクリック
> 作成した「Route Table Public」の左側にチェックを入れる
> 画面下側でルート > ルートの編集をクリック
> ルートの編集 > ルートの追加をクリック
> 以下のテーブルを記載
送信先 0.0.0.0/0
ターゲット step03で作成したインターネットゲートウェイ(今回は「IGW」)を選択
> つづいて「ルートの保存」をクリック
> ルートテーブルの作成の画面に戻り、以下の表示になっていることを確認

> つづいて画面下側のタブ > サブネットの関連付け > 「サブネットの関連付けの編集」をクリック
> 今回 Route Table Publicに関連付けをする「Test Public Subnet 1a (172.16.1.5/24)」を選択し、「保存」をクリック

この設定により、Router Table Publicのルートテーブルについて以下が実現されます。

・送信先:172.16.0.0/16のトラフィックについては、localに転送される。
・その他の送信先:0.0.0.0/0のトラフィックに関しては、IGWに転送される。

step05 EC2を作成する

次にTest Public Subnet 1aにEC2を作成します。

そのあと、SSH接続でEC2にログインし、各種設定をしていきます。

EC2の作成

> AWSマネジメントコンソール
> EC2ダッシュボード
> 「インスタンスを起動」をクリック
> 以下のように選択し、作成をクリック
ステップ1
Amazon マシンイメージ (AMI)
「Amazon Linux 2 AMI (HVM), SSD Volume Type」を選択
ステップ2
インスタンスタイプの選択
t2.micro(無料利用枠の対象)を選択
ステップ3
インスタンスの詳細の設定
以下の3カ所を選択/それ以外はデフォルトでOK
(1)ネットワーク :VPC (今回作成したVPC)
(2)サブネット  :Test Public Subnet 1a (今回作成したEC2を設置するサブネット)
(3)自動割り当てパブリック IP :有効
※後ほど、TeraTermでSSH接続するため有効にします
ステップ4
ストレージの追加
デフォルトのままでOK
ステップ5
タグの追加
Name :test-web
ステップ6
セキュリティグループの設定
いったんデフォルトのまま
ステップ7
インスタンス作成の確認
設定に問題ないか確認し、「起動」をクリック
> > sshの「秘密鍵」を作成する(キーペア)をダウンロードする
※キーペアのダウンロードチャンスは1回限りなので、キーペアの管理は慎重しましょう。

> つづいてインスタンスの画面に戻り、インスタンスが「実行中」であることを確認

***


セキュリティグループを作成し、EC2に適用する

> AWSマネジメントコンソール
> EC2 ダッシュボード
> 左ペイン
> セキュリティグループをクリック
> 「セキュリティグループを作成」をクリック
> 「セキュリティグループを作成」画面で、以下を作成
基本的な詳細
セキュリティグループ名 web-sg
説明 web-sg
VPC VPC (今回作成したVPC)
インバウンドルール タイプ:HTTPS/ソース:0.0.0.0/0
タイプ:SSH/ソース:0.0.0.0/0
その他 デフォルトのまま
> つづいてEC2ダッシュボード > インスタンス をクリック
> step05で作成したEC2(今回はtest-web)を選択
> 画面右上 > アクション > セキュリティ > セキュリティグループを変更 をクリック
> セキュリティグループを変更の画面 > 関連付けされたセキュリティグループ > 「削除」をクリック
(現在関連付けされているデフォルトのセキュリティグループを削除する)
> 今回作成したセキュリティグループ(web-sg)を選択
> 「保存」をクリック

EC2にApacheをインストールする手順

はじめに、Step05で作成したEC2にSSH接続します。筆者はWindows環境なので、TeraTermを利用して接続します。

EC2への接続

> AWSマネジメントコンソール
> EC2
> 実行中のインスタンス
> 今回作成したEC2をクリック
> インスタンスのパブリックIPを確認 図A
※今回の例:3.113.25.2
> 上記で確認したパブリックIPに対し、TeratermでSSH接続・・・図B-C-D
※図Dのように、step05で作成したSSHの秘密鍵「***.pem」ファイルを利用して接続する。
> ログインできたことを確認 図E

図A

図B

図C

図D

図E

Apacheのインストール

つづいて、EC2にApacheをインストールします。


yum(やむ)のパッケージをアップデート

$ sudo yum -y update

「Complete!」と表示されることを確認


Apacheをインストール

$ sudo yum -y install httpd

「Complete!」と表示されることを確認


apacheの自動起動設定

$ sudo systemctl enable httpd.service

apacheのスタート

$ sudo systemctl start httpd.service

apacheのステータス確認

$ sudo systemctl status httpd.service

index.htmlを作成する。

$ sudo cd /var/www/html
$ sudo touch index.html
$ sudo vim index.html

index.htmlの記載内容

<!DOCTYPE html>
  <html>
    <head>
      <meta charset="utf-8">
    </head>
    <body>
      Hello World!!
    </body>
</html>

step06 ローカルPCから疎通確認をする

確認手順

> step05で確認したEC2のパブリックIPを、ブラウザのアドレスバーに打ち込む
> 「Hello, World!!」と表示されることを確認

ハンズオン作業は以上となります。

まとめ

本記事では、「【AWS】EC2インスタンスを作成する方法/EC2のたて方/ハンズオン手順」をご紹介しました。

本記事がお役に立てば幸いです。

【関連記事】
>> AWS関連記事