Amazon Web Services ブログ

Amazon ElastiCache for Valkeyの開始方法

本記事は 2024 年 10 月 8 日に公開された “Get started with Amazon ElastiCache for Valkey” を翻訳したものです。


2024 年 10 月 8 日、Amazon ElastiCache は、Serverless の価格が他のサポートされているエンジンより 33% 低く、セルフデザインの (ノードベースの) クラスターが 20% 低い Valkey バージョン 7.2 のサポートを発表しました。ElastiCache Serverless for Valkey を使えば、お客様は 1 分以内にキャッシュを作成でき、月額 $6 から利用を開始できます。Valkey は、40 社以上に支持されている Linux Foundation が運営するオープンソース、高性能のキーバリューデータストアです。Valkey は Redis OSS の代替製品で、長年 Redis OSS に貢献してきた開発者とメンテナが開発し、2024 年 3 月のプロジェクト開始以来、急速に採用が広がっています。AWS は Valkey プロジェクトに積極的に貢献しています。今回のリリースにより、お客様はオープンソーステクノロジーに基づくフルマネージド環境の恩恵を受けながら、ElastiCache が提供する 13 年以上の運用の卓越性、セキュリティ、信頼性の利点を活用できます。

この記事では、ElastiCache for Valkey の概要、その利点、および ElastiCache for Redis OSS キャッシュから ElastiCache for Valkey キャッシュへのアップグレード方法をご紹介します。

ElastiCache for Valkey の概要

Amazon ElastiCache は、フルマネージド型の Valkey、Memcached、Redis OSS 互換のキャッシュサービスで、モダンアプリケーションに対してリアルタイムでコスト最適化されたパフォーマンスを提供します。ElastiCache は、マイクロ秒のレスポンスタイムで毎秒数百万のオペレーションにスケールでき、エンタープライズグレードのセキュリティと信頼性を備えています。ElastiCache for Valkey では、セルフデザインの (ノードベースの) クラスターとサーバーレスキャッシュのデプロイオプションを選択できます。自動スケーリング、マルチ AZ デプロイによる高可用性、リージョン間レプリケーションなどの機能を活用でき、ビジネス継続性とディザスタリカバリが確保されます。ElastiCache を通して Valkey をマネージドサービスとして提供することで、AWS はお客様が Valkey の豊富な機能を運用オーバーヘッドなしに活用できるようにしています。

ElastiCache for Valkey の利点:

  • 価格の引き下げ: ElastiCache Serverless for Valkey では、33%の価格引き下げと、最低 100MB の最小データストレージ容量で月額 6 ドルからの低価格を実現しています。ElastiCache for Valkey のセルフデザイン(ノードベース)クラスターでは、他のエンジンと比べて最大 20%のコスト削減が可能です。さらに、ElastiCache では、インスタンスファミリーと AWS リージョン内でリザーブドノードのサイズの柔軟性がサポートされています。ElastiCache のリザーブドノードを使用している場合、ElastiCache for Redis OSS から ElastiCache for Valkey に切り替えても、同じファミリー内のすべてのノードサイズで既存のリザーブドノード割引料金が維持され、リザーブドノード割引のさらなる価値を得られます。
  • 運用の卓越性: ElastiCache for Valkey は、オープンソーステクノロジーに基づいて構築されたフルマネージド型の体験を提供し、AWS のセキュリティ、運用の卓越性、99.99%の可用性、信頼性を活用しています。
  • パフォーマンス: お客様は、最も高いパフォーマンスが求められるリアルタイムアプリケーションの基盤として ElastiCache を選択しています。マイクロ秒単位の読み書き待ち時間を実現でき、単一のセルフデザイン(ノードベース)クラスターで 5億リクエスト/秒(RPS)までスケールできます。
  • API 互換性: ElastiCache for Valkey は、Redis OSS の API とデータフォーマットに互換性があり、お客様はコードを書き換えたり、アーキテクチャを変更する必要なくアプリケーションを移行できます。
  • ダウンタイムゼロの移行: ElastiCache for Redis OSS の既存ユーザーは、ダウンタイムゼロで ElastiCache for Valkey にすばやく移行できます。
  • 継続的なイノベーション: AWS が Valkey をサポートすることで、お客様は安定したソリューションを採用するだけでなく、将来の成長とイノベーションに備えることができます。Valkey コミュニティがプロジェクトの開発と強化を続けるにつれ、AWS のお客様は継続的な改善と新機能の恩恵を受け、アプリケーションの競争力を維持できます。AWS も Valkey に積極的に貢献しており、Amazon ElastiCache と Amazon MemoryDB の Valkey サポートを発表 の記事でさらに詳しく読むことができます。

ソリューションの概要

Amazon ElastiCache for Valkey を使い始めるには、わずか数ステップで行えます:

  1. ElastiCache Serverless for Valkey キャッシュを作成します。
  2. Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを作成します。
  3. valkey-cli ユーティリティをダウンロードし、セットアップします。
  4. アプリケーションからキャッシュに接続します。

