EC2でWebサーバーを起動する

EC2でWebサーバーを起動する

前回までで、下記の構成をつくるところまで終わりました。

ELBで2つのEC2インスタンスのステータスが "Unhealthy"となっていることを前回確認しました。このままでは、ELBは各EC2にトラフィックを流してくれません。

f:id:TOSHIOSHIMO:20191026160651p:plain

2つのEC2インスタンスそれぞれに関連付けられているセキュリティグループで、ポート80(HTTP)を許可します。

f:id:TOSHIOSHIMO:20191027212828p:plain

プライベートサブネット内のEC2にログインして、Nginx(Webサーバー)を起動します。

※下記は例で、キー名とIPアドレスは読み替えてください。

iMac:~ toshihirooshimo$ ssh -i "test.pem" ec2-user@xxx.xxx.xxx.xxx
The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)?

"yes"を入力します。

 __| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$

Nginxをスタートさせます。

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo service nginx start
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ nginx -v
nginx version: nginx/1.12.2
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ 

ELBに設定したターゲットグループに指定しているEC2インスタンスのステータス、しばらくすると "healthy"になるはずです

f:id:TOSHIOSHIMO:20191027212619p:plain

ロードバランサー経由でWebサーバーにアクセス

ブラウザに、下記のように入力してEnterを押してみましょう。

アドレス欄:http://(ロードバランサーDNS名)/index.html

f:id:TOSHIOSHIMO:20191027214040p:plain

index.htmlの内容が表示されます。

f:id:TOSHIOSHIMO:20191027214044p:plain

プライベートサブネット内のEC2にログインした方法

今回このベストな方法が分からなかったので、プライベートサブネットのルートテーブルにインターネットゲートウェイへのルーティング(デフォルトゲートウェイ)、EC2にも一時的にElastic IPをアタッチしてSSHをグインを行いました。※当然ですが、作業後は解除しておきます。

このような場合って一般的には、踏み台サーバーなどを先に用意するのでしょうか。この辺り一番安全で良い方法が正直分からないので、課題ですね。

 

Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門 (CodeZine BOOKS)

Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門 (CodeZine BOOKS)