[アップデート] Amazon ElastiCache for Memcached がオートスケーリングをサポートしました

[アップデート] Amazon ElastiCache for Memcached がオートスケーリングをサポートしました

Clock Icon2025.04.14

いわさです。

先日、ElastiCache for Memcached がスケールアップをサポートするアップデートを紹介しました。

https://dev.classmethod.jp/articles/vertical-scaling-amazon-elasticache-memcached/

一方でスケールアウトについては従来から可能で、クラスターへノードを追加したり削除したりすることが出来ていました。
Memcached では複数のノードにまたがってデータパーティショニングがサポートされています。

ただし、これまで手動スケールアウト/スケールインはサポートされていましたが、自動スケールアウト/スケールインを行う仕組みが提供されておらず、独自実装が必要でした。
これが先日のスケールアップのアップデートとあわせて、オートスケーリングの機能がサポートされるようになりました。

https://aws.amazon.com/about-aws/whats-new/2025/04/horizontal-autoscaling-amazon-elasticache-memcached/

仕組みとして、Application Auto Scaling が使われておりスケジュールあるいは動的なスケーリングポリシーを定義することで自動化が可能です。
また、ネイティブに統合されているので ElastiCache コンソール上から簡単に設定することもできるようになっています。

「自動スケーリング」タブが追加されている

ElastiCache for Memcached クラスターを作成すると、新しく「自動スケーリング」というタブが表示されるようになっていることが確認出来ます。
ここでスケーリングポリシーを管理することができるようです。

45D4D1D7-B6E1-4D7C-9FD7-B1B5F81B7A10.png

ドキュメント上の明記が見当たらなかったのですがcache.t3.microの場合は自動スケーリングタブが表示されなかったので、ノードタイプの制限がありそうです。

89852DD9-699D-4A43-8F63-B4C53C17A09D.png

動的なスケーリング

動的なスケーリングはメトリクスをターゲットとしたスケーリングポリシーです。
特定のメトリクスが目標を満たすように、最小最大ノードの範囲内でスケールアウト/スケールインを自動で行ってくれます。
スケーラブルなディメンションはノード数のみなので、オートスケールアップ/ダウンはサポートされていません。

473EF24E-D30E-4BAF-B91F-B78055936FAF.png

こちらで選択できるメトリクスは「プライマリ CPU 使用率」と「キャパシティ」の 2 つでした。

A054ED5C-980D-4D74-B9C1-7E1E757B9D89_4_5005_c.jpeg

また CPU 使用率には範囲チェックが入っており、35 % 以上 70 % 以下である必要があります。

6A03B499-54C8-46A0-9ECB-A94E5D20D7EE_4_5005_c.jpeg

スケジュールされたスケーリング

スケジュールされたスケーリングはワンショットあるいは一定間隔で定期実行されるスケジュールによってノード数を上下させるポリシーです。
週末に負荷が大きくなるなどあらかじめ需要が予測できるワークロードの場合こちらのポリシーを採用しやすいです。

設定時間は UTC で設定する必要があります。

BF819C85-138B-4C55-B1F1-FE3134C500D7.png

スケーリングポリシーを試してみる

今回は次のようにある時点でスケールアウトさせるスケジュールされたポリシーを試してみました。
まず、1回限りのポリシーで時間を迎えた場合、次のように新規ノードがクラスターに追加されることを確認しました。

DC3BFADD-5F28-46CA-9C8B-784A44171F1F.png

DAFA7048-8EFF-404A-A604-DE01C8C4EC3D.png

同じようにあるタイミングでスケールインさせるポリシーも作成してみました。
こちらも時間を迎えたタイミングで不要なノードの削除がされていることが確認出来ました。

856CFD7C-69FF-4544-AA25-781BFC8E279F_4_5005_c.jpeg

60825C91-1918-4234-9A78-DEDBEE474BDA_4_5005_c.jpeg

また、ElastiCache コンソール上で設定した時に Application Auto Scaling の RegisterScalableTarget API が呼び出されていることを確認しています。

D4F7EB63-5896-4663-9715-D876CB3ED3A4.png

ただ、Application Auto Scaling コンソール上からは設定が出来ませんでした。ElastiCache コンソール上から設定できれば不自由はなさそうですが、Application Auto Scaling から設定したい方はドキュメントで API での設定方法が紹介されているのでそちらを参照してください。

D95B504E-58B1-413A-BFFC-E4096FE11394.png

https://docs.aws.amazon.com/autoscaling/application/userguide/services-that-can-integrate-elasticache.html

さいごに

本日は Amazon ElastiCache for Memcached がオートスケーリングをサポートしたので試してみました。

ここ数日は ElastiCache for Memcached のスケーリング周りが柔軟になりましたね。
運用されている方は是非使ってみてください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.