🤖

【AWS】仮想ネットワーク環境構築~WEBサーバー構築迄(AmazonLinux)

2021/04/30に公開

はじめに

AWSにて仮想ネットワーク環境構築~WEBサーバー構築迄実施する流れをアウトプットします。
EC2は「AmazonLinux」でWEBサーバーは「Nginx」を使用します。

構成図

EC2(AmazonLinux)のスペック

項目 設定
VM名 testweb01
インスタンスタイプ t2.micro
OS AmazonLinux2
vCPU 1
メモリ(GiB) 1
ルートデバイス名 /dev/sda1:8GB

前提

  • ターミナルは「TeraTerm」を使用します。
  • 作業用ユーザー作成済み(今回は、作業用ユーザーにて作業を実施)
  • 何もVPCを設定していない状態
  • 東京リージョンにて作業を実施する。

※作業用ユーザーを作成していない場合は、以下の記事を参照下さい。
【AWS】無料試用版登録~初期設定までの流れを解説します!

※リージョンは、マネジメントコンソールの以下の部分で設定する。

作業の流れ

①仮想ネットワーク構築
②EC2(AmazonLinux)構築
③Nginx導入

①仮想ネットワーク構築

1.AWSマネジメントコンソールにて「VPC」を起動する。

2.VPCダッシュボードにて「VPCウィザードの起動」をクリックする。

3.VPC設定の選択の画面が表示される。そのまま「選択」をクリックする。

4.以下のようにVPCやサブネット等の設定をする。設定後、「VPCの作成」をクリックする。

項目 設定 備考
IPv4 CIDR ブロック 10.0.0.0/16 デフォルト設定
IPv6 CIDR ブロック IPv6 CIDR ブロックなし デフォルト設定
VPC 名 Test-VPC 任意のVPC名を入力する。
パブリックサブネットの IPv4 CIDR 10.0.0.0/24 サブネットを入力
アベイラビリティーゾーン ap-northeast-1a
サブネット名 Test-Public 任意のサブネット名を入力する。
サービスエンドポイント 設定無し
DNS ホスト名を有効化 はい サーバーに接続するためには「はい」を選択する必要がある。
ハードウェアのテナンシー デフォルト

5.VPCが正常に作成されたことを確認する。

6.VPC一覧にて「Test-VPC」が作成されていることを確認する。

②EC2(AmazonLinux)構築

1.AWSマネジメントコンソールより「EC2」を起動する。

2.EC2ダッシュボードより「インスタンス」をクリックする。

3.「インスタンスを起動」をクリックする。

4.ステップ1にて「Amazon Linux 2」を選択する。

5.インスタンスタイプを「t2.micro」に設定し、「次のステップ」をクリックする。

6.ステップ3の画面にて以下の赤枠の部分を設定する。設定後、「次のステップ」をクリックする。

項目 設定 備考
ネットワーク Test-VPC 「①仮想ネットワーク構築」で作成したVPC
サブネット Test-Public 「①仮想ネットワーク構築」で作成したサブネット
自動割り当てパブリックIP 有効 EC2にSSH接続するために必要

7.ステップ4の画面は特に変更しない。そのまま、「次のステップ」をクリックする。

8.タグを追加し、以下のように設定する。設定後、「次のステップ」をクリックする。

9.セキュリティグループに「HTTP」を追加する。追加後、「次のステップ」をクリックする。

※試験用なので、ソースは0.0.0.0/0としています。

10.インスタンス作成前の確認画面が表示されるので、設定に不備がない確認する。問題なければ、「起動」をクリックする。

11.任意のキーペア名を入力し、キーペアをダウンロード。「インスタンスの作成」をクリックする。

※キーペアは再ダウンロードできないため、無くさないようにする。

12.「インスタンスは現在作成中です」という画面が表示される。

13.以下のように対象インスタンスが「実行中」になれば問題なし。

14.インスタンスの「パブリックIPアドレス」を控えておく。

※EC2にSSH接続する際に使用します。

③Nginx導入

1.TeraTermにて控えておいたパブリックIPアドレスにSSH接続(22番ポート)する。

2.ユーザー名に「ec2-user」と入力し、先ほどダウンロードしたキーペアを指定。設定後、「OK」をクリックする。

※パスフレーズは入力不要

3.EC2にアクセスができることを確認する。

4. Amazon Linux Extrasを確認する。

Amazon Linux2にはnginxのyumが無いので、Amazon Linux Extrasでnginxを探します。

