5

自動スケーリングを使用すると、負荷に基づいて計算エンジンを自動的に追加または削除できます。 GCPの自動拡張の前提条件は、インスタンステンプレートと管理対象インスタンスグループです。Google Cloud Platformで管理対象インスタンスグループと自動スケーリングを設定するには

この質問は、別のquestion's answerの一部です。これは、自動スケール調整され、負荷分散されたバックエンドを構築することについてです。

私はGCPでオートスケーリングを設定する手順を含む以下の回答を書いています。

+4

これらの質問については、メタを読んでください。別の質問を作成し、特定の問題について他のユーザーからの高品質の回答を招待するというあなたのアプローチに同意します。しかし、おそらくあなたはこれらの質問をより似た質問にすることができますか?例えば。 「Google Cloudプラットフォームで管理されたインスタンスグループと自動スケーリングを設定するにはどうすればよいですか?」あなたは、元の質問から少しの文脈を含めることさえできます。これは質問をより検索可能にし、人々が元の文脈を知らなくてもそれに答えることを可能にするでしょう。 –

+0

@graham私はあなたの提案に従って質問を変更しました。質問から「この質問は別の質問の回答の一部です」という参照を削除しますか? –

答えて

13

自動スケーリングは、GCPの管理対象インスタンスグループの機能です。これは、インスタンスの規模を拡大することによって非常に高いトラフィックを処理するのに役立ちます。同時に、トラフィックがない場合にはインスタンスの規模を縮小し、多くのコストを節約します。

自動縮尺機能を設定するには、我々は以下のものが必要です。

  • インスタンステンプレート
  • 管理インスタンス・グループ
  • 自動スケーリングポリシー
  • 健康

インスタンステンプレートが確認しますマシンタイプ、イメージ、ホーのディスクを定義する青写真自動スケーリングされた管理されたインスタンスグループで実行される非同種のインスタンスです。私はインスタンステンプレートhereを設定するための手順を書いています。

管理されたインスタンスグループは、単一のインスタンステンプレートに基づく同種のインスタンスのグループを維持するのに役立ちます。インスタンステンプレートをのサンプルテンプレートと仮定します。これは、gcloudで次のコマンドを実行して設定することができる。

gcloud compute instance-groups managed \ 
create autoscale-managed-instance-group \ 
--base-instance-name autoscaled-instance \ 
--size 3 \ 
--template sample-template \ 
--region asia-northeast1 

上記のコマンドはサンプルテンプレートに基づくアジアnortheast1領域に三つの異なるゾーンに配置3つの計算エンジンを含む管理インスタンス・グループを作成します。

  • ベースインスタンス名すべて自動的に作成されたインスタンスのベース名になります。ベース名に加えて、すべてのインスタンス名は、一意的に生成されたランダムな文字列によって追加されます。
  • サイズは、グループ内のインスタンスの望ましい数を表します。現時点では、アプリケーションによって生成されるトラフィックの量に関係なく、3つのインスタンスが常に実行されます。その後、このグループにポリシーを適用することで自動拡張することができます。
  • リージョン(マルチゾーン)またはシングルゾーン:管理されたインスタンスグループは、リージョン(マルチゾーン)に設定することも、均等なインスタンスを特定のリージョン内のすべてのゾーンに均等に分散させることもできますインスタンスをリージョン内の同じゾーンにデプロイすることができます。現在、アルファベットで表示されているクロスリージョン1として配置することもできます。

自動スケーリングポリシーは、オートスケーラの動作を決定します。オートスケーラは、インスタンスからのデータを集計し、ポリシーで指定された目的の容量と比較し、実行するアクションを決定します。以下のような多くの自動スケーリングのポリシーがあります。

  • 平均CPU使用率

  • HTTP負荷分散サービス提供能力は、(リクエスト/秒)

  • のStackdriverの標準およびカスタムメトリクス

  • many more

このように自動スケーリングを 概要今

は、gcloudで次のコマンドを実行して、インスタンス・グループを管理:

gcloud compute instance-groups managed \ 
set-autoscaling \ 
autoscale-managed-instance-group \ 
--max-num-replicas 6 \ 
--min-num-replicas 2 \ 
--target-cpu-utilization 0.60 \ 
--cool-down-period 120 \ 
--region asia-northeast1 

上記のコマンドはから(の場合範囲CPU使用率に基づいautoscalerを設定しますトラフィックがない場合)(トラフィックが多い場合)。

  • クールダウン期間フラグは、インスタンスが起動された後、関連するautoscalerはそれから情報を収集するために開始する前に待機する秒数を指定します。
  • 自動スケーラは最大の5つの異なるポリシーに関連付けることができます。複数のポリシーがある場合は、最大数のインスタンスを残すポリシーを推奨します。
  • 興味深い事実:インスタンスがオートスケーラによってスピンアップされるとき、トラフィックがトラフィックに関係なく少なくとも10分間実行されることを確認します。これは、GCPが計算エンジンの最短10分の実行時間を請求するために行われます。また、不規則なスピンアップやインスタンスのシャットダウンから保護します。

ベストプラクティス:私の視点からは、起動スクリプトを使用するよりも、インストールされているすべてのソフトウェアを使用してカスタムイメージを作成することをお勧めします。オートスケーリンググループで新しいインスタンスを起動するのにかかる時間はできるだけ短くする必要があります。これにより、Webアプリケーションを拡大する速度が向上します。

これは、自動スケール調整され、負荷分散されたバックエンドを構築することに関するパート23-part seriesです。

+1

"面白い事実"と "ベストプラクティス"ありがとう –

+0

インスタンスグループのCPU使用率の設定とバックエンドまたはバックエンドサービスを追加するコマンドの設定の違いは何ですか?どちらもオプションをサポートしていますが、これは冗長で紛らわしいようです。 – odigity

関連する問題