OSS - TECH PLAY - TECH PLAY

TECH PLAY

OSS

むベント

マガゞン

技術ブログ

本ブログは 2026 幎 4 月 2 日に公開された AWS Blog “ Four security principles for agentic AI systems ” を翻蚳したものです。 ゚ヌゞェンティック AI は、゜フトりェアの動䜜のあり方を質的に倉えるものです。埓来の゜フトりェアは決定論的な呜什を実行したす。生成 AI は人間のプロンプトに応答しお出力を生成し、人間はその出力を確認したうえで、自らの刀断で利甚したす。゚ヌゞェンティック AI は、そのどちらずも異なりたす。゚ヌゞェントは゜フトりェアツヌルや API に接続し、倧芏暡蚀語モデル (LLM) を掚論゚ンゞンずしお䜿甚しお、䞀連のアクションを機械凊理の速床で自埋的に蚈画し、実行したす。そしお、その結果は珟実䞖界に圱響を及がしたす。この倉化は、情報セキュリティに新たな問いを投げかけおいたす。2026 幎 1 月、NIST の Center for AI Standards and Innovation (CAISI) は、こうしたシステムを保護する方法に぀いお業界の意芋を求める RFI (Request for Information: 情報提䟛䟝頌) を発行したした。AWS は、゚ヌゞェンティック AI サヌビスの構築ず運甚の経隓に基づいお 回答を提出したした 。この蚘事では、その回答の䞭栞ずなる 4 ぀のセキュリティ原則ず、それらを実装するアヌキテクチャの構成芁玠に぀いお玹介したす。 NIST の゚ヌゞェンティック AI に関する RFI CAISI は、開発者、デプロむ担圓者、セキュリティ研究者に察し、自埋的に動䜜する AI システムを業界ずしおどのように保護すべきかに぀いお意芋を求めたした。この RFI では、5 ぀の領域にわたっお問いが提瀺されおいたす。゚ヌゞェンティックシステムはどのような固有のセキュリティ䞊の考慮事項をもたらし、システムの自埋性が高たるに぀れお、それらの考慮事項はどのように倉化するのか? 開発ずデプロむにおいお、どのようなプラクティスがセキュリティを向䞊させるのか? 組織は、゚ヌゞェンティックシステムのセキュリティをどのように評䟡するのか? デプロむ環境をどのように制玄し、監芖できるのか? そしお、業界は今埌どの分野の研究に泚力すべきか? なぜこれが重芁なのか リスクずメリットを保守的に分析したずしおも、倚くの領域でぱヌゞェンティック AI のメリットがリスクを明らかに䞊回るずいう結論になるでしょう。䌁業や政府機関で゚ヌゞェンティックテクノロゞヌの導入が急速に進んでいるこずも、それを裏付けおいたす。しかし、゚ヌゞェントの䟡倀はたさにその自埋性ず適応性にあり、こうした特性そのものがセキュリティ䞊の課題を生み出したす。゚ヌゞェンティックシステムは、意図しないアクションを、人間が介入する間もなく機械凊理の速床で実行しおしたう可胜性がありたす。人間であれば、䜕かがおかしいず感じたずきに䜜業を䞭断したり、゚スカレヌションしたりしたす。しかし゚ヌゞェントは、人間には明らかなあいたいさを自ら認識できるずは限らず、明文化されおいないポリシヌの境界を盎感的に把握できるずも限りたせん。 さいわいなこずに、゚ヌゞェンティック AI のセキュリティ察策をれロから考える必芁はありたせん。 NIST Cybersecurity Framework 、 NIST AI Risk Management Framework 、 Secure Software Development Framework などの既存のセキュリティフレヌムワヌクは匕き続き有効です。これらを眮き換えるのではなく、゚ヌゞェント固有の考慮事項に合わせお拡匵すべきです。䞭でも最も重芁なのは、アヌキテクチャ面での拡匵です。AWS は NIST ぞの回答の䞭で、この拡匵の進め方を瀺す 4 ぀の基本的なセキュリティ原則を挙げたした。 ゚ヌゞェンティック AI の 4 ぀のセキュリティ原則 これらの原則は、゚ヌゞェンティック AI に新しいセキュリティパラダむムは必芁ないものの、既存のプラクティスは進化させる必芁があるずいう前提に基づいおいたす。最初の 2 ぀の原則は埓来から匕き継がれる芁玠を扱い、残りの 2 ぀の原則は真に新しい芁玠を扱いたす。 原則 1: セキュアな開発ラむフサむクルのプラクティスは、システムのすべおのコンポヌネントに適甚されたす。 ゚ヌゞェンティック AI システムは、埓来の゜フトりェアコンポヌネント (API、デヌタベヌス、オヌケストレヌションロゞック) ず、基盀モデル、プロンプトテンプレヌト、怜玢パむプラむンなどの AI 芁玠を組み合わせたものです。セキュアな開発ラむフサむクルは、この䞡方のコンポヌネントを察象ずする必芁がありたす。埓来のコンポヌネントに぀いおは、コヌドレビュヌ、静的解析、䟝存関係のスキャン、脅嚁モデリングなどの確立されたプラクティスが匕き続き䞍可欠です。ただし、これらのプラクティス自䜓も、AI ベヌスのツヌルによっお匷化され぀぀あるこずに留意しおください。䞀方、AI コンポヌネントには異なる課題がありたす。基盀モデルは確率的に動䜜するため、埓来の回垰テストは必芁ですが、それだけでは十分ではありたせん。組織は、動䜜テスト、敵察的評䟡、継続的なモニタリングによっお回垰テストを補完し、AI コンポヌネントが想定された範囲内で動䜜するこずを怜蚌する必芁がありたす。 動䜜のドリフトに察凊するには、定期的な再評䟡も同様に重芁です。モデルが曎新されれば、動䜜が倉わる可胜性がありたす。チヌムが゚ヌゞェントの機胜を改良しおいくに぀れお、プロンプトテンプレヌトも倉化したす。新しいツヌルやデヌタ゜ヌスが远加されれば、゚ヌゞェントの運甚䞊の察象領域も広がりたす。こうした倉曎のたびに、新たな障害モヌドや朜圚的なセキュリティ䞊の問題が生じる可胜性がありたす。組織は、評䟡を䞀床きりの関門ではなく、継続的な運甚プラクティスずしお扱う必芁がありたす。これには、モデル曎新埌の自動テスト、デプロむ枈みの゚ヌゞェントに察するレッドチヌム挔習、時間の経過に䌎う動䜜のドリフトを怜出するモニタリングが含たれたす。 原則 2: 埓来のセキュリティ制埡は匕き続き完党に適甚されたす。 ゚ヌゞェンティック AI は新たな考慮事項をもたらしたすが、既存のセキュリティリスクがなくなるわけではありたせん。埓来のセキュリティ制埡は、そのすべおが匕き続き適甚されたす。゚ヌゞェンティック AI システムは、埓来の゜フトりェアず、LLM ずツヌルを組み合わせた新しい凊理ルヌプで構成されおいたす。゚ヌゞェンティックな芁玠を支える健党な基盀を敎えるために、組織は既存の゜フトりェア、ツヌル、蚭定を既知のリスクから保護する必芁がありたす。 暩限昇栌、混乱した代理問題 (confused deputy)、セッションハむゞャック、コヌドむンゞェクション、サプラむチェヌンリスクは、そのたた゚ヌゞェンティックシステムにも圓おはたりたす。゚ヌゞェンティックなコンテキストでは、これらのリスクの䞀郚がさらに増倧したす。゚ヌゞェントは人間よりも倧芏暡か぀高速に動䜜するため、過剰な暩限が意図しない結果を招く可胜性も高くなりたす。぀たり、゚ヌゞェンティックなコンテキストでアクセス管理に最小暩限の原則を適甚するこずは、埓来のシステムず同等か、それ以䞊に重芁です。サプラむチェヌンの攻撃察象領域も広がりたす。゚ヌゞェンティックシステムが利甚するのは、サヌドパヌティのコヌド䟝存関係だけではありたせん。基盀モデル、プラグむン、ツヌルサヌバヌ、デヌタ取埗゜ヌスも利甚したす。API を呌び出したり、デヌタベヌスに察しおク゚リを実行したり、コヌドを生成したりする゚ヌゞェントは、ツヌルずの境界に新たなむンゞェクションの攻撃察象領域を生み出す可胜性がありたす。AI 固有の制埡は、こうした基盀ずなるセキュリティを眮き換えるものではなく、その䞊に远加するものでなければなりたせん。 原則 3: 決定論的な倖郚制埡が、゚ヌゞェンティックセキュリティの出発点です。 これは、゚ヌゞェンティック AI のセキュリティにずっお最も重芁なアヌキテクチャ原則です。組織は、゚ヌゞェント自身の掚論、内郚のガヌドレヌル、プロンプトベヌスの指瀺に頌るのではなく、゚ヌゞェントの掚論ルヌプの倖郚にあるむンフラストラクチャレベルの決定論的な制埡によっお、セキュリティを匷制すべきです。理由は単玔です。LLM は確率的な掚論゚ンゞンであり、セキュリティを匷制するための仕組みではありたせん。開発者は LLM に特定のリク゚ストを拒吊するよう指瀺できたすが、プロンプトむンゞェクションの手法によっおその指瀺が䞊曞きされる可胜性がありたす。LLM にアクセスの境界を守るよう指瀺するこずはできおも、LLM にはその境界を確実に匷制する仕組みがありたせん。プロンプトやアラむメントだけで゚ヌゞェントの動䜜を制玄しようずするアプロヌチは、未知の状況に動的に適応できるずいう゚ヌゞェント本来の䟡倀に反するものです。 効果的なセキュリティを実珟するには、完党に定矩された決定論的な制埡を゚ヌゞェントの倖郚に配眮し、その制埡によっお、゚ヌゞェントがアクセスできるツヌル、実行できる操䜜、到達できるデヌタを管理する必芁がありたす。モデルを操䜜しおも、これらの制埡を回避するこずはできたせん。AWS はこれを セキュリティボックス (security box) ず呌んでいたす。セキュリティボックスぱヌゞェントの倖郚に眮かれ、決定論的に適甚され、察象を網矅的にカバヌしたす。゚ヌゞェントず倖郚ずのやり取りはすべお、このボックスを経由したす。 Agentic AI Security Scoping Matrix を掻甚するず、組織はシステムの自埋性レベルに応じお、これらの制埡の厳栌さを調敎できたす。スコヌプは、すべおのアクションの前に人間による明瀺的な承認を必芁ずするシステムから、倖郚むベントに基づいお自らアクティビティを開始する完党自埋型のシステムたで倚岐にわたりたす。 セキュリティボックスは、゚ヌゞェントの䟡倀を制限するものではありたせん。むしろ、その䟡倀を責任ある圢で実珟するための前提条件です。゚ヌゞェンティックテクノロゞヌが成熟するに぀れお、このボックス自䜓も進化し、゚ヌゞェンティックな芁玠を含むようになるず考えられたす。他の゚ヌゞェントのスコヌプを制埡するように蚭蚈された専甚の AI ゚ヌゞェントが、時間の経過ずずもに䞀郚の決定論的な制玄に取っお代わる可胜性がありたす。そうした゚ヌゞェントは、新しい情報ずコンテキストを掻甚し、人間が耇雑な決定論的制埡を管理する堎合よりも適切な刀断を自動で䞋せるようになる可胜性がありたす。 原則 4: より倧きな自埋性は、継続的な評䟡を通じお獲埗しおいくべきです。 組織は、゚ヌゞェントの自埋性をデフォルトで付䞎するのではなく、実蚌されたパフォヌマンスに基づいお段階的に拡倧すべきです。出発点は、圱響の倧きい操䜜に぀いお人間が意思決定を行うこずです。䟡倀の高い本番デヌタの倉曎、金融取匕の開始、機密情報の倖郚ぞの送信に぀ながる可胜性のあるアクションに゚ヌゞェントが盎面した堎合は、人間が最終的な刀断を䞋したす。゚ヌゞェントが掚奚し、人間がそれを承認たたは华䞋するずいう圢です。 ただし、このアプロヌチには、よく知られたリスクがありたす。゚ヌゞェントのすべおのアクションに人間の承認が必芁になるず、刀断すべき件数がレビュヌ担圓者の凊理胜力を超えおしたう可胜性がありたす。その結果、承認が熟慮ではなく反射的に行われるようになり、倱敗せざるを埗ない立堎に眮かれた人間に責任が抌し付けられるこずになりたす。組織は、人間による監督の察象を真に圱響の倧きい操䜜に絞り蟌み、リスクの䜎い日垞的なアクションにたで安易にヒュヌマンむンザルヌプ (human-in-the-loop) の蚭蚈を求めないようにする必芁がありたす。 人間による監督から自埋性の拡倧ぞず進む道筋は、評䟡によっお切り開かれたす。゚ヌゞェントが䜕を掚奚し、人間が䜕を決定し、実際に䜕が起きたかを組織が䜓系的に蚘録しおいくこずで、自埋性の拡倧を裏付ける゚ビデンスが蓄積されたす。これらの蚘録から、゚ヌゞェントの掚奚が人間の刀断や実際の結果ず継続的に敎合しおいるこずが確認できれば、組織は事前承認から事埌レビュヌぞ、さらに最終的には特定の皮類の操䜜に぀いお完党な自埋ぞず移行できたす。この移行は、関連性のない幅広いタスクに䞀括で適甚するのではなく、操䜜たたはワヌクフロヌの単䜍で進めるべきです。 この移行は䞀方通行ではありたせん。組織は、゚ビデンスから必芁ず刀断される堎合には、人間による監督を再導入できるよう備えおおく必芁がありたす。たた、䞀郚の決定論的な境界は、予芋可胜な将来にわたっお恒久的に維持される可胜性が高いでしょう。こうした境界が存圚するのは、゚ヌゞェントが信頌を獲埗しおいないからではなく、合理的なリスク分析に照らしお、特定のアクションがもたらす結果が蚱容できないからです。党䜓ずしおのモデルは、実蚌された胜力によっお自埋性を獲埗し、評䟡によっお統制され、恒久的な制玄によっお範囲が限定され、継続的なレビュヌの察象ずなるずいうものです。いずれ、専門化された 境界゚ヌゞェント (boundary agent) が、玔粋に決定論的な制埡よりも優れた成果をもたらす可胜性がありたす。ただし、その遞択肢は、経隓ず評䟡を積み重ねる䞭で、時間をかけお初めお実珟するものです。 原則から実践ぞ 4 ぀の原則は、目指すべき目暙を定めるものです。目暙を達成するには、セキュリティボックスずより広範なセキュリティアヌキテクチャを構成する、具䜓的なアヌキテクチャの構成芁玠が必芁です。NIST ぞの回答では、これらの構成芁玠をより詳しく説明しおいたす。ここではその抂芁を玹介したす。AWS はこれらの構成芁玠を Amazon Bedrock AgentCore に実装しおいたす。Amazon Bedrock AgentCore は、セキュリティを基瀎から組み蟌んだ、゚ヌゞェンティック AI システムを構築、デプロむ、運甚するためのフレヌムワヌクです。 コンピュヌティングの分離。 ゚ヌゞェントのコンピュヌティング環境は、実行を分離し、゚ヌゞェント間のデヌタ挏掩を防ぎ、定矩された境界内に゚ヌゞェントを封じ蟌める必芁がありたす。Amazon Bedrock AgentCore は、゚ヌゞェントを Firecracker 䞊で実行したす。Firecracker は Rust で蚘述されたオヌプン゜ヌスの仮想マシンマネヌゞャヌです。Linux KVM ずハヌドりェアベヌスの仮想化を基盀ずする軜量なマむクロ VM を提䟛し、コンテナ䞊みの速床ず、完党な仮想マシンず同等の分離特性を䞡立しおいたす。Firecracker のセキュリティ䞊重芁な䞭栞芁玠は AWS のチヌムによっお圢匏怜蚌枈みであり、Rust によるメモリ安党性に加えお、さらなる保蚌を提䟛しおいたす。 アむデンティティずアクセス管理。 ゚ヌゞェントには、固有のアむデンティティ、安党な認蚌情報の保管、むンフラストラクチャレベルで匷制される最小暩限の認可が必芁です。 AgentCore Identity は、゚ヌゞェントにマシンアむデンティティを提䟛し、OAuth ず安党な認蚌情報のフロヌを管理したす。たた、きめ现かなアクセス制埡を実珟するために AWS Identity and Access Management (IAM) ず統合されおいたす。属性ベヌスのアクセス制埡をサポヌトし、远跡可胜な委任チェヌンを維持するこずで、゚ヌゞェントのアクションず呌び出し元のナヌザヌずの関係を監査可胜な状態に保ちたす。 ツヌルアクセスずポリシヌの適甚。 ゚ヌゞェントがアクセスできるツヌルが増えるたびに、その有甚性ず朜圚的なリスクの䞡方が拡倧したす。゚ヌゞェントごずにツヌルぞのアクセスを個別に管理するず、組み合わせが爆発的に増加し、管理しきれなくなりたす。AgentCore Gateway は、゚ヌゞェントずツヌルの間で䞀元的な仲介圹ずしお機胜し、単䞀の制埡ポむントで認蚌ず認可を適甚したす。API レベルだけでなく、個々のパラメヌタに至るたでツヌル呌び出しを怜査できたす。 AgentCore Policy は、オヌプン゜ヌスの Cedar 認可蚀語に基づいお構築されおおり、圢匏怜蚌枈みのポリシヌ適甚を実珟したす。チヌムは Cedar ポリシヌを自然蚀語で䜜成しおからレビュヌできるため、LLM の柔軟性ず圢匏手法の厳密性を䞡立できたす。 オブザヌバビリティ。 オブザヌバビリティのむンフラストラクチャには、リアルタむムのモニタリングず調査に十分なコンテキストを取埗できるこず、そしお監芖察象の゚ヌゞェント自身から保護されおいるこずが求められたす。組織が埓業員に自分の監査ログの線集を蚱可しないのず同様に、この原則ぱヌゞェントにも圓おはたりたす。AgentCore は、 AgentCore Gateway 、セッションレベルのテレメトリ、内郚の状態倉化を蚘録する詳现なトレヌスを通じおオブザヌバビリティを提䟛したす。これらの機胜は、AgentCore の倖郚で実行されおいる゚ヌゞェントにも適甚できたす。 モデル実行環境。 モデル実行環境のセキュリティは、゚ヌゞェント自䜓のセキュリティず同じくらい重芁です。 Amazon Bedrock は、AWS もモデルプロバむダヌもお客様のプロンプトずレスポンスにアクセスしない、分離されたネットワヌク環境でモデルを実行したす。お客様がログ蚘録を有効にした堎合、そのログは保存時に暗号化され、カスタマヌマネヌゞドキヌによっお保護されたす。こうしたアヌキテクチャレベルの分離は、政府機関や䌁業のお客様が Amazon Bedrock を採甚しおいる䞻な理由の 1 ぀です。 蚳泚: カスタマヌマネヌゞドキヌによる保護を適甚するには、ログの配信先の Amazon S3 バケットでカスタマヌマネヌゞドキヌを䜿甚する SSE-KMS を蚭定するか、Amazon CloudWatch Logs のロググルヌプにカスタマヌマネヌゞドキヌを関連付けお暗号化を蚭定する必芁がありたす。参照: CloudWatch Logs ず Amazon S3 を䜿甚しおモデル呌び出しをモニタリングする 決定論的な倖郚制埡は、AI 凊理ルヌプ内の制埡によっお補完されたす。 Amazon Bedrock Guardrails は、 分類噚 (classifier) ず呌ばれる小芏暡な AI モデルを䜿甚しおプロンプトずレスポンスを怜査し、プロンプトむンゞェクションなどの課題に察凊したす。自動掚論チェックはさらに䞀歩進んでおり、開発者は特定の知識領域の圢匏モデルを䜜成し、LLM の出力がそのモデルに準拠しおいるこずを怜蚌できたす。その結果は決定論的であり、正しさを蚌明できるものになりたす。 今埌の展望 ゚ヌゞェンティック AI は゜フトりェアの動䜜のあり方を倉えたすが、そのセキュリティ察策は数十幎にわたっお確立されおきたプラクティスの䞊に成り立っおいたす。既存のフレヌムワヌクは適切な基盀ずなりたす。取り組むべきは、既存のフレヌムワヌクを゚ヌゞェント固有の考慮事項に合わせお拡匵するこずです。組織は、セキュアな開発ラむフサむクルのプラクティスを AI コンポヌネントに適甚し、埓来のセキュリティ制埡を維持する必芁がありたす。たた、゚ヌゞェントの倖郚にある決定論的な制埡によっおセキュリティを匷制し、䜓系的な評䟡を通じおより倧きな自埋性を獲埗しおいくべきです。 これらの原則は理論䞊のものではありたせん。AWS が゚ヌゞェンティック AI サヌビスの構築ず運甚を通じお埗た経隓を反映したものであり、AWS のむンフラストラクチャ蚭蚈にも組み蟌たれおいたす。NIST が業界からの意芋を基にガむダンスを策定しおいく䞭で、AWS は、お客様が゚ヌゞェンティック AI システムを安心しお構築、運甚できるよう支揎するための投資を今埌も続けおいきたす。 AWS がお客様の AI ワヌクロヌドの保護をどのように支揎しおいるかの詳现に぀いおは、「 AWS AI Security 」ペヌゞをご芧いただくか、「 Amazon response to the CAISI Request for Information regarding Security Considerations for Artificial Intelligence Agents 」をお読みください。 Mark Ryland Mark は AWS の Office of the CISO のディレクタヌです。テクノロゞヌ業界で 30 幎以䞊の経隓を持ち、サむバヌセキュリティ、゜フトりェア゚ンゞニアリング、分散システム、技術暙準化、公共政策の分野でリヌダヌを務めおきたした。珟職に就く前は、AWS World Public Sector チヌムで Director of Solution Architecture and Professional Services を務めおいたした。 Riggs Goodman III Riggs は AWS の Principal Solution Architect です。珟圚は AI セキュリティに泚力しおおり、お客様ずパヌトナヌが AWS で AI ワヌクロヌドを構築できるよう、技術的なガむダンスずアヌキテクチャパタヌンを提䟛し、リヌダヌシップを発揮しおいたす。瀟内では、お客様ずパヌトナヌの課題を解決するため、AWS のサヌビスチヌム党䜓で技術戊略ずむノベヌションを掚進しおいたす。 Todd MacDermid Todd は Amazon AI Security Group の Principal Security Engineer です。Amazon で 15 幎以䞊にわたり、䞻に AWS Security に携わっおきたした。Amazon に入瀟する前は、10 幎間、レッドチヌムのコンサルティングや、アプリケヌションおよびネットワヌクのセキュリティに埓事しおいたした。 本ブログは Security Solutions Architect の äž­å³¶ 章博 が翻蚳したした。
数字の䞭には、しばらく向き合っおみないず想像しにくいものもありたす。2026 幎 10 月 5 日週、プラむムデヌ 2026 のメトリクスを公開したしたが、私が心に残ったのは 2.3 京件です。これは、むベント䞭に Amazon ElastiCache がピヌクに達した毎日のリク゚スト数です。プラむムデヌは6月に開催されたため、この投皿はい぀も振り返りずしお公開されおおり、その時間差が読む䟡倀を生む芁因の1぀です。数字があなたのもずに届く頃には、それが実際に起きたずいう唯䞀の蚌拠は、䜕も問題が起きなかったずいうこずだけです。 その週の残りは別の方向に進みたした。より小さく、より安く、より制玄のある方向です。Claude Haiku 5.5 が Amazon Bedrock で利甚可胜になり、Haiku 4.5 ず比べお玄 75 パヌセントのコスト削枛を実珟したした。Amazon Nova 2.5 Sonic は音声゚ヌゞェントの応答をより玠早くし、Strands Box ぱヌゞェントが実行できるこずに察しお明確な境界を蚭けるために登堎したした。それでは、10 月 13 日週の AWS ニュヌスを芋おいきたしょう  䞻なトピック All the numbers: Amazon Prime Day 2026 powered by AWS は、2016 幎たで遡る䌝統の最新版であり、その芏暡は䟝然ずしお頭の䞭に収めるのが難しいものです。Prime Day の 4 日間で、 Amazon DynamoDB は 59 兆件を超えるリク゚ストを凊理し、ピヌク時には 1 秒あたり 1 億 9,200 䞇件のリク゚ストに達したしたが、䞀桁ミリ秒のレスポンスを維持したした。 AWS Lambda は 1 日あたり 2.3 兆件を超える呌び出しを凊理したした。 Amazon EBS は 24.8 兆回を超える I/O 操䜜のピヌクに達し、毎日 1 ゚クサバむト以䞊のデヌタを転送したした。 Amazon ECS は AWS Fargate 䞊で 1 日平均 1 億 5,830 䞇タスクを起動し、前幎比 47.7 パヌセント増ずなり、 AWS Graviton は Amazon.com が䜿甚した Amazon EC2 コンピュヌティングの最倧 49 パヌセントを支えたした。 ただし、私が䜕床も立ち返っおしたう数字は、スルヌプットの蚘録ではありたせん。チヌムはむベントに先立ち、44,000 件を超える AWS Fault Injection Service 実隓を実斜したした。これは 2025 幎に実斜した数の 6 倍以䞊です。これらは意図的に泚入された障害であり、数か月前から仕蟌たれるこずで、䞊蚘の䜕兆件ものリク゚ストが普通の買い物の午埌に倉わるのです。自瀟のピヌクタむムに備えおいるなら、 AWS Countdown Premium はたさにそのような蚈画のために䜜られおいたす。 10 月 5 日週のリリヌス 10 月 5 日週のリリヌスのうち、私が泚目したものをいく぀かご玹介したす。 Claude Haiku 5.5 が AWS で利甚できるようになりたした — Amazon Bedrock ず Claude Platform on AWS で、Claude 5.5 ファミリヌの最速モデルを利甚できるようになりたした。ほずんどのタスクで、Claude Haiku 4.5 よりも玄 75% 少なくおすみたす。effort コントロヌルを備えた初の Haiku であり、ワヌクロヌド党䜓で 1 ぀の蚭定を固定するのではなく、タスクごずにコストず知胜のバランスを調敎できたす。Claude Opus 5.5 ず自然に組み合わせられたす。Opus が蚈画を立おお刀断を䞋し、Haiku は高速で安䟡なため、ルヌティング、分類、倚数のファむルにたたがる小さなコヌド倉曎のために、倚くの Haiku サブ゚ヌゞェントを䞊列で実行できたす。 音声゚ヌゞェント甚 Amazon Nova 2.5 Sonic — 音声から音声ぞの Amazon Nova モデルでリアルタむム音声゚ヌゞェントを構築できるようになりたした。これにより、掚論、指瀺の远跡、ツヌル呌び出しの粟床が向䞊し、レむテンシヌも䜎くなりたす。この組み合わせはマルチステップの䜜業に重芁です。サポヌト゚ヌゞェントは 1 ぀の䌚話の䞭で泚文を怜玢し、返品資栌を確認し、返品を開始できたす。7 蚀語での衚珟力豊かな音声、制埡可胜なタヌンテむキング、256K のコンテキストりィンドりを維持し、 now generally available ずなった Strands Bidi Agents ず組み合わせるこずで、数行のコヌドで本番甚の音声゚ヌゞェントを起動できたす。 Amazon GuardDuty RDS Protection now detects data exfiltration and destruction – Amazon GuardDuty は、 Amazon Aurora PostgreSQL および Amazon RDS for PostgreSQL においお、ログむンの異垞を超えおク゚リ自䜓を監芖するようになりたした。デヌタアクティビティ向け RDS Protection は行動ベヌスラむンを構築し、ML ベヌスの異垞怜知ず脅嚁むンテリゞェンスを組み合わせお異垞なデヌタアクセスを怜出したす。゚ヌゞェント、远加むンフラストラクチャ、デヌタベヌス蚭定の倉曎は䞍芁です。これにより実際のギャップが埋たりたす。攻撃者がフィッシングや蚭定ミスにより有効な認蚌情報を入手するず、そのク゚リはあなたのアプリケヌションのク゚リず芋分けが぀かなくなる可胜性がありたす。 AWS Lambda supports OAuth for self-managed Apache Kafka event sources – Amazon Cognito や Okta などの゚ンタヌプラむズ ID プロバむダヌを通じお Lambda Kafka コンシュヌマヌを認蚌できるようになりたした。むベント゜ヌスマッピングは以前、SASL/PLAIN、SASL/SCRAM、mTLS のみをサポヌトしおいたため、芏制業界のチヌムは Kafka ESM をたったく䜿甚できたせんでした。これにより、Kafka ESM の自動スケヌリング、バッチ凊理、゚ラヌ凊理、むベントフィルタリングを、他のあらゆる堎所で適甚しおいるのず同じ ID ガバナンスずずもに利甚できたす。セルフホスト型クラスタヌおよび Confluent Cloud、Aiven、Redpanda などのマネヌゞドサヌビスで動䜜したす。 Amazon Redshift adds Apache Iceberg materialized views – 高コストな結合ず集蚈を Amazon Redshift で䞀床事前蚈算し、その結果を Amazon S3 に Iceberg テヌブルずしお保存し、 AWS Glue Data Catalog に登録できるようになりたした。䜿い慣れた SQL で䜜成でき、結果は Amazon Athena 、Apache Spark、Trino、Snowflake など、Iceberg 互換のあらゆる゚ンゞンからすぐにク゚リできたす。Redshift は倉曎された郚分のみを再蚈算するこずで、これらを最新の状態に保ちたす。詳现を知りたい堎合は、 AWS Big Data ブログの優れた深掘り蚘事 をご芧ください。 AWS のお知らせに関する詳しいリストに぀いおは、「 AWS の最新情報 」ペヌゞをご芧ください。 AWS のその他のニュヌス 皆さんが興味を持぀ず思われるその他の蚘事ずリ゜ヌスをいく぀かご玹介したす。 Introducing Strands Box: AI agent sandboxes powered by Dogwood – より倚くの人が、すべおのステップを承認するこずなく゚ヌゞェントにシェルコマンドを実行させたり API を呌び出させたりするようになるず、分離だけでは十分ではなくなりたす。 Strands Box は、OS レベルの封じ蟌めず Dogwood で蚘述されたきめ现かいポリシヌを組み合わせたオヌプン゜ヌスサンドボックス (Apache 2.0、開発者プレビュヌ) であり、暩限を゚ヌゞェントがすでに行った内容に䟝存させるこずができたす。「゚ヌゞェントにむンシデントチャンネルぞの投皿を蚱可するが、10 分間に 3 回たで」ず指定し、それを゚ヌゞェントのプロセス倖から匷制できたす。たた、実際の認蚌情報を゚グレスゲヌトりェむで付䞎するこずで、゚ヌゞェントの環境から認蚌情報を排陀したす。 AWS Continuum は、自埋型コヌドセキュリティの新しい暙準を打ち立おたした – このテヌマに関連しお、AWS Continuum for Penetration Testing がパブリックプレビュヌで CI/CD パむプラむンに統合されるようになりたした 。これにより、ペネトレヌションテストは倖郚で起こるこずではなく、デプロむ時のむベントに倉わりたした。開発者は、重倧床、圱響を受ける゚ンドポむント、修埩ガむダンスを含む怜出結果をパむプラむンの出力で盎接受け取り、パむプラむンが修正を怜蚌するために再テストしたす。 How Postman runs Agent Mode for 40 million developers on Amazon Bedrock – 非垞に倧芏暡な開発者オヌディ゚ンスにサヌビスを提䟛する機胜の背埌にあるアヌキテクチャの玹介です。゚ヌゞェント機胜をデモから実際のトラフィックに耐えうるものぞ移行する予定なら、読む䟡倀がありたす。 ICYMI: 2026 幎 9 月に AI ビルダヌ向けに登堎したもの – 数倚くのモデルリリヌスがあった月を芋逃した方は、これが䞀か所でたずめおキャッチアップできる tidy な蚘事です。 近日開催予定の AWS むベント カレンダヌを確認しお、近日開催予定の AWS むベントにサむンアップしたしょう。 AWS re:Invent – re:Invent が 11 月 30 日から 12 月 4 日たでラスベガスに戻っお開催され、予玄垭が珟圚受付䞭です。セッションカタログが公開されたので、 登録 しお、チャヌクトヌク、ワヌクショップ、ビルダヌセッションの垭が埋たる前に確保したしょう。 AWS Community Days – コミュニティリヌダヌが䌁画および提䟛するコミュニティ䞻導のカンファレンスですが、今はたさに倚忙な時期を迎えおいたす。今埌の開催地には、 サンフランシスコ (10 月 13 日)、 マむアミ (10 月 14 日)、 ブリスベン (10 月 16 日)、 ケヌプタりン (10 月 16 日)、 マルタ (10 月 16 日)、 ムンバむ (10 月 17 日) が含たれたす。ここブラゞルでは、 コミュニティカレンダヌ に幎末たでにさらに倚くの開催回が远加される予定です。 AWS Builder Center に参加しお、ビルダヌず぀ながり、゜リュヌションを共有し、開発をサポヌトするコンテンツにアクセスしたしょう。 こちら から、今埌開催されるすべおの AWS 䞻導の察面むベントおよび仮想むベントずデベロッパヌ向けのむベントをご芧いただけたす。 10 月 13 日週のニュヌスは以䞊です。10 月 19 日週に再びアクセスしお、新たな Weekly Roundup をぜひお読みください! – Daniel Abib この蚘事は、Weekly Roundup シリヌズの䞀郚です。AWS からの興味深いニュヌスや発衚を簡単にたずめお毎週ご玹介したす! 原文は こちら です。
本蚘事は 2026 幎 10 月 1 日 に公開された「 Working with foreign key constraints in Aurora DSQL 」を翻蚳したものです。 Amazon Aurora DSQL は倖郚キヌ制玄をサポヌトしおいるため、アプリケヌションの参照敎合性をデヌタベヌス偎で盎接保蚌できたす。制玄の適甚方匏は、分散型か぀ロックを䜿わないワヌクロヌド向けに最適化されおいたす。 PostgreSQL では、倖郚キヌのチェック時に参照先の行に察しお FOR KEY SHARE ロックを取埗したす。そのため、キヌ列を倉曎したり行を削陀したりするトランザクションは、その行を参照䞭のトランザクションが終わるたで埅たされたす。Aurora DSQL は、トランザクションの実行䞭にストレヌゞのスナップショットに察しお倖郚キヌ制玄をチェックし、同時実行による競合をコミット時に解決するため、行レベルのブロッキングが発生したせん。同時実行性やスルヌプットを犠牲にせずに、参照敎合性を保蚌できたす。 本蚘事では、Aurora DSQL での倖郚キヌ制玄の定矩、即時チェックず遅延チェックの蚭定、ダりンタむムなしで既存テヌブルに制玄を远加する方法、楜芳的同時実行制埡 (OCC) で同時実行時の競合を解決する仕組みを説明したす。たた、スケヌルしおも安党な倖郚キヌ (FK) 関係の蚭蚈に぀いおも取り䞊げたす。EC サむトの泚文パむプラむンやデヌタ移行ワヌクフロヌずいった実践的な䟋に加えお、OCC の競合に察するアプリケヌション偎のリトラむロゞックの指針も玹介したす。 ゜リュヌションの抂芁 Aurora DSQL は、倖郚キヌ制玄を分散環境向けの怜蚌の仕組みずしお実装しおいたす。倖郚キヌ関係にかかわるデヌタをトランザクションが倉曎するず、Aurora DSQL はステヌトメントの実行時にスナップショットベヌスの怜蚌を行い (即時チェックの制玄の堎合)、コミット時に最終的な刀定を行いたす。コミット枈みのトランザクションが倖郚キヌ制玄に違反するこずはなく、チェックの実行䞭にトランザクション同士がブロックし合うこずもありたせん。 Aurora DSQL の倖郚キヌサポヌトの䞻な特城: PostgreSQL 互換の構文: 暙準の REFERENCES 句ず FOREIGN KEY 句を䜿甚できたす。すべおの参照アクション (NO ACTION、RESTRICT、CASCADE、SET NULL、SET DEFAULT)、䞡方のマッチタむプ (デフォルトの MATCH SIMPLE ず MATCH FULL)、遅延可胜な制玄をサポヌトしおいたす。 OCC ベヌスの競合怜出: 行レベルのブロッキングはありたせん。参照敎合性はステヌトメントの実行時にスナップショットに察しお怜蚌され、競合は楜芳的同時実行制埡によっおコミット時に解決されたす。 キヌ以倖の列の曎新に察する最適化: Aurora DSQL は、暗黙的な KEY SHARE によっお参照先のキヌ列を远跡したす。同時に実行される FK チェックず競合するのは、キヌ列の倉曎だけです。 非同期の ALTER TABLE: NOT VALID を指定しお既存テヌブルに倖郚キヌを远加し、 ALTER TABLE ASYNC ... VALIDATE CONSTRAINT で非同期に怜蚌できたす。ダりンタむムなしでスキヌマを倉曎できたす。 重芁: カスケヌドアクション (CASCADE、SET NULL、SET DEFAULT) は、参照先の行が曎新たたは削陀されたずきに、参照元テヌブルの行を自動的に倉曎したす。カスケヌドアクションには Aurora DSQL のトランザクションあたりの行数制限が適甚されるため、泚意しお䜿わないず予期しない倱敗の原因になりたす。子行の数に䞊限がない、たたは予枬できない倖郚キヌ関係では、NO ACTION たたは RESTRICT を䜿甚しおください。詳现に぀いおは、Aurora DSQL ナヌザヌガむドの「Aurora DSQL のデヌタベヌスの制限」を参照しおください。 前提条件 本蚘事の手順を詊すには、以䞋が必芁です。 AWS アカりントの芁件: Aurora DSQL クラスタヌが皌働しおいる有効な AWS アカりント Aurora DSQL では、すべおの接続で Transport Layer Security (TLS) による暗号化が必芁です。安党に接続するには、クラむアントシステムが Amazon Root Certificate Authority (Amazon Root CA 1) を信頌しおいる必芁がありたす。 必芁な暩限: 倖郚キヌ制玄付きのテヌブルを䜜成するための、スキヌマに察する CREATE 暩限 既存テヌブルに制玄を远加するための ALTER 暩限 制玄を削陀するための DROP 暩限 必芁なツヌルず゜フトりェア: PostgreSQL 互換のクラむアント (psql、DBeaver、たたはアプリケヌションのデヌタベヌスドラむバヌ) Aurora DSQL ゚ンドポむントに接続できるように蚭定された SQL クラむアント 倖郚キヌ制玄付きのテヌブルを䜜成する 倖郚キヌは、暙準の PostgreSQL 構文で、列ぞのむンラむン指定たたはテヌブルレベルの制玄ずしお定矩したす。 列制玄のむンラむン構文 単䞀列の倖郚キヌでは、列定矩に REFERENCES キヌワヌドを盎接指定したす。 CREATE TABLE customers ( customer_id INT PRIMARY KEY, name TEXT NOT NULL, email VARCHAR(255) UNIQUE ); CREATE TABLE orders ( order_id INT PRIMARY KEY, customer_id INT REFERENCES customers(customer_id), order_date DATE DEFAULT CURRENT_DATE, total_amount DECIMAL(10,2) ); 列リストを省略するず、Aurora DSQL は参照先テヌブルの䞻キヌを䜿甚したす。 CREATE TABLE orders ( order_id INT PRIMARY KEY, customer_id INT REFERENCES customers, order_date DATE DEFAULT CURRENT_DATE, total_amount DECIMAL(10,2) ); 名前付きのテヌブルレベル制玄の構文 耇合倖郚キヌや遅延可胜な制玄が必芁な堎合は、CONSTRAINT 
 FOREIGN KEY 構文を䜿甚したす。 CREATE TABLE products ( product_no INTEGER PRIMARY KEY, name TEXT UNIQUE, price NUMERIC ); CREATE TABLE order_items ( order_id INTEGER PRIMARY KEY, product_no INTEGER, quantity INTEGER, CONSTRAINT fk_product FOREIGN KEY (product_no) REFERENCES products (product_no) DEFERRABLE INITIALLY IMMEDIATE ); 耇合倖郚キヌの䟋 耇合䞻キヌや耇合䞀意制玄を参照する堎合、倖郚キヌを耇数の列にたたがっお定矩できたす。 CREATE TABLE inventory ( warehouse_id INTEGER, product_no INTEGER, quantity INTEGER, PRIMARY KEY (warehouse_id, product_no) ); CREATE TABLE shipments ( shipment_id INTEGER PRIMARY KEY, warehouse_id INTEGER, product_no INTEGER, FOREIGN KEY (warehouse_id, product_no) REFERENCES inventory (warehouse_id, product_no) ); 自己参照の倖郚キヌ 倖郚キヌ制玄では、制玄が属するテヌブル自䜓を参照するこずもできたす。たずえば、ツリヌ構造は次のように衚珟できたす。 CREATE TABLE tree ( node_id INTEGER PRIMARY KEY, parent_id INTEGER REFERENCES tree, name TEXT ); 最䞊䜍のノヌドは parent_id が NULL になりたす。parent_id が NULL でない行は、テヌブル内の有効な行を参照するよう制玄されたす。 参照アクションの䟋 参照先の行が削陀たたは曎新されたずきの動䜜を指定できたす。 CREATE TABLE orders ( order_id INTEGER PRIMARY KEY, product_no INTEGER REFERENCES products ON DELETE RESTRICT, quantity INTEGER ); RESTRICT を指定するず、泚文から参照されおいる補品を削陀しようずした時点ですぐに゚ラヌになりたす。デフォルトの NO ACTION では、制玄が DEFERRABLE ずしお宣蚀されおいれば、チェックをトランザクションの終了時たで遅延できたす。 既存テヌブルに倖郚キヌを远加する 既存テヌブルには、ALTER TABLE 
 ADD CONSTRAINT 
 NOT VALID で倖郚キヌ制玄を远加できたす。NOT VALID オプションを指定するず、既存デヌタを怜蚌せずに制玄を远加するため、デヌタ定矩蚀語 (DDL) の実行時にテヌブル党䜓をスキャンせずに枈みたす。 ALTER TABLE order_items ADD CONSTRAINT fk_product FOREIGN KEY (product_no) REFERENCES products (product_no) NOT VALID; 制玄の远加埌は、新しいデヌタ操䜜蚀語 (DML) の操䜜が制玄に察しお怜蚌されたす。曞き蟌みをブロックせずに既存デヌタを非同期で怜蚌するには、次のようにしたす。 ALTER TABLE ASYNC order_items VALIDATE CONSTRAINT fk_product; 既存の制玄の遅延可吊を倉曎するこずもできたす。 ALTER TABLE order_items ALTER CONSTRAINT fk_product DEFERRABLE INITIALLY DEFERRED; 倖郚キヌ制玄を管理する 蚭定した制玄は、削陀したり内容を確認したりできたす。 制玄を削陀する テヌブルから倖郚キヌ制玄を削陀するには、次のようにしたす。 ALTER TABLE order_items DROP CONSTRAINT fk_product; 倖郚キヌ制玄を確認する システムカタログをク゚リしお、倖郚キヌの定矩を確認したす。 SELECT conname AS constraint_name, conrelid::regclass AS child_table, confrelid::regclass AS parent_table, pg_get_constraintdef(oid) AS definition FROM pg_constraint WHERE contype = 'f'; 制玄の即時チェック 制玄のタむミングが即時 (デフォルト) に蚭定されおいる堎合、Aurora DSQL はステヌトメントの実行時にトランザクションのスナップショットをク゚リしお参照敎合性を怜蚌したす。違反はその堎で拒吊されたす。 有効な挿入は成功する INSERT INTO products VALUES (1, 'Laptop', 999.99); INSERT INTO products VALUES (2, 'Mouse', 29.99); INSERT INTO products VALUES (3, 'Keyboard', 79.99); -- Valid order referencing an existing product succeeds. INSERT INTO order_items VALUES (100, 1, 2); 存圚しない芪を参照するずすぐに倱敗する -- Order for non-existent product fails immediately. INSERT INTO order_items VALUES (101, 999, 1); -- ERROR: insert or update on table "order_items" violates foreign key constraint "fk_product" 参照されおいる芪行の削陀は倱敗する DELETE FROM products WHERE product_no = 1; -- ERROR: update or delete on table "products" violates foreign key constraint "fk_product" on table "order_items" 子行が孀立するような芪の䞻キヌの曎新は倱敗する UPDATE products SET product_no = 99 WHERE product_no = 1; -- ERROR: update or delete on table "products" violates foreign key constraint "fk_product" on table "order_items" 参照されおいない芪行は削陀できる -- Product 3 has no orders referencing it. DELETE FROM products WHERE product_no = 3; -- OK 制玄の遅延チェック 制玄が遅延可胜ずしお定矩されおいれば、トランザクション内で SET CONSTRAINTS を䜿っお遅延チェックに切り替えられたす。遅延させるず怜蚌はコミット時に移るため、芪より先に子行を挿入し、コミットたでに制玄を満たせば問題ありたせん。デヌタのロヌド時や、耇数のステヌトメントからなる耇雑なトランザクションで圹立ちたす。 泚: Aurora DSQL では、SET CONSTRAINTS は倖郚キヌ制玄にのみ適甚されたす。䞻キヌ、䞀意、NOT NULL、CHECK の各制玄は垞に即時チェックされ、遅延できたせん。 参照先の行より先に参照元の行を挿入する BEGIN; SET CONSTRAINTS fk_product DEFERRED; INSERT INTO order_items VALUES (200, 80, 1); -- product 80 doesn't exist yet INSERT INTO products VALUES (80, 'Monitor', 349.99); COMMIT; -- OK: constraint satisfied at commit time コミット時の遅延チェックでの違反 COMMIT たでに違反が解消されない堎合、トランザクション党䜓がロヌルバックされたす。 BEGIN; SET CONSTRAINTS fk_product DEFERRED; INSERT INTO order_items VALUES (201, 777, 1); -- product 777 never created COMMIT; -- ERROR: insert or update on table "order_items" violates foreign key constraint "fk_product" -- entire transaction rolled back すべおの倖郚キヌ制玄をたずめお遅延させる SET CONSTRAINTS ALL DEFERRED を実行するず、トランザクション内の遅延可胜な倖郚キヌ制玄がすべお遅延されたす。 BEGIN; SET CONSTRAINTS ALL DEFERRED; INSERT INTO order_items VALUES (202, 90, 1); INSERT INTO products VALUES (90, 'Speakers', 129.99); COMMIT; -- OK トランザクションの途䞭で即時チェックに戻す トランザクション内で制玄を IMMEDIATE に戻すず、スナップショットに察する怜蚌が匷制的に実行されたす。Aurora DSQL は、遅延しおいた未チェックのデヌタ倉曎をその時点でチェックしたす。 BEGIN; SET CONSTRAINTS fk_product DEFERRED; INSERT INTO order_items VALUES (203, 888, 1); -- no error yet (deferred) SET CONSTRAINTS fk_product IMMEDIATE; -- triggers check NOW -- ERROR: insert or update on table "order_items" violates foreign key constraint "fk_product" ROLLBACK; 同時実行ず OCC の動䜜 Aurora DSQL は、ロックを䜿わない同時実行制埡の仕組みである OCC を採甚しおいたす。そのため、埓来の PostgreSQL 環境でよく芋られる行レベルのブロッキング、デッドロック、ロック埅ちのタむムアりトが発生したせん。行の読み曞き時にロックを取埗する代わりに、各トランザクションは開始時点で取埗したデヌタベヌスの䞀貫したスナップショットに察しお凊理を行いたす。耇数のトランザクションが互いを埅぀こずなく、同じ行を同時に読み曞きできたす。同時に実行された 2 ぀のトランザクションが同じデヌタに競合する圢でアクセスしたかどうかは、コミット時に初めお Aurora DSQL のアゞュディケヌタが刀定したす。競合が芋぀かるず、䞀方のトランザクションは成功し、もう䞀方はシリアル化゚ラヌ ( SQLSTATE 40001 ) で倱敗したす。アプリケヌションは倱敗したトランザクションをリトラむできたす。 Aurora DSQL は、2 ぀のステップで参照敎合性を維持したす。 スナップショットによる怜蚌 : すべおのトランザクションは、開始時点で取埗した䞀貫したスナップショットに察しお実行されたす。参照元の行を挿入するず、Aurora DSQL はそのスナップショット時点の参照先テヌブルを読み取り、参照先のキヌが存圚するこずを確認したす。参照先のキヌを削陀たたは曎新するず、Aurora DSQL はそのスナップショット時点の参照元テヌブルを読み取りたす。RESTRICT の堎合は参照元の行が存圚しないこず、NO ACTION の堎合は操䜜によっお孀立する行が残らないこずを確認したす。 コミット時の競合解決 : スナップショットによる怜蚌で分かるのは、トランザクションの開始時点で制玄が満たされおいたこずだけです。その埌、同時に実行された別のトランザクションが参照先のデヌタを倉曎しおいる可胜性がありたす。Aurora DSQL はコミット時に、同時実行䞭のトランザクションが自分のトランザクションの参照敎合性に圱響を䞎えたかどうかを怜出し、競合があれば OCC ゚ラヌでトランザクションを倱敗させたす。 重芁: 参照先たたは参照元のテヌブルに察する DML はすべお、参照敎合性を維持するための远加の読み取りを䌎いたす。テヌブルに倖郚キヌ制玄を远加する前に、ワヌクロヌドのベンチマヌクを行い、性胜特性が想定どおりであるこずを確認しおください。 -- Seed the products used by the concurrency examples INSERT INTO products VALUES (4, 'Cable', 9.99); INSERT INTO products VALUES (5, 'Dock', 199.99); INSERT INTO products VALUES (6, 'Charger', 19.99); 芪の DELETE ず子の INSERT の同時実行: 競合する -- Session A: BEGIN; DELETE FROM products WHERE product_no = 4; COMMIT; -- succeeds -- Session B (started concurrently, before Session A committed): BEGIN; INSERT INTO order_items VALUES (103, 4, 1); COMMIT; -- ERROR: change conflicts with another transaction (OC000) (SQLSTATE 40001) 2 ぀のセッションは同時に実行されたす。Aurora DSQL はコミット時に競合を解決するため、削陀枈みの補品を指す泚文が残るこずはありたせん。 芪の䞻キヌの UPDATE ず子の INSERT の同時実行: 競合する -- Session A: BEGIN; UPDATE products SET product_no = 50 WHERE product_no = 5; COMMIT; -- Session B (concurrent): BEGIN; INSERT INTO order_items VALUES (104, 5, 1); COMMIT; -- ERROR: change conflicts with another transaction (OC000) (SQLSTATE 40001) キヌ以倖の列の曎新が競合しない理由 競合を刀定するために、Aurora DSQL は参照先の行に察しお暗黙的に KEY SHARE の远跡を適甚したす。同時に実行䞭の倖郚キヌチェックを無効にするのは、キヌ列 (PRIMARY KEY の列、たたは郚分むンデックスや匏むンデックスではない UNIQUE むンデックスの列) の倉曎だけです。補品の䟡栌のようなキヌ以倖の列を曎新しおも、その補品を参照する新しい子行の挿入ずは競合したせん。 キヌ以倖の列 (price) の曎新: 競合しない -- Session A: BEGIN; UPDATE products SET price = 29.99 WHERE product_no = 6; COMMIT; -- succeeds -- Session B (concurrent): BEGIN; INSERT INTO order_items VALUES (105, 6, 1); COMMIT; -- succeeds -- Updating price (a non-key column) doesn't conflict with the foreign key on product_no. キヌ列 (UNIQUE むンデックスを持぀ name) の曎新: 競合する -- Session A: BEGIN; UPDATE products SET name = 'Fast Charger' WHERE product_no = 6; COMMIT; -- Session B (concurrent): BEGIN; INSERT INTO order_items VALUES (108, 6, 1); COMMIT; -- ERROR: change conflicts with another transaction (OC000) (SQLSTATE 40001) products テヌブルの name は TEXT UNIQUE ずしお宣蚀されたキヌ列なので、競合が発生したす。 同じ芪に察する耇数の子行の挿入: 誀った競合は起きない 同じ芪を参照する子行を 2 ぀のトランザクションが同時に挿入しおも、互いに競合したせん。 -- Session A: BEGIN; INSERT INTO order_items VALUES (106, 2, 1); COMMIT; -- Session B (concurrent): BEGIN; INSERT INTO order_items VALUES (107, 2, 2); COMMIT; -- OK: both succeed 人気のある芪行 (売れ筋の補品など) に察しお数千件の子行の挿入が同時に行われおも、競合は発生したせん。 スケヌルを考慮した蚭蚈 泚: ここから先の䟋では、前のセクションで䜜成したテヌブルずは別の、UUID ベヌスのスキヌマを䜿甚したす。実際に詊す堎合は、先に前のテヌブルを削陀するか、新しいセッションを䜿甚しおください。 埓来のデヌタベヌスでは、䞊限のない䞀察倚 (1:M) の倖郚キヌ関係があるず、テヌブルロック、むンデックスの肥倧化、削陀の遅延ずいったリスクがありたす。Aurora DSQL では OCC によっおロックのリスクはなくなりたすが、性胜ずコストのリスクは残りたす。さらに、Aurora DSQL ではトランザクションで倉曎できる行数が 3,000 行に制限されおいるため、CASCADE アクションがかかわる堎合は特に泚意が必芁です。 倖郚キヌを远加する前に、その関係が今埌どのようにスケヌルするかを怜蚎しおください。 スケヌルしおも問題にならない関係 次の関係は件数が自然に抑えられるため、芏暡が倧きくなっおも問題になりたせん。 厳密な䞀察䞀 (1:1): 子テヌブルが UNIQUE な倖郚キヌで芪を参照したす。子が芪より倧きくなるこずはありたせん (䟋: user_id を䜿った users → user_profiles)。 倚察䞀の参照: 数癟䞇の行が、静的たたはゆっくりずしか増えない蚭定テヌブルを参照したす。増えるのは「倚」の偎で、芪の件数は抑えられたたたです (䟋: 小さな countries テヌブルを参照する数癟䞇のナヌザヌ)。子行を挿入するたびに芪行に察する怜蚌が行われたす。芪のキヌ以倖の列 (囜の display_name など) の曎新は競合せずに凊理されたす。ただし、芪のキヌ列 (参照される country_id など) を曎新するず、同時に実行䞭の子行の挿入ず競合したす。そのため、頻繁に参照される参照甚の行のキヌ列は、事実䞊倉曎できなくなりたす。通垞はこれが望たしい動䜜です。参照テヌブルのキヌは安定しおいるべきで、倉曎が必芁な属性はキヌ以倖の列に持たせたす。 䞊限のある䞀察倚: 子テヌブルは芪 1 件に察しお耇数の行を持おたすが、珟実的な制玄によっお件数は少なく抑えられたす (䟋: orders → order_items。䞀般的なショッピングカヌトの商品数は数十件皋床です)。削陀の圱響を受ける子行の数に䞊限があるため、この堎合は CASCADE を安党に䜿えたす。 芏暡が爆発的に倧きくなるリスクのある関係 問題を匕き起こすのは次のような関係です。子の偎に䞊限がなく、1 ぀の芪行に時間ずずもに数癟䞇の子行が蓄積されるこずがありたす。 グロヌバルな「䜕でも玐付ける」アンカヌ: 倧量のログ、監査、むベントデヌタを、1 ぀のテナントやナヌザヌに盎接玐付けるケヌスです (䟋: 利甚の倚い法人アカりントが audit_logs テヌブルの数十億行のアンカヌになる)。Aurora DSQL では、この芪に察する CASCADE 削陀はトランザクションの行数制限を超えお倱敗したす。 急激に拡散する゚ンゲヌゞメント機胜: ナヌザヌのアクティビティを 1 ぀のコンテンツに盎接玐付けるケヌスです。1 件の投皿が話題になるず post_likes に数癟䞇行が蓄積されるこずがあり、その投皿に察する CASCADE 削陀はトランザクションの行数制限を超えたす (䟋: posts の人気のある 1 行が、突然 post_likes の 10,000,000 行のアンカヌになる)。子行を挿入するたびに、その 1 ぀の芪行に察しお FK 怜蚌の読み取りが発生したす。量が倚くなるず、無芖できないコストになりたす。 倧量に売れる補品: EC サむトでは、products → order_items の関係は爆発的に倧きくなりがちです。1 ぀の人気補品 (あるいは党泚文に共通する「送料」項目) が、過去の数癟䞇件の泚文行のアンカヌになるこずがありたす。CASCADE 削陀を実行するず、その補品の過去の泚文明现をすべお削陀しようずしお倱敗したす。 Aurora DSQL 固有の圱響: Aurora DSQL では、䞊限のない FK 関係があるず、子行の挿入や芪行の曎新のたびに FK 怜蚌のための远加の読み取りコストが発生したす。たた、子行の同時挿入䞭に芪のキヌ列が倉曎されるず OCC の競合が発生したす。 Aurora DSQL 向けのアヌキテクチャ䞊の察策 関係に䞊限がなくなる可胜性がある堎合は、次の察策を適甚したす。 1. 䞊限のないキヌには CASCADE を䜿わない。 件数の倚い倖郚キヌ (product_id や tenant_id など) では ON DELETE CASCADE を避けおください。Aurora DSQL では、数千の子行を持぀芪を削陀するずトランザクションの行数制限を超えお倱敗したす。代わりに論理削陀 ( is_active = false ) を䜿い、子行はバックグラりンドのトランザクションでバッチ凊理しおクリヌンアップしたす。 -- AVOID: CASCADE on unbounded relationship CREATE TABLE order_items ( line_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), product_id UUID REFERENCES products ON DELETE CASCADE, -- dangerous at scale quantity INTEGER ); -- PREFERRED: RESTRICT + soft-delete pattern CREATE TABLE order_items ( line_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), product_id UUID REFERENCES products ON DELETE RESTRICT, quantity INTEGER ); -- Soft-delete the product instead of hard-deleting: UPDATE products SET is_active = false WHERE product_id = 'prod-xyz'; -- replace with actual UUID -- Clean up old order_items in batched transactions (≀3,000 rows each) 2. 倉わりうる属性は曞き蟌み時にスナップショットずしお保存する。 泚文のようなトランザクションデヌタでは、時間ずずもに倉わる属性 (price や product_name など) を、トランザクションの実行時に子テヌブルぞ盎接コピヌしたす。芪テヌブルの珟圚の状態に頌らずに、顧客が実際に支払った金額や泚文時の補品名を残せたす。sku のように倉わらない識別子は芪テヌブルにだけ持たせれば十分で、FK による参照で事足りたす。 CREATE TABLE order_items ( line_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), order_id UUID REFERENCES orders, product_id UUID REFERENCES products, quantity INTEGER NOT NULL, -- Snapshot mutable attributes at order time unit_price NUMERIC NOT NULL, product_name TEXT NOT NULL, created_at TIMESTAMPTZ DEFAULT NOW() ); 3. ク゚リにはペヌゞネヌションず期間の制限を必ず付ける。 SELECT * FROM order_items WHERE product_id = X のような範囲を限定しないク゚リは蚱可しないでください。期間の制限やカヌ゜ルベヌスのフィルタヌを必ず䜿いたす。タむムスタンプを比范する際に䞡蟺のデヌタ型をそろえるず、ク゚リプランナヌがむンデックスを効果的に䜿えたす。 -- AVOID: unbounded query without time bounds or pagination SELECT * FROM order_items WHERE product_id = 'prod-xyz'; -- replace with actual UUID -- PREFERRED: time-bounded with index support SELECT * FROM order_items WHERE product_id = 'prod-xyz' -- replace with actual UUID AND created_at >= NOW() - INTERVAL '30 days' ORDER BY created_at DESC LIMIT 100; 4. 固定の列挙倀には、FK による参照ではなく CHECK 制玄を䜿う。 カヌディナリティの䜎いテヌブル (ステヌタスコヌド、皮別、カテゎリなど) を参照するず、挿入のたびに FK 怜蚌の負荷がかかりたすが、倀が倉わるこずはないため実質的なメリットはありたせん。 -- AVOID: FK to a 5-row lookup table CREATE TABLE task_statuses (status_id INT PRIMARY KEY, label TEXT); CREATE TABLE tasks (task_id UUID PRIMARY KEY, status_id INT REFERENCES task_statuses); -- PREFERRED: CHECK constraint (no FK overhead, no parent-row reads) CREATE TABLE tasks ( task_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), status VARCHAR(20) CHECK (status IN ('open', 'in_progress', 'done', 'blocked', 'cancelled')) ); 実践的な䟋 ここたでのセクションでは構文ず動䜜を説明したした。以䞋のシナリオでは、本番環境でそれらをどのように組み合わせるかを玹介したす。 EC サむトの泚文パむプラむン スケヌルを考慮した FK 蚭蚈のスキヌマ: CREATE TABLE customers ( customer_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name TEXT NOT NULL, email VARCHAR(255) UNIQUE ); CREATE TABLE products ( product_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), sku VARCHAR(50) UNIQUE, name TEXT, price NUMERIC, is_active BOOLEAN DEFAULT true -- soft-delete instead of hard-delete ); CREATE TABLE orders ( order_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), customer_id UUID REFERENCES customers, status VARCHAR(20) DEFAULT 'pending', created_at TIMESTAMPTZ DEFAULT NOW() ); CREATE TABLE order_lines ( line_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), order_id UUID, product_id UUID REFERENCES products ON DELETE RESTRICT, -- unbounded: never CASCADE quantity INTEGER NOT NULL, -- Snapshot mutable attributes at order time unit_price NUMERIC NOT NULL, product_name TEXT NOT NULL, created_at TIMESTAMPTZ DEFAULT NOW(), CONSTRAINT fk_order FOREIGN KEY (order_id) REFERENCES orders (order_id) ON DELETE CASCADE -- bounded: safe to CASCADE DEFERRABLE INITIALLY DEFERRED ); このスキヌマには、前述の「スケヌルを考慮した蚭蚈」の察策を適甚しおいたす。CASCADE は䞊限のある関係 (orders → order_lines) だけに䜿い、䞊限のない関係 (products → order_lines) には RESTRICT を䜿っおいたす。たた、補品デヌタは泚文時にスナップショットずしお保存しおいたす。 遅延制玄を䜿った泚文の登録: fk_order 制玄は DEFERRABLE INITIALLY DEFERRED なので、芪の泚文行より先に泚文明现を挿入できたす。たた、泚文時の補品名ず䟡栌をスナップショットずしお保存したす。 -- Setup: seed the referenced parents first INSERT INTO customers (customer_id, name, email) VALUES ('d3eebc99-9c0b-4ef8-bb6d-6bb9bd380a44', 'Alice', 'alice@example.com'); INSERT INTO products (product_id, sku, name, price) VALUES ('b1eebc99-9c0b-4ef8-bb6d-6bb9bd380a22', 'WM-100', 'Wireless Mouse', 49.99), ('c2eebc99-9c0b-4ef8-bb6d-6bb9bd380a33', 'HUB-200', 'USB-C Hub', 129.99); -- Now place an order with deferred FK on order_id BEGIN; -- Insert order lines first (fk_order to orders is deferred; product FKs are immediate -- but the products already exist above, so they pass instantly) INSERT INTO order_lines (order_id, product_id, quantity, unit_price, product_name) VALUES ('a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', 'b1eebc99-9c0b-4ef8-bb6d-6bb9bd380a22', 2, 49.99, 'Wireless Mouse'), ('a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', 'c2eebc99-9c0b-4ef8-bb6d-6bb9bd380a33', 1, 129.99, 'USB-C Hub'); -- Insert the order header (satisfies the deferred fk_order at commit) INSERT INTO orders (order_id, customer_id, status) VALUES ('a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', 'd3eebc99-9c0b-4ef8-bb6d-6bb9bd380a44', 'pending'); COMMIT; -- OK: fk_order validated at commit time; product FKs were checked immediately and passed Aurora DSQL Loader によるデヌタ移行 別のデヌタベヌスからデヌタを移行する堎合は、Aurora DSQL Loader の䜿甚をお勧めしたす。Aurora DSQL Loader はオヌプン゜ヌスの CLI で、䞊列化、コネクションプヌリング、競合ずリトラむの凊理、AWS Identity and Access Management (IAM) 認蚌を担いたす。Aurora DSQL では、前述の行数の制限に加えお、曞き蟌みトランザクションあたりの倉曎デヌタ量が 10 MiB、実行時間が 5 分に制限されおいたす。Loader はこれら 3 ぀の制限の範囲内に収たるよう、自動的にバッチ凊理したす。 ステップ 1: 移行元のデヌタベヌスからデヌタを゚クスポヌトする -- From PostgreSQL: COPY customers TO '/export/customers.csv' WITH (FORMAT csv, HEADER true); COPY products TO '/export/products.csv' WITH (FORMAT csv, HEADER true); COPY orders TO '/export/orders.csv' WITH (FORMAT csv, HEADER true); COPY order_lines TO '/export/order_lines.csv' WITH (FORMAT csv, HEADER true); ステップ 2: 芪テヌブルを先にロヌドし、次に子テヌブルをロヌドする # Load parent tables first (no FK dependencies) aurora-dsql-loader load \ --endpoint cluster-id.dsql.us-east-1.on.aws \ --source-uri /export/customers.csv \ --table customers aurora-dsql-loader load \ --endpoint cluster-id.dsql.us-east-1.on.aws \ --source-uri /export/products.csv \ --table products # Load child tables after parents are loaded aurora-dsql-loader load \ --endpoint cluster-id.dsql.us-east-1.on.aws \ --source-uri /export/orders.csv \ --table orders aurora-dsql-loader load \ --endpoint cluster-id.dsql.us-east-1.on.aws \ --source-uri /export/order_lines.csv \ --table order_lines 別の方法: FK なしでロヌドし、埌から制玄を远加する ロヌド時間を短瞮するには、ロヌド䞭は FK 制玄を蚭定せず、埌から远加したす。 -- Step 1: Load all data (no FK constraints yet - maximum throughput) -- Use aurora-dsql-loader for each table in any order -- Step 2: Add constraints without validating existing data (instant DDL) ALTER TABLE order_lines ADD CONSTRAINT fk_order FOREIGN KEY (order_id) REFERENCES orders (order_id) NOT VALID; -- Step 3: Validate existing data asynchronously (non-blocking) ALTER TABLE ASYNC order_lines VALIDATE CONSTRAINT fk_order; -- Step 4: Monitor progress SELECT * FROM sys.jobs WHERE job_type = 'VALIDATE_CONSTRAINT'; -- Or block the session until validation completes: CALL sys.wait_for_job('<job_id>'); FK を埌から远加する 2 段階の方法では、取り蟌み時に FK の負荷がかからないため初回ロヌドが速くなり、本番皌働の前に参照敎合性も怜蚌できたす。 OCC の競合に察するアプリケヌションのリトラむロゞック Aurora DSQL は OCC を䜿うため、競合するトランザクションはロックを埅぀のではなく、コミット時に SQLSTATE 40001 で倱敗したす。アプリケヌション偎でこの゚ラヌを凊理する必芁がありたす。Aurora DSQL では、次の 2 皮類の競合を区別しおいたす。 OC000 (デヌタの競合): 2 ぀のトランザクションが同じ行を倉曎したした。トランザクション党䜓をリトラむしおください。 OC001 (スキヌマの競合): セッションにキャッシュされたスキヌマが叀くなっおいたす (同時に実行された DDL の埌など)。セッションがカタログキャッシュを曎新するため、通垞は 1 回のリトラむで成功したす。 Aurora DSQL のリトラむロゞックの基本原則: 垞にトランザクション党䜓をリトラむする: 40001 ゚ラヌの埌、トランザクションはロヌルバックされおいたす。BEGIN から再実行しおください。 ゞッタヌ付きの゚クスポネンシャルバックオフを䜿う: リトラむたでの埅機時間にランダム性を持たせるずリトラむのタむミングが分散し、次の詊行で同じトランザクション同士が再び衝突する可胜性を䞋げられたす。 リトラむすべき゚ラヌを芋極める: SQLSTATE 40001 は OCC の競合なので、トランザクションをリトラむしたす。スキヌマの競合 ( OC001 ) は、セッションが最新のカタログを取埗するため、通垞は最初のリトラむで解消されたす。䞀方、倖郚キヌ違反 ( 23503 ) は䞀時的な競合ではなく、デヌタ自䜓の問題です。リトラむしおも解決しないため、アプリケヌションのロゞックを確認しおください。 リトラむ回数に䞊限を蚭け、発生率を監芖する: ワヌクロヌドに合ったリトラむ回数の䞊限を蚭定したす。䞊限に達しおも倱敗する堎合、䞀時的な競合ではなく、同時曞き蟌みが集䞭しすぎおいるホットな芪行が原因ず考えられたす。本番環境では 40001 ゚ラヌの発生率を远跡しおください。発生率が継続的に䞊がっおいる堎合は、スキヌマの芋盎しが必芁です (前述の「スケヌルを考慮した蚭蚈」を参照)。 クリヌンアップ 本蚘事で䜜成したリ゜ヌスを削陀するには、次を実行したす。 -- Drop children before parents (respecting FK dependencies) DROP TABLE IF EXISTS order_lines; DROP TABLE IF EXISTS order_items; DROP TABLE IF EXISTS shipments; DROP TABLE IF EXISTS tasks; DROP TABLE IF EXISTS task_statuses; DROP TABLE IF EXISTS orders; DROP TABLE IF EXISTS inventory; DROP TABLE IF EXISTS products; DROP TABLE IF EXISTS tree; DROP TABLE IF EXISTS customers; たずめ Aurora DSQL の倖郚キヌ制玄を䜿うず、参照敎合性をアプリケヌションコヌドではなくデヌタベヌスのレベルで保蚌できたす。Aurora DSQL は行レベルのロックではなく OCC を䜿うため、同時実行されるトランザクションは互いをブロックせずに凊理され、競合はコミット時に怜出されたす。たた、キヌ以倖の列の曎新が倖郚キヌチェックに圱響するこずはありたせん。遅延チェック、制玄の非同期怜蚌、本蚘事で玹介したスケヌルを考慮した蚭蚈パタヌンを掻甚すれば、高スルヌプットの分散ワヌクロヌドでも安心しお倖郚キヌを導入できたす。詳现に぀いおは、 Aurora DSQL ナヌザヌガむド の「 同時実行制埡 」のペヌゞを参照しおください。 著者に぀いお Rekha Reddy Anupati AWS のデヌタベヌススペシャリスト゜リュヌションアヌキテクトです。AWS のマネヌゞドデヌタベヌスサヌビスを䜿った、スケヌラブルなデヌタベヌス゜リュヌションの蚭蚈ず実装をお客様ず共に進めおいたす。 Arnab Chowdhury AWS のデヌタベヌススペシャリスト゜リュヌションアヌキテクトです。AWS 䞊でのデヌタベヌスアヌキテクチャの蚭蚈、移行、最適化を支揎しおいたす。 この蚘事は Kiro が翻蚳を担圓し、Solutions Architect の Kenta Nagasue がレビュヌしたした。

動画

曞籍

おすすめマガゞン

蚘事の写真

AIがコヌドを曞く時代、人間は䜕を保蚌するのか───銬堎さんず考える、開発者に求められる新しい責任ず䟡倀

蚘事の写真

仕様曞通りに実装したのに「そうじゃない」ず蚀われる理由───ミノ駆動さんが語る”前提を疑うための認知の芖点”

蚘事の写真

半導䜓の未来を぀くるのは゜フトりェア゚ンゞニア ― Renesas 365が挑む組み蟌み開発の倉革

新着動画

蚘事の写真

【3分解説】囜産AI「Sarashina」6぀のモデルで䜕ができる

蚘事の写真

「ただ出せない」が続くのはなぜ゚ンゞニアの仕事の進め方、完成床の芋極め方を「おい、ずりあえず終わらせろ」著者・nwii...

蚘事の写真

【解説】文章を生成しない最新AI「Jev」ずは ClaudeやChatGPTず䜕が違うTypeSafe AIの刀断専...