第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
以上でサーバー編は終了です。
次回はロードバランサー編で最終回になります。