これらの手順については、次のセクションで説明します。その後、データベースに対する基本的な操作を実演します。また、ElastiCache for Redis OSS から ElastiCache for Valkey へのアップグレード方法についても説明します。

ElastiCache Serverless for Valkey キャッシュの作成

AWS Management ConsoleAWS Command Line Interface (AWS CLI)、または ElastiCache API を使用して、ElastiCache Serverless for Valkey キャッシュを作成できます。以下は、AWS CLI を使用して ElastiCache Serverless for Valkey キャッシュを作成する例です。ElastiCache で Valkey リソースを使用するには、CLI のバージョンが最新であることを確認してください。

aws elasticache create-serverless-cache \ 
    --serverless-cache-name ec-valkey-serverless \ 
    --engine valkey \ 
    --region us-east-1

これにより、デフォルトの VPC 内に ElastiCache Serverless for Valkey キャッシュが作成され、デフォルトのセキュリティグループが使用されます。

ElastiCache Serverless キャッシュの作成ステータスは、describe-serverless-caches コマンドで確認できます。

aws elasticache describe-serverless-caches \ 
--serverless-cache-name ec-valkey-serverless \ 
--region us-east-1 
{
    "ServerlessCaches": [ 
        {
            "ServerlessCacheName": "ec-valkey-serverless",
            "Description": " ",
            "CreateTime": "2024-08-14T21:28:11.116000 + 00:00",
            "Status": "available",
            "Engine": "valkey",
            "MajorEngineVersion": "7",
            "FullEngineVersion": "7.2",
            "SecurityGroupIds": [ 
                "sg-bba254aa"
            ],
            "Endpoint": {
                "Address": "ec-valkey-serverless-xxx.cache.amazonaws.com",
                "Port": 6379 
            },
            "ReaderEndpoint": {
                "Address": "ec-valkey-serverless-xxx.cache.amazonaws.com",
                "Port": 6380 
            },
            "ARN": "arn:aws:elasticache:xxx:ec-valkey-serverless",
            "SubnetIds": [ 
                "subnet-x",
                "subnet-y",
                "subnet-z"
            ],
            "SnapshotRetentionLimit": 0,
            "DailySnapshotTime": "03:00"
        }
    ] 
}

EC2 から ElastiCache Serverless for Valkey キャッシュへの接続設定

ElastiCache は、同じ Amazon Virtual Private Cloud (Amazon VPC) 内の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスから、または VPC ピアリングを使用して別の Amazon VPC 内の EC2 インスタンスからアクセスできます。

EC2 の開始方法 を使用して EC2 インスタンスを作成します。ElastiCache Serverless for Valkey キャッシュは、ポート 6379 とポート 6380 の両方を使用します。EC2 インスタンスから Valkey コマンドを正常に実行してキャッシュに接続するには、必要に応じてこれらのポートへのアクセスをセキュリティグループで許可する必要があります。

valkey-cli のダウンロードとセットアップ

EC2 インスタンスに接続し、次のコマンドを実行して valkey-cli ユーティリティをダウンロードしてください。

sudo yum install gcc jemalloc-devel openssl-devel tcl tcl-devel -y 
wget https://github.com/valkey-io/valkey/archive/refs/tags/7.2.7.tar.gz 
tar xvzf 7.2.7.tar.gz 
cd valkey-7.2.7/ 
make BUILD_TLS=yes install

valkey-cli を使用して Valkey エンジンに接続しコマンドを実行する詳細な手順については、valkey-cli のドキュメントを参照してください。valkey-cli をインストールする際は、TLS のサポートを構築することが重要です。ElastiCache Serverless for Valkey キャッシュは、TLS が有効になっている場合にのみアクセスできます。

Valkey キャッシュへの読み書き接続

ElastiCache Serverless for Valkey キャッシュに接続するには、describe-serverless-caches AWS CLI コマンドを使用して、新しいサーバーレスキャッシュのエンドポイントを取得します。2 つのエンドポイントが表示されます。

aws elasticache describe-serverless-caches \ 
--serverless-cache-name ec-valkey-serverless \ 
--region us-east-1 
            "Endpoint": {
                "Address": "ec-valkey-serverless-xxx.cache.amazonaws.com",
                "Port": 6379 
            },
            "ReaderEndpoint": {
                "Address": "ec-valkey-serverless-xxx.cache.amazonaws.com",
                "Port": 6380 
            }

Valkey キャッシュに接続するには、valkey-cli ユーティリティを使用して ElastiCache Serverless に接続してください。

valkey-cli -h ec-valkey-serverless-xxx.cache.amazonaws.com -p 6379 -c --tls
  • -h = ホスト名
  • -p = ポート
  • -c = クラスターモード
  • –tls = TLS 有効化クラスター

これで、Valkey キャッシュに対して基本的な GET と SET 操作を実行する準備ができました。以下は、Valkey で HASH オブジェクトを作成するための HSET 操作の例です。Valkey のハッシュは、フィールド値のペアのコレクションを格納するためのデータ構造です。ハッシュは、複数の属性 (例えば、名前、年齢、メールアドレス) を持つユーザープロファイルなど、オブジェクトを表現したり、関連するデータを単一のエンティティに格納する必要がある場合に便利です。

