Amazon-web-services-basic-architecture
アマゾンウェブサービス-基本アーキテクチャ
これは AWS EC2 の基本構造です。 EC2 はElastic Compute Cloudを表します。 EC2では、ユーザーは要件に応じて異なる構成の仮想マシンを使用できます。 さまざまな構成オプション、個々のサーバーのマッピング、さまざまな価格設定オプションなどが可能です。 これらについては、AWS製品セクションで詳しく説明します。 以下は、アーキテクチャの図表示です。
注-上記の図では S3 はSimple Storage Serviceを表しています。 ユーザーは、API呼び出しを使用してさまざまなタイプのデータを保存および取得できます。 コンピューティング要素は含まれていません。 このトピックについては、AWS製品セクションで詳しく説明します。
負荷分散
- 負荷分散*は、Webサーバー上のハードウェアまたはソフトウェアの負荷を意味します。これは、サーバーとアプリケーションの効率を向上させます。 以下は、負荷分散を使用したAWSアーキテクチャの図表示です。
ハードウェアロードバランサーは、従来のWebアプリケーションアーキテクチャで使用される非常に一般的なネットワークアプライアンスです。
AWSはElastic Load Balancingサービスを提供し、複数の利用可能なソース間でEC2インスタンスにトラフィックを分散し、負荷分散ローテーションからAmazon EC2ホストを動的に追加および削除します。
*Elastic Load Balancing* は、負荷分散キャパシティを動的に増減させてトラフィックの需要に合わせて調整し、さらに高度なルーティングニーズに対応するスティッキーセッションをサポートできます。
Amazonクラウドフロント
コンテンツ配信、つまり ウェブサイトの配信に使用されます。 エッジロケーションのグローバルネットワークを使用して、動的、静的、およびストリーミングコンテンツを含めることができます。 ユーザーの側にあるコンテンツのリクエストは、最も近いエッジ位置に自動的にルーティングされるため、パフォーマンスが向上します。
Amazon Cloud-frontは、Amazon S3やAmazon EC2などの他のAmazon Webサービスと連携するように最適化されています。 また、AWS以外のオリジンサーバーでも問題なく機能し、同様の方法で元のファイルを保存します。
アマゾンウェブサービスでは、契約や毎月のコミットメントはありません。 サービスを通じて配信するコンテンツと同程度または少ないコンテンツに対してのみ料金を支払います。
エラスティックロードバランサー
トラフィックをWebサーバーに拡散するために使用され、パフォーマンスが向上します。 AWSは、Elastic Load Balancingサービスを提供します。このサービスでは、複数の利用可能なゾーンでEC2インスタンスにトラフィックが分散され、ロードバランシングローテーションに対するAmazon EC2ホストの動的な追加と削除が行われます。
Elastic Load Balancingは、トラフィックの状態に応じて負荷分散容量を動的に拡大および縮小できます。
セキュリティ管理
AmazonのElastic Compute Cloud(EC2)は、受信ネットワークファイアウォールに似たセキュリティグループと呼ばれる機能を提供します。この機能では、EC2インスタンスに到達できるプロトコル、ポート、ソースIP範囲を指定する必要があります。
各EC2インスタンスには1つ以上のセキュリティグループを割り当てることができ、それぞれが適切なトラフィックを各インスタンスにルーティングします。 セキュリティグループは、EC2インスタンスへのアクセスを制限する特定のサブネットまたはIPアドレスを使用して構成できます。
エラスティックキャッシュ
Amazon Elastic Cacheは、クラウド内のメモリキャッシュを管理するウェブサービスです。 メモリ管理では、キャッシュは非常に重要な役割を果たし、頻繁に使用される情報をキャッシュすることで、サービスの負荷を軽減し、データベース層のパフォーマンスとスケーラビリティを向上させます。
Amazon RDS
Amazon RDS(リレーショナルデータベースサービス)は、MySQL、Oracle、またはMicrosoft SQL Serverデータベースエンジンと同様のアクセスを提供します。 同じクエリ、アプリケーション、およびツールをAmazon RDSで使用できます。
データベースソフトウェアに自動的にパッチを適用し、ユーザーの指示に従ってバックアップを管理します。 また、ポイントインタイムリカバリもサポートしています。 先行投資は不要であり、使用したリソースに対してのみ支払います。
EC2インスタンスでのRDMSのホスティング
Amazon RDSを使用すると、MySQL、Oracle、SQL Server、DB2など、お好みのRDBMS(リレーショナルデータベース管理システム)をインストールできます。 EC2インスタンスで必要に応じて管理できます。
Amazon EC2は、ネットワーク接続ストレージに類似したAmazon EBS(Elastic Block Storage)を使用します。 EC2インスタンスで実行されているすべてのデータとログはAmazon EBSボリュームに配置する必要があります。これは、データベースホストに障害が発生した場合でも使用できます。
Amazon EBSボリュームは、アベイラビリティーゾーン内で自動的に冗長性を提供します。これにより、シンプルディスクの可用性が向上します。 さらに、データベースのニーズに対してボリュームが十分でない場合は、データベースのパフォーマンスを向上させるためにボリュームを追加できます。
Amazon RDSを使用して、サービスプロバイダーはストレージを管理し、データの管理にのみ焦点を当てています。
ストレージとバックアップ
AWSクラウドには、ウェブアプリケーションのデータとアセットを保存、アクセス、バックアップするためのさまざまなオプションが用意されています。 Amazon S3(シンプルストレージサービス)は、ウェブ上のどこからでも、いつでも、あらゆる量のデータを保存および取得するために使用できるシンプルなウェブサービスインターフェイスを提供します。
Amazon S3は、 buckets と呼ばれるリソース内のオブジェクトとしてデータを保存します。 ユーザーは、バケット内の要件ごとにオブジェクトをいくつでも保存でき、バケットからオブジェクトを読み取り、書き込み、削除できます。
Amazon EBSは、ブロックストレージとしてアクセスする必要があるデータに有効であり、データベースパーティションやアプリケーションログなど、実行中のインスタンスの寿命を超えた永続性が必要です。
Amazon EBSボリュームは最大1 TBまで最大化でき、これらのボリュームはより大きなボリュームとパフォーマンス向上のためにストライプ化できます。 プロビジョンドIOPSボリュームは、ストレージのパフォーマンスと一貫性に敏感なデータベースワークロードのニーズを満たすように設計されています。
Amazon EBSは現在、ボリュームあたり最大1,000 IOPSをサポートしています。 複数のボリュームを一緒にストライプ化して、インスタンスごとに数千のIOPSをアプリケーションに配信できます。
オートスケーリング
AWSクラウドアーキテクチャと従来のホスティングモデルの違いは、AWSがWebアプリケーションのフリートをオンデマンドで動的にスケーリングし、トラフィックの変化を処理できることです。
従来のホスティングモデルでは、通常、トラフィック予測モデルを使用して、予測されるトラフィックよりも先にホストをプロビジョニングします。 AWSでは、フリートをスケールインおよびスケールインするトリガーのセットに従って、インスタンスをオンザフライでプロビジョニングできます。 Amazon Auto Scalingは、オンデマンドで拡大または縮小できるサーバーの容量グループを作成できます。
AWSでのWebホスティングの主な考慮事項
以下は、Webホスティングのための重要な考慮事項の一部です-
物理的なネットワークデバイスは不要
AWSでは、AWSアプリケーションのファイアウォール、ルーター、ロードバランサーなどのネットワークデバイスは物理デバイス上に存在しなくなり、ソフトウェアソリューションに置き換えられます。
品質の高いソフトウェアソリューションを確保するために、複数のオプションを利用できます。 ロードバランシングには、Zeus、HAProxy、Nginx、Poundなどを選択します。 VPN接続を確立するには、OpenVPN、OpenSwan、Vyattaなどを選択します。
セキュリティ上の懸念はありません
AWSは、すべてのホストがロックダウンされる、より安全なモデルを提供します。 Amazon EC2では、アーキテクチャ内のホストのタイプごとにセキュリティグループが設計されており、要件に応じてアーキテクチャ内のホスト間で最小限のアクセスを可能にするために、多種多様なシンプルかつ階層型のセキュリティモデルを作成できます。
データセンターの可用性
EC2インスタンスはAWSリージョンのほとんどのアベイラビリティーゾーンで簡単に利用でき、高可用性と信頼性の両方のためにデータセンター全体にアプリケーションをデプロイするためのモデルを提供します。