AWS超初心者のメモその3 ~WEBサーバーソフトをインストールする~
インスタンスを作成することはできたので、次はインスタンスにソフトをWebサーバーをインストールしてみようと思います。
インスタンスにSSH接続する
サーバーにソフトをインストールする為に、インスタンスに接続する必要があります。
以下のコマンドで接続します。
// my-key.pem ・・・ インスタンス作成の際に作ったキーペア // ec2-user@XX.XXX.XXX.XXX ・・・ 接続するユーザー名@インスタンスのIPアドレス ssh -i my-key.pem ec2-user@XX.XXX.XXX.XXX
接続時に以下のメッセージが表示される場合があります。
これは初回アクセス時に表示されます。
The authenticity of host 'sshsvr (192.168.0.1)' can't be established. RSA key fingerprint is 28:d2:80:56:a3:3c:bf:5b:58:f6:68:97:7d:7d:68:db. Are you sure you want to continue connecting (yes/no)? yes
また以下のエラーが表示される場合があります。 これは、キーペアファイルが他のユーザーにも見れる状態になっているからです。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0644 for 'my-key.pem' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. Load key "my-key.pem": bad permissions ec2-user@XX.XXX.XXX.XXX: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
以下のコマンドで自分だけが読めるようにパーミッションを変更します。
chmod 400 my-key.pem
接続できると以下のような感じになります。
__| __|_ ) _| ( / Amazon Linux 2 AMI ___|\___|___| https://aws.amazon.com/amazon-linux-2/ 16 package(s) needed for security, out of 30 available Run "sudo yum update" to apply all updates.
待ち受けているポート番号を確認
サーバーにログインした状態で以下のコマンドを実行します。
// 最後のPは大文字です sudo lsof -i -n -P
LISTEN ・・・ 他のコンピュータからの待受をしているポート ESTABLISHED ・・・ 相手と通信中のポート
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME rpcbind 2684 rpc 6u IPv4 16722 0t0 UDP *:111 rpcbind 2684 rpc 7u IPv4 16726 0t0 UDP *:724 rpcbind 2684 rpc 8u IPv4 16727 0t0 TCP *:111 (LISTEN) rpcbind 2684 rpc 9u IPv6 16728 0t0 UDP *:111 rpcbind 2684 rpc 10u IPv6 16729 0t0 UDP *:724 rpcbind 2684 rpc 11u IPv6 16730 0t0 TCP *:111 (LISTEN) chronyd 2690 chrony 1u IPv4 16985 0t0 UDP 127.0.0.1:323 chronyd 2690 chrony 2u IPv6 16986 0t0 UDP [::1]:323 dhclient 2894 root 6u IPv4 17509 0t0 UDP *:68 dhclient 3025 root 5u IPv6 17833 0t0 UDP [fe80::4cc:c3ff:feb5:4782]:546 master 3159 root 13u IPv4 18690 0t0 TCP 127.0.0.1:25 (LISTEN) sshd 3324 root 3u IPv4 19944 0t0 TCP *:22 (LISTEN) sshd 3324 root 4u IPv6 19946 0t0 TCP *:22 (LISTEN) sshd 22733 root 3u IPv4 1298034 0t0 TCP 10.0.1.10:22->218.221.62.236:62426 (ESTABLISHED) sshd 22751 ec2-user 3u IPv4 1298034 0t0 TCP 10.0.1.10:22->218.221.62.236:62426 (ESTABLISHED) sshd 22872 root 3u IPv4 1299647 0t0 TCP 10.0.1.10:22->222.186.30.152:19459 (ESTABLISHED) sshd 22873 sshd 3u IPv4 1299647 0t0 TCP 10.0.1.10:22->222.186.30.152:19459 (ESTABLISHED)
Apacheをインストール
Webサーバー用のソフトであるApacheをインストールします。
// -yオプションはユーザーの確認なしで実行する指定 sudo yum -y install httpd
Apacheを起動
$ sudo systemctl start httpd
起動を確認する。
active:running
になっていればOKです。
$ sudo systemctl status httpd
システム起動時に毎回起動するように設定する。
$ sudo systemctl enable httpd
自動起動がONになっているかチェック
$ sudo systemctl is-enabled httpd
正しく構成されたらかをチェック
systemctl list-dependencies httpd
ポートを確認する
sudo lsof -i -n -P
を実行すると、80ポートの状態を確認できます。
・・・ 省略 ・・・ httpd 22968 root 4u IPv6 1301813 0t0 TCP *:80 (LISTEN) httpd 22969 apache 4u IPv6 1301813 0t0 TCP *:80 (LISTEN) httpd 22970 apache 4u IPv6 1301813 0t0 TCP *:80 (LISTEN) httpd 22971 apache 4u IPv6 1301813 0t0 TCP *:80 (LISTEN) httpd 22972 apache 4u IPv6 1301813 0t0 TCP *:80 (LISTEN) httpd 22973 apache 4u IPv6 1301813 0t0 TCP *:80 (LISTEN)
ブラウザでWebサーバーにアクセスする
インスタンスのパブリックIPでブラウザから表示できるか確認します。
ただし、80ポートがファイアウォールでブロックされているので接続することができません。
port 22 ------------> ○ sshd port 80 ------------> × httpd
ファイアウォールの設定はセキュリティグループで行います。
80番ポートを開ける
セキュリティグループを開きます。
変更したいセキュリティグループを選択して、「インバウンド」タブを選択します。
そして「編集」ボタンを押します。
「ルールの追加」ボタンを押して、以下のように設定します。 ※タイプでHTTPを選択してもOK.
ブラウザで表示
これで80番ポートが開放されたので、ブラウザでパブリックIPにアクセスしてみます。