ハンズオン1について
演習の概要
- 実際にAWS上に3層アーキテクチャを採用したアプリケーションを構築してみる
- 3層アーキテクチャとは、Webアプリケーションを3種類の構造に分けること
- 加えて、適切なネットワーク設定と冗長化を行なった上で、自前のWordPressのサーバとDBを立てる
AWS以外の説明
- WordPress
- 簡単にサイトを構築できるオープンソースのCMS
- CMSは、Contents Management Systemの略で、専門知識がなくともWebコンテンツの作成や管理ができるシステムです
- 一番シンプルな使い方だと、ブログとか作れる
- 簡単にサイトを構築できるオープンソースのCMS
構成の説明
基本演習
- リソースは全て作成するVPC内に配置
- アベイラビリティゾーンは1aのみを利用
- パブリックサブネットとプライベートサブネットを1つずつ作成
- ユーザはインターネットゲートウェイ経由で、パブリックサブネットに配置されたEC2にアクセスする
- ユーザはプライベートサブネットに配置されたRDSに直接アクセスすることはできない
- EC2はアクセスがあると、プライベートサブネットにあるRDSから情報を取得しユーザに返す
ポイント
- シンプルな構成で、VPC / サブネット / EC2 / RDS の基本を理解する
- ロードバランサーは利用しない
- シングルAZ構成のため、AZ障害に対する冗長化はない
基本演習で利用する AWS リソース
Amazon VPC
- AWS上に、仮想のプライベートネットワークを構築することができるサービス
- VPCを作成した上で、複数のプライベート/パブリックサブネットに分割することができる
インターネットゲートウェイ
- VPCとインターネットとの間の通信を可能にするためのもの
- これがあれば、パブリックサブネット内のリソースからインターネットへ、インターネット上のリソースからサブネット内のリソースへの通信できるようになる
- 例:ローカルコンピュータを使用してEC2インスタンスに接続できる
- リソースには、パブリック IPv4 アドレスまたは IPv6 アドレスを設定する必要がある
EC2
- 台数やスペックを柔軟に変更可能な仮想サーバ
- 必要な時に必要な台数を、時間課金で利用可能
RDS
- RDBMSのマネージドサービス
- 今回はその中でもAmazon Auroraを利用します
- MySQLとPostgreSQLに互換性のあるクラウド向けのRDB
- WordPressにはMySQLが必要なので、今回はMySQL互換のAuroraを使います
応用演習
- リソースは全て作成するVPC内に配置
- アベイラビリティゾーンは1aと1cを利用
- アベイラビリティゾーンごとにパブリックサブネットとプライベートサブネットを作成
- 1cのプライベートサブネットは、今回は作成するけど利用しない
- ユーザはインターネットゲートウェイ経由でロードバランサーにアクセスし、パブリックサブネットに配置されたEC2のどちらかにアクセスする
- ロードバランサーがEC2の状態を監視しているので、仮に片方のEC2が落ちていても、ユーザのアクセスは正常なEC2に振り分けられる
ポイント
- 適切なネットワーク設定
- ユーザはパブリックサブネットに配置されたEC2にしかアクセスできない
- プライベートサブネットに配置されたRDSへ、直接外部からアクセスすることはできない
- 冗長化
- 一部に障害が発生しても全体の機能を維持し続けられる仕組みにすること
- 2AZ + ロードバランサー構成にすることで、より実践的な冗長化を学べる
応用演習で利用する AWS リソース
ELB(Elastic Load Balancing)
- 従量課金で使うことのできるロードバランサ
- ロードバランサとは、外部からの通信(トラフィック)を複数のサーバに振り分け、負荷を分散するもの
- 異なる3種類のロードバランサがある。
- ☆Application Load Balancer (ALB)
- 今回使うのはこれ
- OSI 参照モデルにおけるレイヤ7(アプリケーション層)に対応
- Network Load Balancer (NLB)
- レイヤ4(トランスポート層)に対応
- Gateway Load Balancer (GWLB)
- サードパーティのセキュリティ製品をうまいこと使えるようにするためのVPCを接続することが目的のロードバランサ
- ☆Application Load Balancer (ALB)