コマンド
 yum search nginx

実行結果)

実行結果
[ec2-user@ip-10-0-0-100 ~]$ yum search nginx
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
============================== N/S matched: nginx ==============================
pcp-pmda-nginx.x86_64 : Performance Co-Pilot (PCP) metrics for the Nginx
                      : Webserver

  Name and summary matches only, use "search all" for everything.
[ec2-user@ip-10-0-0-100 ~]$

「Extras Library」というパッケージ群から「nginx」を探す。

コマンド
amazon-linux-extras list | grep nginx

実行結果)

実行結果
[ec2-user@ip-10-0-0-100 ~]$ amazon-linux-extras list | grep nginx
 38  nginx1                   available    [ =stable ]
[ec2-user@ip-10-0-0-100 ~]$

見つけたパッケージ「nginx1」の詳細を確認する。

コマンド
amazon-linux-extras info nginx1

実行結果)

実行結果
[ec2-user@ip-10-0-0-100 ~]$ amazon-linux-extras info nginx1
nginx1 recommends nginx                      # yum install nginx
[ec2-user@ip-10-0-0-100 ~]$

5. nginxをインストールする。

Amazon Linux Extrasでnginxをインストールする。

コマンド
sudo amazon-linux-extras install nginx1 -y

実行結果)

実行結果
[ec2-user@ip-10-0-0-100 ~]$ sudo amazon-linux-extras install nginx1
Installing nginx
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Cleaning repos: amzn2-core amzn2extra-docker amzn2extra-nginx1
12 metadata files removed
4 sqlite files removed
0 metadata files removed
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                               | 3.7 kB     00:00
amzn2extra-docker                                        | 3.0 kB     00:00
amzn2extra-nginx1                                        | 3.0 kB     00:00
(1/7): amzn2-core/2/x86_64/group_gz                        | 2.5 kB   00:00
~~~~
Complete!

Nginxが導入できていることを確認する。

コマンド
nginx -v

実行結果)

実行結果
[ec2-user@ip-10-0-0-100 ~]$ nginx -v
nginx version: nginx/1.18.0
[ec2-user@ip-10-0-0-100 ~]$

6. nginxを起動する。

nginxを起動する。

コマンド
sudo systemctl start nginx
sudo systemctl status nginx

実行結果)

実行結果
[ec2-user@ip-10-0-0-100 ~]$ sudo systemctl start nginx
[ec2-user@ip-10-0-0-100 ~]$ sudo systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2021-04-30 09:17:50 UTC; 6s ago
  Process: 3448 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 3444 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 3443 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 3450 (nginx)
   CGroup: /system.slice/nginx.service
           tq3450 nginx: master process /usr/sbin/nginx
           mq3452 nginx: worker process

Apr 30 09:17:50 ip-10-0-0-100.ap-northeast-1.compute.internal systemd[1]: Sta...
Apr 30 09:17:50 ip-10-0-0-100.ap-northeast-1.compute.internal nginx[3444]: ng...
Apr 30 09:17:50 ip-10-0-0-100.ap-northeast-1.compute.internal nginx[3444]: ng...
Apr 30 09:17:50 ip-10-0-0-100.ap-northeast-1.compute.internal systemd[1]: Fai...
Apr 30 09:17:50 ip-10-0-0-100.ap-northeast-1.compute.internal systemd[1]: Sta...
Hint: Some lines were ellipsized, use -l to show in full.
[ec2-user@ip-10-0-0-100 ~]$

7.nginxの自動起動設定をする。

nginxを起動する。

コマンド
sudo systemctl enable nginx
sudo systemctl is-enabled nginx

実行結果)

実行結果
[ec2-user@ip-10-0-0-100 ~]$ sudo systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
[ec2-user@ip-10-0-0-100 ~]$ sudo systemctl is-enabled nginx
enabled
[ec2-user@ip-10-0-0-100 ~]$

8.ブラウザに以下のように入力する。

パブリックIPアドレス:80

9.Nginxの画面が表示されることを確認する。

さいごに

今回は、仮想ネットワーク構築~WEBサーバー構築迄解説しました。
次回以降のどこかでWindowsServerにてWEBサーバーを構築してみたいと思います。
※基盤はAWS予定

参考

【AWS EC2】Amazon Linux2にnginxをインストールする方法
Amazon Linux 2のExtras Library(amazon-linux-extras)を使ってみた

Discussion