TECH PLAY

Redis

イベント

該当するコンテンツが見つかりませんでした

マガジン

技術ブログ

DBの接続プール枯渇という課題に対し、Amazon ElastiCacheを導入して解決した事例を紹介します。本記事では、ElastiCacheの2つのエンジン(MemcachedとRedis)の基本的な違いを比較しつつ、実際のプロジェクトでMemcachedを採用した経緯を解説。認証トークンのオフロードや、In-Memory DB Cacheパターンを用いたDBアクセスの削減、さらにBulk処理によるElastiCache自身の接続プール枯渇対策など、段階的な改善プロセスと、その結果としてリクエスト処理能力が約3倍に向上した効果を具体的に説明します。
本ブログは、アスクル株式会社と Amazon Web Services Japan が共同で執筆しました。 はじめに アスクル株式会社 (以下、アスクル)は、「お客様のために進化する」という DNA のもと、事業所向け通信販売サービス「ASKUL」や個人向け通信販売サービス「LOHACO」を運営しています。取り扱い商品はオフィス用品、生活用品、家具、製造業・建設業向けの専門用品、衛生・介護・薬局用品等の一般医療用商品・医薬品・医療機器等の医療材料まで多岐にわたります。 1,500 万アイテム以上の商品をワンストップで購入できるサービスを提供しています。 アスクルは 2019 年頃から主要システムのクラウドネイティブ環境への移行を段階的に実施し、SAP ERP をはじめとする多数の基幹システムのマイグレーションに成功しました。こうしたモダナイゼーションの取り組みの延長として、運用やコストの最適化にも継続的に取り組んでおり、Amazon ElastiCache を Redis から Valkey にマイグレーションすることで約 20% のコスト削減を実現しました。 本記事では、アスクルが ElastiCache を Redis から Valkey にマイグレーションした際の移行戦略、当日の作業手順、およびコスト最適化の成果について紹介します。 システム構成 アスクルは 2019 年から基盤システムのモダナイゼーションの一環としてマイクロサービスアーキテクチャを積極的に採用しています。社内で「Trylion(トライオン)」と呼ばれるプロジェクトの一部として、膨大な商品情報を管理する商品プラットフォームもマイクロサービス化されており、特に商品 API や外部サービス(広告出稿など)への商品情報連携バッチなど、高速な処理が求められる機能に Amazon ElastiCache を採用しています。 アスクルの商品プラットフォームでは、Amazon ElastiCache を以下の 2 つの用途で活用しています。 商品 API(Amazon ECS): お客様が askul.co.jp にアクセスした際、商品 API が Amazon Aurora(PostgreSQL)から取得した結果(商品名、価格など)を Amazon ElastiCache にキャッシュします。これにより、同一商品への繰り返しアクセスに対してデータベースへの問い合わせを削減し、高速なレスポンスを実現しています。 商品更新バッチ(Amazon EC2): 商品情報の更新処理において、冪等性の担保や並列処理時の処理重複を避けるために処理済み ID を Amazon ElastiCache にキャッシュしています。これにより、大量の商品データを効率的に更新できる仕組みを構築しています。 Valkey へのマイグレーションを検討した背景 モダナイゼーションの中ではコスト最適化も重要な課題です。ElastiCache のコストをさらに最適化するため、アスクルは Valkey への移行を検討しました。 Valkey は 40 社以上の支持を受けて Linux Foundation が運営するオープンソースプロジェクトです。Amazon ElastiCache では 2024 年 10 月 8 日に Valkey のサポートを開始 しました。ElastiCache for Valkey はノードベースクラスターのコストが従来の ElastiCache for Redis OSS と比較して約 20% 低く、アスクルのコスト最適化の目標に合致していました。 加えて、Redis OSS の API およびデータフォーマットとの互換性があり、ダウンタイムゼロで移行できるオプションが提供されていることも魅力的で、前向きに検討してみる要因の一つになりました。これらの要素を総合的に評価し、アスクルは Valkey の採用を決定しました。特に、Redis OSS との API 互換性によりアプリケーションコードの改修が不要と見込まれた点は、移行の意思決定を後押しする大きな要因でした。 移行前の懸念事項と事前準備 Amazon ElastiCache では、既存の Redis クラスターをダウンタイムなしで Valkey へ移行するオプションが提供されており、その手軽さは魅力的でした。しかし、移行後に予期しない問題が発生した場合の切り戻しを考慮すると、インプレース移行だけでは不十分と判断しました。 そこでアスクルは、既存の Redis クラスターは維持したまま新規に Valkey クラスターを構築することで、問題が発生した場合でも Redis に即時切り戻せる体制を確保しました。ただし、新規 Valkey クラスターへの切り替えは API の参照先変更(= API リリース)を伴います。リリース直後はキャッシュが空の状態となるため、大量のキャッシュミスが発生するリスクがありました。これを軽減するため、商品 API の Amazon ECS サービスに対する AWS CodeDeploy のデプロイ設定を変更しました。 具体的には、 ECSAllAtOnce (トラフィックを一度にすべて切り替える設定)から ECSLinear10PercentEvery3Minutes (3 分ごとにトラフィックの 10% ずつを新クラスターへ切り替える設定)に変更し、トラフィックを段階的に新クラスターへ誘導する方式を採用しました。これにより、ウォームアップ時間を確保しつつキャッシュミスの影響を最小限に抑えることができました。 また、本番移行前に開発環境で一連の流れを検証し懸念事項の解消を確認しました。 切り戻しの準備は、移行当日までに本番用の新規 Valkey クラスターを事前構築しておく程度だったため、手間なく当日の作業を最小化することができました。 移行当日の作業手順 移行当日は、インフラチームと開発チームが連携し、以下の手順で作業を進めました。 ステップ 1(インフラチーム): CodeDeploy デプロイ設定を ECSAllAtOnce から ECSLinear10PercentEvery3Minutes に変更しました。 ステップ 2(開発チーム): API をリリースし、参照先を Redis から Valkey へ変更しました。Valkey は Redis OSS と API 互換性があるため、アプリケーションコードの変更は接続先の設定変更のみで済みました。 ステップ 2-1(開発チーム): Blue/Green デプロイの Green タスクセット(移行先環境)を使用して動作確認を実施しました。本番(Redis)と移行先環境(Valkey)のレスポンス結果を突合するスクリプトを実行し、レスポンス結果に差分がないことを確認しました。 ステップ 3(インフラチーム): 動作確認完了後、CodeDeploy 設定を元の ECSAllAtOnce に戻しました。 移行作業は約 40 分で完了し、移行前後を通じてシステム側での問題は発生しませんでした。 移行結果と今後の展開 移行検討から本番移行の完了まで約 3〜4 か月のスケジュールで、無事に移行を完了しました。移行後の商品 API のレスポンスタイムは Redis 利用時と同等で、性能劣化は確認されませんでした。 Redis と Valkey を並行稼働させていたため一時的にコストが増加しましたが、Redis クラスター削除後は想定どおり約 20% のコスト削減を達成しました。さらに、 リザーブドノード の購入を組み合わせることで、最終的に約 30% のコスト削減を実現しました。この成果を受けて、他プラットフォームでも同様の手順で Valkey への移行を進めています。また、今後新規に Amazon ElastiCache クラスターを構築する場合は Valkey を標準採用とする方針に変更しました。 まとめ アスクルは十分な事前準備により、約 40 分という短時間で安全に ElastiCache for Redis OSS から Valkey へのマイグレーションを完了し、最終的には約 30% のコスト削減を実現しました。ElastiCache for Valkey への移行を検討されている方は、 開始方法 もあわせてご参照ください。 著者について 荒木 泰詞 2023年にアスクル株式会社へ入社。Trylionのインフラをメインに、他のプロダクト も含めた設計・構築・運用保守を横断的に担当。JAWS-UGに参加し、AWSの学びを楽し みながらキャッチアップや情報発信活動を行っている 中野 暁人 2018年にアスクル株式会社へ入社。商品プラットフォームの立ち上げ初期より参画 し、設計・実装・運用まで一貫して担当。OSSの公開およびコントリビュートに積極的 に取り組んでいる。 藤田 将大 Database Specialist Solutions Architect として、担当テリトリーのお客様に対し、データベース全般の活用を技術支援してい ます。 朴 総明 Technical Account Manager。AWS データベース技術コミュニティメンバーとしてデータベースの課題解決&技術支援を しています。
私にとって 2026 年 5 月 4 日週、最もエキサイティングだったニュースは、 Amazon Bedrock AgentCore が最初のマネージド支払い機能をプレビュー したことです。これにより、AI エージェントが API、MCP サーバー、ウェブコンテンツ、その他のエージェントに自律的にアクセスして支払いを行うことが可能になります。Coinbase や Stripe と提携して構築されているため、請求、認証情報管理、コンプライアンスを実現するためにカスタマイズしたシステムを構築するという、差別化されていない面倒な作業が不要になります。 Coinbase CDP ウォレットまたは Stripe Privy ウォレットを支払い接続として接続し、セッションレベルの支出制限を設定すると、エージェントは実行中に自律的に取引を行います。私が最もワクワクしているのは、AgentCore 決済で何ができるかということです。例えば、リアルタイムの市場データに対してその場で支払いができるリサーチエージェントや、タスクの途中で有料 API を呼び出すコーディングエージェントなどです。 詳細については ブログ投稿 にアクセスし、 ドキュメント を使用してさらに詳しく調べた上で、 AgentCore CLI の使用を開始してください。 2026 年 5 月 4 日週のリリース 2026 年 5 月 4 日週のリリースのうち、私が注目したリリースをいくつかご紹介します。 Agent Toolkit for AWS – AI コーディングエージェントがエラーを減らし、トークンコストを削減して、エンタープライズグレードのセキュリティコントロールを実現しながら AWS で構築するのに役立つ、本番環境ですぐに利用できるツールとガイダンスのスイートです。追加料金なしでご利用いただけます。Agent Toolkit for AWS は、 AWS ラボ で利用可能な MCP サーバー、プラグイン、スキルの後継です。使用を開始するには クイックスタートガイド にアクセスするか、 GitHub で利用できるスキルとプラグインをご参照ください。 AWS MCP サーバーの一般提供開始 – 少数の固定ツールセットを通じて、すべての AWS サービスに対するセキュアかつ認証済みのアクセスを AI エージェントやコーディングアシスタントに付与する、マネージドリモートモデルコンテキストプロトコル (MCP) をご使用いただけます。これは Agent Toolkit for AWS の一部です。詳細については、 Seb Stormacq のブログ投稿 をご覧ください。 AI エージェント向け Amazon WorkSpaces (プレビュー) – AI エージェントを使用して、マネージド WorkSpaces 環境からデスクトップアプリケーションに安全にアクセスして操作できます。この機能により、組織はエンタープライズグレードのガバナンスとコンプライアンスを完全に維持しながら、日常のワークフローを大規模に自動化できるようになります。詳細については、 Micah Walter のブログ投稿 をご覧ください。 Amazon EC2 M8idn/M8idb インスタンスと R8idn/R8idb インスタンス – これらのインスタンスは、AWS および最新の第 6 世代 AWS Nitro Card でのみ利用可能なカスタムの第 6 世代 Intel Xeon Scalable プロセッサを搭載しています。前世代のインスタンスと比較して、これらのインスタンスは vCPU あたりのコンピューティングパフォーマンスを最大 43% 向上させます。M8idn/R8idn インスタンスは最大 600 Gbps のネットワーク帯域幅を提供し、M8idb/R8idb インスタンスは最大 300 Gbps の EBS 帯域幅を提供します。 AWS のお知らせに関する詳しいリストについては、「 AWS の最新情報 」ページをご覧ください。 その他のアップデート 皆さんの関心を引くと思われるその他のニュースをいくつかご紹介します。 2 周年を迎える Valkey – Valkeyは、オープンでコミュニティ主導型のテクノロジーが、単一ベンダーのどのモデルよりもイノベーションが早く、拡張性が高く、より多くの価値をもたらすことを証明しています。Valkey では Docker のプルが 1 億回 (前年比で 17 倍に増加) を超え、225 人以上のコントリビューターが 1,500 件を超えるプルリクエストを提出しました。これは、同時期の Redis の開発ペースの約 2 倍です。 Amazon ElastiCache では最新の Valkey 9.0 を使用することもできます。 SQL を使用した数十億スケールのベクトルのクエリ – 標準 SQL を使用して Amazon Aurora PostgreSQL-Compatible Edition の Amazon S3 Vectors をクエリする方法と、ベクトルの類似性の結果を 1 つのクエリでリレーショナルフィルターと組み合わせる方法を学ぶことができます。例えば、意味論的に最も類似した製品を見つけてから、1 つの SQL ステートメントにおいて価格、在庫状況、またはテナントでフィルタリングする方法などです。 AWS DevOps エージェントを使用したエンドツーエンドのエージェンティック SRE の構築 – Amazon CloudWatch、Splunk 、GitHub、Slack とシームレスに統合して、調査範囲を定義する DevOps エージェントスペースを設定する方法を学びましょう。また、Webhook を介して自動調査をトリガーする方法、緩和計画を作成する方法、エージェント対応仕様を Kiro などのコーディングエージェントに渡して実装する方法も学ぶことができます。 AWS ブログ投稿の全リストについては、必ず AWS ブログ ページをご覧ください。 AWS の詳細について学び、今後予定されている AWS 主催の対面イベントやバーチャルイベント 、 スタートアップイベント 、 開発者向けイベント 、 AWS Summits や AWS Community Days を閲覧して、ご参加ください。 AWS Builder Center に参加して、ビルダーとつながり、ソリューションを共有し、開発をサポートするコンテンツにアクセスしましょう。 2026 年 5 月 11 日週のニュースは以上です。2026 年 5 月 18 日週の Weekly Roundup もお楽しみに! – Channy 原文は こちら です。

動画

書籍