ロードバランシング用の Lightsail インスタンスを設定する - Amazon Lightsail

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ロードバランシング用の Lightsail インスタンスを設定する

インスタンスを Lightsail ロードバランサーにアタッチする前に、アプリケーションの設定を評価する必要があります。たとえば、ロードバランサーは多くの場合、データ層がアプリケーションの残りの部分と分離されている方が適切に動作します。このトピックでは、各 Lightsail インスタンスについて説明し、ロードバランシング (水平スケーリング) を行うかどうかとアプリケーションの最適な設定方法に関する推奨事項を示します。

一般的なガイドライン: データベースを使用するアプリケーション

データベースを使用する Lightsail アプリケーションの場合、データベースインスタンスが 1 つだけになるように、データベースインスタンスをアプリケーションの残りの部分から分離することをお勧めします。主な理由は、複数のデータベースにデータが書き込まれないようにすることです。1 つのデータベースインスタンスを作成しない場合、ユーザーがたまたまヒットしたインスタンス上のデータベースにデータが書き込まれます。

WordPress

水平スケーリングを行いますか? はい、WordPress ブログまたはウェブサイトで行います。

Lightsail ロードバランサーを使用する前の設定の推奨事項

  • ロードバランサーの背後で実行されているあらゆる WordPress インスタンスが同じ場所に情報を保存および取得するように、データベースを分離します。データベースのより高いパフォーマンスが必要な場合、ウェブサーバーとは別個に処理能力やメモリをレプリケートまたは変更することができます。

  • ファイルと静的コンテンツを Lightsail バケットにオフロードします。これを実行するには、WordPress のウェブサイトに WP Offload Media Lite プラグインをインストールし、Lightsail バケットに接続するように設定する必要があります。詳細については、「チュートリアル: WordPress インスタンスをストレージ バケットに接続する」を参照してください。

Node.js

水平スケーリングを行いますか? はい。ただし、いくつかの考慮事項があります。

Lightsail ロードバランサーを使用する前の設定の推奨事項

  • Lightsail では、Bitnami によってパッケージ化されている Node.js スタックには、Node.js、Apache、Redis (メモリ内データベース)、Python が含まれています。デプロイするアプリケーションに応じて、いくつかのサーバー間でロードバランシングすることができます。ただし、すべてのウェブサーバー間でトラフィックが分散され、Redis が別のサーバーに移動されるようにロードバランサーを設定する必要があります。

  • Redis サーバーを別のサーバーに分割して、すべてのインスタンスと通信します。必要に応じて、データベースサーバーを追加します。

  • Redis の主なユースケースの 1 つは、データをローカルにキャッシュするため、中央のデータベースに継続的にヒットする必要はありません。Redis によるパフォーマンス向上を活用するには、セッション永続性を有効にすることをお勧めします。詳細については、「ロードバランサーのセッション永続性を有効にする」を参照してください。

  • 共有 Redis ノードを作成することもできるため、セッション永続性を使用する各マシンでノードを共有したり、ローカルキャッシュを使用したりすることもできます。

  • Apache を使用してロードバランサーをデプロイする場合は、mod_proxy_balancer を Apache サーバーに含めることを検討してください。

詳細については、「Scaling Node.js applications」を参照してください。

Magento

水平スケーリングを行いますか? はい。

Lightsail ロードバランサーを使用する前の設定の推奨事項

  • Amazon RDS データベースなど、追加のコンポーネントを使用する Magento の AWS リファレンスデプロイを使用できます。「AWS のTerraform Magento Adobe Commerce」を参照してください。

  • 必ず、セッション永続性を有効にしてください。Magento はショッピングカートを使用しているため、セッションをまたいで複数回訪問するお客様が、新しいセッションで戻ってきたときもショッピングカート内に商品を保持することができます。詳細については、「ロードバランサーのセッション永続性を有効にする」を参照してください。

GitLab

水平スケーリングを行いますか? はい。ただし、考慮事項があります。

