0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS Hands-on for Beginners スケーラブルウェブサイト構築編:学習メモ

Posted at

はじめに

AWSハンズオン for Beginnersシリーズとして提供されている「AWS Hands-on for Beginnersスケーラブルウェブサイト構築編」を実施した際のメモです。
サーバにホストされているアプリケーションは可用性、負荷分散、耐障害性を確保するため、スケーラブルな設計をする必要があります。
今回のハンズオンではEC2インスタンスにWordPressをインストールし、マルチAZ構成で可用性確保、ELBで負荷分散を行います。また、RDSもマルチAZ配置をし、障害に備える構成を構築します。

アジェンダ

  1. 本コースで構築するアーキテクチャとハンズオン全体の流れの紹介
  2. Amazon VPCの作成 ~ WordPress用Webサーバ・データベースを配置するための仮想ネットワークを作成する ~
  3. Amazon EC2の作成 ~ WordPressがインストールされたWebサーバを作成する ~
  4. Amazon RDSの作成 ~ WordPress用のMySQLデータベースを作成する~
  5. ELBの作成 ~ 負荷分散用のロードバランサーを作成する ~
  6. WordPressの初期設定 ~ WordPressの初期設定を行い簡単なブログを作る ~
  7. AMIの作成と作成したAMIから2つ目のEC2インスタンスの起動
  8. RDSのマルチAZ配置 〜 すでに作成済みのRDS DB インスタンスのマルチAZ化を行う 〜
  9. Webシステム全体の可用性の確認 〜 EC2インスタンスの停止やRDSのフェイルオーバーを行う 〜
  10. 補足 & まとめ & 今後のラーニングパスについて

メモ

画面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のターゲットグループについてはあまり触ったことがなかったので、大変勉強になりました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?