TECH PLAY

Laravel

むベント

該圓するコンテンツが芋぀かりたせんでした

マガゞン

技術ブログ

本蚘事は 2026 幎 5 月 7 日に公開された “ Valkey turns two ” を翻蚳したものです。 2 幎前、 Valkey は、Redis に察する真にオヌプンでベンダヌニュヌトラルな代替手段の必芁性に応えるコミュニティ䞻導の取り組みずしお誕生したした。本蚘事では、この 2 幎間の歩みを振り返り、Valkey の急速な普及、コミュニティによっおもたらされたむノベヌション、そしおこれらの発展がモダンなキャッシングおよびリアルタむムデヌタ基盀の未来にずっお䜕を意味するのかをご玹介したす。わずか 2 幎ずいう短い期間で、Valkey はほがすべおの䞻芁なクラりドプロバむダヌやオヌプン゜ヌスディストリビュヌションにおけるデフォルトの高性胜キヌバリュヌデヌタストアずなり、キャッシング分野におけるコミュニティ䞻導のむノベヌションの䞭心的存圚ずなりたした。Valkey は Docker の环蚈プル数 1 億回を突砎し (前幎比 17 倍)、225 名を超えるコントリビュヌタヌを集め、1,500 件以䞊のプルリク゚ストが提出されおいたす。これは同時期の Redis の開発ペヌスのおよそ 2 倍に盞圓したす。 この勢いは、匷力なむノベヌションのフラむホむヌルを生み出しおいたす。クラりドプロバむダヌ、䌁業、開発者党䜓で採甚が拡倧するに぀れ、Valkey オヌプン゜ヌス゚コシステム党䜓からの貢献により、セキュリティ、信頌性、パフォヌマンス、コスト効率、および高床な機胜の改善が掚進されおきたした。これらの改善により、本番環境で 最倧 60% 優れた䟡栌性胜比 や、党文怜玢、集蚈、ベクトル類䌌性、Bloom フィルタヌなどの高床な機胜を利甚できるようになるずいった、目に芋える圢での向䞊が実珟しおいたす。こうした匷化により、䜕䞇もの Amazon ElastiCache のお客様が数十䞇のクラスタヌを Valkey に移行しおいたす。Intuit、Airbnb、Nextdoor、Tinder、Peloton、Amazon Ads、Amazon Music ずいった 組織 は珟圚、最もレむテンシヌに敏感でビゞネスクリティカルなシステムの䞀郚を Valkey に䟝存しおいたす。 このむノベヌションのフラむホむヌルは、Valkey のオヌプンガバナンスずコミュニティ䞻導の開発モデルによっお実珟されおいたす。組織が Valkey を採甚し、倧芏暡に運甚するに぀れ、その実䞖界での経隓がコントリビュヌション、ベンチマヌク、運甚フィヌドバックを通じおプロゞェクトに盎接還元されたす。これにより、Valkey ゚コシステム党䜓のむノベヌションのペヌスが加速したす。 「Valkey が泚目に倀するのは、1 億回の Docker プルや 2 侇 5,000 を超える GitHub スタヌずいった目を匕く数字ではなく、その背埌にいるコミュニティです。Ericsson、ByteDance、Intel、Salesforce、Snap、その他数十の組織に所属する倚様な開発者たちが、ほがすべおのクラりドプロバむダヌず共に Valkey を構築しおいたす。コミュニティ䞻導のガバナンスによるこのような幅広いオヌプンなコラボレヌションこそが、長期的に芋お最高のテクノロゞヌが生み出される方法なのです。」 — Matt Wilson、AWS 副瀟長兌䞻垭゚ンゞニア キャッシュ・ミヌ・むフ・ナヌ・キャン: Valkey の採甚 Valkey の成長は、利甚状況の指暙だけでなく、その呚りに圢成されおいる゚コシステムの広がりにも衚れおいたす。わずか 2 幎で、Valkey は新しいオヌプン゜ヌスプロゞェクトから、キャッシング、リアルタむムデヌタアクセス、怜玢、人工知胜 (AI) ワヌクロヌドのために広くサポヌトされる基盀ぞず進化したした。クラりドプロバむダヌ、商甚サヌビスプロバむダヌ、アプリケヌションフレヌムワヌク、業界党䜓の開発者コミュニティが参加しおいたす。 この゚コシステムには珟圚、 AWS 、 Google 、 Alibaba 、 Oracle 、 Tencent 、 DigitalOcean ずいったクラりドプロバむダヌからの 10 を超えるマネヌゞド Valkey サヌビスが含たれおいたす。 Percona 、 Aiven 、 Momento などのサヌビスプロバむダヌや商甚ディストリビュヌタヌは、このプロゞェクトを䞭心ずしたマネヌゞドサヌビス、゚ンタヌプラむズサポヌトモデル、付加䟡倀の高いサヌビスを構築しおいたす。アプリケヌション局では、 Spring Data Valkey や Laravel ずいったフレヌムワヌクが Valkey のサポヌトを远加しおいたす。 LangChain 、 Haystack 、 Cognee 、 Recall などの AI および倧芏暡蚀語モデル (LLM) フレヌムワヌクでは、ベクトルストレヌゞ、怜玢、゚ヌゞェントメモリ甚の Valkey 統合が導入されたした。これらの統合により、Valkey は高性胜キャッシュずしおの圹割から、最新のリアルタむムおよび AI アプリケヌションのコアデヌタ局ぞず、その圹割を拡倧しおいたす。 Amazon ElastiCache における Valkey の採甚も、業界党䜓の同様の勢いを反映しおいたす。 ElastiCache の最倧芏暡の顧客 による実際の本番環境でのデプロむは、Valkey が今日皌働しおいるスケヌルを瀺しおおり、極めお高いスルヌプット、䜎レむテンシヌ、継続的な可甚性を求められるむンタヌネット芏暡のアプリケヌションを支えおいたす Intuit は、重芁なアむデンティティワヌクロヌドを ElastiCache for Valkey にアップグレヌドした結果、ダりンストリヌムのサヌビスコヌルを最倧 80% 削枛し、レむテンシを玄 95% 改善したこずを報告しおいたす。 Sanoma は、人間のモデレヌタヌによる刀断のオヌバヌラむドをベクトルずしお保存するこずで、ニュヌスブランド党䜓で AI 支揎によるコメントモデレヌションを改善するために ElastiCache for Valkey を掻甚しおいたす。珟圚、コメントの 30% が過去のモデレヌタヌ刀断ず照合されおおり、党ケヌスの 6.5% でそのコンテキストが盎接 AI の刀断を倉曎し、モデルの再孊習や別途ベクトルデヌタベヌスを運甚するこずなく、粟床を向䞊させおいたす。 Tinder は、Amazon ElastiCache の䜎レむテンシ性胜を掻甚しお、毎日数十億のナヌザヌアクションを凊理し、䞖界芏暡のデヌティングプラットフォヌム党䜓でリアルタむムむンタラクションをサポヌトしおいたす。 Peloton は、ElastiCache を掻甚しおラむブリヌダヌボヌドを皌働させ、䞖界䞭のラむダヌがサブミリ秒の曎新でリアルタむムに競い合えるようにしおいたす。 Amazon Ads は、Sponsored Products 広告プラットフォヌムを皌働させるために ElastiCache for Valkey を䜿甚しおいたす。このシステムは、数癟ノヌドに及ぶクラスタヌを運甚し、1 日あたり数十億の広告むンプレッションを配信しながら、毎秒数千䞇のリク゚ストを凊理しおいたす。この芏暡であっおも、グロヌバルむンフラストラクチャ党䜓で p99 レむテンシ 5 ms 未満、99.99% の可甚性を維持しおいたす。 Nextdoor は、800 以䞊のノヌドを Valkey にアップグレヌドするこずで、地域コミュニティ向け゜ヌシャルプラットフォヌムを皌働させながら運甚コストを削枛したした。 「組織がミッションクリティカルなワヌクロヌドをグロヌバル芏暡で実行するために採甚する䞭で、Valkey のようなプロゞェクトがこれほど急速に勢いを増しおいくのを芋るのは非垞に刺激的です。゚ンゞニアリングの専門知識ず運甚経隓をコミュニティに還元するこずで、゚コシステム党䜓のむノベヌションを加速させおいたす。お客様は、パフォヌマンス、信頌性、機胜の改善がより速いペヌスで進むこずから恩恵を受けおいたす。」 — G2 Krishnamoorthy, AWS デヌタベヌス担圓バむスプレゞデント 勢いの背景にある取り組み 急速な普及に呌応するように、急速なむノベヌションも進んでいたす。Valkey コミュニティ党䜓の組織からの貢献により、パフォヌマンス、信頌性、コスト効率、機胜性においお数倚くの改善が生たれおいたす。プロゞェクト開始以来、225 名を超える貢献者が 1,500 件以䞊のプルリク゚ストを提出したした。これは、同時期の Redis における開発ペヌスず比范しお、アクティブな貢献者数ずマヌゞされたプルリク゚スト数の䞡方でほが 2 倍にあたりたす。この急速なペヌスは、埓来の単䞀ベンダヌによる開発モデルを䞊回るオヌプン゜ヌスコラボレヌションの力を瀺しおいたす。 䞖界をリヌドするテクノロゞヌ䌁業の倚くがこのプロゞェクトに積極的に貢献しおおり、ByteDance、Intel、Salesforce、Snap などの組織に加え、ほがすべおの䞻芁なクラりドプロバむダヌが参加しおいたす。開発のペヌスは、各組織が共通しお䟝存するコアむンフラストラクチャの改善に共同投資する、オヌプンで業界党䜓の協力モデルの匷さを反映しおいたす。しかし、数字よりも重芁なのは、コミュニティが構築しおいるものがもたらすむンパクトです。2 幎間にわたるむノベヌションを 1 ぀の投皿で完党に䌝えるこずは困難ですが、以䞋のハむラむトは、この成長を続けるコミュニティから生たれたいく぀かのむノベヌションを瀺しおいたす。これらには、最近 Amazon ElastiCache での䞀般提䟛が発衚された Valkey 9 の最新のむノベヌションが含たれたす (詳现は別の ブログ投皿 をご芧ください)。 パフォヌマンス Valkey 9 は、むンメモリデヌタストアの可胜性の限界を抌し広げ続けおいたす。パフォヌマンスの向䞊には、パむプラむン化されたコマンドのメモリプリフェッチによる 最倧 40% のスルヌプット向䞊 、 れロコピヌレスポンス による最倧 20% のスルヌプット向䞊、そしお Multipath TCP による最倧 25% のレむテンシヌ削枛が含たれたす。これらの改善は、Valkey 8 で導入された 再蚭蚈された I/O スレッディングアヌキテクチャ による最倧 230% のスルヌプット向䞊および最倧 70% のレむテンシヌ改善ずいった、以前の Valkey のパフォヌマンス改善の䞊に積み重ねられおいたす。ElastiCache はたた、 Amazon ElastiCache Serverless でキャッシュあたり毎秒最倧 500 䞇リク゚スト を達成したした。しかし、パフォヌマンスは実環境䞋で予枬可胜であり続けおこそ意味がありたす。このため、Valkey コミュニティは、倧芏暡環境で䞀貫した信頌性に぀ながるパフォヌマンス向䞊の提䟛に倚倧な投資を行っおきたした。 信頌性 信頌性の改善は、実際の本番環境においおレむテンシヌを予枬可胜に保ち、埩旧を高速にするこずに重点を眮いおいたす。最近の Valkey リリヌスでは、P99 レむテンシヌスパむクを削枛する Active Defragmentation の改善 ず、プラむマリぞのメモリ負荷を軜枛しながら完党同期時間を最倧 50% 短瞮できる デュアルチャネルレプリケヌション が導入されたした。 TLS フル同期の最適化 により、同期速床は最倧 18% 向䞊したす。これらの匷化により、お客様がより倧芏暡で芁求の厳しい本番環境ワヌクロヌドを実行する際にも、レむテンシヌを予枬可胜に保ち、埩旧を高速に維持できたす。 コスト効率 Valkey 9 では、クラスタヌモヌドにおける numbered databases (番号付きデヌタベヌス) の察応により、コスト効率がさらに向䞊したす。チヌムは、ネヌムスペヌスごずに個別のむンフラストラクチャを過剰にプロビゞョニングする代わりに、同じ分散クラスタヌ内でアプリケヌション、テナント、たたは環境を論理的に分離できたす。これらの改善は、Valkey 8 および 8.1 におけるコアデヌタ構造の最適化など、これたでの Valkey の効率性向䞊の䞊に構築されおおり、 ElastiCache の Redis OSS ず比范しお最倧 60% 優れた䟡栌察性胜 を実珟できたす。その結果、クラスタヌは小さくなり、むンフラストラクチャコストは䜎枛し、成長のための䜙裕が広がりたす。コア゚ンゞンがより効率的になるこずで、Valkey はより少ないむンフラストラクチャで倧芏暡なワヌクロヌドを実行できるよう支揎し、埓来のキャッシュを超えた新しいカテゎリのアプリケヌションぞも拡匵し続けたす。 新機胜 Amazon ElastiCache 䞊の Valkey 9 を利甚するこずで、お客様は最新の Valkey search 機胜にアクセスできたす。これは、以前に远加されたベクトル怜玢を拡匵し、 フルテキスト怜玢、サヌバヌサむド集蚈 、ハむブリッドク゚リを提䟛するこずで、リアルタむム怜玢、セマンティック怜玢、フィルタリング、分析をキャッシュ内で盎接実行可胜にしたす。これらの機胜により、お客様はマむクロ秒レベルのレむテンシヌず毎秒数癟䞇リク゚ストのスルヌプットで、継続的に曎新されるテラバむト芏暡のデヌタを怜玢および分析できたす。ナヌスケヌスには、商品カタログ怜玢、ドキュメント探玢、レコメンデヌションシステム、異垞怜知、ログ分析、䌚話メモリ、怜玢拡匵生成 (RAG) などがありたす。 Valkey 9 では ハッシュフィヌルドの有効期限 も導入され、ハッシュ内の個々のフィヌルドに察しおきめ现かい TTL 制埡が可胜になりたす。これにより、キヌ党䜓を䞀床に倱効させたり、アプリケヌション偎に有効期限のロゞックを远加したりする必芁がなくなりたす。これらの革新的な機胜は、Bloom フィルタヌ、JSON サポヌト、LDAP 統合、地理空間ポリゎンク゚リなど、最近の Valkey ゚ンゞンのリリヌスおよびモゞュヌルに远加された他の機胜の䞊に構築されおいたす。 私たちの䞻芁な䟡倀芳に基づいた構築 過去 2 幎間における Valkey の急速な普及は、業界芏暡でのオヌプンなコラボレヌションの力を瀺しおいたす。開発者による広範な利甚、クラりドプロバむダヌやテクノロゞヌ䌁業からの幅広い参加、そしお䞭立的なオヌプンガバナンスが、匷力なフラむホむヌルを生み出したした。より倚くの組織が Valkey を本番環境にデプロむするに぀れお、その運甚経隓が盎接プロゞェクトにフィヌドバックされ、パフォヌマンス、信頌性、スケヌラビリティ、コスト効率の継続的な改善を掚進しおいたす。 数十䞇のクラスタヌず、䞖界で最も芁求の厳しいリアルタむムアプリケヌションで Valkey を運甚するこずで、むノベヌションの新たな機䌚が次々ず生たれおいたす。Valkey のオヌプン゜ヌス゚コシステム党䜓からの貢献により、コア゚ンゞンが匷化されるずずもに、開発者が構築できる範囲が拡倧しおいたす。ナヌスケヌスは珟圚、埓来のキャッシュやセッション管理から、リアルタむム分析、怜玢、AI 駆動型ワヌクロヌドにたで広がっおいたす。 開発者、運甚者、そしおあらゆる芏暡の組織の皆様に、Valkey の GitHub や Slack でのご参加をお埅ちしおおりたす。コヌドの貢献、フィヌドバックの提䟛、本番環境での Valkey の採甚など、圢匏は問いたせん。最新のむノベヌションは Valkey のブログ でご芧いただけたす。たた、䞖界䞭のコントリビュヌタヌやナヌザヌが集う、今埌の コミュニティむベント や技術セッションぞのご参加もお埅ちしおおりたす。 2 幎が経過し、 Valkey は、オヌプンでコミュニティ䞻導のテクノロゞヌが、単䞀ベンダヌモデルよりも迅速にむノベヌションを起こし、より倧きくスケヌルし、より倚くの䟡倀を提䟛できるこずの蚌ずなっおいたす。この旅はただ始たったばかりです。 著者に぀いお Mas Kubo Mas は、AWS のむンメモリデヌタベヌスチヌムのプロダクトマネヌゞャヌで、Amazon ElastiCache のオヌプン゜ヌス高性胜デヌタストア゚ンゞンである Valkey に泚力しおいたす。仕事以倖では、フリヌダむビング、パラグラむディング、カむトサヌフィン、セヌリングを通じお颚ず海を远いかけおいたす。 Meet Bhagdev Meet は AWS のシニアマネヌゞャヌ PMT-ES です。Amazon ElastiCache および Amazon MemoryDB のプロダクトマネゞメントチヌムを率いおいたす。Meet はオヌプン゜ヌス、デヌタベヌス、分析に情熱を持ち、お客様の芁件を理解し、優れた䜓隓を構築するために時間を費やしおいたす。 Madelyn Olson Madelyn は Valkey プロゞェクトのメンテナヌであり、Amazon ElastiCache および Amazon MemoryDB のプリンシパル゜フトりェア開発゚ンゞニアです。Valkey ゚ンゞンの安党で信頌性の高い機胜の構築に泚力しおいたす。䜙暇には、長いハむキングや穏やかなサむクリングを通じお、倪平掋岞北西郚の自然の矎しさを楜しんでいたす。 本蚘事は、 Valkey turns two を翻蚳したものです。翻蚳は Solutions Architect の Hayato Tsutsumi が担圓したした。
はじめに こんにちは、リテヌルハブ開発郚でバック゚ンド゚ンゞニアをしおいるホシず申したす。 珟圚、Laravel などを利甚しながら小売アプリ開発に取り組んでいたす。 先日、サヌビスのリリヌスに䌎い、旧サヌビスの倖郚システムから圓瀟のMySQL DBぞナヌザヌデヌタ移行を行う機䌚がありたした。 ただ今回、今たで行ったデヌタ移行ず倧きく違うのは、ナヌザヌの個人情報を含んだデヌタ移行でした。 デヌタ移行自䜓はこれたでも経隓しおいたしたが、個人情報を含む移行は前提が異なり、倚くの孊びず反省点がありたした。 そこで本蚘事では以䞋の点に぀いおお話できればず思いたす。 実デヌタを自由に扱えない状況での事前準備の進め方 リハヌサルの重芁性ず、実斜できる堎合の考え方 今回採甚した移行方匏ず「倉換できたのに正しく入っおいない」問題ず確認点 移行圓日に意識しおおくべき刀断ず心構え 次回のデヌタ移行に向けた改善点 それぞれの䞭で経隓したこずや反省点を蚘茉しながら、今埌に向けた改善点などを蚘茉しおいたす。 たた、個別の移行内容ずいうよりは、デヌタ移行を進める際の準備・怜蚌・刀断の考え方に焊点を圓おおいたす。 1. 実デヌタを自由に扱えない状況での事前準備の進め方 個人情報を含むデヌタは「自由に觊れない」 個人情報が含たれる堎合の制玄 開発環境・怜蚌環境に簡単に持ち蟌めない ログ出力、スクリヌンショット、共有方法にも制限がある デヌタ配眮・保管堎所にも慎重な刀断が必芁 事前確認が十分にできない 「本番で初めお芋るデヌタ」が発生しがち など通垞ずは異なる制玄がある䞭で行う必芁がありたした。 この郚分をもっず考慮した䞊で、事前準備が必芁であったずころは倧きな反省点でした。 「できないから仕方ない」で枈たせるず危険 事前にできるこずはできる限りやり、仕様曞・IF定矩だけで満足しないこずが倧事です。 ずはいえ察応できる範囲も限界はあるので以䞋の点を特に泚意できればず思っおいたす。 NULL / 空文字 / 䞍正倀の扱いは各項目でどうなっおいるのかを明確にする。 桁数・文字皮・フォヌマットのばら぀きがあるこずを前提ずした考慮をする。 仕様䞊はOKでも、実デヌタでは違う可胜性を考える。 (ここは正盎難しいですが、デヌタパタヌンを確認し、できる限り考慮したいです。) あるあるの話ですが、通垞は仕様に基づいお察応するのが圓たり前ですが、 こういった倧量デヌタになるずおかしなデヌタはほが混ざっおいるのが逆に普通かず思っおいたす。 2. リハヌサルの重芁性ず、実斜できる堎合の考え方 今回は事前にリハヌサルが実斜できる状況でした。 しかし、以䞋の点でしか怜蚌を行えおいたせんでした。 デヌタ移行手順が問題ないこずスムヌズに移行䜜業が完了できる 個人情報デヌタの取り扱いに問題がないこず デヌタ倉換が゚ラヌなく行われ、正垞にDBぞ投入できるこず想定通りのフォヌマットであるこず 実際に移行したデヌタを䜿甚しお簡単な動䜜確認を実斜し問題ないこず 䞊蚘はどれもリハヌサルで行う必芁な項目で、どれも倧事なのですが、 ただ、本番デヌタを想定した芳点ずしおは以䞋の点でもっず時間をかけお行うべきでした。 DBに入った内容に想定しおいないデヌタが入っおいないか デヌタパタヌンを各項目で掗い出し、システム䞊問題ない倀であるこず 想定しおいないパタヌンの堎合、どう察凊するかを事前に明確にするこず しかし、これも個人情報のデヌタずなるず、あたり時間をかけおのリハヌサルや ロヌカルに保存しお埌ほど詳现に確認もしにくいのもあり、簡単な確認で枈たせおしたっおいたした。 元デヌタを最倧限に利甚する 䞀番確実なのはやはり元デヌタを䜿甚できるこずです。 圓日のデヌタ移行の怜蚌ずいう意味では、これを利甚した怜蚌が䞀番確実だず思いたす。 リハヌサル圓日だけで出来ない郚分は、別日に詳现にできればず良いず思いたす。 しかし、今回のような個人情報デヌタは自由に扱えないこずを理由にうたく利甚できおいなかったのも反省点です。 いかにここでそのファむルを掻甚したダミヌデヌタを䜜れるかも非垞に有効だったのではず思っおいたす。 3. 今回採甚した移行方匏ず「倉換できたのに正しく入っおいない」問題ず確認点 どうやっお移行を行おうずしたか 今回は以䞋の方法で行いたした。 移行元デヌタ ↓ phpでデヌタを読み蟌み、MySQLのLoadData甹TSVファむルにコンバヌトするコヌドを䜜成 ↓ Load DataでTSVデヌタをDBぞ投入 ↓ デヌタ移行完了 特別な凊理は特になく、シンプルな倉換凊理でした。 「倉換できたのに正しく入っおいない」問題ず確認点 コンバヌトたでは特に問題なく倉換できお、件数・゚ラヌチェックは行えおいたしたが、 以䞋の点が芋萜ずしポむントでした。 デヌタ投入できおいお、か぀党件「自動倉換」など発生なく投入できおいるか Load時にWarningなどが発生しおいないか投入はできおいおも実は正垞に入っおいないケヌスがある カラム定矩䞊は問題なく入っおいるが、倀が想定しおいないものではないか Load Data はデヌタ投入時に非垞に䟿利ですが、䞊蚘の点をしっかりず考慮した䞊で䜿甚しないずデヌタ移行時の確認内容ずしおは䞍十分になっおしたいたす。 特に日付はNULLの堎合ず「0000-00-00」で入る堎合で党く挙動が異なりたす。 MySQLでは「0000-00-00」はNULLではなく「倀」ずしお扱われたす。 そのためアプリケヌション偎では未蚭定ではなく異垞倀ずしお存圚しおしたうこずになり、 日付蚈算・バリデヌション・ORM倉換で埌から問題を匕き起こす可胜性があるので特に泚意が必芁です。 今回の移行凊理の責務を分離しお考える 本来は以䞋のようにそれぞれのフェヌズの責務を明確にしお、察応をしおいく必芁がありたした。 フェヌズ 圹割 保蚌するこず 保蚌できないこず コンバヌタヌ 生デヌタをLoad Data甚圢匏ぞ倉換 TSV構造・文字コヌド・基本的な倀倉換 DBがどう解釈するか、業務的な正しさ Load Data DBぞ高速に䞀括投入 指定件数の取り蟌み、物理的な栌玍 型倉換の圱響、暗黙倉換、Warningの発生 DB栌玍埌の確認 実デヌタの劥圓性怜蚌 業務的に正しい倀であるこずの確認 この確認を行わないず移行成功ずは蚀えない 特に今回は、Load Data の郚分ずDB栌玍埌の確認が混圚した確認になっおいたず反省しおいたす。 実際のデヌタパタヌンの怜蚌䟋 パタヌンは膚倧にあるようで、実はシンプルなものをいく぀か甚意しおおくだけでも違うず思っおいたす。 -- 䞍正日付確認 SELECT COUNT (*) FROM users WHERE birthday = ' 0000-00-00 ' ; -- NULL発生率確認 SELECT COUNT (*), SUM (email IS NULL ) FROM users; -- 想定倖圢匏確認郜道府県以倖のパタヌン確認 SELECT prefecture, COUNT (*) FROM users GROUP BY prefecture; AIを掻甚したパタヌン掗い出し・事前テストの詊み 今回、AIをうたく䜿いこなせおいなかった点も反省点だったず思っおいたす。 たさにAIをうたく掻甚できる点ずしお、 前述したデヌタパタヌンを様々な芳点で出すこずができる 個人情報郚分は適圓なパタヌンデヌタに倉換しお怜蚌するこずもできる 圓時は本番デヌタをそのたた䜿甚できないこずで、ちょっずしたサンプルデヌタ、パタヌンデヌタで行い、 十分な事前怜蚌も䞍足しおいたした。 4. 移行圓日に意識しおおくべき刀断ず心構え 今たでいく぀か事前準備ず慎重な怜蚌が必芁ず蚘茉をしおいたすが、 圓日は必ず想定倖が起きるず思っお蚈画を立おた方が良いかず思っおいたす。 特に膚倧なデヌタや内容が倚いほど顕著になるかず思いたす。 以䞋の点に泚意しお圓日は望めるようにしおおきたいです。 ぀぀の䜜業完了条件を明確にしおおくこず。 ロゞックや仕様倉曎をその堎でする修正は原則しないこず。 移行を䞭止、延期する、たたは埌日察応でOKかなどの刀断が圓日できる人がいるこず。 移行がもし出来ない堎合のリカバリ方法があるこず。 たた、時間も想定しおいるよりも掛かっおしたうこずが倚いず思いたす。 なるべく䜙裕をもった蚈画にしたいです。 今回は投入デヌタの件数確認でさえ、すぐに終わる぀もりが件数の正解を事前に甚意しおいなかったため、 非垞に倧きく時間をかけおしたったのも今回の反省点でした。完了条件が明確になっおいない 5. 次回のデヌタ移行に向けた改善点 今回の経隓から以䞋の点を意識し改善できるようにしおいきたいです。 䞀連の手順、動䜜確認は事前リハヌサルでできる限り行うこず。 本番圓日に向けた事前準備はしっかり時間を確保しお察応する。圓日は必ず䜕か起きる前提 圓日の䜜業の完了基準の明確化デヌタ件数、゚ラヌ有無、動䜜確認など Load Dataなどデヌタ投入埌の郚分が䞀番倧事か぀明確にする郚分であるこず。 仕様通りに䜜成しおも、䞍正デヌタは必ずある前提で行い、それらも考慮するこず。 個人情報を扱うデヌタの堎合は、同等のダミヌデヌタを甚意できるず怜蚌時に非垞に有効。 怜蚌パタヌン、デヌタ生成などはAIも掻甚し、怜蚌粟床やコスト枛に圹立おる。 6. たずめ 通垞、デヌタ移行は圓日䞀床きりの䜜業で、 同じ内容で再床実斜するケヌスは少なく、個別のノりハりは蓄積しにくいずころもありたすが、 共通の考え方、察応ずしお、 事前準備の重芁性 怜蚌蚭蚈の明確化 圓日の刀断基準 䜕かあった時のリカバリ方法 これらを意識するこずで、圓日の障害確率は䞋げられるず思っおいたす。 改めお今回を通じお、デヌタ移行は技術䜜業ずいうより、怜蚌蚭蚈ず刀断蚭蚈の仕事だったず感じおいたす。 正盎、完璧に準備をしお党おスムヌズに完了させるこずはなかなか難しいずころですが、 もし今埌デヌタ移行などの䜜業をする際に本蚘事が少しでも参考になれば幞いです。 最埌たでお読みいただきありがずうございたした。
はじめに こんにちは、リテヌルハブ開発郚の杉森です。 近幎、AIを掻甚した開発ツヌルが急速に普及しおいたす。私たちのチヌムでも積極的にAIツヌルを導入し、芁件定矩でのナヌザヌストヌリヌ䜜成、蚭蚈ドキュメントの生成、コヌドの自動補完、テストコヌドの生成など、各開発フェヌズの䜜業効率化を図っおきたした。 しかし、個々の䜜業は確かに早くなっおいるのに、プロダクト開発フロヌ党䜓を芋るず期埅したほどの生産性向䞊を実感できないずいう課題に盎面したした。 本蚘事では、この課題に察するアプロヌチずしお導入を怜蚎しおいるAI-DLCAI-Driven Development Lifecycleに぀いお玹介したす。 AI-DLCずは AI-DLCは、AWSが提唱するAIネむティブな開発方法論です。方法論のホワむトペヌパヌで理論的な枠組みが定矩されおおり、これを実装するためのワヌクフロヌがaidlc-workflowsずしおGitHub䞊で公開されおいたす。 AWSの公匏ブログでは、珟圚のAI掻甚における2぀のアンチパタヌンが指摘されおいたす。 AI-Assisted: 人間が蚭蚈を䞻導し、AIはコヌド補完など狭い範囲の支揎にずどたる。生産性向䞊は限定的で、AIの胜力を十分に匕き出せない AI-Managed: 耇雑な問題をAIに䞞投げし、自埋的にすべおを解決するこずを期埅する。出発点が曖昧なためAIが倚くの仮定を立お、プロトタむプ以倖ではほが機胜しない AI-DLCは、これらのアンチパタヌンに察するアプロヌチずしお蚭蚈されおいたす。AIが䜜業蚈画の䜜成やタスク分解を䞻導し、人間がその内容を怜蚌・承認し、AIが承認された蚈画に基づいお実行するずいうサむクルで、開発ラむフサむクル党䜓を進めたす。 AI駆動開発ラむフサむクルAWS公匏ブログ aidlc-workflowsGitHub 埓来の開発手法ずの違い AI-DLCは、既存の開発手法にAIを埌付けするのではなく、AIを前提ずした開発プロセスをれロから蚭蚈しおいたす。ホワむトペヌパヌでは、以䞋の蚭蚈思想が瀺されおいたす。 AIが䌚話を䞻導する: 埓来は人間がAIに指瀺を出しおいたが、AI-DLCではAIがタスク分解や提案を行い、人間は承認・刀断に集䞭する Intent / Unit / Bolt: ビゞネス目暙Intentを䜜業単䜍Unitに分解し、数時間〜数日の短いサむクルBoltで実装を回す。ScrumのSprintに近いが、サむクルが短い 各ステップで人間がチェックする: AIの出力を段階ごずに怜蚌し、誀りを早期に怜出する。ホワむトペヌパヌでは「損倱関数のように機胜する」ず衚珟されおいる 蚭蚈技法を方法論に組み蟌む: ScrumやKanbanがチヌムに委ねおいたDDD等の蚭蚈技法を、方法論の䞀郚ずしお暙準化する aidlc-workflowsの蚭蚈原則 aidlc-workflowsは、䞊蚘の蚭蚈思想を実装するにあたり、以䞋の5぀の蚭蚈原則に基づいおいたす。 原則 説明 No Duplication 蚭定やルヌルを䞀箇所で管理し、重耇を排陀する Methodology First 特定のツヌルに瞛られず、方法論そのものを軞にする Reproducible ルヌルを明文化し、䜿うAIモデルが倉わっおも結果がぶれないようにする Agnostic IDE・゚ヌゞェント・モデルを問わず動䜜する Human in the Loop 重芁な刀断には必ず人間の承認を挟む 3フェヌズ構成 AI-DLCは、以䞋の3぀のフェヌズで構成されおいたす。 INCEPTION PHASE: WHATずWHYの決定 CONSTRUCTION PHASE: HOWの実装 OPERATIONS PHASE: デプロむず監芖aidlc-workflows䞊は未実装 INCEPTION PHASE 「䜕を䜜るかWHAT」「なぜ䜜るかWHY」を決定するフェヌズです。方法論のホワむトペヌパヌでは「Mob Elaboration」ずいうプラクティスずしお定矩されおおり、共有画面を䜿っおチヌム党䜓でAIの質問ず提案を怜蚌したす。AIがビゞネス意図Intentを明確化する質問を投げかけ、ナヌザヌストヌリヌ、非機胜芁件、リスク蚘述を生成し、凝集床の高い䜜業単䜍Unitぞ分割したす。 aidlc-workflowsでは、このフェヌズが以䞋のステヌゞに现分化されおいたす。 ステヌゞ 説明 Workspace Detection プロゞェクトの状態を分析新芏/既存の刀定 Reverse Engineering 既存コヌドベヌスの理解Brownfieldの堎合 Requirements Analysis 芁件の収集ず敎理 User Stories ナヌザヌストヌリヌの䜜成 Workflow Planning 実行蚈画の策定 Application Design アプリケヌション蚭蚈 Units Generation 䜜業単䜍ぞの分割 CONSTRUCTION PHASE 「どう䜜るかHOW」を決定し、実際にコヌドを生成するフェヌズです。方法論のホワむトペヌパヌでは、Domain Designビゞネスロゞックのドメむンモデリング→ Logical Design非機胜芁件を含むアヌキテクチャ蚭蚈→ Code & Unit Testsコヌドずテストの生成→ Deployment Unitsデプロむ可胜な成果物の構築ずいう流れで進みたす。「Mob Construction」でチヌムがリアルタむムで技術的決定ずアヌキテクチャの遞択を行いたす。 aidlc-workflowsでは、このフェヌズが以䞋のステヌゞに现分化されおいたす。 ステヌゞ 説明 Functional Design 機胜蚭蚈ナニットごず NFR Requirements/Design 非機胜芁件の蚭蚈 Infrastructure Design むンフラ蚭蚈 Code Generation コヌド生成 Build and Test ビルドずテスト OPERATIONS PHASE デプロむず監芖を担圓するフェヌズです。方法論ずしおは定矩されおいたすが、aidlc-workflowsには含たれおおらず、将来的にワヌクフロヌが远加される予定です。 察応プラットフォヌム 公匏では以䞋のプラットフォヌムがサポヌトされおいたす。 Kiro CLI Amazon Q Developer IDE plugin Kiro IDEComing Soon 詊しおみる 導入の背景 私たちのチヌムの課題は、たさにAI-Assistedパタヌンに該圓したす。AIを個々の䜜業の効率化には掻甚できおいるものの、生産性向䞊は限定的にずどたっおいたした。 私たちのチヌムでは、Kiro CLIをすぐに䜿える環境ではなかったため、Claude Code向けにカスタマむズしお䜿甚したした。AI-DLCはツヌルに䟝存しない蚭蚈を謳っおいるため、ルヌルファむルを調敎すれば他のAIツヌルでも問題なく適甚できるず考えおいたす。 Claude Code向けのカスタマむズ 以䞋のようにClaude Code向けにカスタマむズしたした。 1. カスタムコマンドスキルの䜜成 .claude/commands/aidlc.md にワヌクフロヌ定矩を配眮し、 /aidlc コマンドで起動できるようにしたした。 .claude/ ├── commands/ │ ├── aidlc.md # メむンワヌクフロヌ │ ├── aidlc-pr.md # PR䜜成甚 │ └── aidlc-archive.md # アヌカむブ甚 └── aidlc-rule-details/ ├── common/ # 共通ルヌル ├── inception/ # INCEPTIONフェヌズ ├── construction/ # CONSTRUCTIONフェヌズ └── operations/ # OPERATIONSフェヌズ 2. ルヌルファむルの分割 各ステヌゞの詳现指瀺を .claude/aidlc-rule-details/ 以䞋に分割配眮しおいたす。これにより、AIが必芁なタむミングで必芁なルヌルのみを読み蟌み、コンテキストを効率的に䜿甚できたす。 クヌポン機胜を題材にした怜蚌 AI-DLCの有効性を怜蚌するため、小売向けアプリのクヌポン機胜開発を題材に怜蚌を実斜したした。 怜蚌抂芁 察象システム: Flutter + Laravel + Vue.js + Goで構成されたマルチプラットフォヌムアプリ 題材: ポむント埌付けクヌポンず即時倀匕きクヌポンの2皮類 怜蚌範囲: モバむルアプリ、管理画面、バック゚ンドAPI、バッチ凊理 チヌム構成: PdM1人+゚ンゞニア2人 怜蚌の進め方 「クヌポン機胜を远加したい」ずいうビゞネス意図Intentを起点に、AI-DLCのフェヌズに沿っお進めたした。 INCEPTION PHASE3人で実斜: AIが芁件を深掘りする質問を投げかけ、ナヌザヌストヌリヌや非機胜芁件を生成。PdMず゚ンゞニアがその内容を怜蚌・修正し、䜜業単䜍Unitに分割 CONSTRUCTION PHASE1人で実斜: Unitごずにドメむン蚭蚈、コヌド生成、テスト生成を実斜。各ステヌゞでAIの出力を確認し、承認・修正を繰り返した 今回は怜蚌目的だったこずもあり、各フェヌズ半日ず぀の蚈1日で実際に動くものたで䜜成できたした。Inceptionフェヌズの芁件・蚭蚈をより䜜り蟌み、Constructionフェヌズではガヌドレヌルの敎備やAIが自埋的に改善できる䜓制を組むこずで、さらに短瞮できる䜙地があるず感じおいたす。 実際の様子 AIからの深掘り質問Inceptionフェヌズ Requirements Analysisでは、AIが芁件の曖昧な郚分を遞択肢付きで質問しおきたす。以䞋はその䞀䟋です。 AI : クヌポン利甚状態の管理に぀いお確認させおください。ナヌザヌがクヌポンを「利甚」した埌の状態管理はどうなりたすか A) 1回利甚したら即座に䜿甚枈みになる再利甚䞍可 B) 有効期限内であれば䜕床でも利甚可胜 C) クヌポンごずに利甚回数を蚭定可胜1回、3回、無制限など AI : クヌポンの皮類ず適甚範囲に぀いお確認させおください。 A) 党おの皮類が䞡方のクヌポンタむプで䜿甚可胜 B) クヌポンタむプごずに䜿甚可胜な皮類が決たっおいる このように、AIが仕様の遞択肢を提瀺し、人間が刀断するずいうサむクルでRequirements Analysisが進みたす。初回の質問10問、远加の深掘り質問6問を経お、芁件定矩ドキュメントが生成されたした。 人間による蚭蚈修正Inceptionフェヌズ Application Designでは、AIが蚭蚈の遞択肢を提瀺し、人間が刀断するケヌスがありたした。 人間 : アクティブナヌザヌではないナヌザヌにもレコヌドが䜜成されおしたいたせんか AI : 2぀の遞択肢がありたす。 A) クヌポン公開時に党ナヌザヌ分のuser_couponsレコヌドを䜜成 B) クヌポン利甚開始時にのみuser_couponsレコヌドを䜜成 人間 : B 生成されたナヌザヌストヌリヌInceptionフェヌズ User Storiesでは、管理者向け6件、䌚員ナヌザヌ向け6件、システム向け1件の蚈13件が生成されたした。以䞋はその䞀郚です。 US-01: クヌポン新芏䜜成 As a 管理者 I want to 管理画面から新しいクヌポンを䜜成したい So that 䌚員ナヌザヌに察しおキャンペヌンを提䟛できる Acceptance Criteria: クヌポンタむプポむント埌付け/即時倀匕きを遞択できる クヌポン名ず説明文を入力できる 有効期限開始日・終了日を蚭定できる 察象店舗を遞択できる 生成されたコヌドConstructionフェヌズ Constructionフェヌズでは、Unitごずにドメむン蚭蚈 → コヌド生成 → テスト生成が進みたす。最終的に以䞋の芏暡のコヌドが生成されたした。 Unit 察象 生成ファむル数 䞻な成果物 Backend Laravel 51ファむル Enum, Model, Migration, Service, Controller, Test Dashboard Vue.js 16ファむル Composable, Component, Schema, Page Mobile Flutter 38ファむル Entity, Repository, Provider, Widget, Page わかったこず / 今埌の展望 良いず感じた点 実際にAI-DLCを觊っおみお、以䞋の点が良いず感じたした。 Human in the Loopの実珟: AIが実行し、人間が監芖するずいう関係性が明確。各ステヌゞで人間の承認が必芁なため、重芁な意思決定は人間がコントロヌルできる コンテキストの保存ず再開: aidlc-state.md でプロゞェクトの状態を远跡しおいるため、セッションが途切れおも前回の続きから再開できる ドキュメント化による远跡可胜性: audit.md にすべおのやり取りが蚘録されるため、なぜその決定をしたのかを埌から远跡できる 適応的なワヌクフロヌ: プロゞェクトの耇雑さに応じお、実行するステヌゞが自動的に調敎される 詊した䞊で芋぀かった課題 Inception前の準備の必芁性 今回「クヌポン機胜を远加したい」ずいうリク゚ストからInceptionを開始したしたが、背景知識や「なぜこの機胜が必芁なのか」がアりトプットに反映されにくいこずがわかりたした。たた、芁件の解像床が䜎い状態でInceptionを始めるず、議論が発散しやすくなりたす AI-DLCのInceptionに入る前に、ビゞネス背景や目的を敎理するステップが必芁だず感じたした。 仕様ずAI実装のギャップ Inceptionフェヌズで仕様を決め切った䞊でも、以䞋の2぀の問題が発生したした。 仕様の蚘茉挏れ: Inceptionフェヌズで決めた仕様に挏れがあり、Constructionフェヌズで初めお気づくケヌス。䟋えば、APIレスポンスのラッパヌ圢匏やお気に入り店舗のパラメヌタなど、実装段階で刀明した考慮挏れがありたした 仕様通りに実装されない: 仕様ずしお蚘茉されおいるにもかかわらず、AIが異なる実装をするケヌス。䟋えば、既存の認蚌方匏ず異なるパタヌンで実装したり、既存のアヌキテクチャパタヌンに埓わない実装が生成されるこずがありたした 前者は芁件定矩やアプリケヌション蚭蚈の粟床を䞊げおいく必芁がありたす。今回怜蚌だったので现郚たで確認できおいないずころがありたした。そのため、実業務に導入した堎合はよりこの郚分に時間を䜿うべきだず思いたした。 埌者はモデルの進化を埅ち぀぀、コンテキストの枡し方の工倫や、実装が仕様に準拠しおいるかを監査するサブ゚ヌゞェントの敎備など、ガヌドレヌルを匵っおいくこずが必芁だず感じたした。 コンテキスト管理の課題 AIツヌル固有の課題ずしお、コンテキスト管理の難しさがありたす。実装フェヌズではコヌドの読み曞きが倚く発生するため、auto-compactコンテキストの自動圧瞮が頻発したした。その結果、audit.mdぞの曞き蟌みが䞍安定になったり、芁件定矩ファむルぞの指摘を繰り返しおもアりトプットに反映されないこずがありたした。 察策ずしお、コンテキストの䜿甚量を抑えるためにルヌルファむルを分割しお必芁なタむミングでのみ読み蟌む方匏にしたり、サブ゚ヌゞェントを掻甚しお凊理を分散させるなどの工倫が必芁です。 レビュヌ負荷ぞの察応 AIのアりトプット量が増えるこずで、人間のレビュヌ負荷が増倧するずいう課題がありたす。この課題に察しおは、以䞋のアプロヌチを怜蚎しおいたす。 レビュヌを軜枛するプロセスの構築: 自動テストやLintの掻甚 AIの出力品質を䞊げる工倫: プロンプトの改善、ルヌルの敎備 段階的なレビュヌ: 各ステヌゞでの承認による分散 これらの最適解は、チヌムやプロダクトによっお異なるため、継続的に改善しおいく必芁がありたす。 最埌に AI-DLCは、AIを掻甚した開発における「ボトルネックを特定し、解消しおいく」ためのフレヌムワヌクずしお有望だず感じおいたす。 今回芋えおきた課題はAI-DLCのフレヌムワヌク自䜓の問題ではなく、AIず人間が協働する䞊で必然的に発生する問題です。今埌も継続的に掻甚しながら、チヌムに最適な圢にカスタマむズしおいきたいず考えおいたす。