Lightsail ロードバランサーを使用する前の設定の推奨事項

以下を準備する必要があります。

  • 実行されており、使用準備ができた Redis ノード

  • 共有ネットワークストレージサーバー (NFS)

  • アプリケーション用の一元化されたデータベース (MySQL または PostgreSQL)。上記のデータベースに関する一般的なガイドラインを参照してください。

詳細については、GitLab ウェブサイトの「高可用性」を参照してください。

注記

上記で言及されている共有ネットワークストレージサーバー (NFS) は、GitLab ブループリントでは現在利用できません。

Drupal

水平スケーリングを行いますか? はい。Drupal には、アプリケーションを水平スケーリングする方法を説明する公式ドキュメント「Server Scaling」があります。

Lightsail ロードバランサーを使用する前の設定の推奨事項

異なるインスタンス間でファイルが同期されるように Drupal モジュールを設定する必要があります。Drupal ウェブサイトにはいくつかのモジュールがありますが、本稼働使用ではなくプロトタイプ作成の方に適している可能性があります。

ファイルを Amazon S3 に保存できるモジュールを使用します。これにより、ターゲットインスタンスごとに別個のコピーを保持するのではなく、ファイルを一元化された場所に保存できます。このようにして、ファイルを編集した場合、ヒットしたインスタンスに関係なく、一元化されたストアから更新を取得してユーザーに同じファイルを表示できます。

詳細については、「Scaling Drupal horizontally and in cloud」(Drupal を水平方向とクラウドでスケーリングする) を参照してください。

LAMP スタック

水平スケーリングを行いますか? はい。

Lightsail ロードバランサーを使用する前の設定の推奨事項

  • 別のインスタンスにデータベースを作成する必要があります。ロードバランサーの背後にあるすべてのインスタンスは、この別個のデータベースインスタンスをポイントするため、同じ場所に情報を保存および取得できます。

  • デプロイするアプリケーションに応じて、ファイルシステムを共有する方法を検討します (NFS、Lightsail ブロックストレージディスク、または Amazon S3 ストレージ)。

MEAN スタック

水平スケーリングを行いますか? はい。

Lightsail ロードバランサーを使用する前の設定の推奨事項

MongoDB を別のマシンに移動し、Lightsail インスタンス間でルートドキュメントを共有するメカニズムを設定します。

Redmine

水平スケーリングを行いますか? はい。

Lightsail ロードバランサーを使用する前の設定の推奨事項

  • Redmine_s3 プラグインを取得し、添付ファイルをローカルファイルシステムではなく Amazon S3 に格納します。

  • 別のインスタンスにデータベースを分離します。

Nginx

水平スケーリングを行いますか? はい。

Nginx を実行する Lightsail インスタンスを 1 つ以上、Lightsail ロードバランサーにアタッチできます。詳細については、「Scaling Web Applications with NGINX, Part 1: Load Balancing」を参照してください。

Joomla!

水平スケーリングを行いますか? はい。ただし、考慮事項があります。

Lightsail ロードバランサーを使用する前の設定の推奨事項

Joomla ウェブサイトに公式ドキュメントはありませんが、コミュニティフォーラムで議論されています。一部のユーザーは、次の設定のクラスターを作成して Joomla インスタンスを水平スケーリングしています。

  • セッション永続性を有効にするように設定された Lightsail ロードバランサー。詳細については、「ロードバランサーのセッション永続性を有効にする」を参照してください。

  • Joomla! のドキュメントルートが同期された状態でロードバランサーにアタッチされた Joomla を実行する複数の Lightsail。これを行うには、Rsync などのツールを使用する、すべての Lightsail インスタンス間でコンテンツを同期できるNFS サーバーを持つ、または AWS を使用してファイルを共有します。

  • レプリケーションクラスターで設定されたいくつかのデータベースサーバー。

  • Lightsail インスタンスごとに設定されている同じキャッシュシステム。JotCache など、役に立つ拡張機能がいくつかあります。