Amazon Web Services ブログ
Redis および Memcached 用の Amazon ElastiCache Serverless が利用可能に
11月27日は、Amazon ElastiCache Serverless の提供開始についてお知らせします。これは、お客様が 1 分以内にキャッシュを作成し、アプリケーションのトラフィックパターンに基づいて容量を即座にスケールできる新しいサーバーレスオプションです。ElastiCache Serverless は、2 つの一般的なオープンソースキャッシュソリューションである Redis および Memcached と互換性があります。
ElastiCache Serverless を使用すると、最も要求の厳しいワークロードであっても、即座にキャッシュを運用できます。キャパシティプランニングにかける時間を削減でき、キャッシュの専門知識も不要です。ElastiCache Serverless は、アプリケーションのメモリ、CPU、ネットワークリソースの使用状況を常に監視し、処理するワークロードのアクセスパターンの変化に合わせて即座にスケールします。また、複数のアベイラビリティーゾーンにわたってデータを自動的にレプリケートし、サービスレベルアグリーメント (SLA) によって、すべてのワークロードに対する最大 99.99% の可用性が保証されています。そのため可用性の高いキャッシュを作成でき、時間とコストの節約になります。
キャッシュのデプロイと運用には大幅な簡素化が求められていました。ElastiCache Serverless は、基盤となるクラスタートポロジとキャッシュインフラストラクチャを抽象化し、簡素化されたエンドポイントエクスペリエンスを提供します。再接続やノードの再検出を行わなくても、アプリケーションの複雑さを軽減し、より優れた運用を実現できます。
ElastiCache Serverless では、前払いコストは発生せず、使用したリソースに対してのみ料金が発生します。アプリケーションで使用したキャッシュデータストレージと ElastiCache 処理装置 (ECPU) リソースの量に対してのみお支払いいただきます。
Amazon ElastiCache Serverless の開始方法
まずは ElastiCache コンソールに移動し、左側のナビゲーションペインで [Redis キャッシュ] または [Memcached キャッシュ] をクリックします。ElastiCache Serverless は、Redis 7.1 以降または Memcached 1.6 以降のエンジンバージョンをサポートしています。
例えば、Redis キャッシュの場合は、[Redis キャッシュを作成] をクリックします。
デプロイオプションは 2 つあり、[サーバーレス] と [独自のキャッシュを設計] のいずれかを選択して、ノードベースのキャッシュクラスターを作成します。[サーバーレス] オプションをクリックしたら、[新しいキャッシュ] をクリックして名前を指定します。
デフォルト設定を使用して、デフォルトの VPC、アベイラビリティーゾーン、サービス所有の暗号化キー、セキュリティグループにキャッシュを作成します。推奨されるベストプラクティスが自動的に設定されます。追加の設定を入力する必要はありません。
デフォルト設定をカスタマイズする場合、独自のセキュリティグループの設定や、自動バックアップの有効化ができます。また、キャッシュが特定のサイズを超えないように、コンピューティングとメモリの使用量に上限を設定することも可能です。キャッシュがメモリの上限に達すると、有効期間 (TTL) のあるキーは、最近で最も使用されていない (LRU) ロジックに従って削除されます。コンピューティングの上限に達すると、ElastiCache はリクエストを調整するため、リクエストのレイテンシーが増加します。
新しいサーバーレスキャッシュを作成すると、エンドポイントやネットワーク環境など、接続性とデータ保護の設定を詳しく確認できます。
これで、アプリケーションに ElastiCache Serverless エンドポイントを設定できました。また、Redis をサポートする任意の Redis クライアント (redis-cli
など) を使用して、クラスターモードでエンドポイントに接続できるようになります。
$ redis-cli -h channy-redis-serverless.elasticache.amazonaws.com --tls -c -p 6379
set x Hello
OK
get x
"Hello"
キャッシュの管理は、AWS コマンドラインインターフェイス (AWS CLI) または AWS SDK を使用して行えます。詳細については、AWS ドキュメントの「Amazon ElastiCache for Redis とは」を参照してください。
既存の Redis クラスターがある場合は、ElastiCache Serverless キャッシュの作成時に、ElastiCache バックアップまたはバックアップファイルの Amazon S3 ロケーションを標準の Redis rdb
ファイル形式で指定します。これにより、データを ElastiCache Serverless に移行できます。
Memcached キャッシュの場合は、Redis と同じ方法で新しいサーバーレスキャッシュを作成して使用できます。
Memcached 用に ElastiCache Serverless を使用すると、大きなメリットが得られます。なぜなら Memcached エンジンでは本来、高い可用性と即座のスケール機能を備えていないためです。Memcached で高い可用性を実現するために、カスタムビジネスロジックの記述、複数キャッシュの管理、サードパーティのプロキシレイヤーを使用したデータのレプリケートを行う必要がなくなります。サービスレベルアグリーメント (SLA) によって最大 99.99% の可用性が保証され、複数のアベイラビリティーゾーンにわたるデータのレプリケートが可能になりました。
Memcached エンドポイントに接続するには、以下の出力例に示す openssl
クライアントと Memcached コマンドを実行します。
$ /usr/bin/openssl s_client -connect channy-memcached-serverless.cache.amazonaws.com:11211 -crlf
set a 0 0 5
hello
STORED
get a
VALUE a 0 5
hello
END
詳細については、AWS ドキュメントの「Amazon ElastiCache for Memcached の使用開始」を参照してください。
監視とパフォーマンス
ElastiCache Serverless は、キャッシュのスケールアップと並行してスケールアウトを開始することで、最適なタイミングでキャパシティのニーズに応えます。そのため、アプリケーションのダウンタイムやパフォーマンスの低下を発生させずにスケールできます。
ElastiCache Serverless のパフォーマンスを示すために、簡単なスケーリングテストを実施しました。まず、読み取りと書き込みの比率が 80/20 で、キーサイズが 512 バイトの一般的な Redis ワークロードから始めます。Redis クライアントは、Redis コマンド「READONLY」を使用して、レプリカから読み取り (RFR) を実施するように設定されています。これにより、読み取りパフォーマンスを最適化します。このテストの目的は、レイテンシーに影響を与えずに、ElastiCache Serverless でワークロードをいかに高速にスケールできるかを示すことです。
上記のグラフからわかるように、10 分ごとに 1 秒あたりのリクエスト数 (RPS) が 2 倍になり、テストの目標リクエストレートである 100 万 RPS に到達しました。テストの実施中、p50 GET のレイテンシーが約 751 マイクロ秒のままであり、常に 860 マイクロ秒未満であることが確認されました。同様に、p50 SET のレイテンシーは約 1,050 マイクロ秒のままであり、スループットが急激に増加しても 1,200 マイクロ秒を超えないことが確認されました。
留意点
- エンジンバージョンのアップグレード – ElastiCache Serverless は、新機能、バグ修正、セキュリティアップデート (エンジンの新しいマイナーバージョンやパッチバージョンを含む) をキャッシュに透過的に適用します。新しいメジャーバージョンがリリースされると、ElastiCache Serverless はコンソールに通知を送信し、Amazon EventBridge にイベントを送信します。ElastiCache Serverless のメジャーバージョンアップグレードは、アプリケーションを中断しないように設計されています。
- パフォーマンスと監視 – ElastiCache Serverless は、メモリ使用量 (
BytesUsedForCache
)、CPU 使用量 (ElastiCacheProcessingUnits
)、キャッシュメトリクス (CacheMissRate
、CacheHitRate
、CacheHits
、CacheMisses
、ThrottledRequests
など) を含む、一連のメトリクスを Amazon CloudWatch に公開します。また、ElastiCache Serverless は、キャッシュの作成、削除、制限更新などの重要なイベントに対して Amazon EventBridge イベントを発行します。使用可能なメトリクスとイベントの完全なリストについては、ドキュメントを参照してください。 - セキュリティとコンプライアンス – ElastiCache Serverless キャッシュは、VPC 内からアクセスできます。AWS Identity and Access Management (IAM) を使用することで、データプレーンにアクセスできます。デフォルトでは、ElastiCache Serverless キャッシュを作成した AWS アカウントのみがアクセスできます。ElastiCache Serverless は、保管中および転送中のすべてのデータを暗号化しており、これには ElastiCache Serverless への各接続を暗号化する Transport Layer Security (TLS) が使用されています。オプションで、VPC 内、サブネット内、IAM アクセス内、暗号化用の AWS Key Management Service (AWS KMS) キー内のキャッシュに対するアクセスを制限することもできます。ElastiCache Serverless は PCI-DSS、SOC、ISO に準拠しており、HIPAA に対応しています。
今すぐご利用いただけます
Amazon ElastiCache Serverless は、中国を含むすべての商用 AWS リージョンでご利用いただけるようになりました。ElastiCache Serverless では、前払いコストは発生せず、使用したリソースに対してのみ料金が発生します。キャッシュされたデータ (GB/時)、使用した ECPU、スナップショットストレージ (GB/月) に対してのみお支払いいただきます。
詳細については、「ElastiCache Serverless ページ」と「ElastiCache Serverless の料金ページ」をご覧ください。ぜひお試しいただき、AWS re:Post for Amazon ElastiCache または通常の AWS サポートのお問い合わせからフィードバックをお寄せください。
– Channy
原文はこちらです。