ウェブホスティングに AWS を使用する際の重要な考慮事項
AWS クラウドと従来型のウェブアプリケーションホスティングモデルの間には、いくつかの重要な違いがあります。前のセクションでは、ウェブアプリケーションをクラウドにデプロイするときに考察すべき多くの重要な分野に焦点を当てました。このセクションでは、アプリケーションをクラウドに移動するときに考える必要がある重要なアーキテクチャ上の変更についていくつか取り上げます。
物理的なネットワークアプライアンスはもうありません
AWS では、物理的ネットワークアプライアンスをデプロイすることはできません。例えば、AWS アプリケーションのファイアウォール、ルーター、ロードバランサーは、物理的デバイスに常駐しなくなり、ソフトウェアソリューションに置き換える必要があります。ロードバランシングの場合、または VPN 接続を確立する場合のいずれでも、さまざまなエンタープライズ品質のソフトウェアソリューションがあります。これは、AWS クラウドで実行できるものの制限ではなく、今日、これらのデバイスを使用する場合のアプリケーションへのアーキテクチャの変更です。
どこでもファイアウォール
これまではシンプルな非武装地帯
複数のデータセンターの可用性を検討する
AWS リージョン内のアベイラビリティーゾーンは、複数のデータセンターと考えることができます。異なるアベイラビリティーゾーンの EC2 インスタンスは、論理的にも物理的にも分離されており、高可用性で信頼性の高いアプリケーションをデータセンター全体でデプロイするための使いやすいモデルを提供します。Amazon VPC をリージョンサービスとして使用すると、すべてのリソースを同じ論理ネットワークに保持しながら、アベイラビリティーゾーンを活用できます。
ホストを一時的かつ動的なものとして扱う
おそらく、AWS アプリケーションを構築する方法について最も重要な変更は、Amazon EC2 ホストが一時的かつ動的であると考えなければならないことです。AWS クラウド用に構築されたアプリケーションは、ホストが常に利用可能であると想定してはならず、EC2 インスタンスに障害が発生すると、EC2 インスタンスに保存されたデータは失われるという知識を元に設計する必要があります。
新しいホストが起動するときに、ホストのアベイラビリティーゾーン内の IP アドレスや場所についての仮定は成り立ちません。設定モデルは柔軟でなければならず、ホストをブートストラップするアプローチには、クラウドの動的な性質を考慮に入れる必要があります。これらのテクニックは、非常にスケーラブルで耐障害性に優れたアプリケーションの構築と実行に不可欠です。
コンテナとサーバーレスを検討する
このホワイトペーパーは、主に従来型のウェブアーキテクチャにより重点を置いています。ただし、コンテナ
デプロイの自動化を検討する
-
Amazon Lightsail
は使いやすい仮想プライベートサーバー (VPS) であり、アプリケーションやウェブサイトの構築に必要なすべてのものに加えて、コスト効率が良い月額プランを提供します。Lightsail は、より単純なワークロード、迅速なデプロイ、および AWS の使用開始に最適です。小規模から始めて、成長に合わせて拡張できるように設計されています。 -
AWS Elastic Beanstalk
は、Java、.NET、PHP、Node.js、Python、Ruby、Go、および Docker で開発されたウェブアプリケーションやサービスを、Apache、NGINX、Passenger、IIS などの使い慣れたサーバー上にデプロイしたり、スケーリングしたりできる使いやすいサービスです。お客様はコードをアップロードするだけで、Elastic Beanstalk が、デプロイ、容量のプロビジョニング、ロードバランシング、オートスケーリング、アプリケーションのヘルスモニタリングを自動的に処理します。同時に、お客様はアプリケーションが稼動している AWS リソースの完全な制御を保持でき、いつでも基盤となるリソースにアクセスできます。 -
AWS App Runner
は、デベロッパーによるコンテナ化されたウェブアプリケーションや API の迅速なデプロイを簡単にするフルマネージドサービスです。大規模に、しかも事前のインフラストラクチャ経験を必要とせずにデプロイできます。ソースコードからでも、コンテナイメージからでも始めることができます。App Runner がウェブアプリケーションを自動的に構築およびデプロイし、暗号化しつつトラフィックのロードバランスを実行します。また App Runner は、トラフィックのニーズに応じて自動的にスケールアップまたはスケールダウンします。 -
AWS Amplify
は、それぞれを連携させたり個別で使用したりできる、ツールとサービスのセットです。これらの機能により、フロントエンドウェブおよびモバイルのデベロッパーが、AWS によるスケーラブルなフルスタックアプリケーションを構築できるようにします。Amplify を使用すると、数分の内にアプリケーションバックエンドを構成し、アプリケーションを接続できます。また、静的なウェブアプリケーションのデプロイは数クリックだけで実行できます。さらに、AWS Management Console の外部でも、簡単にアプリケーションコンテンツの管理が行えます。