「AWSでEC2インスタンスを作成する方法が知りたい」
このような疑問に現役インフラエンジニアの筆者が自身が検証した手順をご紹介します。
この記事で分かること
- EC2インスタンスを作成する方法/EC2のたて方
- このハンズオン作業のゴール
- 筆者の環境
- 筆者が検証したハンズオンの手順
この作業では、以下の構成を作成します。
EC2インスタンスを作成する方法/EC2のたて方
このハンズオン作業のゴール
構成図にある青い矢印の「HTTP」で、ローカルPCからインターネットを経由し、EC2にインストールしたApacheより、画面に「Hello, World!!」と表示されるのが確認できるところまでををゴールとします。
筆者の環境
ローカル開発環境 | Windows10からブラウザよりAWSマネジメントコンソールに接続して作業 |
EC2のOS | Amazon Linux 2 |
SSH通信 | TeraTermを利用 |
作図 | dwarioのAWS19アイコンを利用 |
筆者が検証したハンズオンの手順
- step01 VPCを作成する
- step02 サブネットを作成する
- step03 インターネットゲートウェイを作成する
- step04 ルートテーブルを作成する
- step05 EC2を作成する
- step06 ローカルPCから疎通確認をする
はじめに、step01・step02・step03・step04でAWS上にネットワーク接続するためのベースを作成します。
つづいて、step05でEC2を作成します。
最後に、step06でApacheをインストールインターネット経由で「Hello, World!!」が表示できるか確認していきます。
step01 VPCを作成する
VPCを作成する手順
> 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インスタンスが外部と通信可能になります。
インターネットゲートウェイを作成する手順
> 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の作成
> 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のルートテーブルについて以下が実現されます。
・その他の送信先:0.0.0.0/0のトラフィックに関しては、IGWに転送される。
step05 EC2を作成する
次にTest Public Subnet 1aにEC2を作成します。
そのあと、SSH接続でEC2にログインし、各種設定をしていきます。
EC2の作成
> 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 インスタンス作成の確認 |
設定に問題ないか確認し、「起動」をクリック |
※キーペアのダウンロードチャンスは1回限りなので、キーペアの管理は慎重しましょう。
***
セキュリティグループを作成し、EC2に適用する
> EC2 ダッシュボード
> 左ペイン
> セキュリティグループをクリック
> 「セキュリティグループを作成」をクリック
> 「セキュリティグループを作成」画面で、以下を作成
基本的な詳細 | |
セキュリティグループ名 | web-sg |
説明 | web-sg |
VPC | VPC (今回作成したVPC) |
インバウンドルール | タイプ:HTTPS/ソース:0.0.0.0/0 タイプ:SSH/ソース:0.0.0.0/0 |
その他 | デフォルトのまま |
> step05で作成したEC2(今回はtest-web)を選択
> 画面右上 > アクション > セキュリティ > セキュリティグループを変更 をクリック
> セキュリティグループを変更の画面 > 関連付けされたセキュリティグループ > 「削除」をクリック
(現在関連付けされているデフォルトのセキュリティグループを削除する)
> 今回作成したセキュリティグループ(web-sg)を選択
> 「保存」をクリック
EC2にApacheをインストールする手順
はじめに、Step05で作成したEC2にSSH接続します。筆者はWindows環境なので、TeraTermを利用して接続します。
EC2への接続
> EC2
> 実行中のインスタンス
> 今回作成したEC2をクリック
> インスタンスのパブリックIPを確認 図A
※今回の例:3.113.25.2
> 上記で確認したパブリックIPに対し、TeratermでSSH接続・・・図B-C-D
※図Dのように、step05で作成したSSHの秘密鍵「***.pem」ファイルを利用して接続する。
> ログインできたことを確認 図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から疎通確認をする
確認手順
> 「Hello, World!!」と表示されることを確認
ハンズオン作業は以上となります。
まとめ
本記事では、「【AWS】EC2インスタンスを作成する方法/EC2のたて方/ハンズオン手順」をご紹介しました。
本記事がお役に立てば幸いです。
【関連記事】
>> AWS関連記事