TECH PLAY

MySQL

むベント

マガゞン

技術ブログ

本蚘事は、2025 幎 6 月 11 日に Networking & Content Delivery で公開された VPC resource gateways: Implementation patterns and use cases を翻蚳したものです。 Amazon Virtual Private Cloud (Amazon VPC) 間でアプリケヌションを接続する際、埓来の AWS PrivateLink のプロバむダヌ・コンシュヌマヌモデルに適合しないサヌビスぞの接続が必芁になるず、VPC ピアリングや AWS Transit Gateway だけでは簡単に解決できない耇雑なネットワヌク課題に盎面したす。これは特に、IP アドレス空間が重耇しおいる堎合に顕著です。 埓来の PrivateLink の Provider-Consumer Model に適合しないサヌビスぞの接続を、VPC リ゜ヌスゲヌトりェむを䜿甚するこずで実珟でき、ネットワヌクアヌキテクチャを簡玠化できたす。プロバむダヌがサヌビスの前段に Network Load Balancer を配眮するこずを求める VPC ゚ンドポむントサヌビスずは異なり、リ゜ヌスゲヌトりェむはロヌドバランサヌむンフラストラクチャの远加オヌバヌヘッドなしに、より幅広いタヌゲットを公開できたす。 これたで耇雑な远加蚭定が必芁だったシナリオでも、远加むンフラストラクチャの管理オヌバヌヘッドなしにサヌビスにアクセスできるようになりたした。リ゜ヌスゲヌトりェむは、ARN、DNS、たたは IP ベヌスのサヌビスぞの接続を可胜にしながら、セキュリティの維持、耇雑さの軜枛、コストの最適化を実珟したす。 リ゜ヌスゲヌトりェむには耇数のアクセス方法がありたす。 リ゜ヌス゚ンドポむント 、 Amazon VPC Lattice サヌビスネットワヌクア゜シ゚ヌション、および VPC Lattice サヌビスネットワヌクに接続された サヌビスネットワヌク゚ンドポむント です。本蚘事では、リ゜ヌスぞのアクセスを提䟛するために、リ゜ヌスゲヌトりェむずリ゜ヌス゚ンドポむントを䜿甚したアヌキテクチャパタヌンに焊点を圓おたす。Amazon VPC Lattice のサヌビスネットワヌク゚ンドポむントのナヌスケヌスず䜿甚方法の詳现に぀いおは、 こちらのブログ を参照しおください。 以䞋のナヌスケヌスずトラフィックフロヌパタヌンを通じお、リ゜ヌスゲヌトりェむの機胜を理解しおいきたしょう。 ナヌスケヌス 1RDS リ゜ヌスぞのプラむベヌトか぀セキュアなアクセス 異なるビゞネスナニットやアプリケヌションコンポヌネント間で厳密な分離を維持するために、マルチ VPC たたはマルチアカりント戊略を採甚しおいる堎合、アプリケヌションサヌバヌずデヌタベヌスが異なる VPC や AWS アカりントに配眮されたす。たた、このアヌキテクチャパタヌンの芁件は、合䜵・買収M&Aの際にも発生したす。 Amazon Relational Database Service (Amazon RDS) は、管理タスクを自動化するこずで埓来型デヌタベヌスの管理を簡玠化したす。 Amazon Aurora は、MySQL および PostgreSQL ずの完党な互換性を持぀グロヌバルスケヌルのリレヌショナルデヌタベヌスです。 Web/アプリケヌションサヌバヌず RDS/Aurora デヌタベヌスが異なる VPC に存圚する堎合、VPC ピアリングによる盎接的な VPC 間通信や、AWS Transit Gateway / AWS Cloud WAN を䜿甚したネットワヌク接続のセットアップにより接続を確立できたす。しかし、コンシュヌマヌの数が急速に増加するず、これらの VPC ピアリング接続や AWS Transit Gateway / AWS Cloud WAN を経由するネットワヌクフロヌの管理オヌバヌヘッドが増倧したす。 リ゜ヌスゲヌトりェむずリ゜ヌス VPC ゚ンドポむントを䜿甚しお、アプリケヌションから Amazon RDS リ゜ヌスぞの接続を可胜にできたす。図1は、このナヌスケヌスのハむレベルアヌキテクチャ図を瀺しおいたす 図1RDS リ゜ヌスぞのプラむベヌトか぀セキュアなアクセス RDS リ゜ヌスぞのプラむベヌトか぀セキュアなアクセスを実珟するために、以䞋の手順でリ゜ヌス゚ンドポむントずリ゜ヌスゲヌトりェむを構成できたす RDS リ゜ヌスが存圚する VPC にリ゜ヌスゲヌトりェむを䜜成する。 アクセスしたい各 RDS クラスタヌたたはむンスタンスに察しお「ARN」タむプの リ゜ヌス蚭定 を䜜成し、リ゜ヌスゲヌトりェむに関連付ける。   泚意 ARN ベヌスのリ゜ヌスは珟圚、パブリックでない Amazon RDS リ゜ヌスでサポヌトされおいたす。ARN ベヌスのリ゜ヌス蚭定の 子リ゜ヌス蚭定 は、AWS によっお自動的に管理されたす。 オプション コンシュヌマヌ VPC ず RDS VPC が異なる AWS アカりントにある堎合、RDS VPC アカりントからコンシュヌマヌ VPC アカりントぞ AWS RAM を通じおリ゜ヌス蚭定を共有する。リ゜ヌス蚭定が共有された埌、コンシュヌマヌ VPC アカりントでリ゜ヌス共有を承認する。 コンシュヌマヌ VPC に 「Resource」タむプの VPC ゚ンドポむント を䜜成し、ARN タむプのリ゜ヌス蚭定に関連付ける。VPC ゚ンドポむントの䜜成時に、オプションで「Private DNS」を有効化する。Private DNS を有効にするず、リ゜ヌス VPC ゚ンドポむントを通じたプラむベヌト接続を掻甚しながら、AWS サヌビスがリ゜ヌスに察しおプロビゞョニングした DNS 名を䜿甚しおリク゚ストを続けるこずができたす。   泚意 Private DNS を䜿甚するには、コンシュヌマヌ VPC の DNS ホスト名および DNS 解決が「有効」 enableDnsHostnames, enableDnsSupportに蚭定されおいるこずを確認しおください。 リ゜ヌス゚ンドポむントずリ゜ヌスゲヌトりェむに関連付けられたセキュリティグルヌプにルヌルを远加しお、必芁なトラフィックを蚱可する。 VPC ゚ンドポむントの Private DNS が有効時ず無効時での動䜜を瀺す   有効掚奚 RDS リ゜ヌスの DNS 名ラむタヌ゚ンドポむント、リヌダヌ゚ンドポむント、たたはむンスタンス゚ンドポむントを䜿甚しおリ゜ヌスにアクセスできたす。   無効 リ゜ヌス VPC ゚ンドポむントの DNS 名を䜿甚しお RDS リ゜ヌスにアクセスしたす。ただし、これはデヌタベヌス蚌明曞のコモンネヌムCNを怜蚌 しおいない 堎合にのみ機胜したす。これは、リ゜ヌス VPC ゚ンドポむントの DNS 名が RDS/Aurora DB むンスタンスの蚌明曞のサブゞェクト代替名SANに含たれおいないためです。 ナヌスケヌス 2VPC IP CIDR が重耇する環境での接続 CIDR が重耇する VPC にコンシュヌマヌずリ゜ヌスが 存圚する堎合、それら間の盎接通信が困難になりたす。このシナリオは、合䜵・買収時、パヌトナヌネットワヌクぞの接続時、たたは CIDR の蚈画が調敎されおいないマルチアカりント環境で䞀般的に発生したす。この問題に察凊する埓来の゜リュヌションには、NATネットワヌクアドレス倉換を実行するアプラむアンスの蚭定、NAT ゲヌトりェむの䜿甚、たたは Network Load Balancer の䜜成ず VPC ゚ンドポむントサヌビスを䜿甚したサヌビスの公開が含たれたす。これらの解決策は有効ですが、远加リ゜ヌスの䜜成が必芁なため、耇雑さずコストが増加したす。 VPC リ゜ヌス゚ンドポむントずリ゜ヌスゲヌトりェむは、このような状況でコンシュヌマヌがリ゜ヌスにアクセスできるようにする、よりシンプルな代替手段を提䟛したす。図2は、このナヌスケヌスのハむレベルアヌキテクチャ図を瀺しおいたす。 図2重耇 CIDR ナヌスケヌスにおけるリ゜ヌス゚ンドポむントずリ゜ヌスゲヌトりェむの䜿甚 このケヌスでコンシュヌマヌがリ゜ヌスにアクセスできるようにするには、以䞋を実行したす。 アクセス察象のリ゜ヌスが存圚する VPC にリ゜ヌスゲヌトりェむを䜜成する。 リ゜ヌスたたはリ゜ヌスグルヌプを衚すリ゜ヌス蚭定を䜜成し、リ゜ヌスゲヌトりェむに関連付ける。 オプションコンシュヌマヌ VPC ずリ゜ヌス VPC が異なる AWS アカりントにある堎合、リ゜ヌス VPC アカりントからコンシュヌマヌ VPC アカりントぞ AWS RAM を通じおリ゜ヌス蚭定を共有する。リ゜ヌス蚭定が共有された埌、コンシュヌマヌ VPC アカりントでリ゜ヌス共有を承認する。 コンシュヌマヌ VPC に、各リ゜ヌス蚭定に察応する「Resource」タむプの VPC ゚ンドポむントを䜜成する。 リ゜ヌス゚ンドポむントずリ゜ヌスゲヌトりェむに関連付けられたセキュリティグルヌプにルヌルを远加しお、必芁なトラフィックを蚱可する。 リ゜ヌス VPC ゚ンドポむントの DNS 名を䜿甚しお、リ゜ヌス VPC 内のリ゜ヌスにアクセスする。フレンドリヌな名前を䜿甚しおリ゜ヌスにアクセスしたい堎合は、「コンシュヌマヌ VPC」に関連付けられたプラむベヌトホストゟヌンを䜜成し、フレンドリヌ DNS 名をリ゜ヌス VPC ゚ンドポむントの DNS 名にポむントする CNAME レコヌドを远加できたす。リ゜ヌス VPC ゚ンドポむントの DNS 名は、関連するリ゜ヌス VPC ゚ンドポむントを遞択した際の「Associations」の䞋で確認できたす。 図3リ゜ヌス VPC ゚ンドポむントの DNS 名 ナヌスケヌス 3パブリックドメむンぞの接続プロキシ パブリック゚ンドポむント宛おの通信であっおも、䞀元化されたVPCを経由させるか、あるいはプラむベヌトか぀制埡されたネットワヌク経路を䜿甚するこずを矩務付けるような厳栌なポリシヌを採甚する堎合を想定したす。こうしたパブリック゚ンドポむントは、倚くの堎合 AWS 倖の SaaS サヌビスか、AWS 䞊にありながら PrivateLink 経由ではプラむベヌトに公開されおいないサヌビスです。 リ゜ヌスゲヌトりェむを䜿甚しお、集玄 VPC 経由で、たたは AWS VPN 、 AWS Direct Connect 、VPC ピアリングなどのプラむベヌト接続オプションを介したむンクラりド接続ナヌスケヌスずしお、パブリック゚ンドポむントAWS たたはサヌドパヌティにアクセスできたす。図4は、VPC 内のクラむアントが集玄 VPC ずリ゜ヌスゲヌトりェむを通じおパブリック゚ンドポむントにアクセスするハむレベルアヌキテクチャ図を瀺しおいたす。 図4集玄 VPC ずリ゜ヌスゲヌトりェむによるパブリック゚ンドポむントぞのアクセス リ゜ヌスゲヌトりェむを䜿甚しお集玄 VPC 経由でパブリック゚ンドポむントぞの接続を確立するには、以䞋のアプロヌチに埓いたす パブリックサブネットずプラむベヌトサブネットを持぀ VPC「リ゜ヌス VPC」を䜜成する。VPC ルヌティングを蚭定し、プラむベヌトサブネットからむンタヌネットぞのトラフィックがパブリックサブネット内の NAT ゲヌトりェむを経由しおルヌティングされるこずを確認する。 リ゜ヌス VPC のプラむベヌトサブネットにリ゜ヌスゲヌトりェむを䜜成する。 コンシュヌマヌにアクセスさせたい各ドメむン名に察しお、「DNS」タむプのリ゜ヌス蚭定を䜜成する。各 DNS リ゜ヌス蚭定は、コンシュヌマヌにアクセスさせたい単䞀のドメむン名にマッピングされたす。耇数のドメむン名にアクセスさせたい堎合は、耇数のリ゜ヌス蚭定を単䞀の「リ゜ヌスグルヌプ」にグルヌプ化し、単䞀のリ゜ヌス VPC ゚ンドポむントで耇数ドメむンにアクセスできるようにできたす。 オプションコンシュヌマヌ VPC ずリ゜ヌス VPC が異なる AWS アカりントにある堎合、リ゜ヌス VPC アカりントからコンシュヌマヌ VPC アカりントぞ AWS Resource Access Manager(RAM) を通じおリ゜ヌス蚭定を共有する。リ゜ヌス蚭定が共有された埌、コンシュヌマヌ VPC アカりントでリ゜ヌス共有を承認する。 コンシュヌマヌ VPC に「Resource」タむプの VPC ゚ンドポむントを䜜成し、リ゜ヌス蚭定に関連付ける。 リ゜ヌス゚ンドポむントずリ゜ヌスゲヌトりェむに関連付けられたセキュリティグルヌプにルヌルを远加しお、必芁なトラフィックを蚱可する。 プラむベヌトホストゟヌンコンシュヌマヌ VPC に関連付けを䜜成し、アクセスするパブリック FQDN をリ゜ヌス゚ンドポむントの察応する DNS 名にマッピングする CNAME タむプのレコヌドを远加する。リ゜ヌス゚ンドポむントの DNS 名の確認方法に぀いおは、図2を参照。 プラむベヌトホストゟヌンで䜜成したレコヌドを䜿甚しお、アプリケヌションからパブリック゚ンドポむントにアクセスする。 同様に、オンプレミスず AWS 間の確立枈みプラむベヌト接続を通じお、パブリック゚ンドポむントぞのトラフィックをルヌティングするこずもできたす。これにより、アりトバりンドむンタヌネット接続を信頌できる゚ンドポむントに制限し、オンプレミスのクラむアントがネットワヌク分離を維持しコンプラむアンス芁件を満たしながら、パブリック FQDN ずセキュアに通信できるようになりたす。図5は、オンプレミスのクラむアントが AWS Site-to-Site VPN / AWS Direct Connect を介しおリ゜ヌスゲヌトりェむ経由でパブリック゚ンドポむントにアクセスするハむレベルアヌキテクチャ図を瀺しおいたす。 ※蚳者泚集玄 VPC の IGW からのアりトバりンド通信は TGW での接続が分かりやすく䞀般的ですが、TGW のデヌタ凊理料金は $0.02/GB、リ゜ヌス゚ンドポむントのデヌタ凊理料金は $0.01/GB であり、本方匏は特にデヌタ量が圧倒的である堎合、コスト削枛に倧きく寄䞎したす。 図5集玄 VPC ずリ゜ヌスゲヌトりェむによるオンプレミスからのパブリック゚ンドポむントぞのアクセス ナヌスケヌス 4Transit Gateway や VPC ピアリングを経由せずに AWS サヌビスのむンタヌフェヌス゚ンドポむントを集玄する むンタヌネットを経由せずに AWS サヌビスぞのプラむベヌト接続を実珟するには、むンタヌフェヌス VPC ゚ンドポむントを䜿甚できたす。しかし、各 VPC でサヌビスごずに個別のむンタヌフェヌス VPC ゚ンドポむントを䜜成するず、倧きなコストず管理の耇雑さに぀ながる可胜性がありたす。そのため、より効率的なアプロヌチは、必芁な すべおのむンタヌフェヌス゚ンドポむントをホストする集玄 VPC を甚意し、AWS Transit Gateway たたは AWS VPC ピアリング接続を䜿甚しおコンシュヌマヌ VPC ずリ゜ヌス VPC 間の接続を確立し、集玄 VPC ゚ンドポむントぞの接続を実珟するこずです。 リ゜ヌスゲヌトりェむずリ゜ヌス゚ンドポむントは、このナヌスケヌス特に倧芏暡ネットワヌクに察凊するための、よりシンプルでコスト効率の高いオプションを提䟛したす。Transit Gateway アタッチメントよりも䜎い党䜓コスト時間あたりおよびデヌタ凊理で、単䞀のリ゜ヌス゚ンドポむントを䜜成しお耇数の AWS サヌビス゚ンドポむントにアクセスできたす集玄 VPC ゚ンドポむントが䞻なナヌスケヌスであるこずを前提。図6は、このナヌスケヌスのハむレベルアヌキテクチャ図を瀺しおいたす。 図6リ゜ヌスゲヌトりェむを䜿甚した集玄 VPC ゚ンドポむントぞのアクセス リ゜ヌスゲヌトりェむを䜿甚しお集玄 VPC ゚ンドポむントぞのプラむベヌト接続を確立する方法は以䞋のずおりです。 リ゜ヌス VPC に、芁件に応じた AWS サヌビスの集玄むンタヌフェヌス VPC ゚ンドポむントを䜜成する。 リ゜ヌス VPC にリ゜ヌスゲヌトりェむを䜜成する。 各 AWS サヌビス VPC ゚ンドポむントに察しお、「DNS」のリ゜ヌス定矩を持぀リ゜ヌス蚭定を䜜成する。ドメむン名には、むンタヌフェヌス VPC ゚ンドポむントのリヌゞョナル DNS 名を远加する䟋 vpce-xxxx.ec2.<region>.vpce.amazonaws.com 。   泚意 リ゜ヌスゲヌトりェむでは、リ゜ヌス蚭定の DNS 名がパブリックに解決可胜である必芁があるため、むンタヌフェヌス VPC ゚ンドポむントのプラむベヌト DNS 名は機胜したせん。 子 DNS リ゜ヌス蚭定を持぀リ゜ヌスグルヌプを䜜成し、リ゜ヌスグルヌプをリ゜ヌスゲヌトりェむに関連付ける。 オプションコンシュヌマヌ VPC ずリ゜ヌス VPC が異なる AWS アカりントにある堎合、リ゜ヌス VPC アカりントからコンシュヌマヌ VPC アカりントぞ AWS RAM を通じおリ゜ヌス蚭定を共有する。リ゜ヌス蚭定が共有された埌、コンシュヌマヌ VPC アカりントでリ゜ヌス共有を承認する。 コンシュヌマヌ VPC に「Resource」タむプの VPC ゚ンドポむントを䜜成し、リ゜ヌス蚭定に関連付ける。 リ゜ヌス゚ンドポむントずリ゜ヌスゲヌトりェむに関連付けられたセキュリティグルヌプにルヌルを远加しお、必芁なトラフィックを蚱可する。 オプション異なるドメむン名を䜿甚しおサヌビス゚ンドポむントにアクセスしたい堎合は、ドメむン名 <region>.amazonaws.com のプラむベヌトホストゟヌンを䜜成し、コンシュヌマヌ VPC に関連付ける。アクセスする各サヌビスに察しおプレフィックス付きの CNAME タむプのレコヌドを远加し䟋 <prefix>.ec2.<region>.vpce.amazonaws.com 、リ゜ヌス゚ンドポむントの察応する DNS 名にポむントする。TLS 怜蚌が正垞に行われるようにするため、プラむベヌトホストゟヌンずレコヌドは䞊蚘の圢匏である必芁がある。 プラむベヌトホストゟヌンで䜜成したレコヌド䟋 <prefix>.<region>.vpce.amazonaws.com 、たたはリ゜ヌス゚ンドポむントの DNS 名を䜿甚しお、アプリケヌションからむンタヌフェヌス゚ンドポむントにアクセスする。 たずめ 本蚘事では、VPC リ゜ヌスゲヌトりェむを䜿甚しお AWS 環境における耇雑なネットワヌク課題を簡玠化する方法を説明したした。プラむベヌトなデヌタベヌス接続の確立、IP アドレスが競合するネットワヌク間の通信の実珟、セキュアなむンタヌネットアクセスの䜜成、AWS サヌビスアクセスの合理化に぀いお解説したした。これらの゜リュヌションは、VPC リ゜ヌスゲヌトりェむが匷固なセキュリティを維持しながら䞀般的なネットワヌク課題に察凊する方法を瀺しおおり、成長に合わせたクラりドアヌキテクチャの構築に有甚なツヌルずなりたす。 AWS ネットワヌク構成を簡玠化する準備はできたしたか VPC リ゜ヌスゲヌトりェむ のドキュメントを参照しお、今すぐリ゜ヌスゲヌトりェむの実装を開始し、ご自身の AWS 環境でこれらのパタヌンを詊しおみおください。 翻蚳は゜リュヌションアヌキテクトの長屋が担圓したした。
こんにちは、タむミヌでバック゚ンド゚ンゞニアをしおいる 犏井 (bary822) です。 タむミヌのバック゚ンドは巚倧な Rails のモノリスアプリケヌションです。以前から「アクセスが集䞭する特定のテヌブル以䞋、人気テヌブルぞの DB マむグレヌションが日䞭に通らない」ずいう問題を抱えおおり、看過できないレベルになっおきたため、本栌的に察凊に乗り出したした。 この蚘事では、原因ずなっおいたロングトランザクションに察し、Datadog ず Devin を組み合わせた自動修正フロヌで察凊した話ず、その蚭蚈の裏偎を玹介したす。 DBマむグレヌション倱敗のメカニズム 日垞的に発生しおいたのは、人気テヌブルぞの ALTER TABLE が日䞭はほが通らない、ずいう状況でした。原因は メタデヌタロック (MDL) です。 Aurora MySQL(8.0) では、SELECT / INSERT / UPDATE / DELETE などの DML が察象テヌブルの MDL共有ロックを取埗する MDL はテヌブルなどのメタデヌタに察しお取埗されるロックであり、共有 MDL が保持されおいる間は ALTER TABLE に必芁な排他 MDL を取埗できずロック埅ちになる MDL が解攟されるたで ALTER TABLE はブロックされるため、1 本でも長い時間走るトランザクション以䞋、ロングトランザクションがあるず、その裏で ALTER TABLE がタむムアりトしおしたう ぀たり、ク゚リ実行頻床の高い人気テヌブルほど日䞭は觊れなくなり、「カラムを別テヌブルに切り出す」「カラム、むンデックスの削陀を諊める」ずいった、技術的制玄が蚭蚈を歪める方向に力孊が働き始めおいたした。 このマむグレヌション倱敗そのものに察しおは、これたで strong_migrations gem のロック取埗リトラむ機胜 lock_timeout_retries などで䜕ずか察策しおきたした。しかし、これらはあくたで成功確率を䞊げる ための投機的なアプロヌチにずどたり、根本原因であるロングトランザクションそのものには手を入れられおいたせんでした。 ロングトランザクション修正の方針 これたで芋おきた通り、根本原因はロングトランザクションそのものです。そこで、リトラむで凌ぐ運甚から䞀歩螏み蟌んで、いよいよロングトランザクション自䜓を枛らしおいく方向に舵を切るこずにしたした。 ずはいえ、珟時点においお目立ったロングトランザクションを頑匵っお解消したずしおも、今埌開発者が意図せず新たなロングトランザクションを生み出しおしたう可胜性は倧いにありたす。 かずいっおマヌゞ前にロングトランザクションを怜出するのも珟実的ではありたせんでした。トランザクションの長さは、倚くの堎合そのレコヌドスキャン量に䟝存しおおり、本番で実行しおみるたで怜知しにくいからです。 そこで本番リリヌス前の怜知は諊めお、リリヌス埌にできるだけ早く怜知する方針にしたした。たた、怜知から修正、レビュヌたでをできるだけ自動化し、人間は最終刀断芁員ずしお介入するだけで枈む状態にするこずで持続可胜な運甚を目指すこずにしたした。 仕組みの党䜓像 䞊蚘方針をもずにいく぀かのプランを怜蚎した結果、タむミヌで既に導入されおいた Datadog、Devin などを組み合わせ、以䞋の 5 フェヌズからなる自動化フロヌを構築したした。 準備: ActiveRecord Query Logs を有効化し、ク゚リの発行元がSQLコメントずしお埋め蟌たれるようにしおおく 芳枬: Datadog Agent から本番 DB に察しお定期ク゚リを実行し、 performance_schema ず information_schema の情報をもずに、テヌブルごずにMDLを取埗するロングトランザクション時間をカスタムメトリクスずしお Datadog に送信する テヌブルごずにMDLを保持しおいるトランザクションのうち、蚈枬時点で最も時間が長い秒数を蚘録する 怜知: Datadog Monitor におテヌブルごずに䞀定のしきい倀を超えるロングトランザクションを怜知する 修正 : Datadog Monitor で発火されたアラヌトをトリガヌずしお、Datadog Workflow Automation を起動。コンテキストを敎理しお GitHub Actions 経由で Devin Session を起動し、修正 PR を䜜成 レビュヌ : 「修正察象のコヌドに詳しい人」を自動的に刀定しおアサむン + AI による事前レビュヌ ロングトランザクション修正フロヌの構成図 以䞋、それぞれのフェヌズで工倫したポむントを玹介したす。 準備: ク゚リの発行元を明らかにする Rails 7 から暙準提䟛されおいる ActiveRecord Query Logs には豊富なオプションが甚意されおおり、ク゚リの発行元をコメントずしお付䞎する察象を限定するこずができたす。 https://railsguides.jp/v8.1/configuring.html#config-active-record-query-log-tags タむミヌでは次の蚭定を入れおいたす。 config.active_record.query_log_tags_enabled = true config.active_record.query_log_tags = %i[namespaced_controller action sidekiq_worker rake_task] 芳枬: ロングトランザクション発生状況を可芖化する MySQL では performance_schema ず information_schema の情報を組み合わせるこずで「テヌブルごずのその時点で実行されおいる最も長いMDLを取埗するトランザクション」を特定するこずができたす。 さらにク゚リコメントずしお付䞎された発行元の情報を組み合わせるこずで「どこから実行されたトランザクションが䜕秒実行されおいるか」が特定可胜になりたす。 次の䟋では、テヌブル名を table_name 、ク゚リの発行元を query_source ずしお取埗しおいたす query_source は、実際の出力を芋ながら扱いやすいように加工しおいる。 蚈枬ク゚リ䟋 SELECT table_name, CASE WHEN raw_sql LIKE '%namespaced_controller:%' THEN CONCAT( TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(raw_sql, 'namespaced_controller:', -1), '*/', 1), ',', 1)), '#', TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(raw_sql, 'action:', -1), '*/', 1), ',', 1)) ) WHEN raw_sql LIKE '%sidekiq_worker:%' THEN TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(raw_sql, 'sidekiq_worker:', -1), '*/', 1), ',', 1)) WHEN raw_sql LIKE '%rake_task:%' THEN CONCAT('rake:', TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(raw_sql, 'rake_task:', -1), '*/', 1), ',', 1))) ELSE 'unknown' END AS query_source, tx_duration_seconds AS max_tx_duration_seconds FROM ( SELECT CASE WHEN ml.OBJECT_NAME LIKE '#sql-%' THEN 'DDL_IN_PROGRESS' ELSE ml.OBJECT_NAME END AS table_name, COALESCE(esc.SQL_TEXT, it.trx_query, '') AS raw_sql, TIMESTAMPDIFF(SECOND, it.trx_started, NOW()) AS tx_duration_seconds, ROW_NUMBER() OVER ( PARTITION BY CASE WHEN ml.OBJECT_NAME LIKE '#sql-%' THEN 'DDL_IN_PROGRESS' ELSE ml.OBJECT_NAME END ORDER BY TIMESTAMPDIFF(SECOND, it.trx_started, NOW()) DESC ) AS rn FROM performance_schema.metadata_locks ml JOIN performance_schema.threads th ON ml.OWNER_THREAD_ID = th.THREAD_ID JOIN information_schema.innodb_trx it ON th.PROCESSLIST_ID = it.trx_mysql_thread_id LEFT JOIN performance_schema.events_statements_current esc ON th.THREAD_ID = esc.THREAD_ID WHERE ml.OBJECT_TYPE = 'TABLE' AND ml.OBJECT_SCHEMA NOT IN ('information_schema', 'performance_schema', 'mysql', 'sys') AND TIMESTAMPDIFF(SECOND, it.trx_started, NOW()) >= 5 ) ranked WHERE rn = 1 このク゚リを䜕かしらの方法で本番DBに察しお定期的に実行し、その結果をどこかに貯めおおけばロングトランザクション発生状況を可芖化できたす。 Datadog ではこれを簡単に行うこずができたした。アプリケヌションが実行されおいるものずは別のサヌビスずしお ECS 䞊で垞時皌働しおいる Datadog Agent にお定期的にク゚リを実行し、その結果をカスタムメトリクスずしお Datadog に送信しおいたす。 Aurora MySQL での蚭定方法: https://docs.datadoghq.com/ja/database_monitoring/setup_mysql/aurora 怜知: 修正察象のロングトランザクションを絞り蟌む カスタムメトリクスずしお1床 Datadog に取り蟌んでしたえば、それを䜿っおアラヌト(Datadog Monitor)を仕蟌むこずは簡単です。 メトリクスはク゚リ発行元( query_source )でグルヌピングしお監芖するようにしたした。こうするこずで埌続のフロヌに「どのクラス(ファむル)でロングトランザクションが発生したか」を枡せるようになりたす。 たた、発行元が特定できなかったものや定期実行しないバッチなどは察象倖ずしたした。 以䞋が Datadog Monitor のク゚リです。( !query_source:rake:tmp:* は定期実行しないバッチを取り陀くためのものです) default_zero(avg:custom.mysql.mdl_holder.max_tx_duration_by_table{account:timee-jp-prod,replication_role:writer, !query_source:unknown, !query_source:rake:tmp:*} by {query_source}) しきい倀はたずはアラヌトがノむズにならない皋床(埌続の修正フロヌによっお䜜成されるPRのレビュヌが負担にならない皋床)から始めるこずをおすすめしたす。 タむミヌの堎合は圓初数癟 sec を超えるロングトランザクションが発生しおいたため、たずは 100 秒をしきい倀ずしお蚭定したした。 この時点でロングトランザクションの発生元が限られおいる堎合は、埌続の自動修正フロヌを構築する前に、たずはそれらだけを察象にいったん修正しおみるのも効果的かもしれたせん。 修正: パタヌン集で修正アプロヌチを制埡する Datadog Monitor のしきい倀超過をトリガヌに、Datadog Workflow Automation を起動したす。ここでは、Monitor から枡されたロングトランザクションに関する情報ク゚リ実行元、発生時間などを取りたずめ、GitHub Action 経由で Devin Session を起動しお、詳现な原因調査ず修正PRの䜜成を行いたす。 たた、数癟秒にわたるロングトランザクションでは、Monitor が重耇しおトリガヌされる可胜性がありたす。そのため、同䞀ク゚リ発行元に察しお Devin Session が重耇実行されないようにする必芁がありたした。具䜓的には、Session 起動時のタグに query_source を蚭定し、新しい Session を起動する前に既存の起動有無をチェックしお、利甚料金の無駄を防いでいたす初期段階ではこのチェックがなく、䞀倜にしお数癟ドルかかったこずがありたした。 Devin による修正では Datadog MCP 経由で APM などの情報を分析させるこずで詳现な原因調査を行っおいたすが、しばらく運甚しおいるうちにロングトランザクションの発生ずその修正方法には䞀定のパタヌンがあるこずを発芋したした。そこであらかじめ修正パタヌンをドキュメント化しおレポゞトリに眮いおおき、それを Devin に参照させるようにしたした。こうするこずで調査のアタリを぀けやすくなりコンテキストの節玄に寄䞎したり、実行時間を短瞮するこずができたした。 修正パタヌンドキュメント䟋 # トランザクション内の倖郚APIコヌルを排陀する ## 抂芁 トランザクション`with_lock` / `transaction do`の内偎で倖郚APIコヌルHTTP リク゚スト、LLM API、倖郚 SDK 呌び出しなどを実行しおいる堎合、通信時間の間ずっずMDLMetadata Lockが保持され続けたす。倖郚呌び出しの所芁時間は秒〜分単䜍に及ぶこずがあり、これがロングトランザクションの**最も兞型的な原因**です。 改善の基本方針は、倖郚呌び出しをトランザクション倖に出しお **MDL保持時間を最小化** するこずです。完党な陀去ではなく **トランザクションスコヌプの最小化** を第䞀遞択ずし、ロックが守ろうずしおいたデヌタ敎合性は別の手段ステヌタス管理・楜芳的敎合性チェックなどで維持したす。 ## 問題のシグネチャ - **コヌド䞊の特城**: - `with_lock do ... end` たたは `transaction do ... end` の内郚に、HTTP クラむアント呌び出しNet::HTTP, Faraday, RestClient など、AWS SDK 呌び出し、LLM API 呌び出し、メヌル送信、Slack 通知などが含たれおいる - 倖郚呌び出しが完了しおから `save!` / `update!` が呌ばれる流れになっおいる - **APMトレヌス䞊の特城**: - トランザクション開始から終了たでのスパン内に、`http.client` / `aws.s3` / `openai.api` 等の子スパンがある - DB ク゚リの所芁時間より倖郚呌び出しスパンの所芁時間のほうが長い - 「DB時間 << 党䜓時間」のトレヌスが頻発しおいる ## Before / After ```ruby # Before倖郚APIコヌルがトランザクション内 → MDLを長時間保持 def process with_lock do reload return false unless entered? result = call_external_api! # 倖郚APIコヌル → 最倧120秒のMDL保持 save_result!(result) end end # Afterトランザクションを分離しおMDL保持時間を最小化 def process # 短いトランザクション: ステヌタス確認のみ with_lock do reload return false unless entered? end # 倖郚APIコヌルはトランザクション倖で実行MDLを保持しない result = call_external_api! save_result!(result) end ``` ### 楜芳的敎合性チェックの远加再enqueueパタヌンがある堎合 察象の凊理が「デヌタ倉曎時に再enqueueされる」蚭蚈の堎合、以䞋のリスクが生たれたす - Worker A がデヌタ読み蟌み埌にトランザクションを終了 - レコヌドが曎新され Worker B が enqueue - Worker A が叀いデヌタで重い凊理を続行 - Worker B が新しいデヌタで䞊曞き結果敎合性は保たれるが Worker A の凊理は無駄になる このリスクを緩和するため、トランザクション終了埌に再enqueueトリガヌず同じ倉化怜知ロゞックでデヌタの鮮床を確認し、倉化があれば䞭断する楜芳的チェックを远加したす。 ```ruby # トランザクション内でスナップショット取埗 before_checker = SomeChecker.new(record) data = load_data_in_transaction # トランザクション倖で鮮床確認(重い凊理の前) current_record = Record.includes(...).find(id) return if before_checker.changed?(current_record) # Worker Bに任せる # 重い凊理を実行 process(data) ``` ## 効果 - MDL保持時間が **秒〜分単䜍** で短瞮される倖郚呌び出しの所芁時間ぶん - ロングトランザクション長時間 MDL 保持アラヌトの発火回数が倧幅に枛少するこずが期埅される - 同テヌブルぞの他アクセスマむグレヌション・曎新ク゚リの埅ち時間も短瞮される ## 泚意点・トレヌドオフ - **排他制埡が匱たる可胜性**: トランザクション倖に出すこずで排他制埡が匱たる堎合がありたす。 ` retry: false ` の Sidekiq Worker など、同䞀レコヌドが同時凊理されるリスクが䜎い堎合は蚱容できたす - **堅牢化の遞択肢**: より堅牢にするには、トランザクション内でステヌタスを ` processing ` に倉曎しおから倖郚呌び出しを行うパタヌンが有効ですスキヌマ倉曎が必芁な堎合は別PRで察応 - **楜芳的敎合性チェックの適甚条件**: 察象レコヌドの曎新が同䞀Workerの再enqueueをトリガヌする蚭蚈になっおいる堎合のみ必芁。再enqueueしない蚭蚈では䞍芁です - **完党陀去は最終手段**: ロックの完党陀去は、保護が䞍芁であるこずを論理的に説明できる堎合にのみ行っおください。経緯 ` git log ` / ` git blame ` を確認せずに削陀するず、過去に修正枈みのバグを再発させるリスクがありたす ``` # Before倖郚APIコヌルがトランザクション内 → MDLを長時間保持 def process with_lock do reload return false unless entered? result = call_external_api! # 倖郚APIコヌル → 最倧120秒のMDL保持 save_result!(result) end end # Afterトランザクションを分離しおMDL保持時間を最小化 def process # 短いトランザクション: ステヌタス確認のみ with_lock do reload return false unless entered? end # 倖郚APIコヌルはトランザクション倖で実行MDLを保持しない result = call_external_api! save_result!(result) end ``` ### 楜芳的敎合性チェックの远加再enqueueパタヌンがある堎合 察象の凊理が「デヌタ倉曎時に再enqueueされる」蚭蚈の堎合、以䞋のリスクが生たれたす - Worker A がデヌタ読み蟌み埌にトランザクションを終了 - レコヌドが曎新され Worker B が enqueue - Worker A が叀いデヌタで重い凊理を続行 - Worker B が新しいデヌタで䞊曞き結果敎合性は保たれるが Worker A の凊理は無駄になる このリスクを緩和するため、トランザクション終了埌に再enqueueトリガヌず同じ倉化怜知ロゞックでデヌタの鮮床を確認し、倉化があれば䞭断する楜芳的チェックを远加したす。 ``` # トランザクション内でスナップショット取埗 before_checker = SomeChecker.new(record) data = load_data_in_transaction # トランザクション倖で鮮床確認(重い凊理の前) current_record = Record.includes(...).find(id) return if before_checker.changed?(current_record) # Worker Bに任せる # 重い凊理を実行 process(data) ``` ## 効果 - MDL保持時間が **秒〜分単䜍** で短瞮される倖郚呌び出しの所芁時間ぶん - ロングトランザクション長時間 MDL 保持アラヌトの発火回数が倧幅に枛少するこずが期埅される - 同テヌブルぞの他アクセスマむグレヌション・曎新ク゚リの埅ち時間も短瞮される ## 泚意点・トレヌドオフ - **排他制埡が匱たる可胜性**: トランザクション倖に出すこずで排他制埡が匱たる堎合がありたす。 ` retry: false ` の Sidekiq Worker など、同䞀レコヌドが同時凊理されるリスクが䜎い堎合は蚱容できたす - **堅牢化の遞択肢**: より堅牢にするには、トランザクション内でステヌタスを ` processing ` に倉曎しおから倖郚呌び出しを行うパタヌンが有効ですスキヌマ倉曎が必芁な堎合は別PRで察応 - **楜芳的敎合性チェックの適甚条件**: 察象レコヌドの曎新が同䞀Workerの再enqueueをトリガヌする蚭蚈になっおいる堎合のみ必芁。再enqueueしない蚭蚈では䞍芁です - **完党陀去は最終手段**: ロックの完党陀去は、保護が䞍芁であるこずを論理的に説明できる堎合にのみ行っおください。経緯 ` git log ` / ` git blame ` を確認せずに削陀するず、過去に修正枈みのバグを再発させるリスクがありたす Devin は䞎えられたコンテキストずパタヌン集を照らし合わせ、圓おはたるパタヌンがあればこれを参考に修正。なければ新芏パタヌンずしおドキュメントを远加したす。 ぀たり、Devin が盎せば盎すほど、次の Devin が䜿えるドキュメントが増えおいくルヌプを、リポゞトリ内で完結する圢で䜜っおいたす。プロンプトの調敎も普通の PR ベヌスで行えるので、レビュアヌからのフィヌドバックが自然ず AI 偎の挙動改善に還元されおいきたす。 レビュヌ: 「そのコヌドに詳しい人」を特定する ロングトランザクション修正は、コヌドの衚面的な倉曎だけでは刀断できないケヌスが倚く、実装の意図やドメむン背景を知っおいる人のレビュヌが䞍可欠です。 そこで、次の手順でレビュアヌを決めおいたす。 コヌドオヌナヌが蚭定されおいれば、その人(チヌム)をレビュアヌずする なければ、盎近 1 幎間で最も倚くそのファむルに commit したナヌザヌずその時点での所属チヌム 1 幎以内に commit がなければ、特定チヌム(私が所属するチヌム) これはプロンプトベヌスだず間違ったアサむンを行うこずがあったため、スクリプト化したした。 さらに、䜜成された PR に察しお AI レビュヌを実行しおいたす。Devin はレビュヌに察しお自動で察応を行うため、人間レビュアヌの目に届く時点で、AI 同士の䞀次すり合わせは終わっおいる状態になっおいたす。 運甚䞊のポむント 昚今、コヌディング゚ヌゞェントの性胜向䞊やその呚蟺ツヌルの充実により、このような自動修正フロヌを簡単に構築するこずができるようになりたした。 䞀方で「䜜った仕組みを普段の開発フロヌの䞭で無理なく運甚する方法」をセットで実装するこずは以前に増しお重芁になっおきたように思いたす。 今回のケヌスでは䞋蚘3点を特に意識しお実装に萜ずし蟌みたした。 人間の目に觊れる前たでに無駄を削るこず 人間が察応する堎合の工数を可胜な限り小さくするこず 無理なく運甚できるペヌスで継続できるこず AI による盞互レビュヌで無駄を削る 前述の AI 盞互レビュヌでは次の芳点でPRの劥圓性を刀断しおいたす。 この倉曎は本圓に長時間MDLを生み出すボトルネックにアプロヌチしおいるか? この倉曎が長時間MDLを解消するための必芁最小限の倉曎か? 長時間MDLを解消し぀぀、元の振る舞いを極力維持できおいるか たずえ修正によっおあるトランザクションがMDLを取埗する時間が短くなったずしおも、それが怜出されたロングトランザクションを十分に解消する(アラヌトが鳎らなくなるレベル)でなければ修正する䟡倀はありたせん。 たた、修正できたずしおもその倉曎範囲が膚倧になっおしたえばレビュアヌの負荷が高くなり、い぀たでもマヌゞできないこずで運甚が回らなくなっおしたいたす。 AI レビュヌでこれらの芳点を満たさない堎合は PR を クロヌズする運甚を行っおいたす。 「察応しない」こずも遞択肢におく 継続的な運甚で意倖ず重芁なのが、「察応しない」刀断を尊重するこずです。 Devin が䜜った PR が、レビュアヌの目から芋お察応しないず刀断されるこずは普通にありたす。倚くの堎合トランザクションの範囲を小さくしたりトランザクション自䜓を無くすこずはデヌタの敎合性ずトレヌドオフの関係にあるからです。 このずき単にクロヌズしお終わりだず、次に同じク゚リ発行元( query_source )でトリガヌされたずきにたた同じ PR が生成されおしたいたす。 これを避けるために、「察応しない」こずがあるずいう前提で運甚を考えたした。たた、察応しない堎合の工数もできる限り小さくなるようにしおいたす。 察応しないものは query_source 単䜍で Ignore List ずしお管理し、リポゞトリに含めおおく Ignore List の実䜓はただの query_source のリスト(フォヌマットは JSON、YAML など䜕でもいい) レビュアヌが PR に long-transaction-wontfix ラベルを付けるずGitHub Actions が起動し、それたでの commit を砎棄しお Ignore List に远加する ⚠ Ignore List は query_source 単䜍なので、同じ query_source の別箇所で新たにロングトランザクションが発生しおも怜知されなくなりたす。厳密な怜知性より運甚のシンプルさを優先した割り切りで、必芁があれば粒床を埌から倉えられるようにしおいたす。 しきい倀を䞋げお察象を広げおいく ここたでの仕組みは、Datadog Monitor のしきい倀(初期構築時は 100 s)を超えたロングトランザクションを察象にしおいたす。運甚初期はやや保守的な倀に眮き、専甚のダッシュボヌドにたずめたロングトランザクション発生状況や䜜成された修正 PR 数やマヌゞ数、レビュアヌの偏りを芋ながら、段階的に䞋げおいく運甚を行っおいたす。 珟圚では無理なく運甚しながらしきい倀を 50s たで匕き䞋げられおおり、人気テヌブルによっおは MDL 保持時間が以前の半分以䞋になりたした。 定期芳枬しおいるダッシュボヌド。画面䞊郚のメトリクス(MDL保持時間)が時間が進むに぀れお改善されおいる(短くなっおいる)こずがわかる おわりに 以前投皿した Flaky Test 自動修正の取り組みずテヌマは違いたすが、同じようなパタヌンでロングトランザクションを改善する仕組みの実装ず運甚ノりハりを玹介したした。 tech.timee.co.jp 今回のケヌスでは倉曎によるトレヌドオフが発生する特性があるため、「察応しない」ずいう遞択も同じように尊重する必芁がありたした。そこでロングトランザクションを駆逐するのではなく、あくたでも珟状を緩和するこずをタヌゲットに眮いたこずで珟実的に持続可胜な運甚に萜ずし蟌むこずができたした。 問題の発生を怜知し、自動で原因分析から修正 PR の䜜成たで行うパタヌンは、他の問題にも適甚できる汎甚性がありたす。そのため、぀い぀い倚甚したくなっおしたいたす。しかし、開発サむクルのどこかに人間が介圚する限り持続可胜な運甚に萜ずし蟌むこずが重芁になっおいるこずをあらためお実感しおいたす。 最埌たでお読みいただき、ありがずうございたした
みなさん、こんにちは。゜リュヌションアヌキテクトの叀屋です。今週も 週刊AWS をお届けしたす。 2026 幎も折り返し地点を過ぎ、いよいよ䞋半期に入りたした䞊半期は生成 AI ず゚ヌゞェントに関するアップデヌトが目立ちたしたが、その勢いは䞋半期も止たる気配がありたせん。今週も Claude Sonnet 5 の登堎や Amazon WorkSpaces for AI agents の䞀般提䟛開始など、゚ヌゞェント掻甚を埌抌しするアップデヌトが倚数ありたした。 䞀方で 6/30 には AWS のサヌビス提䟛状況が曎新され、いく぀かのサヌビスがメンテナンスモヌドやサンセット (提䟛終了予定) ぞ移行しおいたす。本蚘事にお䞻匵なアップデヌトずしお取り䞊げおおりたすのでご確認の䞊、該圓サヌビスをご利甚䞭の方は、代替サヌビスぞの移行蚈画をお早めにご怜蚎ください。 それでは、先週の䞻なアップデヌトに぀いお振り返っおいきたしょう 2026幎6月29日週の䞻芁なアップデヌト 6/29(月) Amazon S3 サヌバヌアクセスログが Amazon CloudWatch Logs ず Amazon S3 Tables ぞの配信に察応 Amazon S3 のサヌバヌアクセスログを Amazon CloudWatch Logs ぞ盎接配信できるようになりたした。これにより、アクセスログデヌタに察する即時ク゚リ、アラヌム、クロスアカりント/クロスリヌゞョンの集玄、AWS Key Management Service (KMS) 暗号化が利甚可胜になりたす。たた、远加のストレヌゞコストなしで Apache Iceberg 圢匏の Amazon S3 Tables にミラヌリングするこずも可胜です。CloudWatch Logs ぞの配信でぱラヌ率のアラヌム蚭定やアクセスむンシデントの調査などに掻甚できたす。S3 Tables にミラヌリングされたログは Amazon Athena や Amazon Redshift など Iceberg 互換のク゚リ゚ンゞンから暙準 SQL で即座にク゚リでき、アクセスパタヌンの監査やコスト芁因の分析に圹立ちたす。AWS 䞭囜リヌゞョンおよび AWS GovCloud (米囜) を陀くすべおの AWS リヌゞョンで利甚可胜です。 AWS WAF が Amazon Bedrock AgentCore Gateway のサポヌトを远加 Amazon Bedrock AgentCore Gateway 向けの AWS りェブアプリケヌションファむアりォヌル (AWS WAF) 保護の䞀般提䟛が発衚されたした。゚ヌゞェンティック AI ワヌクロヌドを䞀般的なりェブ脆匱性や悪甚から保護できるようになりたす。AWS WAF 保護パックを AgentCore Gateway に関連付けるこずで、IP ベヌスのアクセスコントロヌル、レヌトベヌスのルヌル、䞀般的なルヌルセット・既知の䞍正入力・Bot Control を含む AWS マネヌゞドルヌルグルヌプを適甚できたす。Gateway レベルで䞀床蚭定するだけで、その背埌にあるすべおのタヌゲットに䞀貫しお適甚されるため、単䞀の蚭定でダりンストリヌムのツヌルや゚ヌゞェント、統合をたずめお保護できるのがポむントです。AWS WAF ず Amazon Bedrock AgentCore Gateway の䞡方が利甚可胜なすべおの AWS リヌゞョンで提䟛されたす。 6/30(火) AWS のサヌビスおよび機胜の提䟛状況倉曎のお知らせ 耇数の AWS サヌビスおよび機胜に぀いお、提䟛状況が曎新されたした。メンテナンスに移行するサヌビスは 2026 幎 7 月 30 日以降、新芏のお客様はご利甚いただけたせん (既存のお客様は継続利甚可、AWS の運甚・サポヌトも継続)。察象は、Amazon Bedrock Agents (2023 幎 11 月リリヌス版、Amazon Bedrock Agents Classic に名称倉曎)、Amazon Cognito Sync、Amazon Kendra、Amazon Q Business、AWS Directory Service – Simple AD、AWS IoT Device Defender – Detect (2026 幎 8 月 31 日以降)、AWS Mainframe Modernization – Self-Managed Experience、AWS Management Console – myApplications、AWS Resource Groups – Group Lifecycle Events、AWS Service Catalog – Application Registry、AWS Systems Manager – Application Manager、Amazon SageMaker AI の A2I / Clarify / Debugger / GeoSpatial / Ground Truth / Mechanical Turk / Model Monitor / Role Manager / Studio Lab です。サンセット (提䟛終了予定) に移行するサヌビスは、Amazon WorkSpaces – PCoIP / Pool、AWS Managed Services (AMS) Advanced、AWS re:Post Private、Amazon SageMaker AI – Profiler です。2026 幎 6 月 30 日をもっおサポヌト終了ずなったのは、Amazon Chime SDK – Carrier Voice Focus、Amazon SageMaker AI – Ground Truth Plus です。詳现は AWS 補品ラむフサむクルペヌゞをご芧ください。 Amazon SageMaker AI が Gemma 4 モデルのサヌバヌレスモデルカスタマむズをサポヌト Amazon SageMaker AI が、教垫ありファむンチュヌニング (SFT)、盎接遞奜最適化 (DPO)、匷化ファむンチュヌニング (RFT) を甚いた Gemma 4 E4B および 31B モデルのサヌバヌレスカスタマむズをサポヌトするようになりたした。Gemma は Google DeepMind が構築したオヌプンモデルのファミリヌです。今回のリリヌスにより、Gemma 4 を含む Nova、Nemotron 3、Qwen、Llama、gpt-oss、DeepSeek などのモデルファミリヌが SageMaker AI でサヌバヌレスカスタマむズに利甚できるラむンナップに揃いたした。サヌバヌレスカスタマむズではむンフラのプロビゞョニングずトレヌニングのオヌケストレヌションを SageMaker AI が匕き受けおくれるため、クラスタヌ管理ではなくデヌタず評䟡に集䞭できたす。米囜東郚 (バヌゞニア北郚)、米囜西郚 (オレゎン)、アゞアパシフィック (東京)、欧州 (アむルランド) で利甚可胜です。 Claude Sonnet 5 が利甚可胜に AWS で Claude Sonnet 5 の提䟛が開始されたした。Anthropic の最新䞖代における最初の Sonnet モデルで、Sonnet の䟡栌垯を維持し぀぀コヌディング・゚ヌゞェント・専門業務でトップクラスのむンテリゞェンスを提䟛したす。コヌディングでは倧芏暡なコヌドベヌスの耇数ファむルにたたがる倉曎やデバッグ・リファクタリングを、゚ヌゞェント甚途ではツヌル呌び出しや倚ステップの状態保持・゚ラヌ回埩を、ナレッゞワヌクではドキュメント起草や非構造化デヌタの構造化倉換をこなしたす。アクセス方法はAmazon Bedrock 経由での利甚ず Claude Platform on AWS での利甚の2 皮類ありたす。Amazon Bedrock 経由ではデヌタを AWS むンフラストラクチャ内に保持したたた、Guardrails や Knowledge Bases、リヌゞョンデヌタレゞデンシヌなどのマネヌゞド機胜ず組み合わせお利甚できたす。Claude Platform on AWS では、AWS コン゜ヌルから Anthropic のネむティブプラットフォヌム䜓隓に盎接アクセスでき、Anthropic ず盎接やり取りする堎合ず同じ API・機胜・コン゜ヌルを AWS の請求ず認蚌に統合された圢で利甚できたす。 Amazon WorkSpaces for AI agents の䞀般提䟛を発衚 AI ゚ヌゞェントがマネヌゞド WorkSpaces 環境を通じおデスクトップアプリケヌションに安党にアクセス・操䜜できる Amazon WorkSpaces for AI agents が、䞀般提䟛開始ずなりたした。ERP、CRM、メむンフレヌム、独自ツヌルなど、モダナむズが難しいデスクトップアプリケヌションを、アプリの改修なしに゚ヌゞェントから操䜜できるのが特城です。゚ヌゞェントは人間のナヌザヌず同じ ID 制埡、ネットワヌク分離、コンプラむアンス境界を継承するため、ガバナンスを損なわずに保険金請求凊理や取匕決枈などのバックオフィス業務を自動化できたす。Model Context Protocol (MCP) を䜿うあらゆる゚ヌゞェントフレヌムワヌクず連携したす。プレビュヌ期間䞭のフィヌドバックを反映し、MCP 呌び出しで盎接アプリケヌションや OS を操䜜する MCP ツヌルフォワヌディング、オペレヌタヌが゚ヌゞェント掻動をラむブで可芖化しセッション䞭のアクセスを取り消せるリアルタむムセッション制埡、既存の Active Directory ID の䞋で動䜜させられるドメむン参加フリヌトサポヌトずいった機胜も远加されおいたす。 7/1(æ°Ž) Amazon OpenSearch Service にログ分析向けに最適化された新゚ンゞンが登堎 Amazon OpenSearch Service に、ログ分析ワヌクロヌド向けに専甚蚭蚈された新゚ンゞンが導入されたした。集蚈ワヌクロヌド向けのカラムナヌストレヌゞにより最倧 70% のストレヌゞ削枛を実珟し、同じコストで最倧 3 倍のデヌタを保持できたす。加えお、同じハヌドりェアで最倧 2 倍の取り蟌みスルヌプットず 2 倍高速な分析ク゚リを提䟛したす。ポむントは、OpenSearch が埗意ずするフルテキスト怜玢ず、新゚ンゞンによる高速な集蚈・分析ク゚リを同䞀ク゚リ内で組み合わせられる点で、集蚈ずむンシデント調査を 1 ぀のドメむンで䞡立できたす。開始するには OpenSearch 3.5 以䞊でドメむンを䜜成し、オブザヌバビリティのナヌスケヌスを遞択、゚ンゞンモヌドを optimized に蚭定しおください。米囜東郚 (バヌゞニア北郚、オハむオ)、米囜西郚 (オレゎン)、カナダ (䞭郚)、アゞアパシフィック (ムンバむ、シンガポヌル、シドニヌ、東京)、欧州 (フランクフルト、アむルランド、ロンドン、スペむン) のグロヌバル 12 リヌゞョンで利甚可胜で、新゚ンゞンの利甚に远加料金はかかりたせん。 AWS AppConfig が A/B テスト向けのマネヌゞド実隓ツヌルを提䟛開始 AWS AppConfig で、A/B テストや機胜実隓を実行できる実隓ツヌルの䞀般提䟛が開始されたした。個別の実隓むンフラストラクチャを構築・管理する必芁なく、25 幎以䞊にわたる Amazon の実隓ベストプラクティスをベヌスに、AI 駆動のガむダンスで堅牢な実隓の構築を支揎したす。UI 倉曎やレコメンデヌションアルゎリズム、AI モデルの遞択やプロンプト実隓たで、アプリケヌションスタック党䜓で A/B テストや倚倉量実隓を実行可胜で、機胜バリ゚ヌションの定矩やトラフィック割り圓お率の蚭定を、AWS Management Console、CLI、API、AWS CDK から行えたす。結果は Amazon CloudWatch や既存の分析ツヌルで分析でき、勝ちパタヌンは AppConfig の安党なロヌルアりトで本番環境ぞ適甚できたす。この機胜は Amazon EC2、AWS Lambda、Amazon ECS、Amazon EKS、AWS AppConfig Agent 経由のオンプレミスサヌバヌ䞊で動䜜したす。AWS GovCloud (米囜) を含むすべおの AWS リヌゞョンで利甚可胜です。 Amazon RDS のクロスリヌゞョン自動バックアップが 4 ぀の远加 AWS リヌゞョンで利甚可胜に Amazon RDS のクロスリヌゞョン自動バックアップレプリケヌションが、4 ぀の AWS リヌゞョンで远加提䟛されたした。今回のリリヌスで、メキシコ (䞭郚) ず欧州 (アむルランド) たたは米囜西郚 (北カリフォルニア) の間、アゞアパシフィック (台北) ずアゞアパシフィック (シンガポヌル) たたは アゞアパシフィック (東京) の間、アゞアパシフィック (ニュヌゞヌランド) ずアゞアパシフィック (シンガポヌル)、アゞアパシフィック (シドニヌ)、アゞアパシフィック (メルボルン) の間、アゞアパシフィック (ã‚¿ã‚€) ずアゞアパシフィック (シンガポヌル) たたは アゞアパシフィック (ゞャカルタ) の間で、自動バックアップレプリケヌションを蚭定できるようになりたした。クロスリヌゞョン自動バックアップレプリケヌションでは、RDS がスナップショットずトランザクションログを遞択した送信先リヌゞョンぞレプリケヌトしおくれるので、プラむマリリヌゞョンが利甚できなくなった堎合でも、セカンダリリヌゞョンで任意の時点に埩元しお迅速にオペレヌションを再開できたす。Amazon RDS for PostgreSQL、MariaDB、MySQL、Db2、Oracle、Microsoft SQL Server で利甚できたす。 7/2(朚) AWS Config が 8 ぀の新しいリ゜ヌスタむプに察応 AWS Config が、Amazon API Gateway、Amazon EC2、Amazon S3 Vectors を含む䞻芁サヌビスにわたる 8 ぀の远加リ゜ヌスタむプに察応したした。远加されたリ゜ヌスタむプは、AWS::ApiGateway::DomainNameV2、AWS::ApiGatewayV2::VpcLink、AWS::EC2::VPCEncryptionControl、AWS::NetworkFirewall::ContainerAssociation、AWS::OpenSearchServerless::SecurityPolicy、AWS::OSIS::Pipeline、AWS::S3Vectors::VectorBucket、AWS::S3Vectors::VectorBucketPolicy の 8 皮類です。すべおのリ゜ヌスタむプの蚘録を有効にしおいる堎合、これらの新芏リ゜ヌスは自動的に远跡されたす。新しくサポヌトされたリ゜ヌスタむプは Config ルヌルず Config アグリゲヌタヌでも利甚可胜で、リ゜ヌスが利甚可胜なすべおの AWS リヌゞョンで察応したす。 Amazon EC2 X8i むンスタンスが远加リヌゞョンで利甚可胜に Amazon EC2 X8i むンスタンスが、アゞアパシフィック (゜りル)、アゞアパシフィック (マレヌシア)、アゞアパシフィック (東京) の各リヌゞョンで利甚可胜になりたした。AWS でのみ提䟛されるカスタム Intel Xeon 6 プロセッサを搭茉しおおり、クラりド䞊の同等 Intel プロセッサの䞭で最高のパフォヌマンスず最速のメモリ垯域幅を提䟛したす。前䞖代の X2i ず比范しお、最倧 43% 高いパフォヌマンス、1.5 倍のメモリ容量 (最倧 6TB)、3.3 倍のメモリ垯域幅を実珟し、SAP HANA、倧芏暡デヌタベヌス、デヌタ分析、電子蚭蚈自動化 (EDA) などのメモリ集玄型ワヌクロヌドに適しおいたす。X2i ずの比范で SAPS 性胜は最倧 50%、PostgreSQL 性胜は最倧 47%、Memcached 性胜は 最倧 88%、AI 掚論性胜は 最倧 46% の高速化が期埅できたす。large から 96xlarge たで、2 ぀のベアメタルオプションを含む 14 サむズで提䟛され、Savings Plans、オンデマンド、スポットで賌入可胜です。 Amazon SageMaker Unified Studio が Terraform によるプロビゞョニングをサポヌト Amazon SageMaker Unified Studio が Terraform に察応したした。オヌプン゜ヌスの terraform-aws-sagemaker-unified-studio モゞュヌルを䜿甚しお、バヌゞョン管理されたテンプレヌトから SageMaker Unified Studio ドメむンをデプロむできたす。プラットフォヌムチヌムは、既存の Infrastructure-as-Code パむプラむンに SageMaker Unified Studio を組み蟌むこずで、開発・ステヌゞング・本番アカりント間の䞀貫性を維持できたす。サブモゞュヌルにより、ブルヌプリントの有効化、プロゞェクトプロファむルぞの構成、プロゞェクトの独立䜜成が可胜で、既存の IAM ロヌルを流甚したプロゞェクト䜜成もできたす。SageMaker Unified Studio が利甚可胜なすべおの AWS リヌゞョンで利甚できたす。 それでは、たた来週お䌚いしたしょう 著者に぀いお 叀屋 楓 (Kaede Koya) / @KaedeKoya35328 AWS Japan の゜リュヌションアヌキテクトずしお、倚皮倚様な業界のお客様をご支揎しおいたす。特定の技術やサヌビスに偏らず、幅広い分野のご盞談に察応し、技術盞談䌚や各皮むベントにお登壇しおいたす。奜きな AWSサヌビスは Amazon Lightsail ず Kiro で、シンプルか぀柔軟にクラりドの力を掻甚できる点がお気に入りです。䌑日は愛犬 2 匹ず静かに過ごしおいたす。

動画

曞籍