Kinstaのアプリケーションホスティングに、水平オートスケーリング機能が導入されました。サーバーリソースの要件の変化に応じて、必要なリソースを正確かつ容易に確保することができます。
CPU使用率に基づいて、水平方向のスケーリング(アプリケーションのウェブプロセスを実行するPodのインスタンスを追加または削除)を自動的にトリガーするように設定可能です。これにより、高負荷を処理するためにアプリケーションのスケーリングを行ったり、その後リソースを元に戻して費用を抑えたりすることができます。
Kinstaのアプリケーションホスティングとデータベースホスティングの開発部門の技術リードであるGiuseppe Sillettiは、ウェブアプリケーションのサーバーリソースに対する要件が変動する傾向にある点に注目しています。
「ECサイトが期間限定セールを実施し、突如アクセスが殺到することを想像してみてください─何千人もの買い物客が同時にサイトにアクセスして商品を閲覧し、カートに商品を入れ、決済画面に進む。突然のトラフィックの流入によって、ウェブサーバーのCPUとメモリの使用率は当然上昇します。CPU使用率は平均を大きく上回る85%まで急上昇するかもしれません。通常時のウェブサーバーのインスタンス数ではこの負荷にとても対応できず、レスポンスタイムの遅延やタイムアウトを引き起こす可能性が高くなります。
このような状況では、水平スケーリングが不可欠です。CPU使用率などの指標を監視し、ウェブサーバーインスタンスを追加してトラフィックの負荷を分散することで、シームレスで応答性の高いユーザーエクスペリエンスを維持します」
水平オートスケーリングを有効にする
Kinstaのプラットフォームでは、アプリケーションを構成する際、ウェブサービス、バックグラウンドワーカー、cronジョブプロセスを管理することになるKubernetes PodのCPUとメモリの要件を指定できます。また、各Podのインスタンス数を選択することも可能です。
ウェブサービスのリソースを指定する際、新たに導入されたオートスケーリング機能を使用して、プロセスの最小Pod数と最大Pod数(1~10)を指定します。
Podサイズを大きくする(垂直スケーリング)と、既存の各Podに割り当てられるCPU、メモリ、その他のリソースを拡張できます。これはパフォーマンスを改善するのに手っ取り早い方法ですが、ノードで利用可能な最大リソースには限界があります。
Podの数を増やす(水平スケーリング)場合は、クラスタ全体にPodのインスタンスを追加で配置します。この方法では、負荷上昇をより柔軟に管理でき、個々のノードの容量に制限されることはありません。
オートスケーリングの仕組み
オートスケーリング機能は、ウェブサービスのPodの負荷が上限の80%以下、または80%以上であるかどうかを監視します。
CPU使用率が定義されたしきい値を超えると、Kubernetesのオートスケーリングがトリガーされ、負荷分散のために追加のPodが作成されます。サービスのロードバランサーは、新規作成されたPodを自動で識別し、すべての利用可能なPod間で受信トラフィックを分散します。
負荷が軽減され、リソースの使用率が定義されたしきい値を下回ったことを確認すると、自動で作成されたPodが削除されます。Podの削除後は、残りのPodがしきい値を超えることなく、負荷を処理することができるようにします。
最小および最大のPodインスタンス数を適切に決定する方法として、最初に通常時とピーク負荷時のアプリのリソース使用量のベースラインを設定してください。その後、ツールを使用したり指標を確認したりしながら、アプリケーションのパフォーマンスとリソース使用状況を監視します。パフォーマンスを最適化するために、必要に応じて設定を見直し、調整してください。
オートスケーリングを利用してアプリケーションを運用
Podリソースのオートスケーリングを活用してアプリケーションを効率的に管理するには、以下の手順を参考にしてください。
- GitHub、GitLab、BitbucketのようなGitソリューションから任意の技術をデプロイする方法をすぐに使える活用例のドキュメントで確認
- アプリケーションのスケーリングに関するドキュメントを確認
- MyKinstaアカウントを作成し、リスクなしでビルドを開始
デプロイすると、コードおよび永続ストレージは、GoogleのC2仮想マシンに支えられたGoogle Cloud Platformの最上位インフラストラクチャ上で実行されます。
アプリケーションの拡張・運用に、Kinstaのプラットフォームをぜひご利用ください。