これは何?
AWS re:Invent 2023のMonday Night Liveにて、Amazon ElastiCache ServerlessのGA(一般利用開始)が発表されたので、その内容と考察してみました。
概要
ElastiCache Serverlessとは
・ユーザーが 1 分以内にキャッシュを作成し、アプリケーションのトラフィック パターンに基づいて容量を即座に拡張できる新しいサーバーレス オプションです。
・現在ElastiCacheで利用できるデータベースストアである、Redis および Memcached のどちらにも互換性があります。
・Serverlessと名がついてることから分かる通り、「ワークロードのアクセスパターンの変化に合わせた即時スケーリング」「複数のアベイラビリティーゾーンにわたる自動レプリケート」を備えています。
・すべてのワークロードに対する最大 99.99%のSLAが保証されます。
良い点と今後の改善を期待する点
良い点
・ 非常にシンプル。 インスタンスのタイプを選んだり、帯域幅の注意しつつノードのTPS制限を気にしなくてよい。
・ユーザーが速やかに新規でCacheサービスを構築できる(1分ほど)。
・デフォルトでMulti-AZ構成であり、HAの設定を気にする必要がない。構成変更による追加課金の心配がない。
・Auto Scailing Groupが無くなった。
・エンジンバージョンのアップグレード
自動かつ透過的に適用されますが、アプリケーションへの影響はありません。
・CloudWatchによるメトリクス監視が可能
メモリ使用率 (BytesUsedForCache), CPU使用率 (ElastiCacheProcessingUnits)やその他のキャッシュメトリクスが利用できます。
・セキュリティ、コンプライアンス
VPC内からのアクセスが可能で、IAMを利用したデータプレーンへのアクセスが可能、KMSを利用した保存時・転送時の暗号化もサポートしています。
今後の改善を期待する点
VPCを必要とする
残念ながら VPC が必要です。そのため、例えばLambdaを VPC の外で実行している場合は、ElastiCache ServerlessにアクセスするためにLambdaを VPC に配置する必要があります。
スケーリングパフォーマンスが現実的なユースケースと適合しない。
ローンチ時点でのベンチマークはrpsが上昇した際に、10分ごとに容量を 2倍にすることができることを示しています。 Serverful elasticache を使用すると、より多くの容量をプロアクティブにプロビジョニングするために使用できる自動スケーリング ルールを使用できます。つまり、現状のオーバープロビジョニングなEllastiCacheから劇的に改善されているとは言えないのでは?という感想を持っています。
またこの点に関して、考慮しておかなくてはならないのは、実際のトラフィックにおいて、スパイクの負荷というものは2倍であるとは限らない可能性があることです。 実際のユースケースでは当然、10倍になる可能性だってあります。その場合、スケールアップには最大40分かかってしまう可能性があります。
その頃にはスパイクって終わってるかもしれないですよね?。。。
コストパフォーマンスが良くない
前提として、サーバレスなので従量課金制となりますが料金設定がちょっとイケてない印象を受けます。
最低料金は$90(約¥13,500)ですが、ElastiCacheServerlessに保存されたデータに +αの転送量を支払います。
データ転送量は1GBあたり34セント。つまり、最低料金は$90だが、$90+月/GB+34セント/GBのデータ転送量を支払うことになります。
尚、ストレージは最も近いGB に切り上げられます。
まとめ
AWSがElastiCache Serverless のGAをリリースしたことは素晴らしいことだと思います。
ElastiCacheは性質上、スパイクに備える必要があり、サーバフルインスタンスだと、オーバープロビジョニング必須のサービスであるからです。
さらに、スケールアップ、ダウンにおいて、ダウンタイムが必須であり、メンテナンスに課題が多いサービスでした。
今回のGAにより、大きな一歩を踏み出したと言えます。
ただ、前述の通り、課題が多く残り、まだサーバレスの恩恵を受けるサービスとは言い切れない部分が多々あります。
今後のアップデートに期待したいです。