第3回目はサーバー編ということで、主EC2を作成していきます。

構成図

構成図でいうと赤枠部分の設定をしていきます。

セキュリティグループの作成

まずロードバランサー、踏み台サーバー、WEBサーバのセキュリティグループを作成します。
ロードバランサーのセキュリティグループだけ先に作ります。
必要最低限な設定をしますので、それぞれ以下の設定となります。

役割 名称 許可ポート アクセス元
ロードバランサー web-system-alb-sg https(443番ポート) どこからでも許可
踏み台サーバー web-system-bastion-sg SSH(22番ポート) 自分のグルーバルIPアドレス
WEBサーバー web-system-sg http(80番ポート) ロードバランサーからのみ
WEBサーバー web-system-sg SSH(22番ポート) 踏み台サーバーからのみ

・ロードバランサーのセキュリティグループ作成

ロードバランサーのセキュリティグループから作成します。
AWSマネジメントコンソールからEC2へ移動します。
「セキュリティグループ」をクリックします。

次に「セキュリティグループを作成」をクリックします。

セキュリティグループの名称、説明を入力します。例では「web-system-alb-sg」とします。
VPCはネットワーク編で作成したVPCを選択します。
さらにルールを追加をクリックします。

タイプ「HTTPS」
ソース「Anywhere-IPv4」を選択します。

最後に「セキュリティグループの作成」をクリックします。

同じ要領で踏み台サーバー用とWEBサーバー用のセキュリティグループを作成します。

AWSマネジメントコンソールからEC2へ移動します。
「セキュリティグループ」をクリックします。

次に「セキュリティグループを作成」をクリックします。

セキュリティグループの名称、説明を入力します。例では「web-system-bastion-sg」とします。
VPCはネットワーク編で作成したVPCを選択します。
さらにルールを追加をクリックします。

タイプ「SSH」
ソース「マイIP」を選択します。

これで今作業をしている環境のグローバルIPアドレスからのみ踏み台サーバーにSSHできます。

最後に「セキュリティグループの作成」をクリックします。

3つ目にWEBサーバー用のセキュリティグループを作成します。
AWSマネジメントコンソールからEC2へ移動します。
「セキュリティグループ」をクリックします。

次に「セキュリティグループを作成」をクリックします。

セキュリティグループの名称、説明を入力します。例では「web-system-sg」とします。
VPCはネットワーク編で作成したVPCを選択します。
さらにルールを追加をクリックします。

1つ目は
タイプ「HTTP」
ソース「ロードバランサーのセキュリティグループ(web-system-alb-sg)」を選択します。
これでロードバランサーからのHTTP通信だけ許可するルールになります。

2つ目は
タイプ「SSH」
ソース「ロードバランサーのセキュリティグループ(web-system-bastion-sg)」を選択します。
これで踏み台サーバーからのSSH通信だけ許可するルールになります。

以下の例ではセキュリティグループIDになっていますがソースの中から対応するセキュリティグループを選んでください。

以上でセキュリティグループの作成は完了です。

EC2作成

次にEC2を作成します。
まず踏み台サーバから作成します。

AWSマネジメントコンソールからEC2へ移動します。
「インスタンス」をクリックします。

「インスタンスを起動」をクリックします。

インスタンス名を入力します。例では「web-system-bastion」とします。
Amazon マシンイメージとアーキテクチャはそのままとします。
必要に応じて適宜変更してください。

インスタンスタイプは「t2.micro」とします。こちらも必要に応じて変更してください。
インスタンスタイプを選択した後に「新しいキーペア作成」をクリックします。
既にキーをさ作成済みの場合は作成不要です。

キーペア名を入力します。例では「web-system-key」とします。
キーペアのタイプとプライベートキーファイル形式はそのままで問題ありません。
「キーペアを作成」をクリックします。

キーペアが作成されたことを確認します。

次にネットワークの設定をします。
「変更」をクリックします。

VPCはネットワーク編で作成したVPCを選択
サブネットはネットワーク編で作成したPulicサブネットを選択
セキュリティグループは先ほど作成した「web-system-bastion-sg」を選択します

最後に画面右下の「インスタンスを起動」をクリックします。

Elastic IP適用

