はじめに
AWSハンズオン for Beginnersシリーズとして提供されている「AWS Hands-on for Beginnersスケーラブルウェブサイト構築編」を実施した際のメモです。
サーバにホストされているアプリケーションは可用性、負荷分散、耐障害性を確保するため、スケーラブルな設計をする必要があります。
今回のハンズオンではEC2インスタンスにWordPressをインストールし、マルチAZ構成で可用性確保、ELBで負荷分散を行います。また、RDSもマルチAZ配置をし、障害に備える構成を構築します。
アジェンダ
- 本コースで構築するアーキテクチャとハンズオン全体の流れの紹介
- Amazon VPCの作成 ~ WordPress用Webサーバ・データベースを配置するための仮想ネットワークを作成する ~
- Amazon EC2の作成 ~ WordPressがインストールされたWebサーバを作成する ~
- Amazon RDSの作成 ~ WordPress用のMySQLデータベースを作成する~
- ELBの作成 ~ 負荷分散用のロードバランサーを作成する ~
- WordPressの初期設定 ~ WordPressの初期設定を行い簡単なブログを作る ~
- AMIの作成と作成したAMIから2つ目のEC2インスタンスの起動
- RDSのマルチAZ配置 〜 すでに作成済みのRDS DB インスタンスのマルチAZ化を行う 〜
- Webシステム全体の可用性の確認 〜 EC2インスタンスの停止やRDSのフェイルオーバーを行う 〜
- 補足 & まとめ & 今後のラーニングパスについて
メモ
画面UIについて
Nameに日本語入力ができませんでした。
具体的にいうと、入力欄でローマ字入力し、ひらがなをカタカナに変換し、エンターを押下した時、内容が反映されず、入力欄が閉じてしまうという事象が発生しました。
対応策として、変換した後、エンターを押さず、マウスで「保存」ボタンを押下することでなんとか対応できました。しかし、不便に感じました。
ユーザーデータについて
ユーザーデータとは、EC2インスタンス初回起動時のみ実行するスクリプトのことです。これによって起動中にApacheをインストールし、サーバ起動と同時に実行できます。
また、以下のリンクの通り起動毎に実行できるようです。
今回のハンズオンではApacheやWordpressのインストールをサーバ初回起動時に行えば良いので前者の方法で行います。
4.Amazon RDSの作成 について
RDSインスタンスを起動する際は以下2つの手順を実施します。
①EC2からRDSインスタンスにアクセスできるようにするセキュリティグループの作成
まず、RDS用のセキュリティグループを作成します。
インバウンドルールは、MYSQL/AURORAを選択、ソースはEC2インスタンスにアタッチされているセキュリティグループを選択します。
②RDSインスタンス作成
まず、RDSインスタンス群をデプロイするサブネットグループを作成します。
次に、サブネットグループにRDSインスタンスをデプロイします。
5.ELBの作成 について
ELBの作成は以下3つの手順で行います。
①最初に、ELB用のセキュリティグループを作成します。
インバウンドルールにHTTPを指定します。ソースは0.0.0.0/0を指定します。
②次に、ELBの負荷分散対象のグループであるターゲットグループを作成します。ターゲットグループに前工程(03 Amazon EC2の作成)で作成した、EC2インスタンスを含めます。
③次に、ELBを作成します。負荷分散するAZ、サブネットおよびターゲットグループを選択します。
ELBとターゲットグループを紐づけるとターゲットグループ作成時に設定したヘルスチェックが実行され、ターゲットグループの画面で確認ができます。ヘルスチェックが正常であればHelthyと表示される。
7.AMIの作成と作成したAMIから2つ目のEC2インスタンスの起動 について
最初に、1つのAZ(AZ1)にWordPressをインストールしたEC2インスタンスを作成しました。冗長構成を取りたいため、別のAZ(AZ2)に同じEC2インスタンスをデプロイしたいです。
AZ1のインスタンスからAMIを作成し、それをAZ2にデプロイする方法を使用します。
まず、AMIの作成は、EC2インスタンスの一覧から作成したいインスタンスをチェックし、アクションから行うことができます。
次に、AMIからインスタンスを生成する際は、AMI画面から「AMIからインスタンスを起動」を選択することで実施可能です。
上記手順で作成したEC2インスタンスを、ELBのターゲットグループに追加することで複数AZに跨る高可用性を持った構成をとることができます。
8.RDSのマルチAZ配置 について
RDSコンソールから、既存データベースを選択し、変更します。
マルチAZ配置を「スタンバイインスタンスを作成する(本稼働環境向けに推奨)」を選択することで、DBインスタンスを複数AZにデプロイでき、高可用性を担保できます。
9.Webシステム全体の可用性の確認 について
Webレイヤーとデータベースレイヤーが可用性を確保できているか以下の手順で確認しました。
Webレイヤー
複数EC2インタンスのうち1つを停止させる。その後、ELBエンドポイントにブラウザからアクセスし、WordPressが表示されることを確認します。
リソース削除時の注意点
AMIの削除の際、まず、削除対象AMIの登録を解除する必要があります。
次に、EBSのスナップショットからAMIの本体であるスナップショットを削除します。
ハンズオンの感想
ECサイトなど可用性が求められるサービスを作成する際に必要な構成を学習できました。
ELBのターゲットグループについてはあまり触ったことがなかったので、大変勉強になりました。