AWS ウェブホスティングアーキテクチャの主要コンポーネント - AWSクラウドでのウェブアプリケーションのホスティング

AWS ウェブホスティングアーキテクチャの主要コンポーネント

以下のセクションでは、AWS クラウドでデプロイされるウェブホスティングアーキテクチャの主要なコンポーネントについていくつか概説し、従来型のウェブホスティングアーキテクチャとの違いを説明します。

ネットワーク管理

AWS クラウドでは、他のお客様のネットワークから自分のネットワークを分離する機能で、より安全でスケーラブルなアーキテクチャが可能になります。セキュリティグループがホストレベルのセキュリティ (ホストセキュリティセクションを参照) を提供する一方で、Amazon Virtual Private Cloud (Amazon VPC) は、お客様が定義する論理的に分離された仮想ネットワークでリソースを起動できます。

Amazon VPC は AWS でのネットワークのセットアップの詳細を完全にコントロールするサービスです。こうしたコントロールの例としては、ウェブサーバーのパブリック側のサブネットの作成や、データベースのインターネット接続がないプライベートサブネットの作成があります。さらに、Amazon VPC では、ハードウェアバーチャルプライベートネットワーク (VPN) を使用してハイブリッド型アーキテクチャを作成でき、また固有のデータセンターの拡張機能として AWS クラウドを使用できます。

Amazon VPC には、お使いのネットワークの従来型の IPv4 サポートに加えて、IPv6 サポートも含まれます。

コンテンツ配信

ウェブトラフィックが地理的に分散している場合、インフラストラクチャ全体を世界中にレプリケートすることは常に実現可能であるとは限らず、費用効果も間違いなく高くありません。コンテンツ配信ネットワーク (CDN) は、エッジロケーションのグローバルネットワークを利用して、動画、ウェブページ、画像などのウェブコンテンツのキャッシュされたコピーを顧客に配信する機能を提供します。CDN は、応答時間を短縮するために、顧客または発信元のリクエストロケーションに最も近いエッジロケーションを利用します。ウェブアセットがキャッシュから配信されると、スループットが劇的に向上します。動的データの場合、多くの CDN を、オリジンサーバーからデータを取得するように設定できます。

CloudFront を使用すると、エッジロケーションのグローバルネットワークを使用して、動的、静的、ストリーミングコンテンツを含むウェブサイトを配信できます。CloudFront は可能な限り最高のパフォーマンスでコンテンツが配信されるように、コンテンツのリクエストを、最も近いエッジロケーションに自動的にルーティングします。CloudFront は、Simple Storage Service (Amazon S3)Amazon Elastic Compute Cloud (Amazon EC2) など、他の AWS のサービスと連携するように最適化されています。CloudFront はまた、オリジナルの最終ファイルが格納されている AWS 以外のオリジンサーバーともシームレスに連携します。

他の AWS のサービスと同様に、CloudFront を使用するための契約やは月々の最低使用料金は不要です。サービスを通じて実際に配信されたコンテンツの量に応じてお支払いいただくだけです。

また、ウェブアプリケーションインフラストラクチャのエッジキャッシュに対する既存のソリューションは、AWS クラウドでも問題なく動作するはずです。

パブリック DNS の管理

ウェブアプリケーションを AWS クラウドに移行するには、ドメインネームシステム (DNS) を多少変更する必要があります。DNS ルーティングの管理をサポートするために、AWS は、高い可用性を備え、スケーラブルなクラウド DNS ウェブサービスである Amazon Route 53 を提供しています。Route 53 は、「www.example.com」などの名前を、コンピュータが相互に接続するための数字の IP アドレス (192.0.2.1 など) に変換することで、エンドユーザーをインターネットアプリケーションにルーティングできるきわめて信頼性が高く経済的な方法をデベロッパーや企業に提供するように設計されています。Route 53 は IPv6 にも完全準拠しています。

ホストセキュリティ

