【AWS】ネットワーク学習の備忘録2
■はじめに
前回同様、AWSでネットワーク構築するにあたりやったことを記録していきます。
■仮想サーバーを構築する
▼インスタンス作成
手順①インスタンスを作成する
一応、リージョンが「東京」となっていることを確認し、「インスタンス」メニューから「インスタンスの作成」ボタンをクリックして作成開始します
手順②AMIを選択する
インスタンスの作成画面に移行しますので、「ステップ1:Amazonマシンイメージ(AMI)」の選択をします。いろんなOSを選択可能ですが、ここではAmazonが管理している「Amazon Linux 2」を選択しました。
手順③インスタンスを選択する
「ステップ2:インスタンスタイプの選択」をします。無料利用枠の「t2.micro」にチェックをいれ、「次のステップ」ボタンをクリックします。
手順④インスタンスの詳細情報を設定する
設定項目がずらっと出ます。変更するのは以下になります。
ネットワーク:前回作ったVPCを選択してください。
サブネット:前回作ったサブネットを選択してください。
自動割り当てパブリックIP:「有効」を選択してください。
ネットワークインターフェース(プライベートIPアドレスの設定):サブネットは上記同様、前回作ったサブネットを選択し、IPに「10.0.1.10」(適当に設定)を入力します。
入力が済んだら「次のステップ」ボタンをクリックします。
手順⑤ストレージを設定する
特に設定せずにデフォルトのまま「次のステップ」ボタンをクリックします。
手順⑥インスタンスに名前を付ける
サーバー名を決めて「次のステップ」ボタンをクリックします。
手順⑦セキュリティグループを付ける
名前だけ決めて設定はデフォルトのまま「次のステップ」ボタンをクリックします。後で、httpアクセスを許可する設定をします。
手順⑧インスタンスを起動する
最後に「起動」ボタンをクリックします。
手順⑨キーペアを作成してダウンロードする
インスタンスにログインするのに必要なキーペアをダウンロードします。「新しいキーペアを作成」プルダウンを選択し、キーペア名を入力します。入力したキーペア名でキーペアが作られますので、「キーペアのダウンロード」ボタンをクリックしてダウンロードします。注意が必要なのが、再度ダウンロードすることはできない点です。なので、キーペア名をミスったりすると変更できません。ダウンロードが済んだら大切に保管した後「インスタンスの作成」ボタンをクリックして完了です。
手順⑩インスタンスの起動
「EC2」コンソールの「インスタンス」メニューに作成したインスタンスが表示されているはずです。
■インスタンスの状態を確認する
[インスタンス]メニューをクリックすると、自身の作成したインスタンスの一覧が表示され、各インスタンスの状態や設定が 確認できます。一覧の[インスタンスの状態]列に[running(緑の丸)]や[stopped(赤の丸)]などと表示されていると思うので、ここ はわかりやすいと思います。
running : 実行中(課金対象)
stoppde : 停止中(課金されない)
pending : running 状態への移行準備中(課金されない)
stopping : 停止または休止の準備中(停止準備中:課金されない 休止準備中:課金される)
shutting-down : 削除準備中(課金されない)
terminated : 完全に削除された状態で起動は不可(課金されない)
★補足★
インスタンスを停止させると料金が発生せずコストを下げることができます。ただし、EC2のストレージであるEBS(Amazon Elastic Block Store)は、インスタンスが停止していても容量を確保し続けるため、その間の料金は発生します。EBSの料金は作成したインスタンスのタイプによって異なるので作成の際に確認しときましょう。
■SSHで接続して確認してみる
本当にインターネットから接続できるか確認してみました。方法は「Tera Term」を利用してSSH接続することにしました。
▼パブリックIPアドレスを確認する
[EC2]コンソールの[インスタンス]メニューでインスタンスを選択すると画面下部の説明に情報が表示されますので、そこからパブリックIPアドレスが確認できます。
▼SSHで接続する
Tera Termを利用して接続してみました。
手順①接続先情報を入力する
・[ホスト]に先ほど確認したパブリックIPアドレスを入力する
・[サービス]でSSHを選択する
・[TCPポート]はポート番号のことなので「22」と入力する
※セキュリティ警告の画面がでますが、「続行」します。知らないホストへ接続する際に表示されるもので、[このホストをknow hostsに追加する]にチェックを入れると次回接続する際は表示されなくなります。
手順②SSH認証を行う
・[ユーザー名]に「ec2-user」(Amazon Linux 2の場合のデフォルトのユーザー名)と入力する
・[認証方式]で[RSD/DSA/ECDSA/ED25519鍵を使う]を選択し、インスタンス作成時にダウンロードしたキーペアファイルを選択する
問題なく接続ができ、Amazon Linux 2のウェルカムページが表示されました。コマンドも正常に実行できました。
■Webサーバーソフトをインストールする
作成した仮想サーバーをWebサーバーとして機能させるためにWebサーバーソフトである「Apache」をインストールします。
▼サーバーにApacheをインストールする
「Tera Tarm」でサーバーにSSH接続しているので、そのまま下記コマンドを実行します。(sudoコマンドなのは、ログインしているユーザー(ec2-user)が管理者権限でないため)
sudo yum -y install httpd
●Apacheを自動起動に設定する
サーバーの再起動の際にいちいちAmazonも起動させるのは面倒なので、下記コマンドで自動起動の設定をします。
sudo systemctl enable httpd.service
●構成を確認方法
下記コマンドで確認できます。一覧がズラっと表示されますが、「httpd.service」が「enable」になっていたので問題ないはずです。
sudo systemctl list-unit-files -t service
▼Apacheが実行されているか確認する
Apacheの実行コマンドは「httpd」ですので、下記コマンドで確認できます。これでサーバー上で動作しているすべてのプロセスからhttpdが含まれる行だけを表示させることができます。
ps -ax | grep httpd
また、以下のコマンドでポートの待ち受け状況も確認することができます。表示される一覧にhttpdがあるはずです。
sudo lsof -i -n -P
※「TCP *:80」と書かれているので、80ポート番号で待ち受けることになっています。80番はHTTPのウェウノウンポートですね。
■ファイアウォールを設定する
ブラウザからWebサーバーにアクセスして確認したいので、まずは「ファイアウォール」の設定をしていきます。AWSのEC2では「セキュリティグループ」というシステムがファイアウォールの機能を担っています。
▼Apacheが実行されているか確認する
「EC2」コンソールから「セキュリティグループ」メニューを選択して、インスタンス作成時に設定したセキュリティグループを選択します。すると画面下部に詳細が表示されますので、「インバウンドルール」タブを選択し、「インバウンドルールを編集」をクリックします。インバウンドルールの編集画面に移動したら以下のように設定します。
タイプ:HTTP
ポート範囲:80
ソース:0.0.0.0/0(すべてのホストの意)
設定が済んだら「ルールの追加」をして後、「ルールの保存」をクリックして完了です。これでWebブラウザからアクセスできるようになりました。
■おわりに
まだ、Apacheのページが表示されるだけですが、とりあえずWebサーバーの準備はできました。次に機会があれば作業の続きを載せていこうと思います。内容的にはデータベースサーバーの準備からの作業になると思います。では、また。