ノート:
- このチュートリアルは、Oracle提供の無料ラボ環境で入手できます。
- Oracle Cloud Infrastructure資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了したら、これらの値をクラウド環境に固有の値に置き換えてください。
自動スケーリングを使用したコンピュート・リソースの調整
イントロダクション
このチュートリアルでは、CPU使用率に基づいて自動的にスケール・アウト/インできるロード・バランシングされたWebアプリケーションを構築します。
このチュートリアルでは、ロード・バランサ、コンピュート・インスタンス、インスタンス構成を作成してから、自動スケーリングを構成します。次に、CPU上の構成済のしきい値を超えると、自動スケーリング機能を確認します。
Autoscalingでは、パフォーマンス・メトリック(CPU使用率など)に基づいてインスタンス・プール内のコンピュート・インスタンス数を自動的に調整できます。これにより、需要が多い期間にエンド・ユーザーに一貫したパフォーマンスを提供し、需要が少ない期間にコストを削減することができます。
モニターするパフォーマンス・メトリックを選択し、自動スケーリング・イベントをトリガーするためにパフォーマンス・メトリックが到達する必要のあるしきい値を設定します。システム使用率がしきい値を満たす場合、自動スケーリングはほぼリアルタイムで動的にリソースを割り当てます。負荷が増加するにつれ、インスタンスが自動的にプロビジョニングされます。つまり、インスタンス・プールがスケール・アウトされます。ロードが減少するにつれて、インスタンスが自動的に削除されます。つまり、インスタンス・プールがスケール・インされます。
自動スケーリングは、監視サービスによって収集されるパフォーマンス・メトリックに依存します。これらのパフォーマンス・メトリックは、1分ごとに集計されてから、インスタンス・プール全体で平均化されます。連続する3つの値(つまり、連続する3分間の平均メトリック)がしきい値に一致すると、自動スケーリング・イベントがトリガーされます。
自動スケーリング・イベントの間のクールダウン期間には、更新されたレベルでシステムが安定化します。クールダウン期間は、インスタンス・プールが安定状態になったときに開始します。自動スケーリングは、クールダウン期間中もパフォーマンス・メトリックの評価を続けます。コールドダウン期間が終了すると、自動スケーリングでは、必要に応じてインスタンス・プールのサイズが再調整されます。
ノート: Oracle Cloud Infrastructure (OCI)ユーザー・インタフェースが更新されているため、手順の一部のスクリーンショットは実際のUIとは異なる場合があります
VCNおよびサブネットの作成
Linuxインスタンスをインターネットに接続するように、VCNを設定します。仮想ネットワークの作成に必要なすべてのコンポーネントを構成します。
-
ナビゲーション・メニューを開きます。「コア・インフラストラクチャ」の下で、「ネットワーキング」に進み、「Virtual Cloud Networks」をクリックします。
左側の「コンパートメント」リストで、コンパートメント(または指定されたコンパートメント)が選択されていることを確認してください。
-
「VCNウィザードの起動」をクリックします。
-
「インターネット接続性を持つVCN」を選択し、「VCNウィザードの起動」をクリックします。
-
次のように入力します(説明は斜体です。シナリオの値に置き換えてください)。
- Name: クラウド・ネットワークの名前を入力します
- COMPARTMENT: 目的のコンパートメントを選択します
- VCN CIDRブロック: 10.0.0.0/16
- パブリック・サブネットCIDRブロック: 10.0.0.0/24
- プライベート・サブネットCIDRブロック: 10.0.1.0/24
- DNS解決: チェック済
ノート: パブリック・サブネットとプライベート・サブネットには異なるCIDRブロックがあります。
-
「次へ」をクリックします。
「インターネット接続を使用したVCNの作成」構成ダイアログが表示され、入力したすべての値が確認され、作成される追加のコンポーネントがリストされます。
-
「作成」をクリックして、ワークフローを開始します。
これにより、次のコンポーネントを含むVCNが作成されます:
VCN、パブリック・サブネット、プライベート・サブネット、インターネット・ゲートウェイ(IG)、 NATゲートウェイ(NAT)、サービス・ゲートウェイ(SG)
-
ワークフローが完了したら、「Virtual Cloud Networksの表示」をクリックすると、作成したVCNの詳細ページが表示されます。
Load Balancerの作成とセキュリティ・リストの更新
-
ナビゲーション・メニューを開きます。「コア・インフラストラクチャ」で、「ネットワーキング」に移動して「ロード・バランサ」をクリックします。
-
「ロード・バランサの作成」をクリックします。ダイアログ・ボックスに入力します。
「詳細の追加」の下
-
LOAD BALANCER NAME: ロード・バランサの名前を入力します。
-
可視性タイプの選択: パブリック
-
最大合計幅の選択: 「動的シェイプ」を選択し、マイクロ- 10Mbpsで選択できます。(ロード・バランサの帯域幅が指定されます。)
-
仮想クラウド・ネットワーク: VIRTUAL CLOUD NETWORKの選択
-
SUBNET: パブリック・サブネットを選択します
「次へ」をクリックします。
「Choose Backends」の下:
- LOAD BALANCING POLICYの指定: 加重ラウンド・ロビン
- バックエンドの追加: バックエンドは追加しません。これはインスタンス・プールによって管理されます。
-
プロトコル: HTTP
-
ポート: 80
-
URLパス(URI): /
その他のオプションはデフォルトのままにします
Click **Next**.
「リスナーの構成」の下
-
リスナーで処理するトラフィック・タイプの指定: HTTP
-
リスナーでイングレス・トラフィックをモニターするポートの指定: 80
その他のオプションはデフォルトのままにします
-
-
「発行」をクリックします。
-
ロード・バランサがアクティブになるまで待機してから、そのパブリックIPアドレスをノートにとります。
-
ナビゲーション・メニューを開きます。「コア・インフラストラクチャ」の下で、「ネットワーキング」に進み、「Virtual Cloud Networks」をクリックします。以前に作成したVCNを見つけます。
-
VCN名をクリックして、「VCNの詳細」ページを表示します。
-
「セキュリティ・リスト」をクリックし、デフォルト・セキュリティ・リストを見つけます。
-
「Your_VCNのデフォルト・セキュリティ・リスト」をクリックし、「イングレス・ルールの追加」をクリックします。
-
「イングレス・ルールの追加」をクリックします。
「イングレス・ルールの追加」ダイアログが表示されます。
-
次を入力します。
- STATELESSフラグの選択を解除したままにします
- ソース・タイプ: CIDR
- Source CIDR: 0.0.0.0/0と入力
- IPプロトコル: 「TCP」を選択します
- ソース・ポート範囲: すべて
- Destination Port Range: 80と入力(リスナーポート)
- 説明: 着信HTTP接続を許可
-
「イングレス・ルールの追加」をクリックします。
インスタンス・プールの作成と自動スケーリングの構成
Webサーバーの作成とインスタンスの構成
Apache Webサーバーを使用してOracle Linuxインスタンスを作成し、Webサーバーに基づいてインスタンスを構成します。これは自動スケーリング構成の基盤になります。
-
Oracle Cloud Infrastructureのメイン・メニューを開きます。
-
「コンピュート」、「インスタンス」の順に選択します。
-
インスタンスのリスト画面で、「インスタンスの作成をクリックします。
-
インスタンスの名前を入力します。
-
インスタンスを作成するコンパートメントを選択します。
-
「Configure placement and hardware」セクションで、次を選択します。
- 可用性ドメイン インスタンスを作成する可用性ドメインを選択します
- フォルト・ドメイン・オプション。チェックを外したままにできます。
- イメージ 最新のOracle Linux (デフォルトでは、サポートされている最新バージョンがすでに選択されています)
- [シェイプ]目的のシェイプを選択します。
-
「ネットワークの構成」セクションで、次を選択します:
- ネットワーク 既存の仮想クラウド・ネットワークを選択します
- 「仮想クラウド・ネットワーク」で、目的のVCNを持つコンパートメントを選択します
- ネットワーク仮想ネットワーク・クラウド・ネットワークの選択
- 「サブネット」で、目的のVCNがあるコンパートメントを選択します
- サブネット パブリック・サブネットを選択します
- 未チェックのトラフィックを制御するには、ネットワーク・セキュリティ・グループを使用します
-
パブリックIPアドレス *パブリックIPv4アドレスを割り当てます
-
「SSHキーの追加」セクションで:
SSHキー・ペアを保持していない場合:
- 「SSHキー・ペアの生成」を選択します。
- 「秘密キーの保存」をクリックし、ブラウザのプロンプトに従って秘密キーを保存します。
- 「公開キーの保存」をクリックし、ブラウザのプロンプトに従って公開キーを保存します。
公開キーがある場合は、次のことができます。
- 「公開キー・ファイルの選択」を選択します
- 公開キー・ファイルを上にドラッグ・アンド・ドロップするか、または場所を参照します。、場所を見つけてファイルを選択します。
または
- 「公開キーの貼付け」を選択します。
- 公開キー値をSSHキーに貼り付けます(「Anotehrキー」をクリックして複数のキーを追加できます)。
-
「ブート・ボリュームの構成」で、すべてのオプションを選択しないままにします。
-
「拡張オプションの表示」をクリックします。
管理中
- 初期化スクリプト: 「Cloud- initスクリプトの貼付け」を選択し、次のスクリプトを貼り付けます。Cloud- initスクリプトは、インスタンスを構成するためにのみ初回起動時に実行されます。
#cloud-config yum_repos: epel-testing: baseurl: https://yum.oracle.com/repo/OracleLinux/OL7/developer_EPEL/$basearch/ enabled: true failovermethod: priority gpgcheck: true gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle name: EPEL ($basearch) packages: - httpd - stress runcmd: - [sh, -c, echo "<html>Web Server IP `hostname --ip-address`</html>" > /var/www/html/index.html] - [firewall-offline-cmd, --add-port=80/tcp] - [systemctl, start, httpd] - [systemctl, restart, firewalld]
-
「Create」をクリックします。
-
インスタンスの詳細ページが表示されます。黄色の四角形が緑色になると、インスタンスがプロビジョニング、起動および実行されます。
-
インスタンスが「実行中」状態になるのを待機します。「作業リクエスト」まで下にスクロールして、プロビジョニング・プロセスを確認できます。
-
「インスタンス名」をクリックします。「他のアクション」をクリックし、「インスタンス構成の作成」を選択します。次を入力します。
- コンパートメントに作成: コンパートメントを選択します。
- Name: 名前を指定します。
-
「インスタンス・プールの作成」をクリックし、次のように入力します。
- コンパートメントに作成: コンパートメントを選択します
- Name: 名前を指定します。
- COMPARTMENT_NAMEのインスタンス構成: 現在選択されているコンパートメントと異なる場合は、コンパートメントを選択します
- インスタンス構成名: ステップ14で作成したインスタンス・プールが移入されている必要があります。
- インスタンス数: 0
-
「次へ」をクリックして、ポーリング配置を構成してください
-
「プール配置の構成」ページで、次のように入力します。
- 可用性ドメイン: インスタンスを配置するADを選択します(複数ADリージョンの場合、AD 1を選択できます)。
- 仮想クラウド・ネットワーク・コンパートメントの選択: 現在選択されているコンパートメントと異なる場合は、VCNのコンパートメントを選択し、VCNを選択します。
- COMPARTMENT_NAMEのサブネット: 現在選択されているコンパートメントと異なる場合は、サブネットのコンパートメントを選択し、サブネットを選択します。
- ロード・バランサのアタッチ: このオプションを選択します。
- COMPARTMENT_NAMEのLoad Balancer: 現在選択されているコンパートメントと異なる場合は、LBのコンパートメントを選択し、Load Balancerを選択します
- バックエンド・セット: 最初のバックエンド・セットを選択します
- ポート: 80
- VNIC: デフォルトのままにします
-
「次へ」をクリックし、情報を確認して、「作成」をクリックします。
-
ナビゲーション・メニューを開きます。「コア・インフラストラクチャ」で、「リソース・プール」を選択し、「インスタンス・プール名」をクリックします。
-
「インスタンス・プールの詳細」画面で、「他のアクション」をクリックし、「自動スケーリング構成の作成」を選択して、次のように入力します:
- 名前: 名前の定義
- コンパートメントに作成: コンパートメントを選択します
- COMPARTMENT_NAMEのインスタンス・プール: 現在選択されているコンパートメントと異なる場合はコンパートメントを選択し、インスタンス・プールを選択します(プールが表示されていない場合は、ブラウザをリフレッシュして再試行してください)
-
「次へ」をクリックし、「自動スケーリング・ポリシーの構成」ページで次を入力します:
- 「メトリックベースの自動化」を選択します。
- AUTOSCALING POLICY NAME: 名前を指定します
- COOLDOWN IN SECONDS : 300 (これは、スケーリング・アクション間の最小期間です。)
- PERFORMANCE METRIC: CPU使用率(これは、スケーリング・アクションのトリガーに使用するメトリックです。)
- スケールアウト・オペレータ: より大きい(>)
- しきい値割合: 80
- 追加するインスタンスの数: 1
- スケールイン・オペレータ: より小さい(<)
- しきい値割合 : 20
- 削除するインスタンスの数: 1
- インスタンスの最小数: 1 (これは、プールが常に持つインスタンスの最小数です)
- インスタンスの最大数: 2 (プールが常に持つインスタンスの最大数)
- INITIAL NUMBER OF INSTANCES : 1 (最初にインスタンス・プールに作成されるインスタンスの数)
-
「次へ」をクリックし、情報を確認して、「作成」をクリックします。
設定のテスト
-
ロード・バランサの詳細で、Load BalancerのパブリックIPを確認し、Webブラウザで開きます。
-
OCIコンソールに戻り、「コンピュート」で「インスタンス・プール」をクリックし、プール名をクリックします。「作成されたインスタンス」をクリックすると、作成されたコンピュート・インスタンスが表示されます。コンピュート・インスタンス名をクリックします。
-
yout Priateキーを保存した端末で、インスタンスにsshを実行します
ssh -i <private_key> opc@<PUBLIC_IP_OF_COMPUTE>
-
CPU負荷を開始します。Enterコマンド:
sudo stress --cpu 4 --timeout 350
350秒のタイムアウトで回転する4人のワーカーを生成します。
-
OCIコンソールに切り替えて、「インスタンス・プールの詳細」ページに移動します。「メトリック」画面までスクロール・ダウンすると、1分ほど経ってからCPUスパイク・アップが表示されます。
-
約3分から5分(自動スケーリング構成の作成時に構成された時間)で、プールのステータスは「スケーリング」に変わり、2番目のコンピュート・インスタンスが起動します。**「作業リクエスト」をクリックすると、新しいインスタンスを作成する作業リクエストが表示されます。
これは、CPU使用率> 10の基準が満たされたためです。
-
2番目のインスタンスが稼働中で、インスタンス・プールのステータスが「実行中」の場合、Webブラウザに切り替えてページを複数回リフレッシュし、2つのWebサーバー間のロード・バランサ・バランシング・トラフィックを確認します。
-
端末に戻り、ストレス・ツールがまだ実行されている場合は、[Ctrl]を押しながら[C]を押してスクリプトを停止します。
-
OCIコンソール・ウィンドウに切り替えて、コンピュート・インスタンスの詳細ページに移動します。1分後にCPU使用率が低下することを確認します。
-
インスタンス・プールの詳細ページに移動し、3分から4分後にインスタンス・プールのステータスが「スケーリング」に変わります。追加のコンピュート・インスタンスが削除されます。
これは、CPU使用率< 5の基準が満たされているためです。
リソースの削除
-
OCIコンソール・ウィンドウに切り替えます。
-
ナビゲーション・メニューを開きます。「コア・インフラストラクチャ」で、「インスタンス・プール」を選択します。右端にある3つのドット
をクリックし、「終了」を選択します。要求されたら、確認します。
-
ナビゲーション・メニューを開きます。「コア・インフラストラクチャ」で、「インスタンス構成」を選択します。右端にある3つのドット
をクリックし、「終了」を選択します
-
ナビゲーション・メニューを開きます。「コア・インフラストラクチャ」で、「インスタンス」を選択します。右端にある3つのドット
をクリックし、「終了」を選択します。「アタッチされたブート・ボリュームを完全に削除」ボックスを選択し、「インスタンスの終了」をクリックします。
-
ナビゲーション・メニューを開きます。「ネットワーキング」で、「ロード・バランサ」を選択します。右端にある3つのドット
をクリックし、「終了」を選択します。要求されたら、確認します。
-
ナビゲーション・メニューを開きます。「ネットワーキング」で、「Virtual Cloud Networks」を選択します。右端にある3つのドット
をクリックし、「終了」を選択します。要求されたら、確認します。
-
ナビゲーション・メニューを開きます。「コア・インフラストラクチャ」で、「インスタンス・プール」を選択します。右端にある3つのドット
をクリックし、「終了」を選択します。リソースのリストが終了したら、「すべて終了」をクリックします
-
最初のコンピュート・インスタンスを探して、「アクション」アイコンをクリックし、「終了」をクリックします。
-
アタッチされたブート・ボリュームが完全に削除されていることを確認し、「Terminate Instance」をクリックします。インスタンスが完全に終了するまで待ちます。
-
「インスタンス・プールの詳細」ページのOCIコンソール・ウィンドウで、「アクション」の下の「終了」をクリックします。ポップアップ・ダイアログ・ボックスにインスタンス・プール名を指定し、「終了」をクリックします。これにより、コンピュート・インスタンスおよび自動スケーリング構成とともにプールが削除されます。
-
「コンピュート」の下の「インスタンス構成」に移動します。インスタンス構成で、3つの垂直ドットの下の「削除」をクリックします。
-
「コンピュート」の下にあるAutoScaling構成に移動します。「インスタンス構成」で、「削除」をクリックします。
-
OCIサービス・メニューから、「ネットワーキング」の下の「ロード・バランサ」をクリックし、Load Balancerを見つけて、3つの垂直ドットの下の「終了」をクリックします。
-
「OCIサービス」メニューから、「ネットワーキング」、「VCNの検索」の下の「Virtual Cloud Networks」をクリックし、「アクション」アイコンをクリックし、「終了」をクリックします。「確認」ウィンドウで「すべて削除」をクリックします。VCNを削除したら、「閉じる」をクリックします。
完了しました。演習を正常に完了しました。
謝辞
- 著者 - Flavio Pereira氏、Larry Beausoleil
- 貢献者 - Orlando Gentil
その他の学習リソース
docs.oracle.com/learnで他のラボを探すか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Use autoscaling to adjust compute resources
F40423-03
October 2022
Copyright © 2022, Oracle and/or its affiliates.