ロード・バランシングされたWebアプリケーションの自動スケーリング
クラウドでWebアプリケーションを実行するには、信頼性の高いセキュアなインフラストラクチャ、柔軟で保守しやすいトポロジおよび使用量ベースの請求が必要です。これらの要件をすべて満たすOracle Cloud機能は、自動スケーリングです。
自動スケーリングにより、クラウド内のリソースが効率的に使用され、必要に応じて使用可能になります。CPU使用率などのパフォーマンス・メトリックに基づいてコンピュート・リソースを自動的に調整するようにクラウド・デプロイメントを構成できます。負荷が高い場合でも、一貫したパフォーマンスが得られます。また、需要の少ない期間にはコストが比例して低くなります。
アーキテクチャ
このリファレンス・アーキテクチャでは、ロード・バランサ(LB )、自動スケーリングWeb層および高可用性データベースで構成される3層トポロジを示します。
すべてのリソースは、Oracle Cloud Infrastructureリージョンの単一の可用性ドメインにデプロイされます。LB層、Web層およびデータベース層は、単一のVCN内の個別のサブネットに分離されます。ネットワーク・セキュリティ・グループ(NSG)は、各層のリソースとの間のネットワーク・トラフィックを規制するファイアウォールとして機能します。各サブネットにアタッチされたルート表には、トラフィックをVCN外部の宛先に転送するルールが含まれます。
次の図は、参照アーキテクチャを示しています。
このアーキテクチャには、次のコンポーネントがあります。
- リージョン
Oracle Cloud Infrastructureリージョンは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含む、ローカライズされた地理的領域です。地域は他の地域から独立しており、広大な距離で(国または大陸間で)分離できます。
このアーキテクチャのすべてのリソースは単一のリージョンにあります。
- 可用性ドメイン
可用性ドメインは、リージョン内のスタンドアロンの独立したデータ・センターです。各可用性ドメインの物理リソースは、フォルト・トレランスを提供する他の可用性ドメインのリソースから分離されます。可用性ドメインは、電源や冷却などのインフラストラクチャや内部可用性ドメイン・ネットワークを共有しません。したがって、ある可用性ドメインで障害が発生しても、リージョン内の他の可用性ドメインに影響する可能性はほとんどありません。
このアーキテクチャのリソースは、単一の可用性ドメインにデプロイされます。
- フォルト・ドメイン
フォルト・ドメインは、可用性ドメイン内のハードウェアおよびインフラストラクチャのグループです。各アベイラビリティ・ドメインには、独立した電源とハードウェアを備えた3つのフォルト・ドメインがあります。複数のフォルト・ドメインにリソースを分散する場合、アプリケーションでは、フォルト・ドメイン内の物理サーバー障害、システム・メンテナンスおよび電源障害を許容できます。
このアーキテクチャの各層のリソースは、複数のフォルト・ドメインに分散されます。
- 仮想クラウド・ネットワーク(VCN)およびサブネット
VCNは、Oracle Cloud Infrastructureリージョンで設定するカスタマイズ可能なソフトウェア定義ネットワークです。従来のデータ・センター・ネットワークと同様に、VCNを使用すると、ネットワーク環境を完全に制御できます。VCNには、VCNの作成後に変更できる複数の重複しないCIDRブロックを含めることができます。VCNは、リージョンまたは可用性ドメインにスコープ指定できるサブネットにセグメント化できます。各サブネットは、VCN内の他のサブネットと重複しない連続したアドレス範囲で構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックまたはプライベートにできます。
このアーキテクチャのロード・バランシング層とWeb層では、別々のパブリック・サブネットが使用されます。データベースはプライベート・サブネットにアタッチされています。
- ロード・バランサ
Oracle Cloud Infrastructure Load Balancingサービスは、単一のエントリ・ポイントからバックエンドの複数のサーバーへの自動トラフィック分散を提供します。
- ネットワーク・セキュリティ・グループ(NSG)
NSGは、クラウド・リソースの仮想ファイアウォールとして機能します。Oracle Cloud Infrastructureのゼロトラスト・セキュリティ・モデルでは、すべてのトラフィックが拒否され、VCN内のネットワーク・トラフィックを制御できます。NSGは、単一のVCN内の指定されたVNICのセットにのみ適用されるイングレスおよびエグレス・セキュリティ・ルールのセットで構成されます。
このアーキテクチャの各層のリソースには、別々のNSGが使用されます。
- ルート表
仮想ルート表には、通常はゲートウェイを介して、サブネットからVCN外部の宛先にトラフィックをルーティングするルールが含まれています。
- インターネット・ゲートウェイ
インターネット・ゲートウェイでは、VCNのパブリック・サブネットとパブリック・インターネット間のトラフィックが許可されます。
- インスタンス構成
インスタンス構成は、ベース・イメージ、シェイプ、メタデータなどの詳細を含む、コンピュート・インスタンスの作成時に使用する設定を定義するテンプレートです。ブロック・ボリューム・アタッチメントやネットワーク構成など、インスタンスに関連付けられたリソースを指定することもできます。
- インスタンス・プール
インスタンス・プールは、同じインスタンス構成から作成され、グループとして管理されるリージョン内のインスタンスのグループです。
- 自動スケーリング
自動スケーリングでは、CPU使用率などのパフォーマンス・メトリックに基づいて、インスタンス・プール内のコンピュート・インスタンスの数を自動的に調整できます。
インスタンス・プールがスケール・アウトまたはスケール・インすると、関連するロード・バランサのバックエンド・セットが自動的に更新されます。
- Autonomous Transaction Processing
Oracle Autonomous Transaction Processingは、トランザクション処理ワークロード用に最適化された、自己稼働の自己保護された自己修復データベース・サービスです。ハードウェアを構成または管理したり、ソフトウェアをインストールする必要はありません。Oracle Cloud Infrastructureは、データベースの作成と、データベースのバックアップ、パッチ適用、アップグレードおよびチューニングを処理します。
推奨事項
実際の要件は、ここで説明するアーキテクチャとは異なる場合があります。開始点として次の推奨事項を使用します。
- VCN
VCNを作成する場合、VCNのサブネットにアタッチする予定のリソースの数に基づいて、必要なCIDRブロックの数と各ブロックのサイズを決定します。標準のプライベートIPアドレス空間内にあるCIDRブロックを使用します。
プライベート接続を設定する予定の他のネットワーク(Oracle Cloud Infrastructure、オンプレミス・データ・センターまたは別のクラウド・プロバイダ内)と重複しないCIDRブロックを選択します。
VCNを作成した後、CIDRブロックを変更、追加および削除できます。
サブネットを設計する際には、トラフィック・フローとセキュリティ要件を考慮してください。特定の層またはロール内のすべてのリソースを、セキュリティ境界として機能する同じサブネットにアタッチします。
リージョナル・サブネットを使用します。
- インスタンス・プール
制限がない場合は、プール内の使用可能なすべての可用性ドメインを含めます。
- インスタンス構成
最適なパフォーマンス・コスト率を提供し、ワークロードの最小要件を満たすインスタンス・シェイプを選択します。
- 自動スケーリング構成
アプリケーションのリソース要件を評価し、その情報を使用して、スケール・イン中のスケーリング制限およびクールダウン動作を定義します。これにより、インスタンスのプールの最大コストが決定されます。
注意事項
複数層アプリケーション・スタックの自動スケーリングをデプロイする場合は、次の要因を考慮してください。
- データベースのスケーラビリティ
データベースのCPUコア数は、いつでも手動でスケール・アップまたはスケール・ダウンできます。自律型データベースの自動スケーリング機能を使用すると、現在のCPUコアのベース数の最大3倍をいつでも使用できます。要求が増えると、自動スケーリングによって使用中のコア数が自動的に増加します。Autonomous Databaseを使用すると、可用性やパフォーマンスに影響を与えることなく、いつでもストレージ容量を拡張できます。
- データベースの可用性
アーキテクチャ図は、単一のOracle Autonomous Transaction Processingデータベースを示しています。アーキテクチャのデプロイ中に、Oracle Autonomous Data Guardでスタンバイ・データベースをプロビジョニングおよび管理できます。
- アプリケーションの可用性
フォルト・ドメインは、可用性ドメイン内のリジリエンシを提供します。可能な場合は、複数の可用性ドメインまたは複数のリージョンにリソースを分散することを検討してください。
- アクセス制御
ポリシーを使用して、クラウド内のリソースにアクセスできるユーザーおよびリソースが実行できるアクションを制限します。
- パフォーマンス
プールのサイズは自動的にスケール・インまたはスケール・アウトできますが、自動スケーリング・ポリシーを微調整できるようにアプリケーションの動作を把握することが重要です。リソース制限は、プールのスケール・アウト機能に影響を与える可能性があります。
デプロイ
この参照アーキテクチャのデプロイに必要なコードは、GitHubで入手できます。シングルクリックでコードをOracle Cloud Infrastructure Resource Managerにプルし、スタックを作成してデプロイできます。または、GitHubからコンピュータにコードをダウンロードし、Terraform CLIを使用してコードをカスタマイズし、アーキテクチャをデプロイします。
- Oracle Cloud Infrastructure Resource Managerを使用してデプロイします。
をクリックします
まだサインインしていない場合は、テナンシおよびユーザー資格証明を入力します。
- 条件をレビューして受け入れます。
- スタックをデプロイするリージョンを選択します。
- 画面に表示されるプロンプトと指示に従ってスタックを作成します。
- スタックの作成後、「Terraformアクション」をクリックし、「プラン」を選択します。
- ジョブが完了するまで待機し、計画を確認します。
変更を加えるには、「Stack Details」ページに戻り、「Edit Stack」をクリックして、必要な変更を行います。次に、プラン処理を再度実行します。
- 追加の変更が必要ない場合は、「Stack Details」ページに戻り、「Terraform Actions」をクリックして、「Apply」を選択します。
- Terraform CLIを使用してデプロイします。
- GitHubに移動します。
- ローカル・コンピュータにコードをダウンロードまたはクローニングします。
README
ファイルの指示に従います。