見出し画像

AWS 入門の記録(100)

 「AWS 入門の記録」の記念すべき 100 エントリ目ですが、淡々と今日もUdemy の「【AWS初心者向け】手を動かして身につける! 実戦で役立つAWSサービスの基礎とアーキテクチャ(SAAレベル) 」の続きをやります。継続と反復重要。

再現環境の確認

画像1

  今日は、前回の続き、「【再現】サーバー台数を増やそう」の環境の再現に挑戦します。前回構築した「サーバーを機能ごとに分割しよう」では、踏み台サーバー+Webサーバー+ALB +RDS という構成でした。これを冗長化して「踏み台サーバー+Webサーバー× 2 (WordPress のデータアップロード先を S3 に変更)+ ALB + RDS(マルチAZ化)」という構成にするのが目的です。S3 をデータのアップロード先に指定することで、ALB で接続先のサーバーが振り分けられても同じ場所にアップロードされるようになります。動画の手順では、「サーバーを機能ごとに分割しよう」の構成を拡張していましたが、これをいきなり「サーバー台数を増やそう」の構成で構築したいと思います。そうだ、思い出しました。これ、S3バケットをWordPressのメディア保存先にするために、WordPress のプラグインを利用するんですよね。動画を見ながらやった手順が、なんとなく蘇ってきました。

考えた構築手順

1.VPS に、Subnet × 6 、インターネットゲートウェイを作成。
2.Subnet のうちの 2つを Public に。
3.Public Subnet -a に踏み台サーバー用 EC2 起動。
4.Protected Subnet -a に Webサーバー用 EC2起動。
5.Public Subnet -c に NAT Gateway を作成し、Webサーバーとルーティング
6.Webサーバーに、Apache、PHP、MySQLをインストール
  (WordPress はダウンロードして展開のみ)
7.ALB を作成して、Web サーバーと関連付け。
8.Amazon RDS を作成して、マルチAZ を有効にする。Webサーバーの MySQL クライアント経由で WordPress 用のユーザーとDBを登録
9.Web サーバーの wp-config.php のDBサーバ設定を RDS に、URL設定をALBに変更してwordpress一式をドキュメントルートに配置
10.ALB のDNSにアクセスして、WordPress をインストールする。
11.空の Amazon S3 バケットを作成
12.WordPress に、メディアデータの保存先に Amazon S3 バケットを指定できるよう、プラグインをインストールする。
13.WordPress のメディアアップロード先を、作成したバケットに変更。
14.WordPress にメディアをアップロードして、S3 バケットに保存されることを確認する。
15.Web サーバーの AMI イメージをもとに、Protected-C に2台めのWeb サーバーを配置して、起動、ALB の対象に追加。
16.1台目のWeb サーバーを停止しても、ALB を介してWordPress にメディアがアップロードができることを確認する。

S3 バケットは久しぶりに作成するので手順が不安ですが、躓いたら動画を見て確認しながら完成させたいと思います。がんばろー。

VPS に、Subnet × 6 、インターネットゲートウェイを作成

では、早速、順にできるところまで作成していきます。

画像2

VPC を新規作成して、

画像3

Subnet (Public × 2、Protected × 2、Private × 2)を作成

画像4

インターネットゲートウェイ(IGW)の作成

画像5

IGW を VPC にアタッチ。

画像6

Subnet のうちの 2つを Public に

ルートテーブルの作成と、Public Subnet と関連付け。

画像7

Public Subnet -a に踏み台サーバー用 EC2 起動

画像8

↓↓↓

画像10


画像11

TeraTerm でログインできました。

Protected Subnet -a に Webサーバー用 EC2起動

画像12

セキュリティグループは、Web接続用のHTTPのみ許可しておいて、SSHは踏み台サーバー経由で接続できるようにします。

画像13

では、踏み台サーバーからポートフォワーディングして SSH 接続できるか、確認してみます。

画像14

踏み台サーバーに接続中のターミナルに、SSH 転送の設定追加

画像15

踏み台サーバーを経由して、Web サーバーにログインできました。

NAT Gateway の作成

画像16

Web サーバーの環境構築用に、NAT Gateway を作成して

画像17

Protected Subnet へのルーティングを追加します。

画像18

yam パッケージの更新ができたので、

画像19

Apache をインストールして起動と自動起動設定、

画像20

MySQL をインストールして、

画像21

念の為、匿名ユーザーやリモートからのログインを禁止して、自動起動設定。

画像22

PHP をインストールして、

画像23

WordPress をダウンロードして、展開しておきます。

RDS(マルチAZ)の作成

画像24

MySQL 8.0 のパラメータグループを作成

画像25

Private Subnet -a と -c のサブネットグループを作成。

画像25

マルチAZで作成できたので、フェールオーバーの確認をします。

画像26

画像27

RDS に、WordPress 用の DB とユーザーを作成します。

画像28

あれ、接続できない。セキュリティグループを確認したところ、Webサーバー用のセキュリティグループを設定していました。MySQL/Aurora からのインバウンドを許可するセキュリティグループに変更してRDSを再起動します。

画像29

画像30

今度は大丈夫。

画像31

WordPress 用の DB とユーザーを登録しました。

ALB の作成とターゲットグループ登録

先週のハンズオンでは、すんなり作成できたのに、ALB の作成時の Subnet の選択で迷ってしまい、ALB 作成の動画を見直しました。

画像32

ターゲットグループに起動済のWeb サーバーを追加しました。

WordPress のインストール

画像33

wordpress/wp-cpnfig.php を編集して、WP_HOME と WP_SITEURL を ALB のDNSに変更します。

画像34

DBは、RDSを使用する設定にします。

保存して、WordPress のファイル一式を/var/www/html/ にコピーしてApache を再起動します。

画像35

がーーーーん。何か忘れているようです。。。

画像37

Web サーバーのステータスが Unhealthy って言われています。でも、インスタンスは正常なんですよね。。。エラーメッセージを確認すればいいかな。

うーん、今日はここまでで時間切れ。次回、再チャレンジします。

後片付け

画像36

画像38

画像39

画像40

あれ?Web サーバーのインスタンスは終了したのに、まだ実行中って言われています。

画像41

ALB を削除したら、VPC の削除ができる状態になりました。そうか、ALBのターゲットになっていたせいだったんですね。すっきり。

画像42

残っていたElasticIPを開放しました。

ふりかえり

一気に設定するんじゃなくて、Apache のテストページが ALB の DNS 名で表示できるか?とか、ステップごとに確認した方が良かったな。先週サクサクっと作成できたので、確認を怠ってしまったのがいけなかった気がします。反省。。。(´・ω・`)

うーん、ハンズオンが中途半端に終わって気持ち悪いけど、今日はここまで。続きは、次の週末の予定です(たぶん)

あああああ、くやしぃぃぃぃい

追記:「ALB 設定」の復習

なんだかもう悔しいので、ALB 設定までを復習して終わることにします。

画像43

VPC と Subnet × 6 の登録

画像44

IGW を VPC にアタッチ

画像45

ルートテーブルの登録。

画像46

踏み台経由でWebサーバーログインと、Apacheインストール。

画像47

ALB の登録とターゲットグループにWeb サーバー追加。

画像48

ALB の DNS 名をブラウザ表示して、Apache のテストページ表示が確認できました。次回は、「サーバー台数を増やそう」の環境を再現するんだ。ちくしょうっっっ。

後片付けをして、今日の学習はおしまい。ふぅ。。。

いいなと思ったら応援しよう!