🤖
【AWS】仮想ネットワーク環境構築~WEBサーバー構築迄(AmazonLinux)
はじめに
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