GCP オートスケーリングメモ

GCP

はじめに

色々なサービスのオートスケーリングが問われるので、メモ

コンピュート系

App Engine

インスタンスは App Engine の基本的な構成要素で、アプリケーションのホスティングに必要なすべてのリソースを提供します。ある時点において、アプリケーションは 1 つのインスタンスで実行されていることもあれば、複数のインスタンスで実行されていることもあります(この場合、リクエストはすべてのインスタンス間で分散されます)。各インスタンスにはセキュリティ レイヤが組み込まれており、インスタンスが誤って相互に影響しないようになっています。

https://cloud.google.com/appengine/docs/standard/php7/how-instances-are-managed?hl=ja

インスタンスはコンテナのことで、インスタンスのスペックはインスタンスクラスで決定。
インスタンスクラスもアプリケーションをデプロイするときにyamlで指定する。

イメージ的にはデプロイする際にコンテナサイズをyamlで指定している…と思われ。

Google App Engine スタンダード環境のドキュメント  |  Google Cloud

1インスタンスでトラフィックが賄えなくなってきたときに、
App Engine は自動、基本、手動のオートスケーリングタイプをサポートしている。
指定する際にはアプリをデプロイするさいのyamlファイルで指定する。

スケーリング手法内容
自動自動スケーリングは、リクエスト率、レスポンスのレイテンシなどのアプリケーションの指標に基づいてインスタンスを作成します。
それぞれの指標のしきい値、および常時稼働する最小数のインスタンスを指定できます。
基本基本スケーリングでは、アプリケーションがリクエストを受信したときに、インスタンスが作成されます。
各インスタンスは、アプリケーションがアイドル状態になるとシャットダウンされます。基本スケーリングは、断続的な処理やユーザーのアクティビティに応じて動作する処理に適しています。
手動手動スケーリングでは、負荷レベルに関係なく、常に実行されるインスタンスの数を指定します。
これにより、複雑な初期化などのタスクや、時間の経過に伴うメモリの状態に依存するアプリケーションが実行できるようになります。

Cloud Run

データベース系

Cloud SQL

Cloud SQLのインスタンスは仮想マシンインスタンス上で稼働している?
そのため、インスタンス作成時にマシンのスペックを指定することができる。

ただし、インスタンスのオートスケーリングは設定できない。

可用性を持たせるため、高可用性のリージョン構成をとることは可能。

Spanner

Spannerはインスタンスのレプリカ構成は固定であり、ユーザはノード数の設定が可能。

自動スケーリングはデフォルトでは機能としては存在しない。

ただし、Autoscalerというものを使うとオートスケーリングが可能になる。
(試験範囲外の内容と思われる。)

新しい Autoscaler で Spanner インスタンスを適切なサイズに自動変更 | Google Cloud Blog
Google Cloud 公式ブログより: 新しい Autoscaler で Spanner インスタンスのサイズを変更し、費用や使用量を使用率に基づいて簡単に最適化できます。

Datastore (Firestore)

Firestoreはクラスタの作成等は必要なく、いきなしサービスを使い始められる。
Firestoreの基盤はダウンタイム無しで数万台ものマシンまでに自動的にスケールする。

そのため、課金は基盤に対する課金ではなく、データの読み取り、保存容量に対する課金となる。

Bigtable

Bigtableではクラスタのストレージの種類とノード数を選択できる。

ノードの数は編集から変更可能だが、自動スケーリング機能は存在しない。

これもまた試験範囲外だが、自動スケーリングに対応するテクニックは公開されている。

プログラムによる Cloud Bigtable のスケーリング  |  Cloud Bigtable ドキュメント  |  Google Cloud

コメント

タイトルとURLをコピーしました