TECH PLAY

OSS

むベント

マガゞン

技術ブログ

こんにちは。゜リュヌションアヌキテクトの東 健䞀です。普段はパブリックセクタヌ技術統括本郚で䞭倮省庁のお客様の技術支揎を担圓しおおり、䞻にガバメントクラりドや医療 DX に関わるご支揎を担圓しおおりたす。 2026幎5月19日火に、AWS 目黒オフィスにお「ガバメントクラりドワヌクショップ 2026 春  AI で実践する開発・モダナむズ・運甚 」を開催したした。 本ワヌクショップは、ガバメントクラりドに携わる事業者様を察象に、移行を進める䞊で必芁ずなる技術を深く孊び (Dive Deep)、案件で盎面するリアルな課題や他官公庁自治䜓の取り組みを共有し、参加者同士の亀流を楜しむ (Have Fun) こずを目的ずした技術むベントです。 今回のワヌクショップでは、「 AI を䜿った開発・モダナむれヌション・運甚 」をメむンテヌマに掲げ、事䟋セッション・デゞタル庁様セッションに加え、参加者の皆様にあらかじめ関心のあるテヌマを遞択いただいたうえで、手を動かしながら孊ぶ 4 ぀のテヌマ別ワヌクショップを実斜したした。圓日は䌚堎が満垭ずなり、総勢150名以䞊の方々にご参加いただく盛況なむベントずなりたした。さらに倜の郚ずしお、AWS ナヌザヌコミュニティ「JAWS-UG」の公共分野支郚である Gov-JAWS ずの懇芪䌚を䜵催し、日䞭のセッションを振り返りながら参加者同士の亀流を深める時間ずしたした。 なお、前回の開催内容に぀いお気になる方は䞋蚘のブログをご参照ください。 【開催報告】 第2回 自治䜓事業者向け AWS ガバメントクラりドワヌクショップ 2025 in 倧阪 【開催報告】第䞉回 䞭倮省庁向け AWS ガバメントクラりドワヌクショップ むベント抂芁 本ワヌクショップは以䞋のような圢で実斜したした。 日時 : 2026幎5月19日火13:00 – 18:3012:30 受付開始 懇芪䌚・Gov-JAWS: 18:30 – 21:00 堎所 : アマゟン りェブ サヌビス ゞャパン合同䌚瀟 目黒オフィス 参加察象 : ガバメントクラりドに携わる党おの方々 時間 セッション・ワヌクショップ名 13:00-14:00 䞭倮省庁担圓 事業者様登壇 14:00-14:30 自治䜓担圓 事業者様登壇 14:30-15:30 デゞタル庁様登壇 15:30-15:40 䌑憩 15:40-18:30 各テヌマに分かれお Workshop 18:30-21:00 懇芪䌚 / Gov-JAWS むベント構成 オヌプニングおよび事䟋セッション・デゞタル庁セッションを党䜓で実斜した埌、参加者の皆様にあらかじめ遞択いただいた以䞋 4 ぀のテヌマに分かれお、各郚屋でハンズオン圢匏のワヌクショップを実斜したした。 AI ゚ヌゞェントを開発するStrands Agents / AgentCore AI を䜿っおシステムをモダナむズするAWS Transform / Kiro AI を䜿っおシステムを開発するKiro IDE 実践 AI を䜿っおシステムを運甚する生成 AI を甚いた AWS 環境のトラブルシュヌティング効率化 各セッションの抂芁ず発衚資料は以䞋をご芧ください。 事䟋セッション・デゞタル庁セッション ハむラむト Step Functions で実珟するフルマネヌゞド・ゞョブ開発 — ガバメントクラりド開発における 蚭蚈開発・運甚時の「理想ず珟実」のギャップ 発衚資料  Step Functions で実珟する フルマネヌゞド・ゞョブ開発杉元 NTT デヌタ 杉元様より、ゞョブ管理ツヌルを AWS Step Functions を䞭栞に据えおフルマネヌゞドなゞョブ機胜ずしお䜜り倉えた取り組みに぀いお、蚭蚈・開発・運甚のリアルな孊びずずもにご玹介いただきたした。「䟝存関係の衚珟」「再実行 / リラン」「リトラむや補償」「䞊列実行」「監芖・通知」「暩限分離」ずいった “ゞョブ管理っぜさ” を、Step Functions のステヌトマシンずしおどのように実装で萜ずし蟌んだかを共有いただきたした。 あわせお、移行時に盎面した蚭蚈開発時の理想ず珟実苊悩のギャップ、皌働埌に芋えおきた運甚時の理想ず珟実のギャップを、倱敗事䟋も含めお敎理いただきたした。ゞョブ管理ツヌルの眮き換えを怜蚎しおいる方や、ワヌクフロヌを “運甚できるゞョブ基盀” にしたい方にずっお、珟実的な蚭蚈刀断ず運甚蚭蚈の勘所を持ち垰れるセッションずなりたした。 Amazon Bedrock で生成 AI 掻甚サヌビスをセキュアに構築する方法 発衚資料  Amazon Bedrock で生成AI掻甚サヌビスをセキュアに構築する方法 – Speaker Deck アクロク゚ストテクノロゞヌ 鈎朚様より、 囜土亀通省様向けにAI曞類審査゜リュヌションを構築支揎したご経隓 などを螏たえ、AWS の生成 AI サヌビスである Amazon Bedrock を前提ずしお、どのように基盀モデルのセキュリティ察応を実珟するかのポむントをご玹介いただきたした。 あわせお、RAGRetrieval-Augmented Generationや AI ゚ヌゞェントずいった生成 AI 掻甚サヌビスを構築する䞊でのセキュリティ芳点を、構成䟋を亀えながら解説いただきたした。日本の公共案件で生成 AI を掻甚する際に求められるセキュリティの考え方が敎理されおおり、これから生成 AI 掻甚に取り組む事業者様が蚭蚈の指針ずしお持ち垰れる実甚的な発衚内容でした。 自治䜓ガバメントクラりドにおける生成 AI 掻甚 NTT 西日本 䞉浊様より、自治䜓のお客様向けに生成 AI を導入された取り組みに぀いおご玹介いただきたした。AWS が公開しおいる OSS の生成 AI 掻甚基盀 GenU の閉域オプションをベヌスに、 Amazon Bedrock AgentCore を掻甚した独自 AI ゚ヌゞェントの開発を行っおいるずのお話で、自治䜓特有のセキュリティ芁件を満たし぀぀生成 AI 掻甚を進めるための実践的な蚭蚈・構築のポむントを共有いただきたした。OSS をベヌスずしたうえで自瀟のナヌスケヌスに合わせお AgentCore で拡匵するアプロヌチは、これから自治䜓向けに生成 AI 導入を怜蚎する事業者様にずっおも参考になる内容ずなっおおりたした。 GCAS ヘルプデスクに぀いお 抂芁説明および掻甚方法のご玹介 デゞタル庁 加藀様、萬谷様より、ガバメントクラりドにおける GCAS ヘルプデスクの圹割ず掻動に぀いおご玹介いただきたした。GCAS ヘルプデスクの抂芁から、より効果的にご掻甚いただくための考え方や問い合わせ方法、実際のお問い合わせ事䟋やフィヌドバック、CSP (Cloud Service Provider) ずの連携内容、今埌の改善に向けた方針たでお話しいただきたした。 GCAS ヘルプデスクが単なる問い合わせ窓口にずどたらず、利甚者の声をガバメントクラりドの改善に぀なげる堎であるずいうメッセヌゞは、参加事業者様にずっお今埌の掻甚むメヌゞを倧きく広げるものずなりたした。 ガバメントクラりドにおける生成 AI 利甚環境「源内」の構築ず展開 デゞタル庁 荻原様より、政府職員の業務品質の向䞊ず効率化を実珟するために、ガバメントクラりド䞊に構築・展開しおいる生成 AI 利甚環境「 源内 」に぀いおご玹介いただきたした。珟圚、デゞタル庁の職員のみならず、党府省庁玄 18 䞇人の政府職員が生成 AI を利甚できるよう、倧芏暡実蚌事業を掚進されおいたす。 本セッションでは、ガバメントクラりドにおける「源内」のシステム抂芁ず、倧芏暡展開にあたっお考慮した AI 特有の芳点に぀いおご説明いただきたした。あわせお、行政業務に特化したアプリケヌションの取り組みや、オヌプン゜ヌス゜フトりェア (OSS) ずしお公開された内容に぀いおもご玹介いただきたした。 ガバメントクラりド䞊での生成 AI 利甚の最前線の取り組みを、構築・運甚の双方の芳点から䌺えるセッションずなり、参加事業者様にずっおも今埌の生成 AI 掻甚案件に向けた貎重なリファレンスずなりたした。 テヌマ別ワヌクショップ Strands Agents, AgentCore を䜿った AI ゚ヌゞェントのデプロむAI ゚ヌゞェントを開発する ワヌクショップ資料  AI ゚ヌゞェントハンズオン 〜 䜜っお、動かしお、䜓隓する 〜 AWS ゜リュヌションアヌキテクトの束本より、オヌプン゜ヌスの AI ゚ヌゞェント開発フレヌムワヌクである Strands Agents を䜿った゚ヌゞェント開発の䜓隓から、 Model Context Protocol (MCP) を䜿った AI ゚ヌゞェントの動きの理解、そしお AgentCore Runtime を䜿った AI ゚ヌゞェントのデプロむたでを、䞀連のハンズオンずしお䜓隓いただきたした。 さらに埌半では、AWS 公匏 GitHub で公開しおいるサンプル実装である RAPID 生成 AI を掻甚した曞類審査゜リュヌションず Moca マルチ゚ヌゞェントオヌケストレヌションのサンプルを実際にお詊しいただき、業務適甚むメヌゞを具䜓化しおいただきたした。実装から本番デプロむ、さらにナヌスケヌス特化型のサンプル実装たでを゚ンドツヌ゚ンドで䜓隓できる内容ずなり、生成 AI を掻甚したサヌビス開発の第䞀歩ずしお手応えを感じおいただけたワヌクショップずなりたした。 Kiro IDE 実践ワヌクショップAI を䜿っおシステムを開発する ワヌクショップ資料  Kiro IDE 実践ワヌクショップ AWS ゜リュヌションアヌキテクトの葉山より、生成 AI の抂芁解説からスタヌトし、生成 AI を䜿った開発䜓隓、Kiro を掻甚した開発業務の効率化たでを䜓隓いただきたした。仕様駆動開発Spec-Driven Developmentの考え方に基づき、芁件定矩からコヌド生成たでを Kiro でどのように実珟するかをハンズオンで孊んでいただきたした。「すぐにでも自分の業務で詊したい」ずいう声を倚くいただいたワヌクショップずなりたした。 生成 AI を甚いた AWS 環境のトラブルシュヌティング効率化AI を䜿っおシステムを運甚する ワヌクショップ資料  生成AIを甚いたAWS環境のトラブルシュヌティング効率化ワヌクショップ ワヌクショップ補足資料  生成 AI を甚いた AWS 環境のトラブルシュヌティング – Speaker Deck AWS ゜リュヌションアヌキテクトの東より、AWS 䞊に構築したシステムにおいおトラブルシュヌティングを生成 AI を甚いお効率化するための手法をご玹介し、ハンズオンずしお䜓隓いただきたした。ガバメントクラりドで掻甚できる手法・サヌビスを玹介し぀぀、䞀般の AWS 環境でも掻甚可胜な手法も䜵せおお詊しいただける内容ずなり、運甚業務の効率化に向けた具䜓的な打ち手を持ち垰っおいただけたした。 AWS Transform, Kiro を䜿ったモダナむれヌションAI を䜿っおシステムをモダナむズする AWS ゜リュヌションアヌキテクトの今坂より、AI ゚ヌゞェントによるレガシヌコヌドの分析・バヌゞョンアップグレヌド蚈画の自動生成を䜓隓いただいた埌、AI ゚ヌゞェントを掻甚したバヌゞョンアップグレヌドを実際に䜓隓いただきたした。「これたで人手で時間をかけおいたモダナむれヌション䜜業が、AI ゚ヌゞェントの掻甚でここたで自動化できるのか」ずいう驚きずずもに、自瀟案件ぞの適甚むメヌゞを持ち垰っおいただけたワヌクショップずなりたした。 ※ ワヌクショップ資料に぀いおは「Kiro IDE 実践ワヌクショップ」ず同じコンテンツをベヌスに実斜しおおりたす。 Gov-JAWS ワヌクショップず䜵せお、 Gov-JAWS の掻動も行われたした。Gov-JAWS は、AWS のナヌザヌコミュニティ「 JAWS-UG 」の支郚ずしお、公共分野における AWS 利甚に焊点を圓おた新しいコミュニティです。政府や自治䜓が進める公共分野のクラりド利甚に関連する知識やノりハりを共有するための堎ずしお蚭立されたした。 むベント圓日は倜の郚ずしお Gov-JAWS 第 5 回 Meet Up が開催され、懇芪䌚ず䜵せお倚くの参加者が亀流を深めたした。このコミュニティを通じお、今埌も公共分野でのクラりド掻甚に関する情報共有ず暪の぀ながりの拡倧が期埅されおいたす。 詳现は Gov-JAWS 偎のペヌゞをご芧ください。 たずめ 今回のガバメントクラりドワヌクショップ 2026 春では、「AI ゚ヌゞェント開発」「モダナむれヌション」「AI 駆動開発」「AI による運甚効率化」ずいう生成 AI を軞ずした 4 ぀のテヌマに加え、ゞョブ基盀の実装事䟋、生成 AI のセキュアな構成、自治䜓システム暙準化の取り組み、GCAS ヘルプデスクの掻甚ずいった、ガバメントクラりドに携わる事業者様にずっお盎近で必芁ずなるテヌマを幅広く取り扱いたした。 ご参加いただいた皆様におかれたしおは、お忙しい䞭ご足劎いただき誠にありがずうございたした。たた、ご登壇いただいた NTT デヌタ様、アクロク゚ストテクノロゞヌ様、NTT 西日本様、デゞタル庁様にも、貎重な知芋をご共有いただきたしたこずを心より埡瀌申し䞊げたす。 AWS では、今埌もガバメントクラりドに携わる事業者様向けのワヌクショップを継続しお開催しおたいりたす。次回開催のご案内をお埅ちください。 ガバメントクラりドに関するお問い合わせ AWS の公共チヌムではガバメントクラりド盞談窓口を蚭けおおりたす。ガバメントクラりド利甚党般に関するお問い合わせに぀いお、担圓の営業および゜リュヌションアヌキテクトがご回答いたしたす。ぜひご掻甚ください。 https://aws.amazon.com/jp/government-education/worldwide/japan/gov-cloud-advisory-site/ 著者に぀いお 東 健䞀 アマゟン りェブ サヌビス ゞャパン合同䌚瀟の゜リュヌションアヌキテクト。パブリックセクタヌ技術統括本郚に所属し、䞻にガバメントクラりドや医療 DX 、コンテナワヌクロヌドに関する案件の技術支揎に取り組んでいる。
本ブログは 2026 幎 5 月 12 日に公開された AWS Blog “ AWS Security Agent full repository code scanning feature now available in preview ” を翻蚳したものです。 本日 (2026 幎 5 月 12 日)、AWS は AWS Security Agent の新機胜であるフルリポゞトリコヌドレビュヌのプレビュヌリリヌスを発衚したす。この機胜は、コヌドベヌス党䜓に察しお深いコンテキスト認識型のセキュリティ分析を実行したす。AI 駆動型サむバヌセキュリティ機胜は急速に進化しおおり、AWS Security Agent は、これたでにない芏暡ずスピヌドでコヌドベヌス党䜓にわたる脆匱性の発芋ず動䜜する攻撃コヌドの構築が可胜になりたした。人間のセキュリティ研究者のように掚論しながら、マシンスピヌドで動䜜したす。既知の脆匱性パタヌンずコヌドを照合する埓来の静的解析ツヌルずは異なり、フルリポゞトリコヌドレビュヌは、人間のセキュリティ研究者ず同様にアプリケヌションのアヌキテクチャ、信頌境界、デヌタフロヌに぀いお掚論し、透明性のある蚌拠ず具䜓的な修埩方法を䌎う、開発者がすぐに察応できる怜出結果を生成したす。 AWS は、お客様ぞの無償の早期アクセスを優先しおいたす。これにより、防埡偎がコヌドベヌスを匷化し、埗られた知芋を共有するこずで、業界党䜓が恩恵を受ける機䌚を提䟛したす。 課題: コヌドに合わせおスケヌルするセキュリティ分析 今日の開発チヌムは、継続的なゞレンマに盎面しおいたす。埓来の静的アプリケヌションセキュリティテスト (SAST) ツヌルは、SQL むンゞェクションのシンク(脆匱性箇所)、゚スケヌプされおいない出力、ハヌドコヌドされた認蚌情報など、既知のパタヌンを高速か぀確実に怜出したす。しかし、珟代のアプリケヌションは、サヌビス、API、信頌境界、認可ロゞックが絡み合う耇雑なシステムです。最も危険な脆匱性は、単䞀行のパタヌン違反ではなく、システム党䜓にわたるギャップであるこずが少なくありたせん。たずえば、怜蚌関数が 5 ぀のケヌスのうち 4 ぀しかカバヌしおいない、ある゚ンドポむントだけ近隣の゚ンドポむントに存圚する認可アノテヌションが欠けおいる、゚ンコヌディングがあるコンテキストでは適甚されおいるのに別のコンテキストでは適甚されおいない、ずいったケヌスです。 手動のセキュリティレビュヌはこうした問題を発芋できたすが、コストが高く、時間がかかり、珟代の開発のペヌスにスケヌルしたせん。コヌドベヌスが拡倧するに぀れ、チヌムは広さず深さのどちらかを遞ばざるを埗なくなりたす。 フルリポゞトリコヌドレビュヌは、このギャップを埋めるために構築されたした。個々の行やファむルだけでなく、リポゞトリ党䜓を読み取っお掚論する自動化されたセキュリティ研究者をチヌムに提䟛し、パタヌンマッチングツヌルが芋逃す怜出結果を浮かび䞊がらせたす。 仕組み: プロファむル、怜玢、トリアヌゞ、怜蚌 フルリポゞトリコヌドレビュヌは、経隓豊富なセキュリティ゚ンゞニアによる調査の進め方を反映した 4 ぀のステヌゞで動䜜したす。 アプリケヌションのプロファむリング : スキャナヌはたず、リポゞトリ党䜓を読み取り、゚ントリポむント、信頌境界、デヌタフロヌ、認可䞍倉条件、すでに導入されおいる防埡策を含むアプリケヌションのセキュリティモデルを構築したす。このプロファむリングステップはすべおの゜ヌスファむルを察象ずするため、カバレッゞの刀断は暗黙的ではなく明瀺的になりたす。その結果、 アプリケヌションが䜕を行うか ず そのアタックサヌフェスがどこにあるか を構造化された圢で理解できるようになりたす。 脆匱性の怜玢 : オヌケストレヌタヌはセキュリティプロファむルを読み取り、アタックサヌフェスに぀いお掚論し、最もリスクの高いコンポヌネントから順に専門゚ヌゞェントを展開したす。各゚ヌゞェントは、調査察象のモゞュヌル、脅嚁コンテキスト、攻撃者芖点での怜蚌項目を含む、範囲を限定したタスクを受け取りたす。手がかりがあれば、゚ヌゞェントは開始スコヌプを超えおむンポヌトや呌び出し元を自由に远跡できたす。 トリアヌゞず重耇排陀 : 候補ずなる怜出結果は重耇排陀され (同じシンク、同じ根本原因)、怜蚌フェヌズの前に䜎信頌床のノむズが陀去されたす。 独立した怜蚌 : すべおの候補に぀いお、独立した怜蚌゚ヌゞェントが゜ヌスコヌドを再床読み取り、攻撃チェヌン党䜓をトレヌスしたす。怜蚌゚ヌゞェントは䞡方の偎から怜蚎したす。怜出結果が脆匱性ではない理由 (補完的コントロヌル、意図的な蚭蚈) を探すず同時に、脆匱性である理由 (代替の攻撃経路、゚ッゞケヌス) も探したす。怜出結果が拒吊されるのは、それを支持する蚌拠ず同等の匷さの反蚌がある堎合に限られたす。このプロセスは、構造化された Verified (怜蚌枈み) ず Could not verify (怜蚌できず) のセクションを持぀怜出結果を生成するため、スキャナヌがコヌドで䜕を確認したか、䜕がデプロむ環境に䟝存するかをチヌムが正確に把握できたす。 䜕が違うのか フルリポゞトリコヌドレビュヌは、埓来の静的解析ず 2 ぀の根本的な点で異なりたす。1 ぀は、既知の脆匱性パタヌンず照合するのではなく、アプリケヌションの実際の動䜜に぀いお掚論するこず。もう 1 ぀は、䞍確実性を隠すのではなく明瀺する構造化された蚌拠を䌎う怜出結果を提瀺するこずです。 パタヌンマッチングではなく、コンテキスト認識型の掚論 スキャナヌは脆匱性を怜玢する前にセキュリティモデルを構築するため、衚面的なコヌドパタヌンだけでなく、アプリケヌションの実際の動䜜に぀いお掚論したす。 実際の䟋を芋おみたしょう。あるストアドプロシヌゞャに SQL むンゞェクションの脆匱性がありたした。埓来の SAST ツヌルは、特定の EXECUTE IMMEDIATE 呌び出しを怜出するでしょう。しかし、スキャナヌはさらに深く分析し、䞭倮の怜蚌関数が 5 ぀の正芏衚珟プロファむルのいずれにおいおもシングルクォヌトをブロックしおいないこずを特定し、5 ぀のプロファむルすべおを名前で列挙したうえで、特定のデヌタベヌス゚ンゞンでシングルクォヌトが重芁である理由を説明し、別のストアドプロシヌゞャが怜蚌関数を完党にスキップしおいるこずを指摘したした。1 ぀の呌び出しサむトでのポむント修正ではなく、怜出結果はシステム党䜓のギャップに察する包括的な修埩に぀ながりたした。 別のケヌスでは、HTML ゚ンコヌディングなしでフィヌルドに倀が远加されおいる XSS 脆匱性をスキャナヌが発芋したした。同じ倀は、同じファむル内の別のコンテキストでは Encode.forHtml() で適切に゚ンコヌドされお いたした 。パタヌンマッチングツヌルは、゚ンコヌディング関数が存圚するためこれを芋逃したすが、脆匱性は 䞍敎合 そのものにあり、これを発芋するにはコヌドパス党䜓にわたるアプリケヌションの動䜜を理解する必芁がありたす。 䞍確実な郚分を明瀺する怜蚌枈み怜出結果 すべおの怜出結果は、効率的な開発者トリアヌゞのために構造化されおいたす。 問題 : コヌドの䜕が間違っおいるかを、具䜓的なファむル名ず行番号ずずもに明瀺 圱響 : 攻撃者が䜕を埗られるかを、デプロむ環境の詳现ずずもに明瀺 怜蚌範囲 : スキャナヌがコヌド内で盎接確認した内容 (Verified) ず、環境 (ネットワヌクセグメンテヌション、ランタむム動䜜) に䟝存する内容 (Could not verify) を区別しお明瀺 修埩 : 䞀般的なガむダンスではなく、具䜓的なコヌド倉曎を含む修正案を提瀺 重倧床ず信頌床 : それぞれ独立しお評䟡。重倧床は脆匱性が悪甚された堎合の圱響を、信頌床は攻撃チェヌンのどの皋床がコヌド内で怜蚌されたかを反映 フルリポゞトリコヌドレビュヌをワヌクフロヌに組み蟌む方法 フルリポゞトリコヌドレビュヌは、既存のセキュリティツヌルを眮き換えるのではなく、補完するように蚭蚈されおいたす。珟代の開発ワヌクフロヌぞの組み蟌み方は以䞋のずおりです。 セキュリティレビュヌの前 : ペネトレヌションテストやセキュリティレビュヌをスケゞュヌルする前に、フルリポゞトリコヌドレビュヌを実行したす。レビュヌが明癜な問題ず半ば明癜な問題を浮かび䞊がらせるため、セキュリティチヌムは限られた時間を、人間の刀断を必芁ずする高床な蚭蚈レベルの問題に集䞭できたす。 買収したコヌドやオヌプン゜ヌスコヌドのオンボヌディング時 : フルリポゞトリコヌドレビュヌは、買収やベンダヌ䟝存関係を通じお、たたは統合䞭のオヌプン゜ヌスコンポヌネントからコヌドを継承する際に特に䟡倀を発揮したす。スキャナヌはセキュリティモデルをれロから構築するため、コヌドベヌスに関する組織内の知識を必芁ずしたせん。 アヌキテクチャレビュヌ䞭 : スキャナヌは信頌境界、デヌタフロヌ、認可䞍倉条件に぀いお掚論するため、その怜出結果は実装䞊のバグだけでなく、アヌキテクチャ䞊の問題を浮かび䞊がらせるこずがよくありたす。スキャン結果を脅嚁モデルず䞊べお確認し、コンポヌネントの盞互䜜甚に関する仮定を怜蚌しおください。 AWS Security Agent でフルリポゞトリコヌドレビュヌをご利甚の堎合は、 クむックスタヌトガむド に埓っおセットアップしお実行しおください。 プレビュヌ提䟛ず䟡栌 フルリポゞトリコヌドレビュヌは、本日 (2026 幎 5 月 12 日) より AWS Security Agent のお客様向けに远加料金なしでプレビュヌ提䟛されおいたす。プレビュヌ期間䞭、゚クスペリ゚ンスの改良に向けお、みなさたからのフィヌドバックをお埅ちしおおりたす。Security Agent りェブアプリケヌションの組み蟌みフィヌドバック機胜をご利甚いただくか、AWS アカりントチヌムにお知らせください。 開始方法 AWS Security Agent コン゜ヌル にアクセスしお、フルリポゞトリコヌドレビュヌを有効にし、最初のスキャンを実行しおください。詳现に぀いおは、 AWS Security Agent ドキュメント を参照しおください。 Ayush Singh Ayush は AWS のシニアプロダクトマネヌゞャヌで、AWS Security Agent の開発をリヌドしおいたす。゚ンタヌプラむズグレヌド、オヌプン゜ヌス、゚ヌゞェンティック AI 補品をスケヌルさせた実瞟がありたす。組織がセキュリティプラクティスを効果的にスケヌルできるツヌルの構築に泚力しおいたす。ロチェスタヌ倧孊で MBA を、KIIT 倧孊でコンピュヌタサむ゚ンスの孊士号 (B.Tech) を取埗しおいたす。 Daniele Bonadiman Daniele は AWS のシニアアプラむドサむ゚ンティストで、AWS Security Agent に取り組んでいたす。トレント倧孊で応甚機械孊習および自然蚀語凊理の博士号を取埗したした。AWS 圚籍䞭、察話型 AI、マルチ゚ヌゞェントシステムのオヌケストレヌション、AI ゚ヌゞェントによるコヌド解釈に焊点を圓おた耇数の AI むニシアチブに貢献しおきたした。 <!-- '"` --> 本ブログは Security Solutions Architect の äž­å³¶ 章博 が翻蚳したした。
本蚘事は 2026 幎 5 月 14 日 に公開された「 Getting started with Change Data Capture in Amazon Aurora DSQL 」を翻蚳したものです。 本日、 Amazon Aurora DSQL はパブリックプレビュヌで Change Data Capture (CDC) を発衚したした。これにより、デヌタベヌスの倉曎をほがリアルタむムで Amazon Kinesis Data Streams にストリヌミングできたす。Amazon Aurora DSQL は、垞時利甚可胜なアプリケヌション向けのサヌバヌレス分散 SQL デヌタベヌスです。新しいアクティブ-アクティブ分散アヌキテクチャにより、シングルリヌゞョン構成で 99.99%、マルチリヌゞョン構成で 99.999% の可甚性を実珟するよう蚭蚈されおいるため、可甚性の高いアプリケヌション構築に適しおいたす。 最新のアプリケヌションでは、分析、自動化、むベント駆動アヌキテクチャを支えるリアルタむムデヌタパむプラむンぞの䟝存床が高たっおいたす。埓来、運甚デヌタベヌスから䞋流システムぞデヌタを移動するには、スケゞュヌル実行される゚クスポヌト、ポヌリングク゚リ、独自のレプリケヌション゜リュヌションが必芁でした。これらの方法ではレむテンシヌが発生し、運甚負荷が増え、システム間の敎合性維持が困難になりたす。 CDC の登堎により、Aurora DSQL は䞋流サヌビスぞのデヌタベヌス倉曎のネむティブストリヌミングをサポヌトするようになりたした。CDC は行レベルの倉曎を捕捉し、倖郚システムにほがリアルタむムで配信したす。 本蚘事では、Aurora DSQL Change Data Capture を構成し、デヌタベヌスの倉曎を Kinesis Data Streams にストリヌミングする方法を説明したす。CDC の仕組み、ストリヌミングパむプラむンの構成方法、倉曎むベントの消費方法を孊べたす。 本蚘事を読み終えるず、デヌタベヌスの倉曎を耐久性のあるむベントストリヌムに送り出し、䞋流のアプリケヌションで凊理できる動䜜䞭の CDC パむプラむンを構築できたす。 Change Data Capture ずは Change Data Capture は、デヌタベヌスに察する倉曎を識別および蚘録し、倖郚システムから利甚できるようにしたす。デヌタセット党䜓を繰り返しコピヌするのではなく、CDC は倉曎のあった行のみに焊点を圓おたす。アプリケヌションが INSERT 、 UPDATE 、 DELETE ステヌトメントを実行するたびに、CDC は倉曎を捕捉しお察応するむベントを生成したす。これらのむベントには通垞、操䜜の皮類、察象テヌブル、倉曎前埌のデヌタが含たれたす。この方匏によりリ゜ヌス消費を抑え぀぀、䜎レむテンシヌでデヌタパむプラむンを動䜜させられたす。 䟋えば、 INSERT 操䜜では新しい行の倀を含むむベントが生成されたす。 UPDATE 操䜜では曎新埌の完党な行を含むむベントが生成されたす。 DELETE 操䜜では削陀された行の䞻キヌ倀を含むむベントが生成されたす。CDC は倉曎分のみを捕捉するため、䞋流システムは倧きなテヌブルを繰り返しスキャンせずにデヌタの同期を維持できたす。 Aurora DSQL Change Data Capture の抂芁 今回のリリヌスで、Aurora DSQL CDC は倉曎むベントを Amazon Kinesis Data Streams にストリヌミングできるようになりたした。Kinesis Data Streams はフルマネヌゞドか぀サヌバヌレスのストリヌミングサヌビスで、 AWS Lambda などの他の AWS サヌビスず統合でき、 Apache Kafka のような倖郚ストリヌミングシステムずも統合できたす。 Aurora DSQL CDC はネむティブな機胜で、デヌタベヌスの倉曎を継続的に蚘録し、ストリヌミング先に発行したす。アプリケヌションが SQL ステヌトメントでデヌタを倉曎するず、Aurora DSQL は発生した行レベルの倉曎を捕捉し、構造化されたむベントに倉換したす。 各倉曎むベントには、デヌタベヌス操䜜ず倉曎察象デヌタを蚘述するメタデヌタが含たれたす。このメタデヌタにより、䞋流のコンシュヌマヌはデヌタベヌス倉曎の順序を正確に再構成できたす。Aurora DSQL の CDC はアプリケヌションのデヌタベヌストランザクションずは独立しお動䜜したす。Aurora DSQL は倉曎むベントをバックグラりンドで捕捉および配信するため、運甚ワヌクロヌドのパフォヌマンスに圱響を䞎えたせん。珟圚のリリヌスでは、CDC はクラスタヌレベルで動䜜し、すべおのテヌブルの倉曎を捕捉したす。テヌブル単䜍の遞択的なフィルタリングはサポヌトされおいないため、特定のテヌブルのみが必芁な堎合は䞋流のコンシュヌマヌ偎でフィルタリングロゞックを適甚する必芁がありたす。CDC の基本抂念を理解したずころで、実際のアヌキテクチャでこの機胜がどのように掻甚されるか芋おみたしょう。 Aurora DSQL CDC のナヌスケヌス Aurora DSQL CDC は、幅広い最新のデヌタアヌキテクチャをサポヌトしたす。CDC はデヌタベヌス倉曎のほが連続したストリヌムを提䟛するため、新しいデヌタに察しおシステムが玠早く反応できたす。代衚的なナヌスケヌスの 1 ぀が リアルタむム分析 です。倚くの組織では、運甚デヌタを最小の遅延で分析システムに反映する必芁がありたす。CDC ストリヌムをデヌタりェアハりスや分析プラットフォヌムで消費するこずで、継続的に曎新されたデヌタセットを維持できたす。これにより、ダッシュボヌドやレポヌトに最新のビゞネス掻動を反映できたす。 もう 1 ぀の重芁なナヌスケヌスが むベント駆動アヌキテクチャ です。最新のアプリケヌションの倚くは、むベントを介しお通信する疎結合のサヌビスで構成されおいたす。CDC により、デヌタベヌスの倉曎をアプリケヌションのむベントずしお扱えたす。䟋えば、新しい泚文レコヌドを挿入するず、決枈凊理や圚庫曎新などの䞋流ワヌクフロヌを起動できたす。 CDC は デヌタレプリケヌションのシナリオ でも有甚です。倚くの組織では、運甚デヌタベヌス、怜玢むンデックス、分析システムなど、甚途別に耇数のデヌタストアを運甚しおいたす。CDC によっお、デヌタ党䜓をコピヌするこずなくシステム間で増分同期できたす。 最埌に、CDC はデヌタベヌス掻動の包括的な監査蚌跡を提䟛したす。各倉曎がむベントずしお蚘録されるため、CDC ストリヌムはコンプラむアンスやトラブルシュヌティング目的でアヌカむブおよび分析できたす。 アヌキテクチャの抂芁 次のアヌキテクチャは、Aurora DSQL CDC が䞋流のコンシュヌマヌぞデヌタベヌス倉曎をストリヌミングする仕組みを瀺しおいたす。 アプリケヌションは暙準の SQL ステヌトメントを䜿甚しお Aurora DSQL ずやり取りしたす。これらの操䜜はデヌタベヌス内の行を倉曎し、倉曎むベントの䞻芁な発生源ずなりたす。Aurora DSQL はテヌブルの倉曎を監芖し、倉曎内容を蚘述する CDC むベントを生成したす。各むベントには、操䜜の皮類、タむムスタンプ、トランザクション識別子、行の倀などの情報が含たれたす。 Aurora DSQL は CDC むベントを Kinesis デヌタストリヌムに発行したす。ストリヌムは、デヌタベヌスワヌクロヌドず䞋流凊理を切り離す耐久性ずスケヌラビリティに優れたバッファです。コンシュヌマヌアプリケヌションはストリヌムからむベントを読み取り、アプリケヌションの芁件に埓っお凊理したす。コンシュヌマヌは分析システムの曎新、ワヌクフロヌの起動、倖郚デヌタベヌスの同期などを行いたす。 このアヌキテクチャにより、Aurora DSQL は信頌できる唯䞀の情報源ずなり、䞋流のシステムは非同期にデヌタを消費できたす。このアヌキテクチャを構築する前に、環境を準備する必芁がありたす。 前提条件 本セクションでは、Aurora DSQL Change Data Capture を構成するために必芁なツヌルず暩限を説明したす。詳现に぀いおは、 前提条件 を参照しおください。 AWS アカりントにアクセスできる認蚌情報で構成枈みの AWS Command Line Interface (AWS CLI) バヌゞョン 2 が必芁です。AWS CLI は、Aurora DSQL クラスタヌの䜜成、CDC ストリヌムの構成、関連リ゜ヌスの管理に䜿甚したす。 単䞀の AWS リヌゞョンに Aurora DSQL クラスタヌ が必芁です。 クラむアントマシンに PostgreSQL クラむアントナヌティリティ psql がむンストヌルされおいる必芁がありたす。Aurora DSQL は PostgreSQL 互換の接続を提䟛しおおり、 psql を䜿っお接続、テヌブル䜜成、テストデヌタ生成を行いたす。 jq ナヌティリティは必須ではありたせんが、JSON 出力の閲芧が容易になるため掚奚したす。 AWS の ID には、Aurora DSQL クラスタヌの䜜成、CDC ストリヌムの管理、Kinesis ストリヌムの䜜成、IAM ロヌルの構成を行う暩限が必芁です。次のポリシヌが必芁な暩限を提䟛したす。Aurora DSQL クラスタヌの䜜成、CDC ストリヌムの管理、Kinesis ストリヌムの䜜成、IAM ロヌルの構成に必芁な IAM 暩限 を以䞋に瀺したす。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dsql:ListClusters", "dsql:CreateCluster", "dsql:GetCluster", "dsql:DeleteCluster", "dsql:DbConnectAdmin", "dsql:CreateStream", "dsql:GetStream", "dsql:ListStreams", "dsql:DeleteStream", "dsql:UpdateCluster" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "kinesis:CreateStream", "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards", "kinesis:DeleteStream" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:PutRolePolicy", "iam:GetRole", "iam:PassRole", "iam:DeleteRole", "iam:DeleteRolePolicy" ], "Resource": "*" } ] } 環境の準備ができたら、次は AWS CLI を䜿っお Aurora DSQL CDC を有効化したす。 マルチリヌゞョンの Aurora DSQL クラスタヌ では、CDC ストリヌムはストリヌムが䜜成されたリヌゞョンに関係なく、すべおのリヌゞョンからコミット枈みの曞き蟌みを捕捉したす。Aurora DSQL クラスタヌ、ストリヌミングタヌゲット、IAM ロヌル、呌び出し元プリンシパルなどのすべおのリ゜ヌスは、同じ AWS アカりントずリヌゞョン内に存圚する必芁がありたす。耇数のリヌゞョンに CDC レコヌドを配信するには、各リヌゞョンで個別のストリヌムを䜜成しおください。各ストリヌムは独立しお同じコミット枈み倉曎のセットを配信したす。 泚意 : 本蚘事では、&lt;プレヌスホルダヌ倀&gt; を実際の情報に眮き換えおください。 ステップ 1: Kinesis デヌタストリヌムを䜜成する Aurora DSQL CDC はむベントをストリヌミング先に発行したす。本蚘事では、ストリヌミング先ずしお Amazon Kinesis デヌタストリヌムを䜿甚したす。 単䞀の シャヌド で新しい Kinesis ストリヌムを䜜成したす。シャヌドは CDC むベントで利甚可胜なスルヌプット容量を決定したす。ストリヌムを構成する際は、ストリヌミング蚭定でサポヌトされる最倧レコヌドサむズを考慮しおください。Aurora DSQL は最倧 2 MiB の 行サむズ をサポヌトしおおり、CDC むベントはスキヌマやワヌクロヌド次第でこの䞊限に近づくこずがありたす。蚭定したレコヌドサむズが発行されるむベントのサむズより小さい堎合、配信に倱敗し CDC パむプラむンが機胜しなくなる可胜性がありたす。 新しい Kinesis ストリヌムを䜜成する前に、たずこのデモで䜿甚する環境倉数を蚭定したす。 export REGION="&lt;us-east-2&gt;" export ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text) export AWS_DEFAULT_OUTPUT=json export KINESIS_STREAM_NAME="&lt;dsql-cdc-stream&gt;" aws kinesis create-stream \ --stream-name ${KINESIS_STREAM_NAME} \ --stream-mode-details StreamMode=ON_DEMAND \ --max-record-size-in-ki-b 2024 \ --region ${REGION} ストリヌムを䜜成したら、ストリヌムステヌタスが “ ACTIVE ” になるたで埅ちたす。Aurora DSQL は、ストリヌムが完党に利甚可胜になるたでむベントを発行できたせん。 # Check stream status aws kinesis describe-stream \ --stream-name ${KINESIS_STREAM_NAME} \ --region ${REGION} \ --query 'StreamDescription.StreamStatus' 次に、ストリヌムの Amazon Resource Name (ARN) を取埗したす。 export KINESIS_STREAM_ARN=$(aws kinesis describe-stream \ --stream-name ${KINESIS_STREAM_NAME} \ --region ${REGION} \ --query 'StreamDescription.StreamARN' \ --output text) echo "Kinesis Stream ARN: ${KINESIS_STREAM_ARN}" ARN はストリヌムを䞀意に識別するもので、CDC を構成する際に必芁です。埌で䜿甚する可胜性があるため、ストリヌム ARN をメモしおおいおください。ストリヌミング先が準備できたら、次に Aurora DSQL がむベントを発行する暩限が必芁です。 ステップ 2: CDC 甚の IAM ロヌルを䜜成する Aurora DSQL は、Kinesis ストリヌムに曞き蟌む暩限を持぀ IAM ロヌルを匕き受けお CDC むベントを発行したす。IAM ロヌルには、Aurora DSQL がロヌルを匕き受けるこずを蚱可する信頌ポリシヌが必芁です。 信頌ポリシヌ は特定の Aurora DSQL クラスタヌぞのアクセスを制限したす。ロヌルには、Kinesis ストリヌムぞの曞き蟌みアクセスを付䞎する アクセス蚱可ポリシヌ も必芁です。 たず、次のセクションのように信頌ポリシヌずアクセス蚱可ポリシヌを䜜成したす。 # Create Trust policy cat &gt; trust-policy.json &lt;&lt; EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "dsql.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "${ACCOUNT_ID}" }, "ArnEquals": { "aws:SourceArn": "arn:aws:dsql:${REGION}:${ACCOUNT_ID}:cluster/*" } } } ] } EOF # Create Permission policy cat &gt; permissions-policy.json &lt;&lt; EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:PutRecord", "kinesis:PutRecords", "kinesis:DescribeStreamSummary", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:${REGION}:${ACCOUNT_ID}:stream/${KINESIS_STREAM_NAME}" } ] } EOF 次に、ロヌルを䜜成しおポリシヌをアタッチしたす。 # Create an IAM Role export CDC_ROLE_NAME="&lt;dsql-cdc-kinesis-role&gt;" aws iam create-role \ --role-name ${CDC_ROLE_NAME} \ --assume-role-policy-document file://trust-policy.json # Attach the policy to the Role aws iam put-role-policy \ --role-name ${CDC_ROLE_NAME} \ --policy-name &lt;cdc-kinesis-policy&gt; \ --policy-document file://permissions-policy.json ロヌルを䜜成しおアクセス蚱可ポリシヌをアタッチしたら、ロヌル ARN を取埗したす。 aws iam get-role \ --role-name ${CDC_ROLE_NAME} \ --query 'Role.Arn' \ --output text ロヌル ARN をメモしおおいおください。ロヌル ARN は CDC ストリヌムの䜜成時に必芁です。暩限を構成したら、CDC ストリヌムを䜜成できたす。 ステップ 3: CDC ストリヌムを䜜成する CDC ストリヌムは Aurora DSQL クラスタヌず Kinesis ストリヌムを接続したす。CDC ストリヌムを䜜成するず、Aurora DSQL はデヌタベヌスの倉曎を Kinesis ストリヌムに発行し始めたす。ストリヌムの䜜成には通垞数分かかり、その間に Aurora DSQL は CDC 凊理に必芁な内郚むンフラストラクチャをプロビゞョニングしたす。 aws dsql create-stream \ --cluster-identifier ${CLUSTER_ID} \ --target-definition "{\"kinesis\":{\"streamArn\":\"${KINESIS_STREAM_ARN}\",\"roleArn\":\"${CDC_ROLE_ARN}\"}}" \ --ordering UNORDERED \ --region ${REGION} \ --format JSON # Example output { "clusterIdentifier": "2ntttwpyh6nbmi5h54h2e4p4ja", "streamIdentifier": "fntuauzlakwytxknp2k6acrxk4", "arn": "arn:aws:dsql:us-east-2:444455556666:cluster/2ntttwpyh6nbmi5h54h2e4p4ja/stream/fntuauzlakwytxknp2k6acrxk4", " status": "CREATING ", "creationTime": "2026-03-18T10:14:55.405000-04:00", "ordering": "UNORDERED", "format": "JSON" } ストリヌムが “ ACTIVE ” になるたで埅ちたす。 # Check stream status (repeat until status is "ACTIVE") export STREAM_ID="&lt;your-stream-identifier-from-output&gt;" aws dsql get-stream \ --cluster-identifier ${CLUSTER_ID} \ --stream-identifier ${STREAM_ID} \ --region ${REGION} \ --query 'status' ストリヌムが “ ACTIVE ” になるず、Aurora DSQL はデヌタベヌスの倉曎を捕捉する準備ができたす。次のステップでは、デヌタベヌスの掻動を生成したす。 ステップ 4: デヌタベヌスの倉曎を生成する CDC を有効化したら、デヌタベヌスに倉曎を加えお構成を怜蚌できたす。PostgreSQL クラむアントで Aurora DSQL に接続し、テスト甚テヌブルを䜜成したす。CDC に参加するテヌブルに䞻キヌは厳密には必芁ありたせんが、定矩するこずを掚奚したす。䞻キヌがあれば Aurora DSQL は行を䞀意に識別でき、より意味のある倉曎むベントを生成できたす。䞻キヌがない堎合、 INSERT および UPDATE 操䜜は完党な行デヌタを含みたすが、 DELETE むベントには削陀された行を識別する十分な情報が含たれない可胜性がありたす。 テヌブルを䜜成したら、いく぀かのレコヌドに察しお挿入、曎新、削陀を行いたす。これらの操䜜によっお Aurora DSQL が Kinesis ストリヌムに発行する CDC むベントが生成されたす。次のコマンドで Aurora DSQL クラスタヌぞの 接続 を確立したす。 PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token --hostname ${CLUSTER_ID}.dsql.${REGION}.on.aws --region ${REGION}) \ PGSSLMODE=require \ psql -h ${CLUSTER_ID}.dsql.${REGION}.on.aws -U admin -d postgres 接続を確立したら、次のコヌドで䞻キヌ付きのテヌブルを䜜成したす。 CREATE TABLE users ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name VARCHAR(100) NOT NULL, email VARCHAR(255), created_at TIMESTAMP DEFAULT NOW() ); 次のコヌドでいく぀かの行を挿入したす。 INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com'); INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com'); INSERT INTO users (name, email) VALUES ('Charlie', 'charlie@example.com'); 続いお、倉曎レコヌドを生成したす。テストデヌタの生成が終わったら、デヌタベヌスから切断したす。 -- Update a record UPDATE users SET email = 'alice.updated@example.com' WHERE name = 'Alice'; -- Delete a record DELETE FROM users WHERE name = 'Charlie'; -- Exit from psql \q 次のステップでは、ストリヌムから CDC むベントを読み取りたす。 ステップ 5: CDC むベントを読み取る CDC むベントは Kinesis ストリヌムに保存され、AWS CLI たたはコンシュヌマヌアプリケヌションで読み取れたす。たず、ストリヌム内のシャヌドを䞀芧衚瀺したす。 # List shards in the stream aws kinesis list-shards \ --stream-name ${KINESIS_STREAM_NAME} \ --region ${REGION} 各シャヌドはレコヌドのシヌケンスを衚したす。本䟋では簡単のためシャヌドを 1 ぀だけ䜿甚しおいたすが、本番環境のワヌクロヌドではストリヌムに耇数のシャヌドを含められ、コンシュヌマヌはすべおのレコヌドを読み取るためにシャヌドを暪断的に凊理する必芁がありたす。次に、読み取りを開始する䜍眮を指定する シャヌドむテレヌタ を取埗したす。䟋えば TRIM_HORIZON は、利甚可胜な最も叀いレコヌドから読み取りを開始したす。シャヌドむテレヌタを䜿甚しおストリヌムからレコヌドを取埗したす。CDC むベントのペむロヌドは Base64 で゚ンコヌドされおいたす。ペむロヌドをデコヌドするず、むベントは読み取り可胜な JSON になりたす。各むベントはデヌタベヌスの倉曎を蚘述し、タむムスタンプ、トランザクション識別子、スキヌマ名、テヌブル名などのメタデヌタを含みたす。 # Get iterator for the first shard, starting from the beginning export SHARD_ITERATOR=$(aws kinesis get-shard-iterator \ --stream-name ${KINESIS_STREAM_NAME} \ --shard-id shardId-000000000000 \ --shard-iterator-type TRIM_HORIZON \ --region ${REGION} \ --query 'ShardIterator' \ --output text) # Fetch records from Kinesis aws kinesis get-records \ --shard-iterator ${SHARD_ITERATOR} \ --region ${REGION} # Example output { "Records": [ { "SequenceNumber": "49654...", "ApproximateArrivalTimestamp": "2026-03-18T10:24:01.153000-04:00", "Data": "eyJ0eXBlIjoiSU5TRVJUIiwic2NoZW1hIjoicHVibGljIiwidGFibGUiOiJ1c2VycyIsLi4ufQ==", "PartitionKey": "..." } ], "NextShardIterator": "AAAA...", "MillisBehindLatest": 0 } 続いお、デヌタをデコヌドしおみたしょう。 CDC むベントの構造ずセマンティクスの理解 Amazon Kinesis Data Streams からレコヌドを取埗した埌、次のステップは CDC むベントペむロヌドの解釈方法を理解するこずです。Amazon Aurora DSQL が発行する各むベントは、デヌタの倉曎ずそれに関連するメタデヌタを蚘述する䞀貫した JSON 構造に埓いたす。倧たかに芋るず、すべおの CDC むベントには操䜜の皮類、倉曎前埌の行の状態、゜ヌスずむベントのタむミングに関するメタデヌタが含たれたす。 op フィヌルドは操䜜の皮類を瀺したす。パブリックプレビュヌ期間䞭、Aurora DSQL は INSERT 操䜜ず UPDATE 操䜜の䞡方を c (create) で衚したす。これは、曎新が行の新しいバヌゞョンずしおモデル化されるためです。 DELETE 操䜜は d で衚されたす。 INSERT ず UPDATE を区別するには、特定の䞻キヌが過去に芳枬されたかを远跡する必芁がありたす。 䞀般提䟛 (GA) の段階で、Aurora DSQL CDC は曎新甚の独立した u 操䜜タむプを導入する予定です。そのため、コンシュヌマヌは将来のすべおの行倉曎が c むベントのみを䜿い続けるず仮定すべきではなく、それを螏たえおむベント凊理ロゞックを蚭蚈する必芁がありたす。 op フィヌルドは操䜜の皮類を瀺したす。Aurora DSQL は INSERT 操䜜ず UPDATE 操䜜の䞡方を c (create) で衚したす。これは、曎新が行の新しいバヌゞョンずしおモデル化されるためです。 DELETE 操䜜は d で衚されたす。そのため、 INSERT ず UPDATE を区別するには、特定の䞻キヌが過去に芳枬されたかを远跡する必芁がありたす。 before フィヌルドず after フィヌルドは行の状態を衚したす。 INSERT および UPDATE 操䜜では、むベントには倉曎埌の完党な行が含たれ、before フィヌルドは null になりたす。 DELETE 操䜜では after フィヌルドが null になり、before フィヌルドには削陀された行の䞻キヌのみが含たれたす。この蚭蚈により、削陀されたレコヌドを䞋流システムが識別可胜なたた、ペむロヌドサむズを抑えられたす。 各むベントには 2 皮類のタむムスタンプも含たれたす。ルヌトレベルの ts_ms および ts_ns フィヌルドは、倉曎がデヌタベヌスにコミットされた時刻を衚したす。 source.ts_ms および source.ts_ns フィヌルドは、CDC パむプラむンがむベントを凊理しおストリヌムに発行した時刻を衚したす。これらのタむムスタンプの差は、デヌタベヌスからストリヌミングシステムぞの䌝播レむテンシヌを瀺したす。source オブゞェクトには、トランザクション ID、スキヌマ名、テヌブル名、デヌタベヌス名、クラスタヌ識別子などの远加メタデヌタが含たれたす。これらのメタデヌタは、監査、デバッグ、䞋流凊理ロゞックの構築に有甚です。 詳现に぀いおは、 CDC レコヌド圢匏 を参照しおください。 次の䟋は、各皮デヌタベヌス操䜜が CDC むベントずしおどのように衚されるかを瀺したす。 # Using the output from get-records echo "&lt;base64-encoded-data&gt;" | base64 -d | jq 次の䟋は INSERT 操䜜を瀺したす。”Alice” の新しい行が挿入されたした。 op フィヌルドは “c”、 before は null 、 after には完党な行が含たれたす。コミットタむムスタンプ ( ts_ms ) は CDC 発行タむムスタンプ ( source.ts_ms ) より前で、倉曎が CDC パむプラむンを䌝播するのにかかった時間を瀺しおいたす。 # Example output for an INSERT { "op": "c", "before": null, "after": { "id": "521d51b6-47fd-46dc-854a-32306bfc5001", "name": "Alice", "email": "alice@example.com", "created_at": 1773843841048727 }, "source": { "version": "1.0", "ts_ms": 1773843841175, "ts_ns": 1773843841175766820, "txId": "dco7le2ijpdsjtspu7hqkf2lyi", "schema": "public", "table": "users", "db": "postgres", "cluster": "2ntttwpyh6nbmi5h54h2e4p4ja" }, "ts_ms": 1773843841076, "ts_ns": 1773843841076494565 } 次の䟋は UPDATE 操䜜を瀺したす。Alice のメヌルアドレスが曎新されたした。 op フィヌルドは c で、むベントには曎新埌の完党な行が含たれたす。Aurora DSQL は曎新を行の新しいバヌゞョンずしお衚すため、このむベントは構造的には INSERT ず同䞀です。 UPDATE ず INSERT を区別するには、同じ䞻キヌが過去のむベントで珟れたかを远跡する必芁がありたす。 # Example outuput for an UPDATE { "op": "c", "before": null, "after": { "id": "521d51b6-47fd-46dc-854a-32306bfc5001", "name": "Alice", "email": "alice.updated@example.com", "created_at": 1773843841048727 }, "source": { "version": "1.0", "ts_ms": 1773843889144, "ts_ns": 1773843889144309734, "txId": "dco7lhttogt6ntspu7hrvfvsuq", "schema": "public", "table": "users", "db": "postgres", "cluster": "2ntttwpyh6nbmi5h54h2e4p4ja" }, "ts_ms": 1773843889108, "ts_ns": 1773843889108904247 } 次の䟋は DELETE 操䜜を衚したす。行が削陀されたした。 op フィヌルドは d 、 after フィヌルドは null、 before フィヌルドには削陀された行の䞻キヌのみが含たれたす。これにより、䞋流システムは行デヌタ党䜓を含めなくおも、どのレコヌドが削陀されたかを識別できたす。 # Example output for DELETE { "op": "d", "before": { "id": "539cdc67-d1a0-4a56-b9cc-98d6f61bdef8" }, "after": null, "source": { "version": "1.0", "ts_ms": 1773843901898, "ts_ns": 1773843901898646132, "txId": "dco7lillvfrhjtspu7h36ehc3e", "schema": "public", "table": "users", "db": "postgres", "cluster": "2ntttwpyh6nbmi5h54h2e4p4ja" }, "ts_ms": 1773843901887, "ts_ns": 1773843901887887743 } これらのむベントをアプリケヌションで消費するこずで、リアルタむムのデヌタパむプラむンを構築できたす。 Aurora DSQL CDC のむベント順序の理解 CDC を基盀ずしおアプリケヌションを構築する際に最も重芁な怜蚎事項の 1 ぀が、倉曎むベントが䞋流システムに配信される順序です。むベントの凊理順序は、コンシュヌマヌが倉曎を解釈および適甚する方法に盎接圱響したす。 Aurora DSQL CDC は、CDC ストリヌム䜜成時に明瀺的な順序蚭定を導入しおいたす。この蚭定はストリヌミング先に配信されるむベントの順序保蚌を定矩し、远加の順序モヌドや統合の導入に䌎っお今埌倉化する可胜性がありたす。Aurora DSQL CDC は珟圚パブリックプレビュヌ段階のため、䞋流のコンシュヌマヌは操䜜タむプのセマンティクスに関する仮定をハヌドコヌドするこずを避け、将来のむベント圢匏の拡匵を蚱容できるよう蚭蚈する必芁がありたす。 本蚘事の執筆時点では、Aurora DSQL CDC ストリヌムは順序を保蚌しないむベント配信を提䟛したす。぀たり、行やトランザクション間で厳密な順序保蚌なしにむベントが配信されたす。詳现に぀いおは、 順序ず配信のセマンティクス を参照しおください。この方匏は高いスケヌラビリティずスルヌプットをサポヌトするため、効率的で倧芏暡な倉曎ストリヌミングを必芁ずするワヌクロヌドに適しおいたす。各むベントは完党か぀䞀貫しおいたすが、䞋流のコンシュヌマヌは順序が前埌しお到着するむベントを正しく凊理できるよう、冪等凊理や状態の敎合性確保ずいったパタヌンを䜿っお蚭蚈する必芁がありたす。ストリヌム䜜成時に順序を明瀺するこずで、配信セマンティクスを最初から明確に理解した䞊でアプリケヌションを蚭蚈できたす。順序を保蚌しないストリヌムを凊理するコンシュヌマヌの蚭蚈に぀いお、ポヌリングやバッチ凊理などの手法を含めた詳现は、 Lambda を䜿甚した Amazon Kinesis Data Streams のレコヌド凊理 ず 順序ず重耇排陀の戊略 を参照しおください。 ベストプラクティス Amazon Kinesis Data Streams を䜿甚する際は、デヌタストリヌムを䜜成し、ワヌクロヌドに合った適切なキャパシティモヌドを遞択できたす。ストリヌム管理を簡玠化するには、オンデマンドキャパシティモヌドを遞びたす。このモヌドでは、Kinesis が CDC トラフィックに合わせおスルヌプットを自動的にスケヌリングするため、シャヌドを手動でプロビゞョニングおよび管理する必芁がありたせん。詳现に぀いおは、 適切なストリヌムモヌドを遞択する を参照しおください。 Amazon Aurora DSQL から Amazon Kinesis Data Streams ぞ CDC むベントをストリヌミングする際は、ストリヌムでサポヌトされる最倧レコヌドサむズを考慮するこずが重芁です。Kinesis は個々のレコヌドのサむズに䞊限を蚭けおいたす。CDC むベントがこの䞊限を超えるず、ストリヌムにむベントを配信できたせん。その堎合、サむズ制玄が解消されるたで CDC パむプラむンが機胜しなくなる可胜性がありたす。これを避けるため、デヌタモデルの サむズ特性 を考慮し、想定されるペむロヌドサむズを 凊理できるよう ストリヌミングパむプラむンずコンシュヌマヌを構成しおください。これらの䞊限を螏たえお蚭蚈するこずで、䞭断のない継続的か぀信頌性の高い CDC むベント配信を維持できたす。 䞋流のシステムは、 重耇むベントの凊理 ず順序が前埌しお到着するむベントの凊理に察応できるよう蚭蚈しおください。CDC の配信は非同期で厳密な順序を保蚌しないため、コンシュヌマヌは同じむベントを耇数回受信したり、順序が前埌しお到着するむベントを芳枬したりする可胜性がありたす。正確性を保぀ため、アプリケヌションは冪等な凊理ロゞックを実装し、むベントが繰り返されおも結果に䞍敎合が生じないようにする必芁がありたす。これは通垞、䞻キヌやトランザクションのメタデヌタ (タむムスタンプやトランザクション ID など) を䜿っお倉曎を怜出および調敎するこずで実珟したす。順序が重芁な堎合は、コンシュヌマヌは バッチ凊理 、タむムスタンプを䜿甚したむベントの䞊べ替え、コミット時刻に基づく last-write-wins セマンティクスを適甚できたす。䞀郚のテヌブルのみを凊理したい堎合は、CDC ストリヌムにすべおのテヌブルの倉曎が含たれるため、䞋流のコンシュヌマヌ偎でフィルタリングロゞックを適甚しおください。これらのパタヌンを螏たえおコンシュヌマヌを蚭蚈するこずで、高スルヌプットのストリヌミング条件䞋でも信頌性ず䞀貫性のあるデヌタ凊理を実珟できたす。 クリヌンアップ CDC パむプラむンが正しく動䜜し、Amazon Kinesis Data Streams ぞのデヌタベヌス倉曎のストリヌミングを怜蚌できたら、本りォヌクスルヌで䜜成したリ゜ヌスをクリヌンアップできたす。 Amazon Aurora DSQL の CDC ストリヌムを削陀しおも、デヌタベヌス内の既存デヌタは維持されたす。ストリヌムを削陀するず、Kinesis デヌタストリヌムぞの新しい倉曎むベントの配信が停止するだけです。同様に、Kinesis ストリヌムを削陀しおも゜ヌスデヌタベヌスには圱響したせんが、ストリヌムに保存されおいる未消費の CDC レコヌドは完党に削陀されたす。 本セクションでは、本蚘事で䜜成したリ゜ヌスを削陀する手順を案内したす。これにより、䞍芁なコストを避け぀぀、AWS 環境をクリヌンに保おたす。 # Delete the CDC stream aws dsql delete-stream \ --cluster-identifier ${CLUSTER_ID} \ --stream-identifier ${STREAM_ID} \ --region ${REGION} # Wait for stream deletion, then disable deletion protection and delete the cluster aws dsql update-cluster \ --identifier ${CLUSTER_ID} \ --no-deletion-protection-enabled \ --region ${REGION} # If you created a new Aurora DSQL cluster to test CDC feature aws dsql delete-cluster \ --identifier ${CLUSTER_ID} \ --region ${REGION} # Delete the Kinesis data stream aws kinesis delete-stream \ --stream-name ${KINESIS_STREAM_NAME} \ --region ${REGION} # Delete the IAM role and associated policy aws iam delete-role-policy \ --role-name ${CDC_ROLE_NAME} \ --policy-name cdc-kinesis-policy aws iam delete-role \ --role-name ${CDC_ROLE_NAME} # Clean up local files rm -f trust-policy.json permissions-policy.json これらの手順を完了するず、CDC パむプラむン甚に䜜成したリ゜ヌスが削陀され、AWS 環境は元の状態に戻りたす。 たずめ Aurora DSQL Change Data Capture は、デヌタベヌスの倉曎を倖郚システムにストリヌミングするネむティブな仕組みを提䟛したす。本蚘事では、デヌタベヌスの倉曎を捕捉しお Kinesis ストリヌムに発行する CDC パむプラむンを構成したした。デヌタベヌスの掻動を発生させ、生成されたむベントを怜蚌したした。Aurora DSQL CDC は独自のレプリケヌション゜リュヌションを䞍芁にし、リアルタむムアヌキテクチャの構築を簡玠化したす。Aurora DSQL をストリヌミングシステムず統合するこずで、開発者はデヌタの倉曎にほがリアルタむムで反応する応答性の高いアプリケヌションを構築できたす。Aurora DSQL Change Data Capture は、スケヌラブルなむベント駆動システムやリアルタむム分析パむプラむンを構築するための基盀ずなりたす。 著者に぀いお Vijay Karumajji Vijay は、AWS のプリンシパルデヌタベヌススペシャリスト Solutions Architect です。商甚およびオヌプン゜ヌスのデヌタベヌスで 20 幎以䞊の経隓を持ち、深い技術的専門知識を掻かしお組織のデヌタプラットフォヌムのモダナむれヌションず AWS マネヌゞドデヌタベヌスサヌビスの䟡倀最倧化を支揎しおいたす。 この蚘事は Kiro が翻蚳を担圓し、Solutions Architect の Koji Shinkubo がレビュヌしたした。

動画

曞籍

おすすめマガゞン

蚘事の写真

【デン゜ヌ】呜を守る゜フトりェア怜蚌の舞台裏――安党ず品質を支える怜蚌基盀づくり【DENSO Tech Night 第五...

蚘事の写真

AI掻甚が進む䌁業3瀟が明かす「䜿われるツヌル」の䜜り方ず組織文化づくりの秘蚣

蚘事の写真

【日立補䜜所】入瀟12幎目のSEが語る、グロヌバルDX案件で芋぀けた成長の道筋

蚘事の写真

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

新着動画

蚘事の写真

5月病より怖い 先茩゚ンゞニアずの差 / 䌞びる1幎目はここが違う / 珟堎デビュヌ埌に差が぀く3぀のスキル / デキ...

蚘事の写真

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

蚘事の写真

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