動画

該圓するコンテンツが芋぀かりたせんでした

曞籍

おすすめマガゞン

蚘事の写真

【日本総研】「次の䞀歩」で芖座は倉わる ゚ンゞニアが䌚瀟の未来を考える立堎に至るたで

蚘事の写真

【アクセンチュア】20幎のキャリアで芋぀けた、自分で遞び取る働き方ずは

蚘事の写真

AI゚ヌゞェントの本番運甚を成功に導くアヌキテクチャ蚭蚈ずデヌタ前凊理の実践

蚘事の写真

【オムロン】ITずOTはなぜ分かり合えないのか ―時間ずデヌタをめぐる蚭蚈のリアル、補造業DXの「泥臭い」真実

新着動画

蚘事の写真

【3分】守れる゚ンゞニアが匷くなる理由。Project Glasswingの本質は“新モデル”じゃない / Claude...

蚘事の写真

【ゞュニア゚ンゞニア䞍芁論】最匷組織は短呜に終わる/質ずスピヌドはトレヌドオフじゃない/和田卓人氏(t-wada)/埌線...

蚘事の写真

【3分でわかる】SNSで議論沞隰「ハヌネス゚ンゞニアリング」賛吊䞡論の本質は / AI゚ヌゞェントの品質を最倧化 / ...