AWS では、エッジでのインバウンドネットワークトラフィックのフィルタリングに加えて、ウェブアプリケーションではホストレベルでネットワークトラフィックフィルタリングを適用することも推奨しています。Amazon EC2 は、セキュリティグループという名前の機能を備えています。セキュリティグループはインバウンドネットワークファイアウォールと似ており、これに対して、EC2 インスタンスに到達することを許可するプロトコル、ポート、ソース IP 範囲を指定できます。

1 つ以上のセキュリティグループを各 EC2 インスタンスに割り当てることができます。各セキュリティグループは、各インスタンスへの適切なトラフィックを許可します。セキュリティグループは、特定のサブネットまたは IP アドレス、リソースのみが EC2 インスタンスにアクセスできるように設定できます。また、他のセキュリティグループを参照して、特定のグループに属する EC2 インスタンスへのアクセスを制限することもできます。

図 3 の AWS ウェブホスティングアーキテクチャでは、ウェブサーバークラスターのセキュリティグループが、ウェブレイヤーのロードバランサーからのみ、かつポート 80 と 443 (HTTP と HTTPS) の TCP 経由でのアクセスのみを許可します。一方、アプリケーションサーバーのセキュリティグループは、アプリケーションレイヤーのロードバランサーからのアクセスのみを許可します。このモデルでは、サポートエンジニアも EC2 インスタンスにアクセスする必要があります。これは AWS Systems Manager Session Manager で実現できます。セキュリティに関するさらに詳しい説明については、AWS クラウドセキュリティを参照してください。セキュリティ冊子、認定情報、AWS のセキュリティ機能について説明する、セキュリティに関するホワイトペーパーが含まれています。

クラスター全体のロードバランシング

ハードウェアロードバランサーは、従来型のウェブアプリケーションアーキテクチャで使用される一般的なネットワークアプライアンスです。AWS では、Elastic Load Balancing (ELB) サービスを通じてこの機能を提供します。ELB は、受信アプリケーショントラフィックを、EC2 インスタンス、コンテナ、IP アドレス、AWS Lambda 関数、仮想アプライアンスなどの複数のターゲットに自動的に分散させます。変動するアプリケーショントラフィックの負荷を、1 つのアベイラビリティーゾーンまたは複数のアベイラビリティーゾーンで処理できます。Elastic Load Balancing では、4 種類のロードバランサーが用意されています。これらはすべて、アプリケーションの耐障害性を高めるのに必要な高い可用性、オートスケーリング、堅牢なセキュリティを特徴としています。

その他のホストとサービス

従来型のウェブホスティングアーキテクチャでは、ホストの大半が静的 IP アドレスを持ちます。AWS クラウドでは、ホストの大半がダイナミック IP アドレスを持ちます。それぞれの EC2 インスタンスには、パブリックとプライベートの両方の DNS エントリがあり、インターネットを通じてアドレス指定されますが、DNS エントリと IP アドレスは、インスタンスを起動するときに動的に割り当てられます。手動で割り当てることはできません。静的 IP アドレス (AWS 用語で Elastic IP アドレス) は、起動後の実行中インスタンスに割り当てることができます。プライマリデータベース、集中ファイルサーバー、EC2 がホストするロードバランサーなど、一貫したエンドポイントを必要とするインスタンスとサービスでは、Elastic IP アドレスを使用する必要があります。

ウェブアプリケーション内でのキャッシング

インメモリアプリケーションキャッシュは、頻繁に使用される情報をキャッシュすることにより、サービスの負荷を減らし、データベースレイヤーのパフォーマンスとスケーラビリティを向上させることができます。Amazon ElastiCache は、クラウド内でインメモリキャッシュを簡単にデプロイ、運用、スケールできるウェブサービスです。作成するインメモリキャッシュは、負荷に応じて自動的にスケールし、障害のあるノードを自動的に置き換えるように設定できます。ElastiCache は、Memcached と Redis のプロトコルに準拠しており、現在のオンプレミスソリューションからの移行を簡素化します。