起動した踏み台サーバーにElastic IPを適用して外部からSSHでアクセスできるようにします。

AWSマネジメントコンソールからEC2へ移動します。
「Elastic IP」をクリックします。

次に「Elastic IPアドレスを割り当てる」をクリックします。

タグに「Name」を指定します。例では「web-system-bastion」とします。

Elastic IPが作成されたことを確認します。
作成したElastic IPを先ほど作成した踏み台サーバーに適用します。

「アクション」→「Elastic IP アドレスの関連付け」を選択します。

リソースタイプから「リソース」を選択します。
インスタンスは作成した踏み台サーバーのインスタンスを選択します。
最後に「関連付ける」をクリックします。

インスタンスの状態が「実行中」
ステータスチェック「2/2のチェックに合格しました」
となっていることを確認します。

また関連付けしたパブリックIPv4アドレスが適用されていることを確認します。

作成した踏み台サーバにログインできるか確認しましょう。
web-system-key.pemは作成した鍵で18.176.183.111はElastic IPです。お使いの環境に合わせて読み替えてください。

$ ssh -i web-system-key.pem ec2-user@18.176.183.111

WEBサーバー作成

次にWEBサーバを作成します。
先ほどの踏み台とほぼ同じ要領になります。

AWSマネジメントコンソールからEC2へ移動します。
「インスタンス」をクリックします。

「インスタンスを起動」をクリックします。

インスタンス名を入力します。例では「web-system」とします。
Amazon マシンイメージとアーキテクチャはそのままとします。
必要に応じて適宜変更してください。

キーペア名は先ほど作成した「web-system-key」を選択します。
新規で作成しても問題ありません。

次にネットワークの設定をします。
「変更」をクリックします。

VPCはネットワーク編で作成したVPCを選択
サブネットはネットワーク編で作成したPrivateサブネットを選択
セキュリティグループは先ほど作成した「web-system-sg」を選択します

最後に画面右下の「インスタンスを起動」をクリックします。

インスタンスの状態が「実行中」
ステータスチェック「2/2のチェックに合格しました」
となっていることを確認します。
そしてプライベートIPアドレスのみ振られていることを確認します。

WEBサーバーに振られたプライベートIPアドレスで踏み台サーバーからSSHでログインできることを確認しましょう。
ログインできない場合はセキュリティグループの設定が間違っている可能性があります。

踏み台サーバーから以下のコマンドでログインできることを確認します。

ssh -i web-system-key.pem ec2-user@10.150.20.15

web-system-key.pemは作成した鍵で10.150.20.15はプライベートIPアドレスです。お使いの環境に合わせて読み替えてください。
鍵は踏み台サーバーにコピーしておきます。catコマンドで開いてコピー&ペーストのコピーでも問題なく動作します。
鍵の権限変更だけ忘れないで実行してください。

$ chmod 400 web-system-key.pem

WEBサーバー設定

WEBサーバーにログインできましたら、Apacheのインストールと起動します。

以下のコマンドでApacheのインストールをします。

sudo yum install httpd -y 

次に起動します。さらに自動起動も設定します。

$ sudo systemctl start httpd
$ sudo systemctl enable httpd

起動していることを確認します。

$ sudo systemctl status httpd

active (running)となっていることを確認します。

次にサンプルページを作ります。
viエディタを使う必要はありませんので、お好きなエディタを使用して「web-system」とだけ書いてindex.htmlを作成します。

sudo vi /var/www/html/index.html
web-system

以上でサーバー編は終了です。
次回はロードバランサー編で最終回になります。

元記事はこちら

今さら聞けないAWSでロードバランサーを使ったWEBサイト構築手順(サーバー編)
著者:
@ksawada1979


アイレットなら、AWS で稼働するサーバーを対象とした監視・運用・保守における煩わしい作業をすべて一括して対応し、経験豊富なプロフェッショナルが最適なシステム環境を実現いたします。AWS プレミアコンサルティングパートナーであるアイレットに、ぜひお任せください。

AWS 運用・保守サービスページ

その他のサービスについてのお問合せ、お見積り依頼は下記フォームよりお気軽にご相談ください。
https://www.iret.co.jp/contact/service/form/