ec-valkey-serverless-xxx.cache.amazonaws.com:6379> hset car:1 make ferrari model sf90spider year 2024 engine "4.0 L V8" horsepower 769hp transmission "8-speed auto" price 580000 
(integer) 7 
ec-valkey-serverless-xxx.cache.amazonaws.com:6379>

これにより、make、model、year、engine、horsepower、transmission、price などの属性を持つ Hash オブジェクト car:1 が作成されます。

今度は、HMGET または HGETALL 操作を使用して、個々のフィールド値のペアまたはすべてのフィールド値のペアを取得できます。

ec-valkey-serverless-xxx.cache.amazonaws.com:6379> HMGET car:1 make model price 
1) "ferrari"
2) "sf90spider"
3) "580000"
ec-valkey-serverless-xxx.cache.amazonaws.com:6379>

ElastiCache for Redis OSS から ElastiCache for Valkey へのアップグレード

ElastiCache for Redis OSS の既存ユーザーの場合、ダウンタイムなしで ElastiCache for Valkey にすばやくアップグレードできます。次の例は、ElastiCache for Redis OSS キャッシュが ElastiCache for Valkey キャッシュにアップグレード準備ができている状態を示しています。

  1. ElastiCache コンソールで、ナビゲーションペインから Redis OSS キャッシュ を選択し、変更 を選択して、アップグレードプロセスを開始します。
  2. ElastiCache の変更ウィンドウのクラスター設定で、Redis OSS と Valkey を含む複数の エンジンオプションが表示されます。エンジンオプションとして Valkey を選択し、変更をプレビュー を選択します。
  3. 次の画面では変更の概要が表示されます。すぐに適用はい を選択して、Redis OSS から Valkey へのエンジン変更を確認し、変更 を選択します。変更 を選択すると、クラスターを変更するアクションが正常に開始されました。 という通知が表示されます。
  4. 既存の ElastiCache for Redis OSS キャッシュのステータスは “Modifying” になります。
  5. アップグレードが正常に完了すると、elasticache-redisoss-cache-cluster は Redis OSS キャッシュの下に表示されなくなり、代わりに Valkey キャッシュ の下に表示されます。
  6. アプリケーションへの影響を最小限に抑えながら、Redis OSS から Valkey へのエンジンアップグレードが完了しました。

クリーンアップ

最小特権の原則を維持し、将来の課金を避けるために、この記事の一環として作成したリソースを削除してください。ElastiCache クラスター (詳細はクラスターの削除を参照) と EC2 インスタンス (delete-instance) を削除してください。

結論

この投稿では、ElastiCache for Valkey キャッシュを作成する方法、ElastiCache Serverless for Valkey キャッシュに接続するための Elastic Compute Cloud (EC2) インスタンスのセットアップ方法、ElastiCache Serverless for Valkey キャッシュへの読み書き接続方法を説明しました。また、ElastiCache for Redis OSS キャッシュから ElastiCache for Valkey キャッシュへのアップグレードの例も示しました。

Valkey サポートの追加により、Amazon ElastiCache は、AWS がデータベースアプリケーション向けに堅牢なオープンソースソリューションを提供するという取り組みにおいて、大きな前進を遂げました。まだサインアップしていない場合は、ElastiCache ページで使用を開始するを選択し、サインアッププロセスを完了してください。サインアップ後は、Amazon ElastiCache for Valkey の入門ガイドを含む ElastiCache ドキュメントを参照してください。ElastiCache for Valkey に慣れた後は、ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、数分でサーバーレスクラスターを作成できます。

この記事の翻訳は Solutions Architect の堤 勇人が担当しました。

著者について

Madelyn Olson は Valkey プロジェクトのメンテナーであり、Amazon ElastiCache と Amazon MemoryDB のプリンシパルソフトウェア開発エンジニアです。Valkey エンジンのセキュアで高信頼性の機能を構築することに注力しています。余暇には、太平洋北西部の自然の美しさを長い散歩やのんびりした自転車に乗って楽しんでいます。

Goumi Viswanathan は、Amazon In-Memory Databases チームのシニアプロダクトマネージャーです。12 年以上のプロダクト経験があり、データベースソリューションを提供するクロスファンクショナルチームをリードしています。仕事以外では、旅行と屋外での時間を楽しんでいます。

Siva Karuturi はテキサス州ダラスを拠点とする、インメモリデータベースのワールドワイドスペシャリストソリューションアーキテクトです。Siva は、さまざまなデータベーステクノロジー (リレーショナルおよび NoSQL の両方) に精通しており、クラウドコンピューティング、ガバナンス、セキュリティ、アーキテクチャ、高可用性、ディザスターリカバリ、パフォーマンス強化を含むインメモリデータベースおよび分析ソリューションの複雑なアーキテクチャの実装と、リーダーシップの提供をお客様に支援しています。仕事以外では、Anthony Bourdain スタイルで旅行や様々な料理を味わうのが好きです。