AWSのブログ - TECH PLAY

TECH PLAY

AWS

AWS の技術ブログ

3642

本記事は 2026 年 6 月 4 日 に .NET on AWS Blog で公開された「 AWS Transform SQL Server to PostgreSQL Schema Validation in .NET Application Modernization 」を翻訳したものです。 本記事の執筆には Sayan Ghosh、Yuhao Zhang、Uday Kiran Erukulla、Srinivasa Varadan Saragur Madabhushi、Koushik Rajagopal、Khurram Khawaja、Vikas Babu Gali、Luke Huan が協力しました。 Microsoft SQL Server から Amazon Aurora PostgreSQL – Compatible Edition へのデータベース移行は、ライセンスコストの削減、スケーラビリティの向上、オープンソースデータベース技術の活用を目指す組織にとって一般的なモダナイゼーション戦略です。ただし、SQL Server データベースを Aurora PostgreSQL に移行する際、スキーマ変換はあくまで出発点に過ぎません。真の課題は、すべてのテーブル、制約、ストアドプロシージャ、トリガーが正しく移行され、移行先の PostgreSQL 環境でも同一の動作をすることを検証する点にあります。小数精度の変更をひとつ見落としたり、ストアドプロシージャの変換に誤りがあったりするだけで、本番環境でデータ破損やアプリケーション障害、ビジネスロジックの誤動作を招くおそれがあります。 手動でのスポットチェック、スモークテスト、単純な行数比較に頼る従来の移行テストでは、こうした微妙な意味の違いを捉えられません。オブジェクトが存在するかどうかだけでなく、機能的に等価であるかまで検証する体系的なアプローチが必要です。 この記事では、 AWS Transform が構造分析、意味検証、動作テストを組み合わせた 3 層の検証モデルによって、SQL Server から PostgreSQL への移行に対する包括的なスキーマ検証を実現する仕組みを紹介します。あわせて、 Amazon Bedrock を活用した AI エージェントが検証結果を分析し、根本原因ごとに問題をまとめ、重大度を判定して修正の優先順位付けを支援する流れも解説します。 ソリューション概要 AWS Transform のスキーマ検証は、移行元と移行先の両方を稼働中のデータベースエンジンにデプロイし、そこに対して直接チェックを実行することで、移行済みデータベーススキーマの検証をエンドツーエンドで自動化します。この検証は移行先スキーマの作り方に依存しません。ルールベースのツール、エージェンティックなソリューション、独自に構築した生成 AI (GenAI) 変換パイプラインのいずれで生成したスキーマにも適用できます。図 1 は、移行元と移行先のスキーマが検証ワークフローをどのように流れるかを示しています。 図 1. エンドツーエンドのスキーマ検証ワークフロー 図 1 のとおり、検証は以下の流れで進みます。 移行元の SQL Server スキーマと移行先の PostgreSQL スキーマを、それぞれ専用の Amazon Elastic Container Service (Amazon ECS) コンテナに読み込む 両方のスキーマが Tier 1 (構造的検証) に入り、検証ワークフローが各オブジェクトが移行先に存在するかをプログラムでチェックする 構造チェックを通過したオブジェクトが Tier 2 に進み、意味的な等価性を比較する 意味チェックを通過したストアドプロシージャが Tier 3 (動作検証) に進み、ランタイムでテストする 各 Tier がオブジェクトごとの判定 (PASS、FAIL、または WARNING) を出力し、スコアリング層に集約される エキスパートアセスメントエージェントがすべての判定を確認し、両方の稼働中データベースにクエリを発行してフラグの立った問題を裏付ける。その後、検出内容を根本原因ごとにまとめ、重大度を判定し、最終的な本番移行準備レポートを生成する ウォークスルー このワークフローは、内部的には以下の 5 つのステップとして実行されます。 移行元 SQL Server と PostgreSQL の検証コンテナを Amazon ECS 上で起動する 移行元と移行先のスキーマを、対応する検証用データベースに読み込む 両方のデータベースにクエリを発行してルールベースのチェックを実行する Amazon Strands Agents を使って AI エキスパートによる分析を実行する 最終的な検証レポートを生成する この検証は 2 つの原則に基づいています。 正規表現による解析ではなく、稼働中のデータベースを使う 。バリデーターは稼働中の各データベースに直接クエリを発行します。生の SQL ファイルの記述内容ではなく、エンジンが実際に解釈した内容を報告します。 決定論的な処理を先に、LLM は後に 。ルールベースのチェックを大規模言語モデル (LLM) 層より前に実行し、LLM にはフィルタリング済みの入力を渡します。これにより LLM は決定論的なシグナルを置き換えるのではなく、補強する役割を担います。 これらの原則のもと、ルールベースのチェックと AI 分析は以下のように動作します。 1. 構造的検証 (Tier-1) 目的 : 移行元スキーマのすべてのデータベースオブジェクトが移行先スキーマに存在することを検証する この Tier では、移行元と移行先の両方のデータベースに直接クエリを発行し、すべてのスキーマオブジェクトに対してルールベースの存在チェックを並行して実行します。以下の表に例を示します。 オブジェクトタイプ チェック内容 テーブル 各テーブルが移行先に存在し、列と NULL 許可のルールが一致することを確認する 制約 主キー、外部キー (カスケードルールを含む)、一意制約、CHECK 制約を検証する 構造の照合で見落としやすい課題が、名前の正規化です。SQL Server は既定で大文字小文字を区別しませんが、PostgreSQL は引用符で囲まない識別子を小文字に折りたたみ、大文字小文字を区別して扱います。さらに PostgreSQL は識別子を 63 バイトで切り詰めます。そのため、SQL Server 上では別名だった 2 つのプロシージャが PostgreSQL 上では同じ名前に統合されることがあり、正しく移行できたテーブルが単純なバイト単位の比較では不一致と判定されてしまいます。これを避けるため、構造の照合では大文字小文字の折りたたみ、切り詰め、引用符の除去という段階を踏んで名前を正規化し、各段階でレコードの正規化を適用します。 2. 意味的検証 (Tier-2) 目的 : 移行したオブジェクトが構造として存在するだけでなく、意味的に等価であることを検証する Tier 1 がオブジェクトの存在を確認するのに対し、Tier 2 はその定義が意味的に等価かどうかをチェックします。チェックはルールベースで、SQL Server と PostgreSQL の型システム間の型マッピングと精度のルールを組み込んでいます。以下に例を示します。 チェック 例 型マッピング nvarchar(100) から character varying(100) への変換は有効。integer への変換は無効 数値精度 decimal(18,2) は numeric(18,2) のままである必要があり、numeric(10,0) では不可 意味チェックが等価性を捏造することはありません。正規化できない場合 (既定値に互換性がないなど) は、黙って修正を適用するのではなく WARNING を出します。これにより、不要なアラートを増やさずに本番環境での問題を防げます。 3. 動作検証 (Tier-3) 目的 : ランタイムの動作が期待どおりであることを確認する Tier 2 で定義を検証したうえで、Tier 3 では実際のランタイム動作をテストします。2 つのルーチンが構造チェックと意味チェックの両方を通過しても、スタブ、分岐処理のバグ、変換で失われる方言固有の機能などが原因で、異なる結果を返すことがあります。こうした問題を洗い出すため、動作検証は次の 3 ステップで段階的に踏み込みます。 ステップ 1: スタブの検出 バリデーターは、PostgreSQL 側のルーチン本体が意味のある実装になっているか、それとも BEGIN RETURN 0; END のようなプレースホルダーのロジックだけかを調べます。スタブの生成は自動変換で最も起こりやすい失敗パターンのひとつなので、最初に検出しておくことで後続ステップの無駄な作業を防げます。 以下は、変換時に AI エージェントが SQL Server プロシージャから生成した PostgreSQL のスタブの例です。 SQL Server プロシージャ : --SQL Server procedure CREATE PROCEDURE BabelFish.bf_collationproperty @collation_name SYSNAME = 'Traditional_Spanish_CS_AS_KS_WS', @prop_name VARCHAR(255) = 'CodePage' AS BEGIN SELECT COLLATIONPROPERTY('Traditional_Spanish_CS_AS_KS_WS', 'CodePage') AS 'CodePage' , COLLATIONPROPERTY('Traditional_Spanish_CS_AS_KS_WS', 'LCID') AS 'LCID' , COLLATIONPROPERTY('Traditional_Spanish_CS_AS_KS_WS', 'ComparisonStyle') AS 'ComparisonStyle' , COLLATIONPROPERTY('Traditional_Spanish_CS_AS_KS_WS', 'Version') AS 'Version'; END; PostgreSQL のスタブプロシージャ : --PostgreSQL stub procedure CREATE OR REPLACE PROCEDURE babelfish.bf_collationproperty(IN collation_name varchar(128) DEFAULT 'Traditional_Spanish_CS_AS_KS_WS', IN prop_name varchar(255) DEFAULT 'CodePage') LANGUAGE plpgsql AS $body$ BEGIN RAISE NOTICE 'Stub: babelfish.bf_collationproperty - needs manual T-SQL to PL/pgSQL conversion'; END; $body$; ステップ 2: 構造の検証 バリデーターは両側のルーチンのシグネチャ、入出力パラメータ、戻り値の型を検査し、移行後のアプリケーションで呼び出しエラーを引き起こす構造の不一致を特定します。 ステップ 3: ミューテーションテストと LLM による評価 バリデーターはテスト入力を生成し、両方のデータベースに対して実行して結果を比較します。行レベルで 1 件でも差異があれば、それが 2 つのルーチンが等価でないことを示す具体的な反例になります。ミューテーションテストで判断がつかない場合は、Amazon Bedrock を通じた LLM による評価で機能的な等価性を判定し、最終的な結論を出します。 4. スコアリング 各チェックは、オブジェクトごとに PASS/FAIL または WARNING を出力します。レポートには 決定論的な 2 つの主要スコア が示され、同じ入力であれば実行ごとに同じ値になります。 Storage Score – データを保持するオブジェクト (テーブル、インデックス) 全体でのスキーマの一貫性を測る Code Score – 実行可能なオブジェクト (ビュー、ストアドプロシージャ、関数、トリガー) 全体での機能カバレッジを測る この 2 つの数値で移行のカバレッジを素早く把握できますが、最終的な評価を決めるのはこれらではありません。それを担うのが AI ジャッジ ( LLM-as-a-Judge )です。これは、エキスパートレビュワーとして振る舞う Amazon Strands Agents です。ルールベースのチェックが答えるのは「何が違うのか」です。これに対して AI ジャッジが答えるのは「それは重要なのか、どう直すべきか」です。 この AI ジャッジは両方の稼働中データベースに読み取り専用でアクセスでき、フラグの立った問題を裏付けたり否定したりするために自ら検証クエリを発行できます。そのうえで、この Strands Agents が検出内容を根本原因ごとのクラスターにまとめます。たとえば、スキーマがひとつ欠けていることが原因で 29 個のトリガーが欠落している場合、29 件ではなく 1 件のクラスターとして扱われます。各クラスターには次の重大度が割り当てられます。 重大度 基準 CRITICAL ユーザーデータの損失または破損 HIGH 将来的に気づきにくい障害が起きる、またはアプリケーションからの呼び出しが失敗する MEDIUM アプリケーションが意図どおりに動作しない可能性がある LOW 表示上の問題で、動作を妨げない 根本原因ごとにまとめるこのアプローチでは、影響を受けたオブジェクトを個別に列挙するのではなく、大元の問題に対処するためノイズが減ります。共通の原因を修正すれば、そこから派生したすべての症状が一度に解消します。 本番移行準備の判定ルール Critical の検出があれば、他のスコアに関わらず本番デプロイをブロックする High のクラスターがあれば条件付きの準備完了となる (追加の検証が必要) Medium と Low の問題は、Critical や High のブロッカーを上書きしない まとめ SQL Server から PostgreSQL への移行は影響範囲の大きい変更であり、テストに合格したというだけでは正しさの証明にはなりません。AWS Transform の 3 層検証ワークフローは、その主張を監査可能な成果物に変えます。Tier 1 ですべてのオブジェクトが移行できたことを確認し、Tier 2 で個々のオブジェクトが意味的に等価であることを確認し、Tier 3 でルーチンが同じ結果を返すことを実際に検証します。さらに AI ジャッジである Amazon Strands エージェントが検出内容を根本原因ごとにまとめ、重大度にもとづいた評価を出すため、主要スコアが高いだけで重大なデータ損失の問題が見過ごされることはありません。 まずは最初のスキーマ移行の検証を AWS Transform で試してみてください。詳細は以下のリソースをご覧ください。 AWS Transform Amazon Aurora PostgreSQL Amazon Bedrock Amazon Strands Agents 翻訳はソリューションアーキテクトの Yoshinori Sawada が担当しました。原文は こちら です。 著者について Amit Kachroo Dr. Amit は、Amazon Agentic AI Science チームのシニアアプライドサイエンティストとして、コード変換のための生成 AI および LLM システムを構築しています。さまざまなプログラミング言語やデータベースに対応した変換機能を開発するサイエンスチームを率いています。詳しくは https://amitkac.github.io/ をご覧ください。 Vijay Mandadi Vijay は、AWS Migrations and Modernizations グループのエンジニアリングリーダーです。分散システム、クラウドコンピューティング、仮想化、ワークロード変換、ヘルスケアの分野で 16 年以上の経験を持ちます。AWS では、生成 AI とエージェンティック AI を活用して、お客様のアプリケーションワークロードのモダナイゼーションとクラウドネイティブ化を加速することに取り組んでいます。 Nits Jeganathan Nits は、AWS Transform のプロダクトリーダーです。IT 業界で 15 年の経験を持ち、エッジコンピューティング、システム開発、アプリケーションモダナイゼーションの分野で 12 件の特許と 2 件の論文があります。複雑な課題の解決とカスタマーエクスペリエンスの向上に情熱を注いでおり、現在は生成 AI を使ったレガシーアプリケーションのモダナイゼーション加速に注力しています。
このブログは、2026 年 8 月 3 日に公開された「  Modernize SQL Server databases to Aurora PostgreSQL using AWS Transform  」を翻訳したものです。 はじめに SQL Server データベースの Aurora PostgreSQL へのモダナイゼーションは、始める前から停滞することがよくあります。インフラストラクチャーのセットアップ、ネットワーク構成、資格情報の共有、セキュリティレビューといった準備作業に何週間もかかり、移行の中身を評価する段階にすらたどり着けないのです。 AWS Transform フルスタック Windows モダナイゼーション  の Offline Source を使用すると、こうした障壁を飛び越えて、SQL Server データベースのスキーマファイルをアップロードするだけで Microsoft SQL Server データベースの  Amazon Aurora PostgreSQL-Compatible Edition  (Aurora PostgreSQL) へのモダナイゼーションを開始できます。 SQL Server 環境を管理していて、始めるまでの複雑さからモダナイゼーションを先送りにしてきた方に、ぜひ読んでいただきたい記事です。Offline Source がインフラストラクチャーの事前準備をどのように不要にするか、.NET アプリケーションコードのアセスメントを含む変換ワークフローがエンドツーエンドでどのように動くか、そして SQL Server スキーマの DDL エクスポートから、変換済みアプリケーションコードを伴う検証済み Aurora PostgreSQL スキーマに至るまでの流れを解説します。 課題: アセスメント前のインフラストラクチャー要件 SQL Server データベースのモダナイゼーションアセスメントには従来、以下が必要でした : ソースデータベースと変換ツール間のネットワーク接続 ソースサーバーへの資格情報の共有またはエージェントのインストール スキーマ分析のための中間環境のプロビジョニング 厳格なセキュリティポリシー、規制環境、または企業ファイアウォールの背後にあるデータベースを持つ組織にとって、アセスメント作業を始める前の段階でこれらの前提条件だけでモダナイゼーションプロジェクトが数週間から数か月遅れることもありました。 ソリューション概要 AWS Transform  の Offline Source を使用すると、標準的な Data Definition Language (DDL) エクスポートファイルからソースデータベースの構造を再現できます。稼働中の SQL Server インスタンスに接続する必要はなく、 DDL をアップロードするだけで AWS Transform がアセスメントから変換、検証、Aurora PostgreSQL へのデプロイまでを実行します。インフラストラクチャーの事前準備は一切不要です。 図 1: AWS Transform Offline Source ワークフロー ワークフローは 5 つのステージで構成されます : データベースアセスメント : データベースオブジェクトの複雑さ、依存関係、作業量レベルを分析 スキーマ変換 : SQL Server オブジェクトの PostgreSQL への LLM ベースの変換 検証 : 3 層の検証 (構造的、意味的、機能的) デプロイ : 検証済みスキーマを Aurora PostgreSQL クラスターに適用 アプリケーションのアセスメントと変換 : .NET ソースコードを接続し、スキーマと並行してデータベース依存のアプリケーションコードをアセスメントおよび変換 前提条件 開始する前に、以下を確認してください : AWS Transform console へのアクセスを持つ AWS アカウント DDL を抽出するための SQL Server に接続する資格情報 Aurora PostgreSQL クラスターを作成する権限を持つ AWS アカウント (AWS Transform はデプロイステップの一部としてターゲットクラスターをプロビジョニングします) オプション : .NET アプリケーションアセスメント用の、 AWS CodeConnections 経由でアクセス可能な、または Amazon S3 や Personal Access Token (PAT) 経由でアップロードされたソースコードリポジトリ (GitHub、GitLab、または Bitbucket) AWS Transform for SQL Server は US East (N. Virginia) us-east-1 でのみ利用可能です。他のリージョンのデータベースの場合、変換のために us-east-1 にクローンしてください。 AWS アカウントで IAM Identity Center が有効化されていること Microsoft SQL Server バージョン 2008 R2 から 2022 (すべてのエディションがサポートされています)。SQL Server は AWS 上または AWS 外でホストできます。 オプション (.NET アセスメント用): .NET Core 6、7、8、または 10 アプリケーション。レガシーな .NET Framework 4.x 以前はサポートされていません。 ウォークスルー 以下のセクションでは、Offline Source ワークフローの各ステージを説明します。 ステップ 1: SQL Server DDL を抽出してアップロード AWS Transform は DDL を抽出するための 2 つの方法を提供します : オプション 1 (推奨): 変換ジョブを作成すると、AWS Transform は SQL Server に対して実行する抽出スクリプト ( ExtractDatabaseMetadata.ps1 ) を提供します。このスクリプトはデータベースごとに SQL Server オブジェクトタイプ (テーブル、ストアドプロシージャ、関数、トリガーなど) の DDL 定義を抽出し、複数の機能領域 (SSIS、SSRS、Service Broker、Agent Jobs など) を検出するため、アセスメントに最も完全な情報を提供します。 オプション 2 (手動): SSMS または sqlpackage を使用して SQL DDL ファイル ( CREATE TABLE 、 CREATE PROCEDURE  などのステートメント) を手動でエクスポートし、zip にしてアップロードします。各 SQL ファイルには 1 つのデータベースのステートメントのみを含める必要があります。 結果の DDL ファイル (または zip) を AWS Transform にアップロードして Offline Source を作成します。 ステップ 2: アセスメントの確認 AWS Transform はすべてのデータベースオブジェクトの複雑さと依存関係を分析します。アセスメントレポートには以下が含まれます : オブジェクト間の関連性を可視化する依存関係マップ 各オブジェクトの複雑さスコア (Simple、Moderate、Complex) 手動変換と自動変換の作業量 (LOE) の見積もり エージェントによる自動化で削減できる工数と、人的レビューが必要な部分の内訳 アセスメントでは、PostgreSQL のイベントトリガーへの置き換えが必要な DDL トリガーや、例外ブロック内でのみ有効な構文を使用している関数など、手動レビューが必要になる可能性のある項目も識別されます。これらの情報をもとに、変換開始前にチームの作業計画を立てることができます。 ステップ 3: 変換をカスタマイズ アセスメントを確認した後、AWS Transform は変換の実行方法を定義する変換プランを生成します。プランは実行戦略、フェーズの順序付け、変換ルール、インフラストラクチャー構成を単一のレビュー可能なアーティファクトに統合します。デフォルトを受け入れて進めることも、変換開始前に任意の側面をカスタマイズすることもできます。 変換プランは 4 つの領域をカバーします : 実行ウェーブ – データベースはウェーブ順に変換され、各ウェーブ内で最大 5 つのデータベースが並行して実行されます。次のウェーブは現在のウェーブのすべてのデータベースが完了した後にのみ開始されます。ウェーブ間でデータベースの順序を変更したり、完全に除外したりできます。 ジョブプラン – 変換ジョブのフェーズの順序 (スキーマ変換、ターゲットプロビジョニング、スキーマデプロイ、コード変換、およびオプションの合成テストデータ生成)。必要に応じてオプションフェーズをスキップできます。 変換およびカスタムルール – 型マッピング (例: SQL Server の MONEY から PostgreSQL の DECIMAL(19,4) )、スキーマ名マッピング (例: 単一データベース移行での dbo から public )、関数マッピング (例: GETDATE から CURRENT_TIMESTAMP )、IDENTITY 列戦略 ( GENERATED BY DEFAULT または GENERATED ALWAYS )、およびプロシージャ結果のハンドリング (refcursor または関数リターンスタイル)。適切なデフォルトが自動的に適用されるため、ユースケースに合わないものだけを変更するだけで済みます。 ターゲットプロビジョニング構成 – 新しい Aurora PostgreSQL クラスターを作成するか既存のものに接続するか、およびインスタンスクラス、ネットワーク設定、資格情報管理。 これらの設定は、コンソールでプランを直接編集するか、自然言語でプリファレンスを記述するか、JSON 構成ファイルを提供することでカスタマイズできます。例えば、「MONEY を DECIMAL(19,4) にマッピングし、dbo に public を使用し、GENERATED ALWAYS で IDENTITY 列を生成する」とリクエストすると、AWS Transform が該当するルールを適用します。 ステップ 4: LLM ベースのスキーマ変換の実行 AWS Transform では、大規模言語モデル (LLM) を使用して SQL Server スキーマオブジェクトを PostgreSQL に変換します。変換はコンテキストを考慮し、構文だけでなくビジネスロジックの意図を保持します。 変換はステージごとに進行します: 基盤オブジェクト (スキーマ、シーケンス、シノニム、ユーザー定義型) テーブルと主キー 制約とインデックス プログラマブルオブジェクト (ストアドプロシージャ、関数、ビュー、トリガー) LLM ベースのアプローチは、ルールベースのツールでは通常手動変換が必要な複雑な T-SQL パターンやプロプライエタリな SQL Server 構文を処理します。これにより、自動変換率が向上し、手動介入が減少します。 ステップ 5: 変換済みオブジェクトの検証 変換されたオブジェクトは、以下の 3 層の自動検証を通過します : 構造的検証 は、変換された PostgreSQL スキーマが構文的に正しくデプロイ可能であることを確認します。 意味的検証 は、変換されたオブジェクトがソースの論理的な意味と動作を保持していることを検証します。 機能的検証 は、ソースとターゲット間のクエリ動作を比較し、本番環境に影響する前に差異を検出します。 各検証パスでは分離されたサンドボックスが起動し、ソースとターゲット両方のスキーマをロードした上で、型マッピング、制約、ルーチンを検査する AI エキスパートレビュワーが実行されます。AWS Transform はストレージオブジェクトの変換後とコードオブジェクトの変換後にそれぞれ検証レポートを生成します。各レポートでは、カテゴリごと (テーブル、列、制約、インデックス、ビュー、プロシージャ、関数) に Pass、Warning、Fail の結果が示されます。 検証完了後、エキスパートアセスメントが全体の変換を評価します : Ready: オブジェクトが完全に変換および検証済み Conditional: オブジェクトが変換済みで、レビュー用にマイナーな問題がフラグ付けされている Not Ready: 手動介入が必要なオブジェクト ステップ 6: 残りの問題への対応 Conditional または Not Ready と評価されたオブジェクトについて、AWS Transform は具体的な次のステップを含む Schema Conversion Report を提供します。2 つのオプションがあります : 組み込みの AWS Transform Web コンソールを使用して、ローカル IDE のインストールなしにブラウザで直接変換の問題を確認して修正する。 または、Kiro や他のローカル AI コーディングアシスタントと  AWS Transform MCP Server  を使用して、好みの IDE にアーティファクトを取得する。 修正を加えた後に検証を再実行し、スキーマ全体が検証に合格するまで繰り返しデプロイできます。 Web コンソールでは、変換レポートの確認、SQL の編集、検証の再実行、変更のデプロイまでをブラウザ上で一貫して行えます。ローカル開発を好むチームには、MCP Server を使って IDE から AWS Transform ワークスペースに接続して普段の開発ワークフローのまま、同じアーティファクトとデプロイ機能を利用できます。 ステップ 7: Aurora PostgreSQL にデプロイ 検証が完了したら、AWS Transform に AWS アカウントへのアクセスを付与するデータベースコネクタを設定します。AWS Transform はターゲットの Aurora PostgreSQL クラスターをプロビジョニングし、変換済みスキーマをデプロイします : 既存のクラスターを選択するか、AWS Transform に新しいクラスターを作成させます。 AWS Transform が変換済みオブジェクトをターゲットに適用します。 データベース資格情報が生成され、AWS Secrets Manager に保存されます。 問題がないかデプロイレポートを確認します。 デプロイ後、継続的な運用に不要な場合は、オプションで RDS Data API を無効にできます。 ステップ 8: .NET アプリケーションコードのアセスメントおよび変換 スキーマのデプロイが完了すると、コード変換が実行可能になります。アプリケーションのアセスメントと変換を行うために、.NET Core (6、7、8、または 10) のソースコードリポジトリを接続します。アプリケーションのデータベースアクセスには ADO.NET または Entity Framework (6.3-6.5、または EF Core 1.0-8.0) を使用している必要があります。なお、アセスメントはスキーマデプロイ前でも開始できますが、コード変換にはスキーマが先にデプロイされている必要があります。 ソースコードへの接続には、以下を使用できます :   AWS CodeConnections (GitHub、GitLab、または Bitbucket リポジトリ用) ソースコードの直接アップロード用の Amazon S3 AWS Secrets Manager  に保存する Personal Access Token (PAT) 接続すると、AWS Transform は : コネクタを通じて利用可能なリポジトリを検出します。 ソースコードをダウンロードして分析し、データベース参照、Entity Framework モデル、接続文字列、SQL クエリパターンを識別します。 モダナイゼーションの複雑さ (Low、Medium、High) と具体的な変換レコメンデーションを含むアプリケーションアセスメントレポートを生成します。 アセスメント完了後、コード変換を開始して .NET アプリケーションコードを Aurora PostgreSQL をターゲットとするように更新できます。コード変換はスキーマ変換の結果を使用して、アプリケーション内の接続文字列、ORM マッピング、インライン SQL クエリを更新します。 ステップ 9: テストデータで検証する (オプション) AWS Transform は本番データを公開することなく、ターゲットクラスターに検証用のテストデータを生成できます。テストデータ生成レポートには何が作成されたかが記載され、代表的なデータボリュームに対してストアドプロシージャ、ビュー、アプリケーションクエリの徹底的なテストが可能になります。 クリーンアップ このウォークスルー中にテスト目的で新しい Aurora PostgreSQL クラスターを作成した場合 : Amazon RDS console に移動します。 作成したクラスターを選択します。 Actions > Delete を選択します。 削除を確認します。 AWS Transform ワークスペースは追加料金なしでそのまま残しておけるため、後から参照することができます。 まとめ AWS Transform for SQL Server の Offline Source を使うことで、SQL Server モダナイゼーションにおける 2 つの大きな障害、すなわち「始めるまでのハードル」と「スキーマ変換の精度・検証」を解消できます。稼働中のデータベースへの接続設定は不要で、DDL ファイルをアップロードするだけで始められます。インフラストラクチャーのプロビジョニングなしに、スキーマのアセスメントから変換、検証、Aurora PostgreSQL へのデプロイまでを実行できます。さらに .NET ソースコードリポジトリを接続すれば、データベースと合わせてアプリケーションコードの変換も可能です。これらすべてが単一の統合ワークフローで完結します。 Offline Source を開始するには、 AWS Transform console  を開いて最初の変換ワークスペースを作成してください。詳細については、 AWS Transform ドキュメント を参照してください。モダナイゼーションターゲットとしての Aurora PostgreSQL の詳細については、 Amazon Aurora PostgreSQL-Compatible Edition  を参照してください。 翻訳はソリューションアーキテクトの Yoshinori Sawada が担当しました。原文は こちら です。 Vikas Babu Gali Vikas Babu Gali は Amazon Web Services のシニアスペシャリストソリューションアーキテクトで、SQL Server の移行、モダナイゼーション、クラウドデータベース変換を専門としています。Vikas は Fortune 500 企業の多くのお客様を大規模なミッションクリティカルなクラウド変換でガイドしてきました。 Nits Jeganathan Nits Jeganathan は AWS Transform のプロダクトリーダーで、15 年の IT 業界経験、12 件の特許、エッジコンピューティング、システム開発、アプリケーションモダナイゼーションに関する 2 件の出版物を持っています。Nits は複雑な課題の解決とカスタマーエクスペリエンスの改善に情熱を注いでいます。現在は生成 AI を使用したレガシーアプリケーションのモダナイゼーション加速に注力しています。 Shashank Kalki Shashank Kalki は Amazon Web Services のデータベース移行スペシャリストソリューションアーキテクトです。お客様と連携して最も困難なデータ移行の課題を解決し、Amazon Aurora と Amazon RDS への移行の計画、実行、最適化を支援しています。専門分野は大規模な異種データベース変換と移行のベストプラクティスです。
本記事は 2026 年 8 月 11 日 に公開された「 Natural language queries on Oracle Database 26ai: Getting started with Select AI on Amazon RDS for Oracle with Amazon Bedrock 」を翻訳したものです。 Amazon Relational Database Service (Amazon RDS) for Oracle で Oracle Database 26ai が利用可能になりました。Amazon RDS における Oracle 初の AI ネイティブなデータベースリリースで、生成 AI、ベクトル検索、機械学習がエンジンに直接組み込まれています。バックアップ、パッチ適用、マルチ AZ による高可用性、リードレプリカは Amazon RDS が処理するため、インフラストラクチャの管理ではなく AI アプリケーションの構築に集中できます。 本記事では、新機能のなかでも特に効果の大きい Select AI を紹介します。Select AI では、Amazon Bedrock の基盤モデル (FM) を使い、自然言語のプロンプトでリレーショナルデータを照会できます。「今四半期の売上上位 5 社の顧客は?」とデータベースに尋ねれば、コードを 1 行も書かずに、正しい SQL とその実行結果が返ってきます。内部では、Oracle の DBMS_CLOUD_AI パッケージがテーブルのスキーマを含むプロンプトを組み立て、選択した基盤モデルに送信します。生成された SQL を実データに対して実行し、結果を返すまでのすべてが同一のデータベースセッション内で完結します。 このアーキテクチャなら、AI インフラストラクチャを自前で構築する運用負荷がなくなります。Amazon Bedrock はフルマネージドかつサーバーレスです。プロビジョニングする GPU も、ホストするモデルも、維持する推論エンドポイントもありません。Anthropic、Meta、Amazon といったプロバイダーの基盤モデルに単一の API でアクセスでき、 DBMS_CLOUD_AI プロファイルの属性を 1 つ変えるだけでモデルを切り替えられます。セキュリティは、すでに使い慣れた Amazon RDS のモデルに従います。Select AI のリクエストは Virtual Private Cloud (VPC) インターフェイスエンドポイントを経由するため、データは VPC 内に留まり、パブリックインターネットを通りません。 DBMS_CLOUD_AI はネイティブな PL/SQL なので、すでに持っている SQL のスキルで生成 AI 機能を構築できます。別途 AI スタックを学んだり維持したりする必要はありません。 本記事は、Amazon RDS 上の Oracle Database 26ai の AI 機能を扱う 3 回シリーズの第 1 回です。今回は、Amazon Bedrock の認証情報の設定から自然言語クエリの実行まで、Select AI を一通り解説します。第 2 回では Oracle AI Vector Search による Retrieval Augmented Generation (RAG) を、第 3 回では SQL プロパティグラフを使った GraphRAG を取り上げ、グラフ探索、ベクトル検索、リレーショナルなフィルタリングを 1 つの SQL クエリで組み合わせる方法を紹介します。 Amazon RDS 上の Oracle Database 26ai の AI 機能 Amazon RDS 上の Oracle Database 26ai と Amazon Bedrock を組み合わせると、次の機能が使えます。 機能 内容 ユースケースの例 Select AI (NL2SQL) 自然言語のプロンプトを SQL に変換し、クエリを実行して、単一の SQL セッション内で結果を返す ビジネスアナリストが SQL を書かずに売上データを照会する。経営層がダッシュボードから即座に答えを得る DBMS_CLOUD_AI.GENERATE PL/SQL から基盤モデルを呼び出し、チャット、要約、翻訳、合成データ生成を行う CLOB 列に格納されたサポートチケットを要約する。開発/QA 環境向けに現実的なテストデータを生成する。製品説明を翻訳する Oracle AI Vector Search 標準的な SQL でベクトル埋め込みをリレーショナルデータと並べて保存、インデックス化、検索する 製品カタログのセマンティック検索。類似する顧客プロファイルの検索。レコメンデーションエンジンの実現 Retrieval Augmented Generation (RAG) ベクトル検索と大規模言語モデル (LLM) の生成を組み合わせ、AI の回答を実際のビジネスデータに基づかせる 社内文書やデータベースのレコードを使って質問に答える AI アシスタント データベース内 ONNX 推論 埋め込み、分類、回帰などの ML モデルを、外部 API を呼び出さずに Oracle 内部で実行する 挿入時に埋め込みを生成する。不正な取引をリアルタイムで分類する。ラウンドトリップなしでリードをスコアリングする プロパティグラフでの Select AI SQL プロパティグラフに対して、自然言語のプロンプトでグラフの関係を照会する 「サプライヤー X と顧客 Y の間の最短サプライチェーン経路を見せて」 ソリューションの概要 この手順を終えると、次のことができるようになります。 AWS Identity and Access Management (IAM) の認証情報を作成し、 DBMS_CLOUD.CREATE_CREDENTIAL で Oracle 内に格納する。 VPC インターフェイスエンドポイントを設定し、プライベートな Amazon RDS インスタンスからインターネットを経由せずに Amazon Bedrock に到達できるようにする。 Claude Sonnet や Amazon Nova などの Amazon Bedrock の基盤モデルを指す DBMS_CLOUD_AI プロファイルを作成、管理する。 LLM から Oracle のテーブルに合成テストデータを直接生成する。 SELECT AI の SQL 構文を使い、自分のテーブルに対して自然言語クエリを実行する。 DBMS_CLOUD_AI.GENERATE() をチャット、SQL の説明、要約に使う。 次の図は全体のアーキテクチャです。 図 1: Amazon RDS for Oracle 26ai と Amazon Bedrock による Select AI 主なコンポーネントは次のとおりです。 コンポーネント 役割 Amazon RDS for Oracle Database 26ai DBMS_CLOUD_AI を含み、Select AI のクエリを実行する Amazon Bedrock 基盤モデル (Claude、Nova) へのマネージドなアクセスを提供する VPC インターフェイスエンドポイント ( bedrock-runtime ) プライベートな Amazon RDS のサブネットからの Amazon Bedrock API 呼び出しを、インターネットを経由せずにルーティングする IAM 認証情報 DBMS_CLOUD.CREATE_CREDENTIAL で Oracle に格納したアクセスキー ID とシークレット。Oracle がすべての Amazon Bedrock 呼び出しを SigV4 で署名するために使う 動作の流れ: ユーザーが SQL クライアントで自然言語の質問を入力します。Oracle が SELECT AI ステートメントを受け取り、質問と対象テーブルのスキーマメタデータを含むプロンプトを構築します。そして IAM ユーザーのアクセスキーで署名したリクエストを、VPC インターフェイスエンドポイント経由で HTTPS により Amazon Bedrock に送信します。LLM が返した SQL を Oracle が実データに対して実行し、結果セットを返します。ここまでのすべてが同一の SQL セッション内で行われます。 前提条件 始める前に、次を確認してください。 プライベートな VPC サブネットにデプロイした Amazon RDS for Oracle Database 26ai インスタンス。本記事では、データベースインスタンスとして一般的なパターンかつ推奨構成である、プライベートな Amazon RDS for Oracle インスタンスを前提とします。テスト目的であれば、インスタンスをパブリックに公開することもできます。 DBMS_CLOUD パッケージと DBMS_CLOUD_AI パッケージがインストールされていること (確認方法はステップ 1 で説明します)。 IAM ユーザーと VPC エンドポイントを作成する権限を持つ AWS アカウント。 対象の AWS リージョンで Amazon Bedrock が利用できること。Amazon Bedrock ではほとんどの基盤モデルがデフォルトで利用可能です。必要に応じて Amazon Bedrock コンソールの モデルアクセス で確認してください。 踏み台ホストまたは AWS Systems Manager Session Manager のポートフォワーディング経由で Amazon RDS インスタンスに接続した SQL Developer、SQLcl、その他の Oracle SQL クライアント。 Amazon RDS インスタンスに関連付けられた VPC ID、サブネット ID、セキュリティグループ ID。 DBMS_CLOUD と DBMS_CLOUD_AI の両方に EXECUTE 権限を持つデータベースユーザー (例: AIUSER)。必要なら、先に作成しておきます。 GRANT EXECUTE ON DBMS_CLOUD TO AIUSER; GRANT EXECUTE ON DBMS_CLOUD_AI TO AIUSER; ステップ 1: DBMS_CLOUD_AI が利用可能か確認する 設定を始める前に、必要なパッケージがインストールされていることを確認します。Amazon RDS for Oracle 26ai では、インスタンス作成時に DBMS_CLOUD と DBMS_CLOUD_AI がデフォルトでインストールされます。 SELECT object_name, object_type, status FROM dba_objects WHERE object_name IN ('DBMS_CLOUD', 'DBMS_CLOUD_AI') AND object_type IN ('PACKAGE', 'PACKAGE BODY') ORDER BY 1, 2; 4 行が返るはずです。 DBMS_CLOUD と DBMS_CLOUD_AI のそれぞれについて PACKAGE と PACKAGE BODY です。パッケージが見つからない場合は、Amazon RDS インスタンスが Oracle Database 26ai で動作しているか確認してください。 ステップ 2: Amazon Bedrock ランタイム用の VPC インターフェイスエンドポイントを作成する Amazon RDS for Oracle DB インスタンスは、ポート 443 (HTTPS) で Amazon Bedrock ランタイムのエンドポイント ( bedrock-runtime.<region>.amazonaws.com ) に到達できる必要があります。この通信を AWS ネットワーク内のプライベートな経路に留め、インターネットアクセスを不要にするには、Amazon Bedrock ランタイムサービス用の VPC インターフェイスエンドポイントを作成します。Amazon RDS インスタンスをプライベートに保てるため、VPC インターフェイスエンドポイントの利用が推奨されます。本記事の例でも VPC インターフェイスエンドポイントを使います。 もう 1 つの選択肢は NAT ゲートウェイです。NAT ゲートウェイを使う場合、DB インスタンスのサブネットに NAT ゲートウェイ経由でインターネットへ向かうルートが必要です。NAT ゲートウェイの設定は、 ドキュメント の「Amazon VPC network requirements」セクションのオプション 2 を参照してください。 エンドポイントを作成する AWS マネジメントコンソールで VPC 、 エンドポイント 、 エンドポイントを作成 の順に移動します。 サービスカテゴリ で AWS サービス を選択します。 サービス名 の検索で bedrock-runtime と入力し、 com.amazonaws.<your-region>.bedrock-runtime を選択します。 VPC では、Amazon RDS インスタンスがある VPC を選択します。 サブネット では、Amazon RDS の DB サブネットグループが使っているサブネットと同じものを選択します。 セキュリティグループ では、Amazon RDS インスタンスのセキュリティグループからの インバウンド TCP ポート 443 を許可するセキュリティグループをアタッチします。 ポリシー では フルアクセス を選択します。 プライベート DNS 名 を有効にします。ここが重要です。有効にすることで Oracle が bedrock-runtime.<region>.amazonaws.com をプライベート IP に解決し、通信が VPC 内でルーティングされます。 エンドポイントを作成 を選択し、状態が 利用可能 になるまで待ちます。 ステップ 3: Amazon Bedrock エンドポイントへのネットワーク ACL アクセスを許可する Oracle はアクセスコントロールリスト (ACL) でアウトバウンドのネットワークアクセスを制御します。AIUSER ユーザーに、 bedrock-runtime.<your-region>.amazonaws.com への HTTP/HTTPS のアウトバウンド接続を許可します。 BEGIN DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE( host => 'bedrock-runtime.<your-region>.amazonaws.com', ace => xs$ace_type( privilege_list => xs$name_list('connect', 'resolve', 'http'), principal_name => 'AIUSER', principal_type => xs_acl.ptype_db ) ); END; / DNS 解決を確認する エンドポイントが有効になったら、Oracle が Amazon Bedrock のホスト名をプライベート IP に解決することを確認します。 -- Should return a private IP, not a public AWS IP SELECT UTL_INADDR.GET_HOST_ADDRESS( 'bedrock-runtime.<your-region>.amazonaws.com' ) AS resolved_ip FROM dual; 出力例: RESOLVED_IP --------------- 172.31.17.236 ステップ 4: AWS の認証情報を作成し Oracle Database に格納する DBMS_CLOUD_AI は IAM のアクセスキー ID とシークレットアクセスキーで Amazon Bedrock に認証します。設定手順としては、Amazon Bedrock の基盤モデル呼び出しに必要な最小限の権限だけを付与した専用の IAM ユーザーを作成し、そのユーザーのアクセスキーを発行します。認証情報を取得したら、 DBMS_CLOUD.CREATE_CREDENTIAL を呼び出して Oracle データベース内に格納します。Oracle はキーを保存時に暗号化し、 DBMS_CLOUD_AI がアウトバウンドの Amazon Bedrock API リクエストの署名に自動的に使用します。 ステップ 4a: Amazon Bedrock アクセス用の IAM ユーザーを作成する 次のポリシーを持つ IAM ユーザーまたはロールを作成します (既存の ID にアタッチしても構いません)。 { "Version": "2012-10-17", "Statement": [{ "Sid": "BedrockInvoke", "Effect": "Allow", "Action": ["bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream"], "Resource": ["arn:aws:bedrock:region::foundation-model/*"] }] } 特定のモデルだけにアクセスを制限するには、ワイルドカードを次のように個別のモデル ARN に置き換えます。 arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-sonnet-4-5-20250929-v1:0 ステップ 4b: アクセスキーを発行する 作成したユーザーを開き、 セキュリティ認証情報 タブに移動します。 アクセスキー で アクセスキーを作成 を選択します。 ユースケースを選択し、 アクセスキーを作成 を選択します。 アクセスキー ID とシークレットアクセスキーをコピーまたはダウンロードします。 セキュリティに関する注意: アクセスキーは長期的な認証情報です。本番環境では、IAM コンソールで定期的にローテーションすることを検討してください。この IAM ユーザーにはコンソールアクセス (パスワード) を与えないようにします。 ステップ 4c: IAM ユーザーのアクセスキーを Oracle に格納する Amazon Bedrock のモデルアクセス: 2025 年時点で、Amazon Bedrock のほとんどの基盤モデルはデフォルトで利用可能で、明示的な有効化は不要です。アカウントとリージョンでのモデルの利用可否は、 Amazon Bedrock コンソール の モデルアクセス で確認または変更できます。Amazon RDS for Oracle 26ai の DBMS_CLOUD_AI で動作を検証済みのモデルは次のとおりです。 モデル名 モデル ID 備考 Anthropic Claude Sonnet 4.6 us.anthropic.claude-sonnet-4-6 NL2SQL の精度が最も高い (推奨) Anthropic Claude Haiku 4.5 us.anthropic.claude-haiku-4-5-20251001-v1:0 最速 / 最低コスト Amazon Nova Pro us.amazon.nova-pro-v1:0 高性能な AWS ネイティブモデル Amazon Nova Lite amazon.nova-lite-v1:0 単純なクエリ向けの超高速モデル 重要: クロスリージョン推論のプレフィックス: Anthropic Claude と Amazon Nova Pro のモデル ID には us. プレフィックスが必要です。このプレフィックスによってリクエストがクロスリージョン推論プロファイル経由でルーティングされ、可用性が高まります。プレフィックスのないベースモデル ID を使うと ORA-20400: HTTP 400 が返ります。 DBMS_CLOUD.CREATE_CREDENTIAL を使い、ステップ 4a で取得したアクセスキーとシークレットキーを Oracle の認証情報ストアに格納します。Oracle は認証情報を暗号化し、所有ユーザーだけがアクセスできるようにします。 BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'AWS', username => '<your-access-key-id>', password => '<your-secret-access-key>' ); END; / 認証情報が正しく作成されたか確認します。 SELECT credential_name, username, enabled FROM all_credentials WHERE credential_name = 'AWS'; username 列には指定したアクセスキー ID が表示されます。シークレットキーは暗号化されて格納され、クエリでは返りません。 ステップ 5: サンプルテーブルを作成する Select AI のデモには E コマースのスキーマを使います。既存のテーブルがある場合は、ステップ 6 に進んでプロファイルの object_list で自分のテーブルを指定してください。 CREATE TABLE customers ( customer_id NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, first_name VARCHAR2(50), last_name VARCHAR2(50), email VARCHAR2(100), city VARCHAR2(50), country VARCHAR2(50), signup_date DATE, segment VARCHAR2(20) -- 'PREMIUM', 'STANDARD', 'NEW' ); CREATE TABLE products ( product_id NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, product_name VARCHAR2(100), category VARCHAR2(50), unit_price NUMBER(10,2), stock_qty NUMBER ); CREATE TABLE orders ( order_id NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, customer_id NUMBER REFERENCES customers(customer_id), order_date DATE, status VARCHAR2(20), -- 'COMPLETED', 'PENDING', 'CANCELLED' total_amount NUMBER(10,2) ); CREATE TABLE order_items ( item_id NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, order_id NUMBER REFERENCES orders(order_id), product_id NUMBER REFERENCES products(product_id), quantity NUMBER, unit_price NUMBER(10,2) ); ステップ 6: DBMS_CLOUD_AI プロファイルを作成する プロファイル は Select AI の中心となる設定オブジェクトです。AI プロバイダー、認証情報、呼び出す Amazon Bedrock のモデル、そしてプロンプトのコンテキストにスキーマを含めるデータベーステーブルを指定します。 DBMS_CLOUD_AI はデフォルトで bedrock-runtime.us-east-1.amazonaws.com に接続します。us-east-1 以外のリージョンの Amazon Bedrock ランタイムエンドポイントを使う場合は、プロファイル属性の JSON に region 属性と target_language 属性を含めます。 region には Amazon Bedrock ランタイムエンドポイントがあるリージョン (例: us-west-2) を設定します。 region を設定する場合は、 target_language (または source_language ) も含める必要があります。 chat や runsql のように翻訳を使わないアクションでも、この 2 つの属性は必ずセットで設定してください。 target_language の値が影響するのは translate アクションだけです。セットで指定しなければならないのは、Oracle の DBMS_CLOUD_AI パッケージに既知の制限があるためです。 region なしで target_language だけを指定した場合、プロファイルは bedrock-runtime.us-east-1.amazonaws.com を使い続けます。VPC インターフェイスエンドポイントが別のリージョンにあると、Oracle はエンドポイントが存在しないリージョンへパブリックインターネット経由で接続を試み、ネットワーク構成でパブリックアクセスを許可していない限り、すべての呼び出しが ORA-30699 でタイムアウトします。 次の例では、Amazon Bedrock のクロスリージョン推論 (CRIS) 経由で Anthropic Claude Sonnet 4.6 を使うプロファイルを作成します。 BEGIN DBMS_CLOUD_AI.CREATE_PROFILE( profile_name => 'CLAUDE_SONNET', attributes => '{"provider": "aws", "credential_name": "AWS", "region": "<your-bedrock-region>", "model": "us.anthropic.claude-sonnet-4-6", "target_language": "en", "object_list": [ {"owner": "AIUSER", "name": "CUSTOMERS"}, {"owner": "AIUSER", "name": "PRODUCTS"}, {"owner": "AIUSER", "name": "ORDERS"}, {"owner": "AIUSER", "name": "ORDER_ITEMS"} ] }' ); END; / object_list は、LLM 向けのスキーマコンテキストを構築するときに含めるテーブルとビューを Oracle に伝えます。Oracle はデータディクショナリから列名、データ型、列コメントを自動的に読み取り、プロンプトに組み込みます。スキーマを手作業で記述する必要はありません。 異なるモデルを指すプロファイルを複数作成し、セッションごとに切り替えることもできます。 -- Amazon Nova Pro profile BEGIN DBMS_CLOUD_AI.CREATE_PROFILE( profile_name => 'NOVA_PRO', attributes => '{"provider": "aws", "credential_name": "AWS", "region": "<your-bedrock-region>", "model": "us.amazon.nova-pro-v1:0", "target_language": "en", "object_list": [ {"owner": "AIUSER", "name": "CUSTOMERS"}, {"owner": "AIUSER", "name": "PRODUCTS"}, {"owner": "AIUSER", "name": "ORDERS"}, {"owner": "AIUSER", "name": "ORDER_ITEMS"} ] }' ); END; / セッションでプロファイルを有効化し、確認します。 EXECUTE DBMS_CLOUD_AI.SET_PROFILE('CLAUDE_SONNET'); -- Confirm active profile SELECT DBMS_CLOUD_AI.GET_PROFILE() FROM dual; -- List all profiles SELECT profile_name, status FROM user_cloud_ai_profiles; ステップ 7: 合成データを生成する Amazon Bedrock にアクセスできる AI プロファイルを設定したら、 DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA でテーブルに現実的なテストデータを自動投入できます。 GENERATE_SYNTHETIC_DATA は、指定した AI プロファイル経由で LLM を使い、文脈に沿ったレコードを生成します。 object_list パラメータには、対象テーブルとそれぞれの生成レコード数を指定する JSON 配列を渡します。 次の PL/SQL ブロックを実行して、4 つのテーブルに合成データを生成します。 BEGIN DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA( profile_name => 'CLAUDE_SONNET', object_list => '[ {"owner": "AIUSER", "name": "CUSTOMERS", "record_count": 50}, {"owner": "AIUSER", "name": "PRODUCTS", "record_count": 250}, {"owner": "AIUSER", "name": "ORDERS", "record_count": 500}, {"owner": "AIUSER", "name": "ORDER_ITEMS", "record_count": 1000} ]' ); END; / 実行すると、顧客 50 件、製品 250 件、注文 500 件、注文明細 1,000 件が生成されます。テストデータを手作業で作り込まなくても、クエリ、レポート、アプリケーションロジックの検証に使える現実的なデータセットが手に入ります。 内部では、Oracle が対象テーブルの DDL、制約、メタデータを読み取り、データ型と外部キーを満たす現実的な行を生成するよう LLM にプロンプトを出します。生成方法は次の要素でカスタマイズできます。 sample_rows : 既存のレコードを例として渡し、生成されるデータを実データのスタイルに合わせます。 user_prompt : 「英国の郵便番号のみ」「2009 年公開の映画」といったルールを指定します。 テーブル統計 (デフォルトで有効): 列の最大値・最小値と個別値のリストを使って出力範囲を制限します。 列コメント: 列にヒント (例: 許可される Status の値) を付けると、LLM は生成時にヒントに従います。 一意制約: LLM のレスポンスから重複行を自動的に破棄します。 ステップ 8: Select AI で自然言語クエリを実行する プロファイルを設定してデータを投入したら、 SELECT AI の SQL 構文で平易な英語のままリレーショナルデータを照会できます。Oracle はステートメントを受け取り、質問と object_list のテーブルスキーマメタデータを組み合わせたプロンプトを構築し、Amazon Bedrock のモデルを呼び出して結果を返します。 実行前に生成された SQL を確認する showsql を使うと、LLM が生成した SQL を実行せずに確認できます。精度の検証や信頼性の確認に役立ちます。 SELECT AI showsql how many customers do we have per country; 出力例: SELECT country, COUNT(*) AS customer_count FROM customers GROUP BY country ORDER BY customer_count DESC 実行して結果を返す runsql に切り替えると、生成された SQL を実行して結果を返します。 SELECT AI runsql how many customers do we have per country; SELECT AI runsql what is the total revenue by product category; SELECT AI runsql who are the top 3 customers by total spend; SELECT AI runsql how many orders were cancelled; SELECT AI runsql show me all pending orders with customer name and amount; 結果を自然言語の文章で返す narrate アクションは、クエリ結果を平易な英語で要約して返します。ビジネスレポートやダッシュボードに適しています。 SELECT AI narrate give me a sales summary for 2024; SELECT AI narrate who are our best customers and what do they buy; 1 つ目のクエリの出力例: Based on the 2024 sales data, total completed revenue is $14,299.98 across six completed orders. Frank Wilson is the top-spending customer at $7,000.00, followed by Alice Johnson at $6,099.99. The Software category leads all product categories in revenue. Two orders remain in Pending status with a combined value of $2,500.00. 既存の SQL を平易な英語で説明する explainsql アクションは、既存の SQL クエリを受け取って平易な英語の説明を返します。ドキュメント作成やオンボーディングに役立ちます。 SELECT AI explainsql SELECT c.first_name, c.last_name, SUM(o.total_amount) AS total FROM customers c JOIN orders o ON c.customer_id = o.customer_id WHERE o.status = 'COMPLETED' GROUP BY c.first_name, c.last_name ORDER BY total DESC; 出力例: Query Analysis & Oracle SQL Conversion Original Query Issues: - Missing schema names - Missing double quotes around case-sensitive identifiers - 'COMPLETED' is not in double quotes in the question; must use UPPER() for case-insensitive comparison Converted Oracle SQL: SELECT c."FIRST_NAME" AS first_name, c."LAST_NAME" AS last_name, SUM(o."TOTAL_AMOUNT") AS total FROM "AI_TEST"."CUSTOMERS" c JOIN "AI_TEST"."ORDERS" o ON c."CUSTOMER_ID" = o."CUSTOMER_ID" WHERE UPPER(o."STATUS") = UPPER('COMPLETED') GROUP BY c."FIRST_NAME", c."LAST_NAME" ORDER BY total DESC; ステップ 9: DBMS_CLOUD_AI.GENERATE() を他の AI タスクに使う SELECT AI 構文に加えて、 DBMS_CLOUD_AI.GENERATE() を使うと Amazon Bedrock のモデルに直接アクセスできます。自由形式のチャット、要約、プロンプトからの SQL 生成のように、データベースのスキーマコンテキストを必要としないタスクに使えます。 テキストを要約する SELECT DBMS_CLOUD_AI.GENERATE( prompt => 'Oracle Database 26ai introduces AI Vector Search, hybrid BM25 and semantic search, an embedded ONNX inference runtime, SQL/PGQ property graph queries, JSON-Relational Duality Views, native BOOLEAN type, and lock-free reservations for high-concurrency workloads.', profile_name => 'CLAUDE_SONNET', action => 'summarize' ) AS summary FROM dual; インラインのテキストを要約するだけでなく、 DBMS_CLOUD_AI.GENERATE を Amazon Simple Storage Service (Amazon S3) バケットに保存された文書を直接処理することもできます。次のクエリは Amazon S3 から PDF を取得し、 DBMS_VECTOR_CHAIN.UTL_TO_TEXT でテキストに変換します。そのうえで内容を LLM に渡して要約させます。ここまでを 1 つの SQL ステートメントで実行します。 SELECT DBMS_CLOUD_AI.GENERATE( prompt => DBMS_VECTOR_CHAIN.UTL_TO_TEXT( DBMS_CLOUD.GET_OBJECT( credential_name => 'AWS', object_uri => 'https://s3.us-west-2.amazonaws.com/<Bucket Name>/<File Name>')), profile_name => 'CLAUDE_SONNET', action => 'SUMMARIZE') FROM DUAL; / 内部では、3 つの関数が 1 つの SQL ステートメント内で連鎖します。 DBMS_CLOUD.GET_OBJECT が指定した認証情報を使って Amazon S3 バケットから PDF 文書を取得します。 DBMS_VECTOR_CHAIN.UTL_TO_TEXT がバイナリの内容を LLM が処理できるプレーンテキストに変換します。 DBMS_CLOUD_AI.GENERATE が抽出したテキストを AI プロファイル経由で Amazon Bedrock に送信し、要約を返します。Amazon RDS for Oracle インスタンスから Amazon S3 に到達できるようにするには、前提条件が 2 つ追加で必要です。1 つは Amazon S3 用の VPC ゲートウェイエンドポイントで、Amazon RDS のサブネットに関連付けられたルートテーブルに追加し、通信をパブリックインターネットから切り離します。もう 1 つは対象バケットへの s3:GetObject と s3:ListBucket の権限を付与する IAM ポリシーで、ステップ 4a で作成したユーザーにアタッチします。 トラブルシューティング 次の表に、遭遇しやすいエラーと根本原因、対処方法をまとめます。 エラー 根本原因 対処 ORA-30699: network connection failed: connection timed out bedrock-runtime の VPC エンドポイントがない、またはプロファイルの "region" が未指定か誤っている 正しいリージョンに bedrock-runtime の VPC インターフェイスエンドポイントを作成する。すべてのプロファイルに "region": "<your-region>" を追加する DNS がパブリック IP に解決される VPC エンドポイントでプライベート DNS 名が有効になっていない エンドポイントを編集してプライベート DNS 名を有効にする ORA-20400: HTTP 400 モデル ID が単一リージョン / オンデマンドの形式 (旧形式) になっている モデル ID にクロスリージョン推論の us. プレフィックスを追加する ORA-20404: HTTP 404 そのリージョンでモデルが利用できない、またはアクセスが有効になっていない Amazon Bedrock → モデルアクセスでリージョンでのモデルの利用可否を確認する。モデル ID が正しいことを確認する ORA-20400: HTTP 403 IAM ユーザーに bedrock:InvokeModel の権限がない BedrockInvokeModelPolicy が IAM ユーザーにアタッチされているか確認する ORA-20001: profile not found プロファイルが作成されていない、または名前が間違っている SELECT profile_name FROM user_cloud_ai_profiles を実行する ORA-29024: Certificate validation failure Oracle ウォレットに Amazon Bedrock の CA 証明書がない Amazon RDS では file:/rdsdbdata/rds-metadata/dbms_cloud_wallet にプリインストールされたウォレットに必要な CA が含まれているため、対応は不要 クリーンアップ この手順で作成したリソースを削除するには、次を実行します。 -- Drop AI profiles EXECUTE DBMS_CLOUD_AI.DROP_PROFILE('CLAUDE_SONNET'); EXECUTE DBMS_CLOUD_AI.DROP_PROFILE('NOVA_PRO'); -- Drop the Bedrock credential EXECUTE DBMS_CLOUD.DROP_CREDENTIAL('AWS'); -- Drop sample tables (if created for this walkthrough) DROP TABLE order_items; DROP TABLE orders; DROP TABLE products; DROP TABLE customers; AWS マネジメントコンソールでは、次の手順を実行します。 IAM → ユーザー で、ステップ 4a で作成した IAM ユーザーを削除します。 VPC → エンドポイント で、 bedrock-runtime の VPC インターフェイスエンドポイントを削除します。 まとめ 本記事では、AI プロバイダーとして Amazon Bedrock を使い、Amazon RDS for Oracle Database 26ai で Select AI を設定する一連の手順を説明しました。IAM コンソールでの AWS 認証情報の作成、Oracle への認証情報の格納、VPC エンドポイントのセットアップ、自然言語クエリの実行までを、パブリックインターネットアクセスのないプライベートな Amazon RDS インスタンスで行いました。 Select AI を使えば、データを活用する人に SQL のスキルは不要になり、AI のロジックは信頼できる Oracle 環境の内側に留まります。ビジネスアナリストは SQL Developer や Oracle に接続したツールから、平易な英語で本番データを直接照会できます。データベース管理者は、モデルに公開するテーブル、有効にする基盤モデル、使用する IAM 認証情報を完全に制御し続けられます。いずれも Oracle 標準のプロファイルと認証情報の仕組みで管理できます。 本記事は Oracle Database 26ai と Amazon Bedrock を扱う 3 回シリーズの第 1 回です。 第 1 回 (本記事): Amazon RDS での Select AI と DBMS_CLOUD_AI による自然言語クエリ。 第 2 回: Oracle 26ai のネイティブなベクトル検索と Amazon Bedrock による RAG パイプラインの構築。 第 3 回: Amazon RDS 上の Oracle Database 26ai と Amazon Bedrock によるデータベース内 GraphRAG。 著者について Yamuna Palasamudram Yamuna は AWS のプリンシパルデータベーススペシャリストソリューションアーキテクトです。AWS のリレーショナルデータベースチームで、Oracle などの商用データベースエンジンを担当しています。お客様と協力して AWS 上のリレーショナルデータベースワークロードの設計、デプロイ、最適化を支援し、技術的なガイダンスを提供することにやりがいを感じています。 Ibrahim Emara Ibrahim は Amazon Web Services のデータベーススペシャリストソリューションアーキテクトで、AWS のお客様向けにデータベースソリューションの設計と実装を担当しています。Oracle、PostgreSQL、Amazon Aurora、AWS Database Migration Service に関する専門知識を活かし、クラウド移行の推進とデータベースパフォーマンスの改善に取り組んでいます。 Minu Hong Minu は AWS の Amazon RDS for Oracle のシニアプロダクトマネージャーです。クラウドネイティブかつ AI を活用したソリューションで、お客様がデータの可能性を最大限に引き出せるよう支援することに情熱を注いでいます。仕事以外では、旅行、テニス、スキー、料理を楽しんでいます。 この記事は Solutions Architect の 矢木 覚 が翻訳しました。
Gilead (訳注: 米国バイオ製薬企業) 傘下の企業である Kite (訳注: がん治療に特化した米国医薬品企業)は、細胞治療によって治癒を実現することに注力しており、現代の研究が求める規模と複雑さに対応するため、バイオインフォマティクス基盤を進化させてきました。断片化されたプロジェクト固有のワークフローから、標準化されたクラウド対応のアプローチへ移行することで、Kite は一貫性を高め、運用負荷を軽減し、研究チーム全体で計算ツールへのアクセスを拡大しました。 この取り組みは、複雑な生物学的データを、細胞治療候補の開発に資する知見へと変換する Kite の能力を支えています。これらの変化は、プログラム横断での再現性とスケーラビリティを支えると同時に、科学者がますます複雑化するデータセットから知見を生み出すことにより集中できるようにします。この移行には、レガシーな SaaS プラットフォームから、バイオインフォマティクスのワークフローを高速化するマネージドサービスである AWS HealthOmics への移行が含まれています。 この移行により、バイオインフォマティクスの科学者にとっての効率とコスト管理が改善されると同時に、既存のラボシステムを通じて、より広範なセルフサービス型の計算ワークフローへのアクセスが可能になりました。 課題: 細胞治療のR&Dに向けたバイオインフォマティクスのスケール Kite のバイオインフォマティクス・ゲノミクス部門は、自社ラボで生成した高次元オミクスデータと、公共リポジトリのデータの双方を活用し、治療標的の特定と新規細胞治療の設計を行っています。しかし、このミッションを支える基盤は、科学の進展に合わせて進化させる必要がありました。 プロジェクトごとに、バイオインフォマティシャンはインデックス作成、アライメント、定量化にどのツールを使うかをゼロから判断する必要がありました。スクリプトはローカルマシン、専用サーバー、 AWS Batch 環境などに散在し、プロジェクト間で一貫性がありませんでした。ロギング、実行(ラン)の追跡、成果物の登録に関する標準的なプロセスも存在しませんでした。プロジェクトが完了した際、そのメタデータを誰が所有し、どこに記録すべきかが不明確でした。 「複数のサンプルやプロジェクトにわたって、ワークフローとデータ管理に一貫性をもたらしつつ、チーム横断での再現性とアクセス性を改善できる仕組みが必要でした」と、Kite Pharma のバイオインフォマティクス ディレクターである Alexander Falk 氏は述べています。「HealthOmics 導入以前は、バイオインフォマティクスのパイプラインを実行するには、個々のバイオインフォマティシャンがそれぞれ独自のツールや手法を用いて対応する必要があり、その結果、ワークフローの不統一、高い調整コスト、コミュニケーションのサイロ化が生じていました。また、出力の保存方法や再現性のための結果の文書化についても標準化されたアプローチがありませんでした。私たちの目標は、既存の LIMS と統合された標準化パイプラインを実装し、より広範で一元化されたアクセスを可能にすることでした」 — Alexander Falk 氏、Kite Pharma バイオインフォマティクス ディレクター これらの課題に加えて、サードパーティ製の SaaS ワークフロープラットフォームに対して多額のライセンス料を支払っていましたが、チームは十分に活用しきれていませんでした。この固定費型のライセンスモデルは、断続的・散発的にバッチ処理が発生する製薬 R&D のパターンとかみ合っていませんでした。また、科学者たちは、検体の受け入れ(アクセッショニング)や実験の追跡において、既存の電子実験ノート(ELN:Electronic Laboratory Notebook)を唯一の信頼できる情報源として使用していました。そのため、新たなコンピューティング基盤は、このシステムを置き換えるのではなく、連携できることが求められました。 Kite で最も計算負荷の高いワークロードの 1 つであるシングルセル・トランスクリプトーム解析は、スケーリングの課題を一層深刻なものにしていました。臨床試験プログラムの拡大に伴って全体の検体数が増加する中、ローカル環境での計算処理はもはや現実的な選択肢ではありませんでした。チームには、事前にキャパシティを確保することなく利用できる、柔軟に拡張できる(エラスティック)基盤が必要でした。 目標は、その場しのぎのスクリプト作成から脱却し、ELN と完全に統合された、より標準化・再現可能なアプローチへ移行し、運用の複雑さを軽減しつつ、データから知見を生み出す効率を高めることでした。 スケーラブルなクラウド型バイオインフォマティクスアプローチの実装 AWS Professional Services との協業により、Kite はオンプレミスのシーケンシング基盤とクラウドベースのバイオインフォマティクス ワークフローを接続する、完全自動化・イベント駆動型のゲノミクス パイプラインを設計・展開しました。これらはすべて、科学者が使い慣れた ELN インターフェースを通じてオーケストレーションされます。 イベント駆動アーキテクチャ 全体像として、このソリューションはシーケンサーから科学者までを結ぶ自動化されたデータフローを実行します。 バイオインフォマティシャンがシーケンシングの実行をトリガーし、データセンター内でデマルチプレックスを行って FASTQ データを生成します。 AWS DataSync が、Kite のオンプレミスのファイル共有から Amazon S3 へ、自動スケジュールで FASTQ ファイルをコピーし、手動でのファイル転送を不要にします。 FASTQ ファイルが S3 に到着すると、 AWS Lambda 関数がファイルヘッダーを解析してシーケンシングのメタデータ(機器 ID、ラン ID、フローセル ID、サンプル識別子)を抽出し、REST API を介して ELN に構造化されたレコードを作成します。 ELN インターフェースから、バイオインフォマティシャンが FASTQ エントリ(レコード)を特定の HealthOmics ワークフローに関連付け、パラメータを設定します。 この操作により、ELN が持つ Amazon EventBridge とのネイティブ統合を通じてイベントが発行されます。これが前処理用の Lambda 関数をトリガーし、入力ペイロードを構築して、AWS HealthOmics のプライベート ワークフロー実行を開始します。 次に AWS HealthOmics が、コンテナ化された Nextflow パイプラインを、フルマネージドかつエラスティックな計算リソース上で実行します。プロビジョニングや保守が必要なインフラはありません。ワークフロー出力は、処理済みデータ用のAmazon S3 バケットに生成されます。 ワークフローが完了すると、HealthOmics はステータスイベントを EventBridge に発行します。これが後処理用の Lambda をトリガーし、結果、品質メトリクス、出力ファイルの場所を ELN に書き戻します。 障害処理専用のLambda 関数が Amazon SQS のデッドレターキューをポーリングし、失敗したトランザクションを再処理することで、データの損失がないようにします。 図:Kite Pharma のイベント駆動型アーキテクチャ。Kite のオンプレミスストレージ、Kite の ELN、および AWS サービスの統合を示しています。AWS への自動データ転送を実現し、エンドユーザーからはインフラを抽象化して、ELN をインターフェースとして AWS 上でオミクスデータを処理できるようにします。 研究者の体験 研究者から見ると、クラウド基盤は目に見えません。バイオインフォマティシャンは、自分のワークフロー用にあらかじめ用意された ELN テンプレート(例:「nf-core による scRNA-seq」)を開き、サンプルのエンティティや、参照ゲノム・コア数といったパラメータを入力し、ワークフロー実行を登録します。登録すると、CLI やコンソールへのアクセス、インフラの知識を一切必要とせずに、自動的に実行が開始されます。実行ステータスは進行に応じて ELN 上で動的に更新され、完了すると出力ファイルは親のワークフロー実行に自動的にリンクされ、完全な来歴(プロベナンス)と追跡可能性(トレーサビリティ)が維持されます。 「残された課題の 1 つは、チーム横断で標準化されたワークフローとパラメータについて足並みをそろえることです。これは逆に言えば、技術的な複雑さの多くが日常利用から切り離されて意識されていないことを物語っています。」と、Kite Pharma のバイオインフォマティクス エンジニアリング担当アソシエイト サイエンティストである Tanner MacPhee 氏は述べています。「このプロジェクトの目標は、スケーラブルなバイオインフォマティクス ワークフローを実行する手段を提供することだけでなく、Kite の広範な科学コミュニティ全体でメタデータの取得、モニタリング、アクセス性を改善することでもありました。ELN を入口とすることで、ユーザーは基盤となるインフラを直接管理することなく、自身の ELN エントリとワークフローを直接統合できます。」 — Tanner MacPhee 氏、Kite Pharma バイオインフォマティクス エンジニアリング担当アソシエイト サイエンティスト 主要な設計上の判断 この設計は、Kite の研究および運用上のニーズに沿ったいくつかの優先事項を反映しています。呼び出しごとに課金の Lambda 関数とワークフローの実行ごとに課金される HealthOmics を用いた「サーバーレス ファースト」のアプローチは、アイドル状態のインフラコストを削減するのに役立ちます。双方向の ELN 統合により、メタデータは REST API を介して ELN に書き込まれ、一方で ELN は EventBridge を介して AWS 上のワークフローをトリガーします。プライベート ワークフローにより、Kite はコンテナ化された Nextflow パイプライン、ツールのバージョン、パラメータを完全に制御できます。ソリューション全体は再現性のために Terraform でデプロイされ、すべての Lambda 関数はネットワークレベルのセキュリティ分離のために Kite の VPC 内で実行されます。 成果: 効率化とスケーラブルなアクセス 本番稼働以降、このソリューションはコスト効率、ワークフロー実行、科学者のエクスペリエンスにわたって運用面での改善をもたらしてきました。ソリューションは 18 か月以上にわたり本番環境で稼働しており、AWS HealthOmics 上に 20 種類のバイオインフォマティクス ワークフローが展開され、シングルセル RNA シーケンシング(scRNA-seq)、バルク RNA-seq、全エクソームシーケンシング、タンパク質構造予測、その他の次世代シーケンシング ワークロードを処理しています。 このアプローチはまた、研究ニーズに沿った計算リソースの効率的な利用を可能にし、従来のワークフローにあった非効率を排除しました。「この統合により、解析を実行するために必要だった手作業のステップと依存関係の数が削減され、効率が向上し、チームがデータから知見へとより速く進めるようになりました」と Falk 氏は述べています。 バイオインフォマティクスの科学者たちは、その場しのぎの解析に費やす時間が大幅に減ったと報告しています。インフラのプロビジョニングからメタデータの登録に至るまでの手作業のステップを削減したことで、チームは新規の開発や科学的な業務により多くの時間を割けるようになりました。 現在、100 名を超える研究者が ELN 統合を通じてバイオインフォマティクス ワークフローにアクセスできるようになっています。ワークフローテンプレートに Wiki のような補足情報が付与されているため、たとえば分子生物学者が「タンパク質構造予測(protein structure prediction)」を検索すると、利用可能な AlphaFold Multimer ワークフローを直接発見でき、バイオインフォマティクス担当者を介さずにチーム間の壁(サイロ)を解消につながります。展開済みの 20 種類のワークフローのうち 5 種類は、セルフサービスでの実行のために ELN と完全に統合されており、さらに継続的に追加が進められています。 シーケンサーから直接取得されるデータから、前処理、ELN への登録、そしてクラウドベースのワークフロー内での解析実行に至るまでのフロー全体が、バイオインフォマティクス担当者の介在なしに動作します。このエンドツーエンドの自動化は、18 か月以上にわたって継続的に本番稼働しています。 今後の展開 Kite は AWS HealthOmics を含むクラウド活用型バイオインフォマティクスツールの利用をさらに広げています。デプロイ済みの 20 個のワークフローすべてを ELN からセルフサービスで実行できるようにし、管理されたオントロジーやバリデーション要件との整合も図る計画です。パイプラインの数が増えるのに合わせて、継続的インテグレーションとデプロイの仕組みも強化し、ワークフローのバージョン管理にかかる手作業を減らしています。 さらに先を見て、パイプラインの作成、バリデーション、更新を速めるための AI ベースのツールやエージェントも検討しています。汎用コンピューティング、データカタログ、マルチモーダルな研究データセットでのチーム間コラボレーションに向けた追加ツールの評価も進めています。 「Kite のバイオインフォマティクス&データサイエンスの領域では、AI によって、バイオインフォマティクスのパイプラインをより迅速かつ一貫して構築、反復、テスト、デプロイできるようになっています。運用のオーバーヘッドを削減し、開発者にかかる時間とコストの負担を軽減しつつ、ワークフロー全体の標準化と検証プロセスを改善しています。HealthOmics により、トランスクリプトミクスからタンパク質・RNA のフォールディングや構造予測に至るまで、計算負荷の高いオミクス解析を、インフラの深い専門知識を必要とせずに実行できます。バイオインフォマティクス データの生成と取り込みが増え続ける中で、効果的なメタデータの取得、登録、検索性の重要性が一層高まっています」と MacPhee 氏は述べています。 — Tanner MacPhee 氏、Kite Pharma まとめ Kite の経験は、同様の課題に直面する製薬・バイオテクノロジー企業に向けた、バイオインフォマティクス基盤の近代化に関するより広範なアプローチを映し出しています。すなわち、科学者のワークフローを妨げることなく、いかにしてバイオインフォマティクス基盤をモダナイズするか、という課題です。既存のラボシステムとの緊密な統合を維持しながら、効率性、標準化、ワークフローへのアクセス性を改善することで、Kite は患者に細胞治療を届けるというミッションに、より多くのリソースを集中できます。 「私たちは、HealthOmics と AWS のサービス群を引き続き活用し、研究者が次世代の治癒的細胞治療を患者のために構築できるよう、革新的な方法を開発していけることに大きな期待を寄せています」と Falk 氏は述べています。 — Alexander Falk 氏、Kite Pharma AWS HealthOmics をはじめよう バイオインフォマティクスのワークフローをモダナイズする準備はできましたか? AWS HealthOmics のページ で、マネージド基盤によって、あなたのチームがサーバーではなくサイエンスに集中できる方法をご確認ください。無料利用枠でのパイロットから始める、すぐに実行可能な (Ready2Run) ワークフローを試す、あるいは AWS のゲノミクスチーム にユースケースをご相談いただけます。 参考資料 AWS HealthOmics の機能と料金 AWS for Health and Life Sciences AWS HealthOmics と Amazon EventBridge を使ったバイオインフォマティクスワークフローのイベント駆動アーキテクチャ設計 Kite は Gilead 傘下の企業で、CAR T 細胞療法における世界的なリーダーです。詳しくは kitepharma.com をご覧ください。 原文は こちら です。 著者について Nadeem Bulsara AWS のプリンシパル Solutions Architect で、ゲノミクスとライフサイエンスを専門としています。バイオインフォマティクス、ソフトウェアエンジニアリング、クラウド開発で 13 年以上の経験と、研究および臨床のゲノミクス・マルチオミクスの知見を活かし、世界中のヘルスケア・ライフサイエンス企業を支援しています。人々が長く健康な人生を送れるようにするという業界のミッションが原動力です。 Naveen Garg Amazon Web Services のプロフェッショナルサービスチームに所属するシニアクラウドアーキテクトです。Fortune 500 企業のクラウド変革・移行の取り組みを支援しています。 Ryan Greene Amazon Web Services のグローバルヘルスケア・ライフサイエンスチームでシニアプロダクトマーケティングマネージャーを務めています。ビルダーとしての視点と、チームの働き方を変えることへの情熱を持ち、大規模で複雑な課題に取り組むのが好きです。2 人の幼い子どもから刺激を受けており、世界で最も規模の大きな顧客課題やワークロードに新しいアプローチで挑むことに関心を持っています。 Tanner MacPhee Kite Research Bioinformatics のバイオインフォマティクスエンジニアで、大規模オミクスデータを処理・解析するパイプラインの設計を専門としています。次世代の細胞治療の開発に取り組む科学者を支えることを目標に活動しています。バイオインフォマティクスの修士号を持ち、過去 8 年間、腫瘍領域で計算生物学チームと IT チームの両方と仕事をしてきました。 この記事は Solutions Architect の Masahiro Imai が翻訳を担当しました。
本ブログは 株式会社 PKUTECH と Amazon Web Services Japan 合同会社が共同で執筆いたしました。 みなさん、こんにちは。ソリューションアーキテクト 伊勢田氷琴です。 機密データを扱う SaaS を AWS 上で構築する際、どのサービスを組み合わせ、どのような設計判断を下せばよいのでしょうか。特に、お客様のコンプライアンス文書や監査指摘事項といった機微な情報を AI に処理させる製品では、データ保護、顧客環境への最小権限アクセスなど、考慮すべき論点がいくつも重なります。この記事では、PKUTECH が Amazon Bedrock をはじめとする AWS サービスを組み合わせて開発した純国産 AI-CSPM ソリューション「Egeria-Security」を題材に、機密文書を扱うセキュリティ SaaS の設計判断とその背景をご紹介します。クラウドセキュリティ(CSPM)運用に課題を抱える方々にとっても、その解決アプローチとして参考になる内容です。 セキュリティ SaaS が直面する 2 つの設計課題 Egeria-Security は、Cloud Security Posture Management(CSPM)の機能を提供する SaaS 製品です。CSPM とはクラウド環境のセキュリティ設定を継続的に監視・評価するソリューションを指します。課題を 2 つの視点から整理します。 まず、利用者側(CSPM を導入する企業)の課題です。多くの CSPM ツールには CIS Benchmark や NIST などの膨大な標準ポリシーセットがあらかじめ搭載されていますが、大量のアラートの中から「なぜその項目が自社のシステムに必要なのか」を理解するには高度な専門知識が求められます。また、自社のセキュリティ規程や監査法人からの独自指摘に合わせてカスタムルールを作成するには、ポリシー言語の深い理解が必要であり、技術的なハードルが高い状況でした。結果としてチェックの根拠がブラックボックス化し、「設定の逸脱を検知しても、どう直すべきか判断できない」「監査の際にチェックの正当性を説明できない」という状況に陥りがちです。 次に、提供者側(セキュリティ SaaS を開発する企業)の課題です。顧客のコンプライアンス文書や監査指摘事項は機密性の高い情報であり、SaaS のバックエンドで安全に処理する必要があります。加えて、LLM を活用する場合、入力データが学習に利用されないこと、推論トラフィックが閉域を通ること、顧客のクラウド環境へのアクセスが最小権限で制御されていること、これらをすべて同時に満たすことが望ましいです。 コンプライアンス文書を起点としたポリシー自動生成 PKUTECH は、2002 年の創業以来、NTT データグループをはじめとする大手企業向けのシステムインテグレーション事業を展開してきました。近年は自社プロダクトの開発にも注力しており、生成 AI を活用した Egeria シリーズを展開しています。 同社が着目したのは、自社のコンプライアンス文書そのものをスキャンポリシーの源泉にするというアプローチでした。既存の CSPM ツールは CIS Benchmark や NIST など汎用的な標準ポリシーセットを起点とするため、自社環境に関係のないアラートが混入しやすく、「なぜそのチェックが必要か」の根拠が読み手に伝わりにくいという課題がありました。Egeria-Security はこの順序を逆転させ、自社のコンプライアンス文書から出発して、そこに記載された推奨事項をそのままスキャンポリシーに変換する仕組みを採用しました。生成された各チェック項目には、推奨事項 ID・準拠フレームワーク・カテゴリ・重要度といった文書由来の根拠メタデータが紐づくため、スキャン結果の根拠をたどりやすくなります。 AWS を基盤として選択した理由 Egeria-Security の基盤として AWS を選択した理由は、主に以下の 3 点です。個別のサービス機能だけを比較すると類似の選択肢は他のクラウドベンダーにも存在しますが、機密データを扱うセキュリティ SaaS の全要件をバランスよく満たす組み合わせとして AWS を選択しました。 第一に、LLM 推論におけるデータ保護です。 Egeria-Security が処理するコンプライアンス文書には、組織のセキュリティポリシーや監査指摘事項など機密性の高い情報が含まれます。Amazon Bedrock では、ユーザーのデータがモデルのトレーニングに使用されないため、機密文書を LLM に投入する前提条件を満たします。 第二に、機密データを扱う AI SaaS に必要な要素が単一プラットフォーム内で統合されている点です。 生成 AI 推論(Amazon Bedrock)、RAG のベクトルストア( Amazon OpenSearch Service )、閉域ネットワーク( Amazon Virtual Private Cloud (Amazon VPC) 、 AWS PrivateLink )、認証・鍵管理( AWS Identity and Access Management (IAM) 、 AWS Key Management Service (AWS KMS) )、コンテナレジストリ( Amazon Elastic Container Registry (Amazon ECR) )、ロードバランシング( Elastic Load Balancing )、DNS( Amazon Route 53 )、証明書管理( AWS Certificate Manager )。これらの個々の機能は類似のものが他のクラウドにも存在しますが、同一のプラットフォーム・同一の認証基盤の上で統合的に運用・監査できることが、セキュリティ SaaS の説明責任の観点で重要でした。複数クラウドをまたぐ構成では、認証・ログ・監査の連携が複雑化し、セキュリティ製品としての信頼性確保に追加コストがかかります。 第三に、顧客 AWS 環境とのシームレスな接続です。 CSPM の主要な利用シーンは顧客の AWS アカウントをスキャンすることです。SaaS 基盤も AWS 上にあれば、 AWS Security Token Service (AWS STS)によるクロスアカウントアクセスなど、AWS ネイティブな統制で顧客環境との連携を実現できます。 こうした設計判断の結果として、GPU 推論基盤の構築・運用といった非差別化領域を AWS マネージドサービスに委ね、インフラ層のコンプライアンス証跡には AWS が提供する認証・レポートを活用できるようになりました。責任共有モデルのもとアプリケーション層の統制は同社が引き続き担いますが、開発リソースをコア差別化領域であるコンプライアンス文書の RAG 処理と Cloud Custodian DSL の自動生成ロジックに集中投下できました。PKUTECH の試算では、自前で LLM 推論基盤を構築した場合と比較して、GPU 調達・運用で 2〜3 人月、LLM ホスティング・スケーリングの開発で 3〜6 人月の工数が不要となり、SaaS の立ち上げリードタイムは約 12〜18 ヶ月の想定に対し約 4〜6 ヶ月で MVP 完成に至りました。 ソリューションの概要:コンプライアンス文書からスキャンポリシーを自動生成 Egeria-Security は、SaaS 型で提供される純国産の AI-CSPM ソリューションです。ユーザーはまず CIS Benchmark、NIST SP 800-53 などの標準フレームワークや、自社の社内規程、委託先管理基準などのコンプライアンス文書を PDF でアップロードします。次に、取り込んだ文書をもとに Amazon Bedrock を活用した AI チャットで対話しながら、自社に必要な「推奨事項」を抽出します。抽出した推奨事項から AI の支援を受けながら Cloud Custodian ポリシー(YAML 形式)を自動生成し、生成されたポリシーを用いて実際のクラウド環境(AWS や Azure)をスキャンします。スキャン結果は複数回にわたる違反の発生・解消の推移をタイムラインで追跡でき、改善状況を可視化します。 3 つの設計判断 Egeria-Security のアーキテクチャは、前述の AWS 選択理由と連動した 3 つの設計判断で構成されています。 図1: Egeria-Security の AWS アーキテクチャ 設計判断 1:コンプライアンス文書 → DSL 変換のためのエージェント設計 非定型な PDF(コンプライアンス文書)を、Cloud Custodian が解釈可能な YAML という厳格な DSL に変換する必要がありました。 開発初期は PDF ファイル全体をそのままプロンプトに投入し、1 ステップで YAML ポリシーを生成する方式を試みました。しかし、数十ページ規模の文書では存在しない AWS リソース名や属性の生成などハルシネーションが頻発し、「適切なアクセス制御を実施する」のような抽象的記述に対して具体的なチェックロジックに落とし込めない、同じ文書を再投入しても生成結果のばらつきが大きく再現性が確保できないといった問題が顕在化しました。 図2: 2 つのエージェント(前段 = 取り込み/後段 = ポリシー作成)と内部 4 ステップ これらの課題を解決するため、最終的に役割を 2 つのエージェントに分離し、Amazon OpenSearch Service 上の構造化ドキュメントを介して疎結合に繋ぐ構成としました。前段の PDF 取り込みエージェントが文書から「推奨事項タイトル」「論理的根拠」「監査手順」「修正手順」「重要度」「準拠フレームワーク」等の構造化データを抽出して Amazon OpenSearch Service に格納します。後段のポリシー作成エージェントは、まず Cloud Custodian の公式スキーマ( custodian schema コマンド)から取得した有効リソースタイプ一覧を選択肢として推奨事項に対応するリソースを特定し、次に Amazon OpenSearch Service に格納された Cloud Custodian リファレンスのコード例を RAG で参照しながら YAML ポリシーを生成します。生成結果がリスト内に存在するかを厳格に検証することで、ハルシネーションを抑制しています。図2 は、この 2 つのエージェントが内部で実行する処理を 4 つのステップ(Step1 PDF 解析/構造化、Step2 対話、Step3 ポリシー生成、Step4 構文チェック/修正)として示したものです。Step1〜2 を前段の PDF 取り込みエージェントが、Step3〜4 を後段のポリシー作成エージェントが担います。後段は、スキーマ参照・自動修正・最終レビューを含む複数のノードで構成されます。 この設計の技術的なポイントは、「自由に書かせる」から「決められた選択肢から選ばせる」への発想転換です。Cloud Custodian の公式スキーマを選択肢の制約として用いることで、存在しないリソースタイプや属性の生成を抑制し、独自辞書を手作業で保守する範囲を減らしています。なお、この制約が担保するのは構文上の妥当性であり、生成されたポリシーが文書の意図に合致しているかは生成後のレビューで確認します。また、PDF 取り込みエージェントに構造化抽出の責任を集中させたことで、ポリシー作成エージェントが文書原文を直接扱う必要がなくなり、再現性の向上にも寄与しました。 設計判断 2:機密データの LLM 推論を閉域で完結させる コンプライアンス文書は SaaS のバックエンドから LLM に渡されますが、この経路がインターネットを通過しない設計としています。ユーザーがブラウザからコンプライアンス文書をアップロードする区間は HTTPS(TLS 暗号化)によるインターネット経由の通信ですが、SaaS バックエンドが受信した文書を LLM 推論に渡す経路は Amazon VPC 内で完結します。バックエンドは VPC 内に配置され、アプリケーション間の通信は VPC 内で閉じています。Amazon Bedrock への LLM 推論アクセスは VPC Interface Endpoint(AWS PrivateLink)を経由するため、バックエンドから Bedrock への経路は AWS バックボーンネットワーク内で処理が完結し、この通信にパブリックインターネットへの egress は発生しません。つまり、機密文書が LLM 推論に渡される区間を閉域で保護する構成です。 この閉域設計により、機密文書を扱う通信のうち外部に公開される経路を減らし、データ経路の制御と監査可能性を確保しています。設計にあたっては、AWS Well-Architected Framework のセキュリティの柱における「転送中のデータの暗号化とネットワーク経路の制限」のベストプラクティスを参照しています。 設計判断 3:顧客 AWS 環境への最小権限・最小干渉のアクセス CSPM として顧客環境をスキャンするには一定の権限が必要ですが、セキュリティ製品である以上、顧客環境への干渉は最小限でなければなりません。PKUTECH は当初、アクセスキー直接入力方式(長期キーの管理リスクが高い)、AWS Organizations 連携方式(運用負荷が大きい)、オンプレエージェント方式(SaaS としての即時性を損なう)といった代替案を検討しましたが、いずれも金融領域の厳格なセキュリティ要件や SaaS としての導入容易性と両立できないと判断し、最終的に AWS CloudFormation テンプレート + STS AssumeRole + ExternalID の組み合わせに至りました。 具体的には、お客様が自社の AWS マネジメントコンソールで CloudFormation の Deep Link を開くだけで Egeria-Security 専用の IAM ロールが作成されます。付与される権限は既定で AWS 公式の SecurityAudit マネージドポリシー(読み取り専用)であり、変更・削除権限は含まれません。スキャン実行時には、テナント ID とランダム値の複合キーを ExternalID として指定した STS AssumeRole により、有効期限 1 時間の一時認証情報を都度取得します。ExternalID の照合は、顧客側 IAM ロールの信頼ポリシーに設定された sts:ExternalId 条件によって行われます。AssumeRole 呼び出し時にはセッションタグでテナント ID を付与しており、顧客側の AWS CloudTrail で監査ログの追跡が可能です。SaaS 側で保存するのは Role ARN や ExternalID などの連携情報で、これらは AES-256-GCM により暗号化しています。AssumeRole で取得した一時認証情報は、スキャン実行環境で永続化せず使用後に破棄します。 この構成は金融領域に関わる IT 企業での PoC におけるセキュリティレビューを経て改修を重ねたものです。具体的には、IAM ロールテンプレートの用途別分離(顧客側がマネージドポリシー ARN を選択可能化)、ExternalID のテナント分離強化、セッションタグによる監査追跡の追加が、PoC 評価者のレビューを経て実装されました。 導入効果:PoC での実証 金融領域に関わる IT 企業での PoC 検証を経て、以下の効果が確認されました。 導入の初期障壁の低さ PoC では、コンプライアンス文書の登録からポリシー生成、スキャン実行までの一連の流れが問題なく実行できることが確認されました。エージェントレスかつ文書ベースのポリシー自動生成のため、SaaS 型で提供する場合、デプロイから文書登録、スキャン実行までは 1 営業日以内に完了できる見込みです(PKUTECH の試算)。また、PoC 評価者からは「AWS や Azure の専門知識がなくてもスキャンに必要なポリシーを容易に設定可能」との評価をいただいており、Cloud Custodian の YAML 構文を意識することなくポリシーを策定できることが確認されました。 ポリシー網羅率 PoC で取り込んだコンプライアンス文書から自動生成された有効ポリシーは、取り込み観点の約 50〜60% をカバーしました(この数値は取り込んだ観点のうち実行可能なポリシーとして生成できた範囲を示すもので、生成結果の修正不要率や検知精度を表すものではありません)。残りの 40〜50% は「適切なアクセス制御を実施する」のような抽象的記述や、Cloud Custodian が直接扱えない人手プロセス(ドキュメンタリ統制等)で、別途人手での運用設計が必要です。PoC 評価者からは「文書ベースで半分のポリシーが自動生成できるだけでも、実装工数の短縮になる」とのご評価をいただいています。 CNAPP 化に向けた今後の展開 PKUTECH は、Egeria-Security の CSPM 機能を起点として、AI を活用した CNAPP(Cloud Native Application Protection Platform)の実現を目指しています。今後、クラウドユーザーのアクセス権・特権を自動チェックする AI-CIEM、クラウド環境内の脅威やポリシー違反を検出する AI-CWPP、Infrastructure as Code で記述されたインフラ構成を自動チェックする AI-IaC スキャンを順次追加する予定です。 お客様の声 本プロジェクトを主導した PKUTECH クラウド&セキュリティ事業部長の渡部寿春氏は、次のようにコメントしています。 「Amazon Bedrock を PrivateLink 経由で利用する閉域設計により、機密文書の AI 推論をインターネットに出すことなく実行でき、セキュアなセキュリティガバナンスを実現できました。金融領域に関わる IT 企業での PoC でも実証された通り、コンプライアンス文書を取り込む独自の AI アプローチにより、Cloud Custodian の専門知識がなくても自社基準に即したクラウドセキュリティ運用が可能となり、セキュリティ人材不足に悩む多くの企業のご支援に繋がると確信しています。」 また、PoC に参加された金融領域に関わる IT 企業のシステム部門ご担当者様からは、利用者側の視点でコメントをいただいています。 「従来の CSPM では、自社独自のセキュリティポリシーに合わせてルールをカスタマイズすることに高い技術的ハードルがありました。今回の PoC で Egeria-Security に自社のコンプライアンス文書を読み込ませたところ、ドキュメントの『構造化』精度が非常に高く、具体的な運用文書から自動的にシステムチェック観点へ落とし込める点に大きな可能性を感じました。既存の CSPM とは一線を画す明確な差別化ポイントがあります。今後のさらなる機能の成熟と安定性の向上により、エンタープライズのクラウドガバナンス運用において価値を発揮するソリューションになるものと期待しています。」 まとめ PKUTECH が開発した Egeria-Security は、自社のコンプライアンス文書を起点としてスキャンポリシーを自動生成するアプローチにより、CSPM 運用における監査説明性とカスタムポリシー作成のハードルを同時に下げるソリューションです。 本記事では、この製品を題材に、機密データを扱うセキュリティ SaaS を AWS 上で構築する際の設計判断を 3 つの視点から整理しました。コンプライアンス文書から DSL への変換では 1 ステップ生成の失敗から 2 エージェント分離に至った経緯、閉域設計では PrivateLink を活用した機密データ経路の制御、顧客環境連携では PoC のセキュリティレビューを経て改修を重ねた実践についてです。個々の AWS サービスの機能比較ではなく、機密データを扱う AI SaaS に必要な要素が単一プラットフォーム上で統合的に利用できることが、本事例における AWS 選択の決め手でした。 同様の課題を抱える SaaS ベンダーや、生成 AI を自社製品に組み込もうとする企業にとって、設計の参考になれば幸いです。クラウドセキュリティの運用に課題を感じている方は、 Egeria-Security の製品ページ をご覧ください。Amazon Bedrock を活用した生成 AI ソリューションの構築に興味がある方は、 Amazon Bedrock の詳細ページ もあわせてご参照ください。本記事で取り上げた AWS サービスの詳細は、 Amazon OpenSearch Service 、 AWS PrivateLink 、 AWS CloudFormation の各ページをご覧ください。 左より PKUTECH:セキュリティエンジニア 遠藤 操希 氏 Amazon Web Services Japan:アカウントマネージャー 今井 彩渚 PKUTECH:デザイナー&スクラムマスター 坂野 茉夢 氏 PKUTECH:AWS アーキテクト 杜 利民 氏 PKUTECH:クラウド&セキュリティ事業部長 渡部 寿春 氏 PKUTECH:技術リーダー 釜石 智史 氏 PKUTECH:Python エンジニア 及川 大地 氏 Amazon Web Services Japan:ソリューションアーキテクト 伊勢田 氷琴 ソリューションアーキテクト 伊勢田氷琴
クラウドコンピューティングの初期の頃、AWS は世界中の都市で AWS Pop-up Lofts と呼ばれる物理的なスペースで建設業者を対象とした集中学習をサポートしていました。これらのスペースは、スタートアップ起業家、開発者、およびイベント、ミーティング、共同作業で AWS についてもっと知りたいと考えている人が利用できました。最近の生成 AI の登場により、 AWS Gen AI Lofts は世界中でポップアップスタイルのコラボレーションスペースを提供し、スタートアップや開発者に没入型の体験を提供しました。 私たちは、実践的な体験、コミュニティ主導の共有、技術的なコラボレーションを通じて、学生や開発者が学び、つながり、貢献できる常設のコミュニティスペースが必要であることに気づきました。2025 年 7 月にサンフランシスコでオープンして以来、最初の AWS Builder Loft は 22,500 人以上の開発者を迎え、地元の技術コミュニティが一堂に会するハッカソン、ワークショップ、デモナイト、コミュニティ主導のイベントを開催してきました。 2026 年 8 月 18 日、ベルリン、ハイデラバード、サンパウロに新しいビルダーロフトをオープンする計画を発表しました。各場所は、無料のワークショップ、ネットワーキングイベント、ピッチナイト、コンテンツ制作スペース、コラボレーション/コワーキングエリア、イベント主催を提供する常設コミュニティスペースとなり、ドアを通り抜けたい開発者、学生、技術専門家向けに、無料のワークショップ、ネットワーキングイベント、ピッチナイト、コンテンツ作成スペース、コラボレーション/コワーキングエリア、イベントの開催が可能になります。 そこでは引き続き AWS の専門家に会うことができますが、それ以上に、 AWS User Groups や AWS Student Builder Groups 、すでに参加している独立した開発者グループまで、地域の技術コミュニティの本拠地を作りたいと考えています。テクノロジーコミュニティのリーダーとして、ミートアップを開催するためのスペースの予約を無料でリクエストしていただけます。 なぜ 3 都市なのか この拡張は、各地域の重要な人材とイノベーションの拠点である開発都市が急成長していることを反映しています。 ベルリン : AWS European Sovereign Cloud を立ち上げた後、私たちはヨーロッパの開発者コミュニティへの取り組みを深めています。ベルリンの Builder Loft は、デジタル主権に関する教育セッション、ハッカソン、セキュリティ対策ワークショップ、コミュニティミートアップを開催し、ドイツの成長を続けるスタートアップエコシステムと、より広範なヨーロッパおよび世界のテクノロジー環境をつなぐコミュニティミートアップを開催します。 ハイデラバード : Hyderabad Builder Loft は、インドの開発者に AI のスキルアップ、クラウドネイティブアーキテクチャの探求、次世代アプリケーションを構築する仲間との交流のための専用スペースを提供します。 サンパウロ : ブラジルのクラウド市場は毎年 30 % の成長を遂げており、サンパウロはラテンアメリカのテクノロジーブームの中心に位置しています。Builder Loft は、地域の開発者のハブとして機能し、地域社会、大学、スタートアップネットワークと連携して無料のプログラミングを提供します。 ビルダーロフトでの典型的な一週間 サンフランシスコの Builder Loft では、生成 AI に関する技術的なディープダイブからスタートアップのピッチナイト、学生向けのコーディングワークショップから地域全体の開発者が集まるネットワーキングセッションまで、毎週 4 〜 8 件のコミュニティイベントを開催しています。 スペースは柔軟に設計されています。火曜日の朝、トレーニングルームは 50 人以上の学生でいっぱいになります。夕方になると、スタートアップが潜在的なコラボレーターの部屋に最新のプロトタイプを披露するデモステージに変わります。週末には、コミュニティグループが独自のミートアップを開催します。 このモデルが機能する理由は、コミュニティ自体によって推進されているということです。地元の開発者、ミートアップ主催者、技術リーダーがプログラミングを形作ります。AWS はスペース、インフラストラクチャ、サポートを提供しますが、エネルギーは参加するビルダーから得られます。 今後のイベント を検索するか、サンフランシスコの Builder Loft での 独自のイベントの開催 をリクエストしてください。 ご期待ください Builder Loft は、今後のブログ記事で 3 都市でのオープンについて発表しますので、最新情報にご期待ください! Builder Lofts の詳細を確認したり、最新情報を入手したりするには、 Rick のブログ投稿 と AWS Builder Loft のページ をご覧ください。 – Channy 原文は こちら です。
2026 年8 月 10 日週、 OpenSearch と Valkey のチームはソウルを訪問し、 Open Source Summit Korea 2026 と MCP DevSummit Seoul 2026 でオープンソース開発者とコントリビューターに会いました。4 日間のイベントでは、オープンソースプロジェクトと新興エージェント AI のコミュニティリーダーとユーザーが集まり、知識を共有し、ソリューションについて協力し、プロジェクトを推進しました。 韓国の OpenSearch コミュニティのリーダーたちがブースにボランティアとして参加し、 ユーザーグループのミートアップ でネットワークを作り、交流する時間もありました。 OpenSearch は、大規模な非構造化データに秩序をもたらすオープンソースのエンタープライズグレードの検索およびオブザーバビリティスイートです。2026 年 6 月 9 日、 OpenSearch 3.7 では、ログ、トレース、メトリックにわたる SLO のクエリ、アラート、追跡を単一のインターフェースから行い、ベクトルの取得を最大 5.5 倍高速化して検索パフォーマンスを向上させるように設計された新しいツールが導入されました。2026 年 7 月 30 日以降、 Amazon OpenSearch Service で OpenSearch バージョン 3.7 を実行できるようになりました。これにより、ベクトル検索のパフォーマンス、検索の関連性、クエリインサイトが向上します。 Valkey はオープンソースの高性能キー/値データストアで、キャッシュ、メッセージキューなどのさまざまなワークロードをサポートし、プライマリデータベースとしても機能します。2026 年 5 月 19 日、 Valkey 9.1 は再設計されたI/Oスレッドモデルを導入しました。これにより、スループットが最大 17% 向上し、128 バイト未満の文字列のメモリ使用量が最大 20% 削減されます。2026 年 6 月 23 日以降、ノードベースのクラスター用に Amazon ElastiCache で Valkey 9.1 を実行できるようになりました。これにより、マルチテナントワークロードのスループットが向上し、メモリ効率が向上し、アクセス制御が強化されます。 今後開催される OpenSearch と  Valkey のイベント で、当社のオープンソースチームに会うことができます。 8 月 10 日週のリリース 私が注目したリリースをいくつかご紹介します。 Amazon EC2 アプリケーションステータスチェック : Amazon EC2 では、EC2 インスタンスのアプリケーションレベルの問題を検出して対応するのに役立つ新しいステータスチェックが導入されました。アプリケーションステータスチェックにより、EC2 はアプリケーションを監視して、リクエストの受け付けを停止したウェブサーバー、実行中の Docker デーモン、不適切なネットワーク構成、トラフィックを渡さなくなったネットワークインターフェイスなどの問題を検出します。詳細については、 アプリケーションステータスチェックのドキュメント をご覧ください。 AWS IAM ロールマネージャーによる IAM ロールの自動セットアップ: AWS サービスに必要な IAM ロールを自動的にセットアップする新しいロールマネージャーを使用できます。コンソールでサポートされているサービスを設定すると、ロールマネージャーはユーザーに代わってデフォルトのロールを作成するか、必要な権限と一致する場合はアカウントにすでに存在するロールを再利用します。ロールマネージャーは、起動時に 6 つの AWS サービスコンソールをサポートします。詳細については、「 AWS IAM ロールマネージャーが IAM ロールの開始点を再考する方法 」を参照してください。 OpenAI Daybreak は、Amazon Bedrock の対象となるお客様が利用できます : Daybreak は OpenAI のサイバー防衛イニシアチブで、防御側がサイバーセキュリティ業務のためにフロンティア AI にガバナンスを利用できるようにします。ほとんどのセキュリティチームにとって、GPT-5.6 Sol を搭載した Daybreak Blue は、脆弱性の発見、検出エンジニアリング、インシデント対応などの防御ワークフローの出発点となります。新しい GPT-5.6 Cyber を搭載した Daybreak Red は、脆弱性調査、エクスプロイトの複製、緩和策の開発など、承認された高度なタスク向けに設計されています。登録するには、OpenAI に連絡するか、AWS アカウントチームに連絡して資格に関するガイダンスを受けてください。詳細については、 AI ブログ記事 をお読みください。 Amazon SageMaker JumpStart の新しいファンデーションモデル : AWS のお客様が利用できるファンデーションモデルのポートフォリオを拡大しています。これらのモデルは、さまざまなエンタープライズ AI の課題に特化した機能で対処します。 NVIDIA の Nemotron 3.5 Lightning モデル NVIDIA の Nemotron-Nano-12b-V2、Z.ai の GLM-5.2 FP8、GLM-OCR モデル NVIDIA の LocateAnying-3B、QWEN-AgentWorld-35B-A3B、Qwen 3.5-122B-A10B モデル Black Forest Labsの FLUX.2-small-decoder と Google の gemma-4-12B-it モデル Redis の langcache-embed-v3-small、JetBrains の Mellum2-12B-A2.5B-Thinking、LightOn の LightOnOCR-2-1B モデル AWS のお知らせに関する詳しいリストについては、「 AWS の最新情報 」ページをご覧ください。 AWS のその他のニュース 興味深いと思われるその他のプロジェクトやニュース項目をいくつかご紹介いたします。 AWS Certificate Manager (ACM) におけるメール認証の廃止 : ACM は、2027 年 9 月 30 日をもって、メール認証による公開証明書のサポートを終了します。ACM パブリック証明書に E メール検証を使用する場合は、その日までに DNS 検証に移行する必要があります。Amazon CloudFront ディストリビューションでは、HTTP 検証も利用できます。 CLI サポートと管理コントロールを備えた次世代 AWS VPN クライアント : OpenVPN3 上に構築された新しい AWS VPN クライアントを使用できます。新しいクライアントでは、既存の AWS Client VPN エンドポイントとの完全な下位互換性を実現すると同時に、エンタープライズネットワーキングチームが求めていた自動化機能とセキュリティ体制を実現できます。 Oracle AI データベース用 Exascale 上の Oracle Exadata @AWS : Exadb-XS は、消費ベースのモデルを通じて Exadata クラスのパフォーマンスと可用性を実現します。ExADB-xS を使用すると、コンピューティングとストレージを個別に少しずつ拡張でき、支払いは使用した分だけです。 AWS のブログ記事一覧については、 AWS ブログ ページをご確認ください。 AWS の詳細について学び、今後予定されている AWS 主催の対面イベントやバーチャルイベント 、 スタートアップイベント 、 開発者向けイベント 、 AWS Summits や AWS Community Days を閲覧して、ご参加ください。 AWS Builder Center に参加して、ビルダーとつながり、ソリューションを共有し、開発をサポートするコンテンツにアクセスしましょう。 8 月 17 日週のニュースは以上です。8 月 24 日週に再びアクセスして、新たな1週間のまとめをぜひお読みください! — Channy 原文は こちら です。
ゲノム研究は、変革の岐路に立っています。シーケンシングデータが指数関数的に増加するなか、それに見合う高度な解析能力が求められています。 1000 Genomes Project によれば、典型的なヒトゲノムは参照配列 (リファレンス) に対して 410 万〜500 万か所で異なり、そのほとんどは一塩基多型(SNP)と短い挿入・欠失(indel)です。これらのバリアントは、多くの人のデータを合わせると、ポリジェニックリスクスコア(PRS:Polygenic Risk Score)として捉えられる疾患のかかりやすさの違いに寄与します。しかし、ゲノム解析ワークフローは、こうした大規模なバリアントデータを実際に活用できる知見へと変換することに苦労しています。ワークフローは依然として断片化しており、研究者はバリアントアノテーション、品質フィルタリング、 ClinVar のような外部データベースとの統合といった複雑なパイプラインを、手作業で組み立てる必要があります。 AWS HealthOmics のワークフローは、 Amazon S3 Tables および Amazon Bedrock AgentCore と組み合わせることで、これらの課題に対する変革的なソリューションを提供します。HealthOmics のワークフローは、Variant Call Format(VCF)ファイルに有用なオントロジーを付与するアノテーション処理をシームレスに統合できます。続いて、Variant Effect Predictor (VEP) でアノテーションした VCF ファイルを構造化データセットへ変換し、最適化された S3 Tables に格納します。これにより、大規模なバリアントコホート全体でのクエリ性能を高めます。Amazon Bedrock AgentCore 上で動作する Strands Agents SDK は、セキュアでスケーラブルな AI エージェントアプリケーションを提供し、研究者は専門的なクエリの知識を持たずとも、複雑なゲノムデータセットを扱えるようになります。 本ブログ記事では、エージェント型 (agentic) ワークフローが、自然言語インターフェースによって、ゲノミクスパイプラインの処理と解釈を大規模に高速化する方法をご紹介します。ここでは、自動化されたデータ処理とインテリジェントな解析を組み合わせた、包括的なゲノムバリアント解釈エージェントをデモンストレーションします。このエージェントは、生の VCF ファイルの取り込みから対話型クエリインターフェースまで、ワークフロー全体に対応します。最も重要な点として、このソリューションは、従来はゲノム解析を専門のバイオインフォマティシャンに限定してきた技術的な障壁を取り除きます。これにより、臨床研究者は生の VCF ファイルをアップロードし、たとえば「BRCA1 に病原性バリアントを持つ患者は誰か?」や「このコホートにおける薬剤耐性バリアントを見せて」といった質問を、すぐに投げかけられるようになります。本ソリューションのコードは、AWS 上のライフサイエンス向けスターターエージェントを集めた オープンソースのツールキット リポジトリで公開されています。 ゲノム解析におけるバリアントアノテーションの理解 ゲノムバリアント解釈の土台は、生の遺伝的バリアントを生物学的・臨床的な文脈に結びつける包括的なアノテーションパイプラインです。Variant Effect Predictor(VEP)と ClinVar は、現代のゲノム解析ワークフローにおける 2 つの不可欠な構成要素であり、それぞれが相互に補完的な情報を提供します。研究者は、意味のある知見を得るために、これらを統合する必要があります。 この比較図は、ClinVar と VEP による、ゲノムバリアント解釈のための、相補的でありながら異なるアノテーション機能を示しています。左側の ClinVar アノテーションは、主に臨床的意義の評価に重点を置き、キュレーションされた病原性分類(CLNSIG)、エビデンスの品質を示す指標(CLNREVSTAT)、そして臨床判断に直接関わる疾患との関連(CLNDN)を提供します。右側の VEP アノテーションは、影響 (コンシークエンス) タイプ(missense_variant、synonymous_variant、intron_variant)、影響度分類(HIGH、MODERATE、LOW、MODIFIER)、遺伝子シンボル、位置情報を含むトランスクリプトごとの効果など、包括的な機能情報を提供します。 現在のアノテーションワークフローの課題 バリアントアノテーションのワークフローは、通常、次のようなシーケンシャルなプロセスをたどります。 初期の VCF 処理:シーケンシングシステムから出力される生の Variant Call Format(VCF)ファイルは、表記を正規化し、低品質なコールを除去するための前処理が必要です。 VEP アノテーション:Variant Effect Predictor ツールの実行には多くの計算リソースを要します。特に、サンプルあたり数百万のバリアントを含む全ゲノムシーケンシングデータでは、その傾向が顕著です。VEP 解析は、利用可能な計算リソースとアノテーションの深さに応じて、ゲノムあたり 2〜8 時間かかることがあります。 ClinVar 統合:臨床アノテーションは ClinVar から取得し、別の処理でバリアントと照合する必要があり、データベース検索やフォーマット変換が求められます。 マルチサンプル統合:コホートレベルの解析を行うには、サンプル間で複雑な結合(join)操作が必要になります。これは通常、専用ツールで行われますが、生成されるのは大きくフラットなファイルで、効率的なクエリが困難です。 解釈:さらに科学者は、さまざまなツールを使って、アノテーション済みデータのフィルタリング、ソート、解析を行う必要があります。これは多くの場合、独自のスクリプトと相応のバイオインフォマティクスの専門知識を要します。この技術的なボトルネックにより、臨床研究者は自らのゲノムデータを自力では探索できず、生物学的な問いを立ててから答えを得るまでに数日から数週間の遅延が生じます。 データセットの複雑さと規模 ゲノムバリアント解析の規模を象徴するのが、 1000 Genomes Phase 3 Reanalysis with DRAGEN のようなデータセットです。このデータセットには次のものが含まれます。 多様な集団に由来する 2,500 を超える個別サンプル 全サンプルにわたる、約 8,500 万件のユニークなバリアント 整合させる必要のある複数のアノテーションバージョン(DRAGEN 3.5、3.7、4.0、4.2) SNP や indel に加えて、複雑な構造変異(structural variant) こうした複雑さは、フラットファイルの処理や手作業での統合ステップに依存する従来型の解析パイプラインにおいて、大きなボトルネックを生み出します。 ソリューションの概要 ゲノムコホートの構築や、複数の患者にわたって PRS を計算したりするには、 Variant Effect Predictor (VEP)のようなツールを用いて、結合されたバリアントコールテーブルと包括的なアノテーションを生成する必要があり、多くの計算リソースを要します。最も重要なのは、これらのワークフローが、SQL の専門知識とバリアントファイル形式への深い理解を持つバイオインフォマティシャンだけが意味のある知見を引き出せる、という技術的障壁を生み出している点です。その結果、臨床研究者は基本的なゲノムクエリでさえ専門の技術チームに依存せざるを得ません。 私たちの AI を活用したアプローチの変革的な利点は、自然言語による対話を通じてゲノム解析を誰もが使えるものへと民主化することにあります。従来の VEP パイプラインでは、「薬剤耐性遺伝子に高影響度 (high-impact) のバリアントを持つ患者は誰か?」といった臨床的な問いに答えるのに数日の技術的作業を要しました。一方、私たちのソリューションを使えば、研究者はこうした質問を会話形式で問いかけ、数分で答えを得られます。これは、技術への依存から、セルフサービス型のゲノム解析への移行を意味します。臨床研究者、腫瘍ボード(tumor board)、ゲノミクスチームは、バイオインフォマティクスの支援を待つことなく、自らのデータを直接探索できるようになります。 本ソリューションは、自動化されたデータ処理と、インテリジェントな自然言語解析を組み合わせた、生成 AI 活用型のゲノムバリアント解釈エージェントをデモンストレーションします。このアーキテクチャは、生の VCF ファイルの取り込みから対話型クエリインターフェースまで、ゲノム解析ワークフロー全体に対応します。 本ソリューションは、生のゲノムデータを実際に活用できる知見へと変換する、6 つの主要ステップで構成されます。 生の VCF 処理:シーケンシングプロバイダーからの生の VCF ファイルが Amazon S3 ストレージにアップロードされ、S3 イベント通知を通じて AWS Lambda 関数をトリガーします。この Lambda 関数が AWS HealthOmics のワークフローをオーケストレーションします。 VEP アノテーション: AWS HealthOmics のワークフローが、Variant Effect Predictor(VEP)を使って生の VCF ファイルを自動的に処理し、機能予測と臨床アノテーションを並列で付与してバリアントを強化します。その後、アノテーション済みの結果を S3 に格納します。 イベント連携: Amazon EventBridge がワークフローの完了を監視し、Lambda 関数をトリガーして、 Amazon DynamoDB 内のジョブステータスを更新します。また、 AWS Batch の Fargate コンピューティング環境で、PyIceberg モジュールを用いて、VEP アノテーション済み VCF ファイルと ClinVar アノテーションを Iceberg 形式に変換します。 データの整理:PyIceberg ローダーは Amazon S3 Tables の Iceberg REST エンドポイントと連携します。Amazon S3 Tables は、テーブルのメタデータを AWS Glue Data Catalog に登録します。アノテーション済み VCF と ClinVar アノテーションについて、スキーマ情報(列、データ型、パーティション)がカタログ化されます。また、下流の分析のための分析コネクタも確立します。 SQL による分析: Amazon Athena が、列指向 (カラムナ) 型ストレージ形式を通じてゲノムデータに対する SQL ベースのクエリ機能を提供します。これにより、数百万のバリアントにわたる大規模解析を、最適なクエリ応答で実現します。 自然言語による対話:AgentCore Runtime 上の Amazon Bedrock LLM を活用した Strands オーケストレーターエージェントが、Athena クエリを実行する 5 つの専用ツールを通じて自然言語インターフェースを提供します。 query_variants_by_gene:特定の遺伝子に関連するバリアントを取得します query_variants_by_chromosome:染色体単位のバリアント解析を可能にします compare_sample_variants:患者サンプル間の比較ゲノミクスを可能にします analyze_allele_frequencies:集団遺伝学的な知見を提供します execute_dynamic_genomics_query:柔軟なアドホック解析のリクエストに対応します このアーキテクチャには、きめ細かなアクセス管理のための AWS IAM と、モニタリングのための Amazon CloudWatch による包括的なセキュリティ制御が組み込まれています。この自動化されたイベント駆動型のパイプラインは、VCF ファイルのスケーラブルな並列処理をサポートし、増え続けるゲノムデータセットに自動的に適応しながら、一貫したアノテーション品質と分析能力を維持します。 PyIceberg を用いたAmazon S3 Tables : VCF から構造化コホートへの変換 PyIceberg と Amazon S3 Tables を組み合わせることで、VEP アノテーション済みの VCF ファイルを、構造化されたコホート、つまり AI 駆動の分析に最適化されたクエリ可能なデータセットへと変換します。これにより、自然言語インターフェースが複雑なゲノムデータと効率的に対話するためのデータ基盤が生まれます。 PyIceberg は、S3 Tables 形式で Apache Iceberg テーブルを作成し、次のような利点をもたらします。 最適なクエリ:エージェントは、最適化された列指向 (カラムナ) 型ストレージを通じて、数百万のバリアントにわたる複雑なゲノムクエリを最小限のレイテンシで実行できます。従来は数時間の SQL 開発と実行を要した分析が、対話による即時応答へと変わります。 豊富なアノテーションへのアクセス:VEP と ClinVar のアノテーションは、Amazon Athena を介した SQL で直接クエリ可能になり、AI エージェントが特定のゲノム知見を抽出できるようになります。 コホートレベルの解析:構造化された Iceberg 形式(PyIceberg)は、自然言語を通じた集団レベルのクエリのために、患者コホート間の効率的な比較が可能になります。 S3 Tables においてバリアントデータとアノテーションデータを分離することで、AI を活用した分析に適したデータ基盤となります。ゲノムバリアントの S3 Tables はエージェントが高速にフィルタリングできる中核的な位置情報が含まれ、一方でアノテーション/臨床情報の S3 Tables にはバリアントの解釈に必要な豊富な機能的・臨床的コンテキストが格納します。 この構造により、Strands エージェントは AWS Glue Data Catalog コネクタを通じて、ユーザーの質問に的確に答える、対象を絞ったクエリを構築できます。 生の VCF ファイルから構造化テーブルへのこの変換こそが、研究者が Amazon Bedrock AgentCore 上の Strands オーケストレーターエージェントを通じて、複雑なゲノムデータセットを会話形式でクエリできるようにするものです。 Strands Agents と AgentCore Runtime によるインテリジェントなゲノム解析 この対話型インターフェースは、私たちのゲノミクス AI ソリューションの中核をなすイノベーションであり、Strands Agents SDK を用いて構築され、Amazon Bedrock AgentCore Runtime 上にデプロイされています。この高度な AI エージェントは、複雑なゲノミクスの概念を理解し、自然言語のクエリを、構造化されたゲノムデータセットに対する適切な分析操作へと変換します。 AgentCore Runtime は、動的な AI エージェントとツールのデプロイおよびスケーリングのために専用設計された、セキュアでサーバーレスなランタイムです。本ソリューションは、ゲノム分析において次のような主要な利点をもたらします。 モデルとフレームワークの柔軟性:AgentCore のサービスは組み合わせ可能 (コンポーザブル) であり、Amazon Bedrock の内外を問わず、オープンソースまたはカスタムのフレームワークおよびモデルと連携します。 数時間規模の エージェント型ワークロード:最長 8 時間の長時間実行ワークロードと、最大 100MB のペイロードをサポートします。 セキュリティ:ユーザーセッションごとに専用のマイクロ VM(microVM)を割り当て、完全に分離します。 エンタープライズグレードの統合:AgentCore Identity と AWS IAM による認証を標準で備えています。 オブザーバビリティ:エージェントの推論とツール呼び出しを包括的にトレースします。 プライベートリソースへのアクセス:Amazon Virtual Private Cloud (VPC) 内のデータベースや API への接続が可能です。 市場投入までの時間短縮:AI エージェントソリューションのデプロイと開発のサイクルを加速します。 Amazon Bedrock AgentCore の機能に関する詳細は、 Amazon Bedrock AgentCore のドキュメント を参照してください。 Strands Agents は、エージェンティックループ(agentic loop)の概念を用いてゲノム解析ツールをオーケストレーションする、モデル駆動のアプローチにより、専門的な機能を備えたドメイン特化型 AI エージェントを構築するための堅牢な基盤を提供します。この反復的な推論フレームワークにより、エージェントは解析要件に応じて適切なツールを動的に選択・実行できます。私たちのゲノムバリアント解釈エージェントは、Amazon S3 Tables が作成した構造化データを活用する、次の 5 つの主要ツールを実装しています。 バリアントのクエリ:遺伝子ベースの質問を、関連するバリアントを取得する的確な Athena SQL クエリへと変換します。 染色体解析:自然言語を通じて、特定のゲノム領域を対象とした問い合わせを可能にします。 サンプル比較:SQL の結合 (join) を必要とせずに、患者横断のゲノム解析を可能にします。 集団頻度解析:1000 Genomes のような参照データセットに照らして、結果所見を文脈づけます。 動的なクエリ生成:複雑な自然言語のリクエストを、最適化された SQL へと変換します。 自然言語によるクエリ このエージェントは、多様な種類のクエリを扱う際に卓越した能力を発揮します。従来のモデルでは、臨床研究者はバイオインフォマティクスチームが独自のスクリプトを書き、複雑な解析を実行するのを待たなければなりませんでした。しかし今では、SQL クエリの作成や VCF ファイル形式との格闘に数日を費やす代わりに、研究者はゲノミクスの専門家と会話するように自然に、自らのゲノムデータを探索できます。 コホートレベルの分析 ユーザー 「このコホートについて、患者ごとのバリアント総数と病原性を表形式でまとめてください」 このクエリでエージェントは次の処理を行います。 execute_dynamic_genomics_query ツールを使用します。 コホート内のサンプル全体のバリアントデータを解析します。 患者数とバリアントの統計を含むコホートのサマリーを生成します。 結果を表形式で整理して提示します。 コホートレベルの頻度分析 ユーザー 「このコホートと 1000 Genomes で共有される、病原性または病原性の可能性が高いバリアントのアレル頻度を教えてください」 エージェントはこれを次のようなクエリへと変換します。 execute_dynamic_genomics_query ツールと analyze_allele_frequencies ツールを実行し、その患者の病原性バリアントの一覧を取得します。 臨床的に重要な病原性バリアントを絞り込み(フィルタリング)ます。 ClinVar から疾患レベルの情報を、VEP からアレル頻度を抽出します。 関連するコンテキストとともに結果を提示します。 併存疾患(コモルビディティ)のリスク関連分析 ユーザー 「chr10:111079820 の ADRA2A 遺伝子にバリアントを持つ患者は誰か。また、これらの患者はスタチンやインスリン抵抗性に関連する、追加の高影響度のバリアントを持っているか?」 このクエリに対して、エージェントは次のように動作します。 特定の疾患コンテキストについて、薬剤耐性経路における追加のリスクバリアントを検索します。 併存疾患に関して、個々の患者レベルで臨床的意義と結びつけます。 臨床と薬剤耐性経路を統合した臨床的示唆を提供します。 この自然言語インターフェースにより、研究者が複雑な SQL 構文を習得したり、基盤となるデータ構造を理解したりする必要が最小限になり、技術的背景を問わず、臨床チームと研究チームがゲノム知見へアクセスしやすくなります。 高度な分析処理 クエリに加えて、このゲノムバリアント解釈エージェントは、基本的なバリアント同定を超える高度な分析能力を発揮します。研究者は、従来は数日の解析を要した複雑な問いを探索できます。 臨床意思決定支援 ユーザー 「患者 NA21144 について徹底的な解析を行い、この患者のリスク層別化を提示してください」 このクエリに対して、エージェントは次のように動作します。 疾患経路の遺伝子やファーマコゲノミクスにおけるバリアントを解析し、エビデンスに基づく推奨を提供します。 バリアントの影響予測と臨床的意義の分類を組み合わせて、リスク層別化を行います。 意義不明のバリアント(VUS:Variant of Uncertain Significance)を特定します。 臨床的に重要な遺伝子における高影響度のバリアントにフラグを立てます。 ファーマコゲノミクスに基づく投薬戦略 研究者は、次のようなクエリを通じて、大規模コホートにわたる高度なファーマコゲノミクス経路解析にエージェントを活用できます。 ユーザー 「この患者コホートで、遺伝的バリアントが有意に集積している主要な薬剤関連経路はどれか。最も影響の大きいファーマコゲノミクス経路と、関連する患者 ID を教えてください」 これにより、バリアント頻度の分布、影響 (コンシークエンス) タイプのパターン、集団ごとの遺伝子レベルのバリアント負荷を、複雑な SQL やバイオインフォマティクスパイプラインを介さず、会話型インターフェースを通じて探索できます。 利点と制限事項 本ソリューションは現在の課題を次のように解決します。 課題 解決策 初期の VCF 処理 – 低品質なコール エージェントがバリアント解釈の判断前に、コールの品質を自動でチェックします 大規模な VEP アノテーション 20 件単位のバッチで VCF のアノテーションを自動化し、適切な計算リソースを使って必要な性能を確保します。 ClinVar との統合 エージェントがクエリの文脈を評価し、ユーザーの関心に応じて結合クエリを動的に組み立てます。 複数サンプルの統合 Iceberg 形式の Amazon S3 Tables と統合することで、VCF ファイルのコホートに十分な性能でクエリできます。 ゲノムの解釈 エージェントが文脈とユーザーの関心を理解し、アノテーションや自社データの適切なエビデンスに基づいて慎重に推論し、根拠のある判断を示します。 本ソリューションには、次のような制限事項があります。 Lambda ランタイムの制約:現在の実装では、VCF/GVCF 処理に AWS Lambda を使用しており、最大実行時間は 15 分です。大きな VCF ファイル、特に非常に大きな GVCF ファイルを Iceberg の S3 Tables に読み込む場合、これらの操作は Lambda のタイムアウト制限を大幅に超えることがあるため、この制約では不十分な場合があります。大規模なゲノムデータセットを扱う本番ワークロードでは、データ読み込み処理を扱うために、より長い実行時間を持つ AWS HealthOmics ワークフロー、AWS Batch、ECS タスク、または EC2 インスタンスの利用を検討してください。 スキーマ最適化のトレードオフ:本スキーマ実装では、サンプルおよび染色体によるパーティショニングを使用しており、患者レベルの解析に最適化されています。しかし、コホートレベルの解析では通常、大規模で最適なパフォーマンスを得るために、異なるパーティショニング戦略とスキーマ設計が必要です。数百サンプルを超えてコホートサイズが拡大するにつれ、単一のスキーマ内で患者レベルとコホートレベルの両方の分析を高性能に保つことは、ますます困難になります。大規模なコホート研究(数千〜数万サンプル)では、特定の分析パターンに最適化された別個のスキーマやマテリアライズドビューの実装、あるいは集団レベルのクエリをより適切にサポートする非正規化構造の検討を推奨します。 今後の技術的な発展 本ソリューションのモジュール型アーキテクチャは、AI 活用型ゲノム解析における継続的なイノベーションの基盤を確立します。将来のバージョンでは、追加のアノテーションデータベースや外部 API を統合し、ゲノムデータと臨床記録・画像を組み合わせたマルチモーダル解析のサポートが考えられます。ゲノムデータでのドメイン特化型のファインチューニングは解釈精度をさらに高め、電子カルテ(EHR)との統合は、診療現場(point-of-care)でのゲノム知見の提供を可能にするでしょう。 とりわけ有望な方向性が、医薬品研究機関 R&D におけるマルチエージェント連携です。このゲノムバリアント解釈エージェントが、薬剤プロファイリング、標的同定、文献エビデンス、仮説生成を担う専門エージェントと協調して動作できます。この協調的なエージェントフレームワークは、バリアントレベルの知見を治療開発へと直接つなぎ、遺伝的発見から臨床応用への橋渡しを効率化することで、創薬パイプラインを劇的に加速できます。 まとめ この次世代のゲノミクス エージェント型 AI ソリューションは、研究者や臨床医がゲノムデータとどのように対話するかという点で、根本的な変革をもたらします。自動化されたバリアントアノテーションとデータ変換を担う AWS HealthOmics と、インテリジェントな解釈のための Amazon Bedrock AgentCore をシームレスに統合することで、ゲノム解析ワークフロー全体をカバーする包括的なソリューションを実現しました。 自動化された VEP アノテーションワークフロー、VCF データをクエリ可能な Iceberg テーブルへ変換する S3 Tables、そして自然言語での対話のための Amazon Bedrock AgentCore 上の Strands Agents。これらの組み合わせにより、バリアントアノテーション、データ処理、臨床的解釈の間にある従来の障壁を最小化するシステムが生まれます。複雑な技術的プロセスを自動化し、直感的な対話手段を提供することで、研究者は技術的な実装の詳細ではなく、生物学的な問いそのものに集中できるようになります。 ゲノムデータが指数関数的に増え続け、臨床応用がますます高度化する中で、このようなシステムは、精密医療(プレシジョンメディシン)を前進させ、科学的発見を加速するための不可欠なインフラとなるでしょう。1000 Genomes Phase 3 Reanalysis データセットで示したこのソリューションは、大規模なゲノムコホートでさえ、シンプルな会話型インターフェースを通じて解析でき、高度なゲノム知見へのアクセスを誰もが使えるよう民主化できることを示しています。 本ソリューションのコードは Life sciences agents toolkit で公開されています。ぜひこのテンプレートを試し、発展させてみてください。Amazon Bedrock AgentCore を使い始めるためのサンプルについては、 Amazon Bedrock AgentCore リポジトリ をご確認ください。 原文は こちら です。 著者について Edwin Sandanaraj AWS のゲノミクス Solutions Architect です。神経腫瘍学の博士号と、ヘルスケアゲノミクスのデータ管理・解析における 20 年以上の経験を持ち、アジアパシフィックおよび日本でのプレシジョンゲノミクスの取り組みを豊富な知識で支えています。クラウドを活用したプレシジョンケアの実現に向けて、臨床ゲノミクスとマルチオミクスに強い関心を持っています。 Hasan Poonawala AWS のシニア AI/ML Solutions Architect で、ヘルスケア・ライフサイエンス分野のお客様を担当しています。AWS 上での生成 AI および機械学習アプリケーションの設計、デプロイ、スケーリングを支援しています。機械学習、ソフトウェア開発、クラウドでのデータサイエンスを合わせて 15 年以上の実務経験があります。休日は自然を巡ったり、友人や家族と過ごしたりするのが好きです。 Charlie Lee AWS のアジアパシフィックおよび日本におけるゲノミクス業界リードで、バイオインフォマティクスを専門とするコンピューターサイエンスの博士号を持っています。バイオインフォマティクス、ゲノミクス、分子診断で 20 年以上の経験を持つ業界のリーダーとして、最先端のシーケンス技術とクラウドコンピューティングを用いたゲノミクスで、研究の加速とヘルスケアの向上に情熱を注いでいます。 この記事はSolutions Architect の Masahiro Imai が翻訳しました。
本ブログは 2024 年 11 月 5 日に公開された AWS Blog「 Amazon Inspector suppression rules best practices for AWS Organizations 」を翻訳したものです。原文公開後のサービスアップデートを訳注として補足しています。 脆弱性管理は、ネットワーク、アプリケーション、インフラストラクチャのセキュリティに不可欠な要素であり、その目的は、機密データやインフラストラクチャが意図せずアクセスされたり露出したりすることから組織を保護することです。脆弱性管理の一環として、組織は通常、どの脆弱性が最大のリスクをもたらすかを判断するためのリスク評価を実施し、ビジネス目標や全体的な戦略への影響を評価し、関連する規制要件を精査します。 この記事では、 AWS Organizations 内のアカウント全体で脆弱性に適切な優先順位を付けるための仕組みの使い方を説明します。お客様の環境における Amazon Inspector の検出結果にリスクベースで優先順位を付けられるよう、リソースにタグを適用する方法を紹介します。また、重要度の低い検出結果を大規模に抑制するための、Amazon Inspector の抑制ルールの活用に関するベストプラクティスも解説します。さらに、継続的な脆弱性管理の文化を醸成するための取り組みについても取り上げます。 Amazon Inspector による脆弱性管理 Amazon Inspector は、 Amazon Web Services (AWS) のワークロードに対して、ソフトウェアの脆弱性や意図しないネットワークへの露出を継続的にスキャンする脆弱性管理サービスです。Amazon Inspector は、実行中の Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、 Amazon Elastic Container Registry (Amazon ECR) 内のコンテナイメージ、および AWS Lambda 関数を自動的に検出してスキャンします。 Amazon Inspector は、ソフトウェアの脆弱性や意図しないネットワークへの露出を発見すると、 検出結果 を作成します。検出結果は、脆弱性を説明し、影響を受けるリソースを特定し、脆弱性の重要度を評価して、修復のガイダンスを提供します。Amazon Inspector で 抑制ルール を作成すると、重要度の低い検出結果を抑制し、優先度の高い検出結果に集中できます。 AWS Organizations における脆弱性管理のベストプラクティス AWS Organizations の組織内で数千件におよぶ脆弱性の検出結果に対処しやすくするために、このセクションで説明するベストプラクティスの活用をお勧めします。 ベストプラクティス 1: 委任管理者を設定する Amazon Inspector を使用すると、組織内の複数の AWS アカウントの脆弱性スキャンを管理できます。そのためには、AWS Organizations の管理アカウントが、いずれかのアカウントを Amazon Inspector の委任管理者アカウントとして指定する必要があります。委任管理者アカウントは、Amazon Inspector のデプロイを一元的に制御できるため、AWS Organizations 内の複数のアカウント全体で、セキュリティモニタリングタスクをより効率的かつ効果的に管理できます。これらのタスクには、メンバーアカウントのスキャンのアクティブ化や非アクティブ化、AWS リージョンごとの検出結果の集約、組織全体の集約された検出結果データの表示、抑制ルールの作成と管理が含まれます。 Amazon Inspector はリージョンごとのサービスであるため、Amazon Inspector を使用する各 AWS リージョンで、委任管理者の指定、メンバーアカウントの追加、スキャンタイプのアクティブ化を行う必要があります。委任管理者アカウントを設定する際は、以下の点に注意してください。 委任管理者は、組織内のアカウントの Center for Internet Security (CIS) スキャン設定を作成および管理できます。ただし、メンバーアカウントが作成したスキャン設定は対象外です。 マルチアカウント設定では、組織全体のスキャンモード設定を行えるのは委任管理者のみです。 Amazon Inspector を使用すると、組織全体の Amazon EC2 インスタンスに対して、OS レベルの CIS 設定ベンチマークに基づいたオンデマンドかつ対象を絞った評価を実行できます。 訳注: 2025 年 11 月より、AWS Organizations の Amazon Inspector ポリシーによる組織全体の管理がサポートされました。このポリシーを使用すると、組織内の全アカウント (新規追加アカウントを含む)、組織単位 (OU)、または個別のアカウントに対してスキャンタイプを自動的に有効化し、メンバーアカウントによる意図しない変更を防止できます。本文の委任管理者による管理と併用でき、ポリシーがスキャンタイプの有効化を制御し、委任管理者はスキャンモードなどの詳細設定を引き続き管理します。 ベストプラクティス 2: 抑制ルールで検出結果を大規模に管理する すべてのアカウントの検出結果には、個別の共通脆弱性識別子 (CVE) や Amazon リソースネーム (ARN) が数千件含まれている可能性があります。そのため、適切な抑制ルールを使ってこれらの検出結果を大規模に管理することが、脆弱性管理を成功させる鍵となります。 抑制ルール とは、フィルター属性と値のペアで構成される条件のセットで、指定した条件に一致する新しい検出結果を自動的にアーカイブすることで、検出結果をフィルタリングするために使用します。 抑制ルールを作成 して、対応する予定のない脆弱性を除外することで、最も重要な検出結果に優先順位を付けることができます。抑制ルールは検出結果自体に影響を与えず、Amazon Inspector による検出結果の生成を妨げることもありません。抑制ルールは検出結果のリストをフィルタリングするためだけに使用されます。これにより、検出結果の確認と優先順位付けが容易になります。 抑制ルールで使用できる便利なフィルターには、 [リソースタグ] 、 [リソースタイプ] 、 [重要度] 、 [脆弱性 ID] 、 [Amazon Inspector スコア] があります。例えば、重要度レベル (Critical、High、Medium、Low、Informational、Untriaged) に基づいて検出結果を分類できます。Amazon Inspector が各検出結果の重要度をどのように決定するかについては、「 Amazon Inspector の検出結果の重要度レベルについて 」を参照してください。 Amazon Inspector では、脆弱性、アカウント、インスタンスなどのさまざまなカテゴリで検出結果を絞り込んで確認できます。Amazon Inspector の [すべての検出結果] ページで CVE ID を選択すると、図 1 に示すように、影響を受けるリソースと個々の AWS アカウント ID の詳細を表示できます。これは、抑制ルールで使用するフィルター条件を選択する際に役立ちます。 図 1: Amazon Inspector の検出結果と重要度レベル 抑制ルールは組織レベルで管理します。設定したルールはすべてのメンバーアカウントに適用されます。Amazon Inspector が抑制ルールに一致する新しい検出結果を生成すると、その検出結果のステータスは自動的に [抑制済み] に設定されます。抑制ルールの条件に一致する検出結果は、デフォルトでは検出結果のリストに表示されません。そのため、抑制された検出結果はサービスクォータに影響しません。メンバーアカウントは、委任管理者から抑制ルールを継承します。委任管理者アカウントで作成できる抑制ルールはリージョンあたり 500 ルールで、これは引き上げられない上限 (ハードリミット) です。 組織内のメンバーアカウントは、抑制ルールを作成または管理できないことに注意してください。抑制ルールを作成および管理できるのは、スタンドアロンアカウントと Amazon Inspector の委任管理者のみです。したがって、組織内に自身の抑制ルールを個別に管理する必要があるメンバーアカウントがある場合は、そのアカウントの所有者が自分のアカウントで Amazon Inspector を個別にアクティブ化する必要があります。 ベストプラクティス 3: Amazon Inspector スコアに基づいて検出結果を抑制する 対応に割ける時間は限られており、特に大規模な組織ではセキュリティ脆弱性の検出結果の量が膨大になる可能性があります。そのため、組織に最大のリスクをもたらす脆弱性を迅速に特定して対応できる仕組みが必要です。 検出結果を抑制する手軽なアプローチの 1 つは、 Amazon Inspector スコア を使用することです。Amazon Inspector は、脆弱性に対する National Vulnerability Database (NVD) の共通脆弱性評価システム (CVSS) 基本スコアを構成するセキュリティメトリクスを検査し、お客様のコンピューティング環境に応じて調整したうえで、脆弱性の重要度を反映した 1~10 の数値スコアを生成します。 NVD/CVSS スコアは、攻撃の複雑さ、悪用コードの成熟度、必要な権限などのセキュリティメトリクスを組み合わせたものですが、リスクの尺度ではありません。 検出結果を過度に抑制しないよう注意してください。検出結果を過度に抑制すると、対策されていないセキュリティリスクにアプリケーションやシステムを意図せずさらしてしまう可能性があります。抑制ルールを適用する際は、慎重かつ節度あるアプローチを維持することが重要です。各検出結果の実際のリスクプロファイルを継続的に可視化しておくことは、プロアクティブで包括的な脆弱性管理に不可欠です。 ベストプラクティス 4: タグを使用してリスクベースの優先順位付けを可能にする スケーラブルな脆弱性管理ソリューションを実現するには、アカウント横断でリソースに適切にタグを付ける戦略を持つことが重要です。 脆弱性に優先順位を付けるには、まず各リソースのリスクレベルを理解して評価し、適切にタグを付けられるようにする必要があります。適切なタグ付けにより、 リスクベースの優先順位付け が可能になります。つまり、検出結果を評価する際に、リソースのリスクレベル、脆弱性の重要度、組織の環境に対する脆弱性の影響などの要素を考慮することで、重大な脆弱性に最初に集中できます。これは当たり前の推奨事項のように思えるかもしれませんが、その重要性は決して見過ごせません。クラウドでは、構築したすべてのものを把握し、保護する必要があります。潜在的なセキュリティイベントの影響とリスク経路を理解するために、資産のマッピングでは、資産間の関係性も併せて洗い出す必要があります。 クラウドリソースの問題を修復する際の優先度は、リソースの露出レベルによって決まります。一般的に、パブリックサブネット内のリソースはプライベートサブネット内のリソースよりも優先すべきです。同様に、本番環境で実行されているリソースは、開発環境やテスト環境のリソースよりも優先すべきです。 優先順位付けは、ファイアウォールルール、 AWS Identity and Access Management (IAM) ポリシー、サービスコントロールポリシー、セキュリティグループなどの要素にも左右されます。さまざまなポートやプロトコルを通じてインターネットに広く公開されているリソースは、厳格なアクセス制限があるリソースと比べて、サービス拒否 (DoS)、分散型サービス拒否 (DDoS)、スプーフィング、マルウェア、ランサムウェアなどの問題が発生する可能性が高くなります。 ベストプラクティス 5: 適切なリソースタグに基づいて抑制ルールを作成する 複雑なマルチアカウント環境では、リソース ID、サブネット ID、VPC ID を使用して抑制ルールを一元管理することは困難な場合があります。これらの値は個々のアカウントに固有であり、新しいデプロイや変更に伴って時間とともに変化するためです。その結果、抑制ルールを最新の状態に保つことが難しくなります。ここでは、タグに基づくリスクベースの優先順位付け (ベストプラクティス 4) と Amazon Inspector スコアを活用して、検出結果を効果的に管理し、優先順位を付け、追跡する方法を説明します。 以下は、脆弱性管理を目的として組織内の AWS クラウドリソース全体で使用できる、タグ付け戦略の推奨例です。 EnvironmentName, RiskExposureScore このタグ付け戦略により、環境全体で抑制ルールを通じた優先順位付けを行い、対応を後回しにする、あるいは対応対象外とすべき検出結果を除外し、優先度の高い検出結果に集中できます。また、リスク要因が異なる環境ごとに、個別のルールを作成することもできます。例えば、リスク露出レベルが低く、非本番環境にあり、重要度レベルが Informational、Untriaged、Low、または Medium であるリソースの検出結果を抑制するといったことが考えられます。さらに、レポートの作成やエクスポート時に [リソースタグ] フィールドを活用して、想定内の検出結果を除外することもできます。 以下の表では、Prod、Dev、Sandbox という 3 つの主要なアカウント区分を持つ AWS クラウド環境の例を示しています。想定されるリスク、露出レベル、ワークロードの重要性に基づいて、異なる重要度レベルの検出結果を抑制しています。この例では、RiskExposureScore の 1、2、3 をそれぞれ低、中、高に相当するものとして使用しています。つまり、RiskExposureScore 1 は、機密性が低い、またはインターネットへの露出がほとんどないワークロードに使用します。一方 RiskExposureScore 3 は、機密性が高い、または重要なワークロードのうち、インターネットに露出している、保護が不十分である、あるいは設定やサイバーハイジーン (cyber hygiene) の不備によりセキュリティリスクが高い可能性があるものに使用します。 EnvironmentName RiskExposureScore 重要度 抑制対象 Prod 1 Medium、Low、Informational、Untriaged はい Prod 2 Low、Informational、Untriaged はい Prod 3 Informational、Untriaged はい Dev 1、2 Medium、Low、Informational、Untriaged はい Dev 3 Low、Informational、Untriaged はい Sandbox 1、2 Critical、High、Medium、Low、Informational、Untriaged はい Sandbox 3 High、Medium、Low、Informational、Untriaged はい この例では、Prod および Dev アカウントのリソースについては重要度が High または Critical である脆弱性の検出結果を残す一方で、その他のリソースについてはリスク露出レベルに応じて異なる抑制ルールを定義しています。また、Sandbox アカウントには重要なワークロードがないため、脆弱性の検出結果の大部分を抑制するようにしています。この例をモデルとして、環境全体で抑制ルールを設定し、ニーズに応じて脆弱性の検出結果に優先順位を付けることができます。さらに、修復作業を進めながら抑制ルールを見直し、修正、再評価できることも覚えておいてください。これらを継続的なプロセスとして行うことがベストプラクティスです。 ベストプラクティス 6: Amazon Inspector を AWS Security Hub と統合する Amazon Inspector を AWS Security Hub と 統合 すると、Amazon Inspector から Security Hub に検出結果を送信できます。Security Hub は、これらの検出結果をお客様のセキュリティポスチャの分析に含めることができます。抑制ルールに一致する Amazon Inspector の検出結果は自動的に抑制され、Security Hub コンソールには表示されません。 訳注: 本記事の AWS Security Hub は、2025 年に AWS Security Hub CSPM (Cloud Security Posture Management) へ名称変更されたサービスを指します。現在「AWS Security Hub」は、リスクの優先順位付けなどの機能を備えた別の新サービスの名称として使われているため、コンソールやドキュメントを参照する際はご注意ください。 ベストプラクティス 7: 抑制ルールを定期的に再評価する セキュリティポスチャを最新に保ち、健全なクラウド環境を維持する鍵は、脅威の状況の変化に合わせて脆弱性管理のアプローチを見直し、適応させ続けることです。ここでは、重点的に取り組むべきプラクティスをいくつか紹介します。 脆弱性の検出結果を抑制しているルールを定期的に見直し、再評価してください。脆弱性と脅威は常に進化しているため、以前に抑制したものを再度有効にする必要が生じるかもしれません。 脆弱性管理を静的な手順ではなく、継続的で反復的なプロセスとして捉えてください。新たなリスクにリアルタイムで対処するために、セキュリティコントロールを定期的に評価し、更新し、適応させてください。 初期の修復だけでなく、継続的なモニタリングと対応も重視してください。脆弱性はライフサイクル全体を通じて包括的に対処する必要があります。 セキュリティを意識し、迅速に対応する文化を組織全体で醸成してください。全員が継続的に脆弱性の特定と軽減に取り組むことが求められます。 脆弱性管理プログラムが、関連するコンプライアンス要件や規制要件 (例えば PCI-DSS 、 HIPAA 、 NIST CSF ) に準拠していることを確認してください。 まとめ この記事では、抑制ルールを使用し、リスクベースの優先順位付けを適用することで、組織の AWS インフラストラクチャ全体で Amazon Inspector の検出結果に大規模かつ効果的に優先順位を付ける方法を紹介しました。また、Amazon Inspector の検出結果の修復に優先順位を付けるための効果的な戦略として、リソースのタグ付けを活用する方法についても説明しました。Amazon Inspector に関連するその他のブログ記事については、Amazon Web Services ブログの Amazon Inspector カテゴリ を参照してください。 Mojgan Toth Mojgan は AWS の Senior Technical Account Manager です。公共部門のお客様に対して、戦略的な技術ガイダンス、ソリューション、AWS クラウドのベストプラクティスを積極的に提供しています。Well-Architected Framework に基づいたソリューションを組み立てることが大好きです。仕事以外では、料理や絵画、そして家族、特に 3 人の幼い息子たちと過ごす時間を楽しんでいます。息子たちはサイクリングやハイキングなどのアウトドアアクティビティが大好きです。 本ブログは Security Solutions Architect の 中島 章博 が翻訳しました。
本ブログは 2024 年 1 月 26 日に公開された AWS Blog “ Export a Software Bill of Materials using Amazon Inspector ” を翻訳したものです。 Amazon Inspector は、 Amazon Web Services (AWS) ワークロードのソフトウェアの脆弱性と意図しないネットワークの露出を継続的にスキャンする、自動化された脆弱性管理サービスです。Amazon Inspector の機能が拡張され、 Windows EC2 インスタンス を除く、Amazon Inspector がモニタリングするサポート対象リソースの統合された ソフトウェア部品表 (SBOM) をエクスポートできるようになりました。 訳注: 本記事公開後の 2026 年 2 月 28 日より、エージェントレス方式でスキャンされる Windows EC2 インスタンスの SBOM エクスポートがサポートされました。エージェントベース方式の Windows EC2 インスタンスは引き続き対象外です。詳細は「 Amazon Inspector による SBOM のエクスポート 」を参照してください。 お客様からは、Amazon Inspector がモニタリングするリソースから収集したソフトウェアアプリケーションのインベントリを追加で提供してほしいというご要望をいただいていました。これにより、現在の Amazon Inspector の検出結果に関連する可能性のあるソフトウェアサプライチェーンやセキュリティ上の脅威を追跡できるようになります。SBOM を生成すると、最も頻繁に使用しているパッケージや、組織全体に影響を及ぼす可能性のある関連する脆弱性など、ソフトウェアサプライチェーンの詳細を可視化する重要なセキュリティ情報が得られます。 このブログ記事では、組織全体で Amazon Inspector がモニタリングするリソースの統合された SBOM を、 CycloneDx や SPDX といった業界標準形式でエクスポートする手順を紹介します。また、 Amazon Athena を使用して SBOM アーティファクトを分析するためのアプローチと、そこから得られる洞察についても共有します。 概要 SBOM は、ソフトウェアコンポーネントを構成する要素のリストを含む、ネストされたインベントリとして定義されます。セキュリティチームは、Amazon Inspector の AWS マネジメントコンソールにあるリソースカバレッジページから、組織全体の統合された SBOM を Amazon Simple Storage Service (Amazon S3) にエクスポートできます。 CycloneDx や SPDX の業界標準形式を使用することで、SBOM から得られる洞察をもとに、組織全体でどのソフトウェアパッケージを更新する必要があるか、他に選択肢がない場合はどのパッケージを廃止するかといった意思決定を行えます。個々のアプリケーションエンジニアやセキュリティエンジニアは、コンソールまたはアプリケーションプログラミングインターフェイス (API) の SBOM エクスポートワークフローの中で、特定のアカウント、リソースタイプ、リソース ID、タグ、またはこれらの組み合わせによるフィルターを適用して、単一のリソースやリソースグループの SBOM をエクスポートすることもできます。 SBOM のエクスポート Amazon Inspector の SBOM レポートを S3 バケットにエクスポートするには、SBOM レポートのエクスポート先となる AWS リージョンにバケットを作成して設定する必要があります。Amazon Inspector のみがバケットに新しいオブジェクトを配置できるように、 バケットのアクセス許可を設定 する必要があります。これにより、他の AWS サービスやユーザーがバケットにオブジェクトを追加できないようにします。 各 SBOM レポートは S3 バケットに保存され、指定したエクスポート形式に応じて Cyclonedx_1_4 (Json) または Spdx_2_3-compatible (Json) という名前が付けられます。また、 S3 イベント通知 を使用して、新しい SBOM レポートがエクスポートされたことを各運用チームに通知することもできます。 Amazon Inspector では、SBOM レポートの暗号化に AWS Key Management Service (AWS KMS) キーを使用する必要があります。このキーはカスタマーマネージドの対称暗号化 AWS KMS キーであり、SBOM レポートの保存用に設定した S3 バケットと同じリージョンにある必要があります。SBOM レポート用の新しい AWS KMS キーには、Amazon Inspector がキーを使用できるようアクセス許可を付与する キーポリシー を設定する必要があります (図 1 を参照)。 図 1: Amazon Inspector の SBOM エクスポート 訳注: 現在は、バージョン範囲指定などにより特定の名前・バージョンに解決できないパッケージ (未解決ハッシュ) も SBOM エクスポートに含まれるようになりました。これらのパッケージは脆弱性スキャンの対象にはなりませんが、ハッシュ値がエクスポートされたコンポーネント一覧に記録されます。 前提条件のデプロイ 提供されている AWS CloudFormation テンプレートは S3 バケットを作成し、Amazon Inspector が SBOM レポートオブジェクトをそのバケットにエクスポートできるようにするバケットポリシーを関連付けます。このテンプレートは、SBOM レポートのエクスポートに使用する新しい AWS KMS キーも作成し、Amazon Inspector サービスにキーを使用するアクセス許可を付与します。 エクスポートは、 Amazon Inspector の委任された管理者アカウント または Amazon Inspector の管理者アカウント自体から開始できます。これにより、S3 バケットには Amazon Inspector のメンバーアカウントのレポートが格納されます。同じリージョンにデプロイされた Amazon Inspector から SBOM レポートをエクスポートするには、CloudFormation テンプレートがその AWS アカウントとリージョン内にデプロイされていることを確認してください。複数のアカウントで Amazon Inspector を有効にしている場合は、Amazon Inspector が有効になっている各リージョンに CloudFormation スタックをデプロイする必要があります。 CloudFormation テンプレートをデプロイするには 次の Launch Stack ボタンを選択して、アカウントで CloudFormation スタックを起動します。 テンプレートのスタック名とパラメータ ( MyKMSKeyName と MyS3BucketName ) を確認します。S3 バケット名は一意である必要がある点に注意してください。 [次へ] を選択して、スタックのオプションを確認します。 次のページに進み、 [送信] を選択します。CloudFormation スタックのデプロイには 1~2 分かかります。 CloudFormation スタックのデプロイが正常に完了したら、スタックによって作成された S3 バケットと AWS KMS キーを使用して SBOM レポートをエクスポートできます。 SBOM レポートのエクスポート セットアップが完了したら、SBOM レポートを S3 バケットにエクスポートできます。 コンソールから SBOM レポートをエクスポートするには S3 バケットと AWS KMS キーを作成したのと同じリージョンの Amazon Inspector コンソールに移動します。 ナビゲーションペインから [SBOMs] を選択します。 フィルターを追加 して、リソースの特定のサブセットのレポートを作成します。フィルターを指定しない場合は、アクティブでサポート対象のすべてのリソースの SBOM がエクスポートされます。 希望するエクスポートファイルタイプを選択します。オプションは Cyclonedx_1_4 (Json) または Spdx_2_3-compatible (Json) です。 CloudFormation テンプレートの出力セクションにある S3 バケット URI を入力し、作成した AWS KMS キーを入力します。 [エクスポート] を選択します。エクスポートするアーティファクトの数に応じて、完了までに 3~5 分かかることがあります。 図 2: SBOM エクスポートの設定 エクスポートが完了すると、すべての SBOM アーティファクトが S3 バケットに格納されます。S3 バケットから SBOM アーティファクトをダウンロードすることも、 Amazon S3 Select を使用して標準 SQL クエリでオブジェクトからデータのサブセットを取得することもでき、柔軟に活用できます。 図 3: Amazon S3 Select 訳注: Amazon S3 Select は新規のお客様には提供されていません (すでにご利用のお客様は引き続き利用できます)。同等の処理には、本記事で後述する Amazon Athena の利用を検討してください。 また、 Amazon Athena を使用して高度なクエリを実行したり、 Amazon QuickSight を使用してダッシュボードを作成したりすることで、洞察を得たり傾向を把握したりすることもできます。 クエリと可視化 Athena を使用すると、S3 バケットに保存されている生データに対して SQL クエリを実行できます。Amazon Inspector のレポートは S3 バケットにエクスポートされます。「 AWS Glue クローラーの追加 」のチュートリアルに従って、テーブルを作成しデータをクエリできます。 AWS Glue が S3 データをクロールできるようにするには、AWS Glue クローラーのチュートリアルに記載されているロールを AWS KMS キーのアクセス許可に追加して、AWS Glue が S3 データを復号できるようにする必要があります。 以下は、ユースケースに合わせて更新できるポリシー JSON の例です。AWS アカウント ID の <111122223333> と S3 バケット名の <DOC-EXAMPLE-BUCKET-111122223333> は、必ずお客様自身の情報に置き換えてください。 { "Sid": "Allow the AWS Glue crawler usage of the KMS key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam:: <111122223333> :role/service-role/AWSGlueServiceRole-S3InspectorSBOMReports" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "arn:aws:s3::: <DOC-EXAMPLE-BUCKET-111122223333> " }, 注: AWS Glue 用に作成されたロールには、クローラーを作成するために、レポートのエクスポート先である S3 バケットを読み取るアクセス許可も必要です。AWS Glue の AWS Identity and Access Management (IAM) ロールによって、クローラーの実行と Amazon S3 データストアへのアクセスが許可されます。 AWS Glue データカタログを構築した後は、クローラーをスケジュール実行するように設定することで、S3 バケットにエクスポートされる最新の Amazon Inspector の SBOM マニフェストを常に反映した状態に保つことができます。 さらに、クローラーによって追加されたテーブルに移動し、Athena でデータを表示できます。Athena を使用すると、Amazon Inspector のレポートに対してクエリを実行し、環境に関連する出力データを生成できます。生成される SBOM レポートのスキーマは、レポート内の特定のリソース ( Amazon Elastic Compute Cloud (Amazon EC2) 、 AWS Lambda 、 Amazon Elastic Container Registry (Amazon ECR) ) によって異なります。そのため、スキーマに応じて、レポートから情報を取得する Athena の SQL クエリを作成できます。 以下は、SBOM レポート内のリソースについて上位 10 件の脆弱性を特定する Athena クエリの例です。レポートに含まれる CVE (共通脆弱性識別子) を使用して、CVE の影響を受ける個々のコンポーネントを一覧表示できます。 SELECT account, vuln.id as vuln_id, count(*) as vuln_count FROM <Insert_table_name>, UNNEST(Inset_table_name.vulnerabilities)as t(vuln) GROUP BY account, vuln.id ORDER BY vuln_count DESC LIMIT 10; 以下の Athena クエリの例では、上位 10 件のオペレーティングシステム (OS) を、リソースタイプおよびその数とともに特定できます。 SELECT resource, metadata.component.name as os_name, count(*) as os_count FROM <Insert_table_name> WHERE resource = 'AWS_LAMBDA_FUNCTION' GROUP BY resource, metadata.component.name ORDER BY os_count DESC LIMIT 10; 重大な脆弱性を持つパッケージがあり、そのパッケージがプライマリパッケージとして使用されているのか、依存関係として追加されているのかを知りたい場合は、以下の Athena のサンプルクエリを使用して、アプリケーション内のパッケージを確認できます。この例では、Log4j パッケージを検索しています。結果として account ID 、 resource type 、 package_name 、 package_count が返されます。 SELECT account, resource, comp.name as package_name, count(*) as package_count FROM <Insert_Table _name>, UNNEST(<Insert_Table_name>.components) as t(comp) WHERE comp.name = 'Log4j' GROUP BY account, comp.name, resource ORDER BY package_count DESC LIMIT 10 ; 注: サンプルの Athena クエリは、SBOM エクスポートレポートのスキーマに応じてカスタマイズする必要があります。 このソリューションをさらに拡張するには、 Amazon QuickSight を使用して AWS Glue テーブルに接続し、データを可視化するダッシュボードを作成できます。 訳注: Amazon QuickSight は 2025 年 10 月に Amazon Quick Suite へ進化 し、現在は Amazon Quick として提供されています (BI 機能は Quick Sight コンポーネントとして存続し、既存の API や連携は変更なく動作します)。また、本記事の発展形として、Lambda と Amazon EventBridge によるエクスポートの自動化からダッシュボードでの可視化までを実装した「 Enhance container software supply chain visibility through SBOM export with Amazon Inspector and QuickSight 」も公開されています。 まとめ Amazon Inspector の新しい SBOM 生成機能は、複数レベルの依存関係にわたるソフトウェアパッケージのリストを提供することで、ソフトウェアサプライチェーンの可視性を向上させます。また、SBOM を使用して各ソフトウェアパッケージのライセンス情報をモニタリングし、組織内の潜在的なライセンス違反を特定することで、潜在的な法的リスクの回避にも役立ちます。 SBOM エクスポートの最も重要なメリットは、業界の規制や標準への準拠を支援できることです。業界標準の形式 (SPDX と CycloneDX) を提供し、他のツール、システム、サービス (Nexus IQ や WhiteSource など) との容易な統合を可能にすることで、インシデント対応プロセスの効率化、セキュリティ評価の正確性と速度の向上、規制要件へのコンプライアンスの維持を実現できます。 これらのメリットに加えて、SBOM エクスポート機能は、リソース内で検出された OS パッケージやソフトウェアライブラリの把握にも役立ち、業界の規制や標準への準拠をさらに強化します。   この記事で共有した情報に関するご質問がある場合は、 Amazon Inspector re:Post で新しいスレッドを開始するか、 AWS サポートにお問い合わせ ください。 Varun Sharma Varun は、セキュリティのマントを誇らしげにまとう AWS クラウドセキュリティエンジニアです。Amazon Cognito と IAM の謎を解き明かす才能を持ち、これらのサービスの頼れる専門家です。クラウドのセキュリティ確保の手を休めているときは、セキュリティペネトレーションテストの世界に没頭しています。そして画面から離れているときは、気分を切り替えて、カメラのレンズを通して自然の美しさを捉えています。 本ブログは Security Solutions Architect の 中島 章博 が翻訳しました。
こんにちは、AWS ソリューションアーキテクトの秦です 現在、AI コーディングエージェントの活用が広がり、コーディングの生産性は大きく向上しています。 筆者がとある開発部門で、AI コーディングエージェントの導入を支援するプロジェクトに参加したところ、個人利用の段階では成果が出ていたものの、複数チームへの展開を始めたところでいくつかの課題に直面しました。 本記事では、そのチーム展開の際に直面した課題に対して私たちが実際に行ったアプローチと、そこから得られた学びを共有します。 なお、本記事は、特定のプロジェクトでの経験談であり、すべての組織にそのまま当てはまるとは考えていませんが、これから AI 駆動開発をチームに広げようとしている開発リーダーやアーキテクトの方の参考になれば幸いです。 チーム展開で直面した課題 まず、要点を整理すると、AI コーディングエージェントのチーム展開を始めるうえで見えてきた課題は次の 4 つに集約されました。 出力品質が個人のプロンプトの書き方に依存し、ばらつく 組織で決めた開発プロセス(分析 → 設計 → 実装 → テストなど)のステップに従わないケースがある うまく使えているメンバーの工夫が他のメンバーに共有されない レビューやセキュリティ検証が仕組みとして組み込まれていない 原因を追うと、いずれもエージェントが「チームのやり方」を知らないまま動いていることに行き着きました。 そのため、ルール・プロセス・品質基準をファイルとして整備してエージェントに読ませ、検証で得た学びをルールに還元する取り組みを段階的に進めました。 実装には Kiro を使いましたが、同種の機能があれば他のツールでも構成は再現できると考えています。 なお、ルールを書けばエージェントが必ず従うわけではなく、コンテキストが長いとルールが埋もれる、指示が矛盾すると挙動が不安定になる、といった課題が残ります。 ルール化できる範囲を仕組みで担保する、というのが今回のポイントです。 検討のステップ 検討時には、重要な前提があります。 一度に完成させることはできない ということです。全ルール・全プロセス・全ナレッジを最初から適用しようとすると、書く側も使う側も破綻します。 そこで、整備の進め方を以下のように考えてみました。 あくまで一例として捉えていただければと思います。また、各ステップを整備すると次の問題が見えてくるという構造になっています。 段階 内容 ステップ 1 ルールの明文化 ステップ 2 知識の分割と役割の分離 ステップ 3 ワークフローの構造化と棚卸し ステップ 4 品質ゲートの組み込み ステップ 5 学習ループと組織展開 ステップ 1: ルールの明文化 展開初期は、各メンバーがプロンプトで毎回規約を指示しており、書き忘れた項目はエージェントが自己流で埋めるということも多いかと思います。 そこで、毎回伝えていたルールを Steering のファイルに固定し、全セッションに読み込ませ、既存のコーディング規約から違反頻度の高い項目を抜粋し、技術スタック、禁止事項、完了の定義を加えた形を作ります。 完了の定義は重要で、基準を渡さないと、エージェントはコンパイルが通った時点で「完了しました」と報告し、テストを省略することがあります。 「ビルド成功、単体テスト全パス、Lint エラーゼロ」のように判定可能な形で書くようにすると指示が明確になります。 一方、ビルドコマンドの手順だけを並べただけでは、エージェントが基準を理解せずコマンドを実行するだけになる場合があるため、「何を実行するか」と「何をもって完了とするか」は両方定義しておくと安心です。 ステップ 2: 知識の分割と役割の分離 ルールが育つとコンテキストの肥大化が問題になります。ルールを足したのに守られないルールが増えるというケースがあるため、常時読ませるファイルは禁止・必須ルールだけに絞り、詳細なパターン解説やコード例は必要なときだけ読み込まれる Skills に移します。 もう一つは実装とレビューの分離です。同じエージェントに両方させると「問題なし」で返ってくることが多く、レビュー専用のサブエージェントを分けました。 ただし、ルールに書いてあっても AI レビューが見逃すことがあり、確実に検出したい項目はレビュー側のチェックリストにも重ねて載せています。 委譲はメインエージェントからの一方向のみとし、差し戻しは例えば同一タスク 2 回まで、超えたら人間に渡す運用にします。 ステップ 3: ワークフローの構造化と棚卸し タスク単位は安定しても、設計を飛ばして実装が始まる、テスト省略のまま完了になるというケースがあり、メインエージェントを「自分では実装しないオーケストレーター」とし、指示書にフェーズ順序と完了条件を明記して、満たさなければ次に進めない構成にしました。 セッションをまたぐ引き継ぎには、合否フラグ付きのフィーチャーリストと進捗ログをファイルで残し、開始時に読ませます。 棚卸しに使った 4 象限 この時点で、整備が場当たり的にならないように全体像の棚卸しするために、タイミング軸(事前/事後)× 読者軸(人間/AI)の 4 象限で成果物を分類してみました。 事前(やる前に決める) 事後(やった後に確認する) 人間が読む A. ガイドドキュメント ・方式設計書 ・テスト仕様書 ・リリース手順書 等 B. 記録・承認 ・テスト結果報告書 ・レビュー記録 等 AI が読む C. ルール・パターン定義 ・ steering ・ skills ・ agents  等 D. 自動検証ツール ・静的解析 ・AI レビュー ・品質ゲート 等 分類してみると、ステップ 1〜2 で作ったものは C 象限(AI が事前に読むルール)に集中しがちで、A・B 象限は従来の開発プロセスの資産がそのまま残っている一方、D 象限(AI の出力を事後に機械検証する仕組み)は追加整備が必要な状況でした。 D はルールが守られたかを確認する整備になっていて、これが次の品質ゲートに取り組むきっかけになります。 また、A・B 象限の成果物は残り続けますが、人間がどの粒度で読むかは変わってきます。実際、テスト結果は AI が要約したものを人間が確認する形に移りつつあります。 変わらなかったのは、承認の責任がプロセスのどこにあるかであるため、この観点を整備の判断軸にしています。 ステップ 4: 品質ゲートの組み込み ステップ 1 が基準の「宣言」だとすると、ステップ 4 はその「守り」です。この二つが対になって初めてエージェントの環境整備が機能します。そのために品質ゲートを検討します。品質ゲートは次の 2 点がポイントです。 合否判定可能な完了条件 : 「ビルド成功」「静的解析の指摘ゼロ」など、機械的に Yes/No が決まる条件を事前に合意する 不合格なら進めない構造 : 条件を満たさない限り次フェーズに進めない関門を仕組みとして置く 実装は、ビルド・カバレッジ・静的解析・AI レビューを一括実行するゲート用サブエージェントを定義し、タスク完了時にオーケストレーターから呼び出す形にして、不合格ならタスクは未完了に戻ります。 既存の CI で検証できる項目は同じコマンドをゲートからローカルで実行して再利用し、ブラウザ操作での E2E テストや AWS リソースの検証など、CI に乗っていない検証だけを Model Context Protocol (MCP) による外部ツール連携で追加しました。ゲートを新規に作るというより、既存の検証資産を関門として組み込み直す作業が中心になるかと思います。 また、ゲートに入れる項目は機械判定できるものに限定しました。要件の妥当性のような項目まで入れると、判定が安定せず外す可能性があります。 UX の良し悪しなど熟練者の判断に依存する項目は人間レビューに残し、ゲートは「機械で落とせる不合格を先に落とし、人間のレビューを設計判断に集中させる前処理」と位置づけました。 4 象限でいえば、D 象限を埋めた上で、B 象限の人間の承認は残す、という分担です。 また、整備の効果測定には「評価セット」を用意しました。チームで頻出するタスクの指示文(既存画面への項目追加、API エンドポイントの新設など)を数個固定したテスト問題集のようなもので、同じ指示を複数回実行し、品質ゲートをすべて通過した割合を成功率として記録します。 AI の出力は同じ指示でも毎回変わるため、1 回の試行では整備の効果を判断できないからです。ルール変更の前後でこの成功率を比較することで、「なんとなく良くなった」ではなく数値で改善を確認できるようにしました。 ステップ 5: 学習ループと組織展開 また、環境整備する上で得た学びとして、レビューで繰り返し指摘されるパターンを記録し、汎用的なものは Steering や Skills に「昇格」させるという営みも重要です。 この記録と昇格のトリガーには Hooks を使い、セッション終了時に、開発者が入力した修正指示を自動的に学習候補として記録し、後から Steering / Skills への昇格を判断する運用です。 同時に、モデルの進化に応じて効きの薄くなったルールを削る「棚卸し」も行います。ルールは積み上げるだけでなく、不要になった補助輪を外す運用も含みます。できれば数か月に一度の再評価が目安です。 まとめ 本記事では、AI コーディングエージェントをチームに展開する際に直面した課題と、それに対して私たちが行った環境整備をご紹介しました。 チーム展開で見えてきた課題は、出力品質のばらつき、開発プロセスの不徹底、工夫の属人化、検証の仕組みの不在の 4 つでした。 いずれもエージェントが「チームのやり方」を知らないまま動いていることが原因であり、ルール・プロセス・品質基準をファイルとして整備してエージェントに読ませ、得られた学びをルールに還元する、という取り組みを段階的に進めました。 整備は一度に完成させるのではなく、ルールの明文化から始めて、知識の分割と役割の分離、ワークフローの構造化、品質ゲートの組み込み、学習ループの構築へと、各ステップで見えてきた課題に応じて進めています。本文で挙げた各ステップの症状は、チームの整備がどこまで進んでいるかを見極める手がかりにもなるかと思います。 特定のプロジェクトでの経験談ではありますが、これから AI 駆動開発をチームに広げようとしている方の参考になれば幸いです。 著者のプロフィール 秦 将之 ソリューションアーキテクトとして、お客様の AWS 導入と活用のご支援を担当しています。開発プロセスの改善や自動化が好きで、最近は Kiro Crew を使った開発ワークフローを試しています。 堀 貴裕 アマゾンウェブサービスジャパン合同会社のソリューションアーキテクトです。普段は製造業やシステムインテグレーターのお客様のご支援を中心に活動しています。最近は Kiro を使ったお客様の業務変革支援に邁進中です。 参考 Kiro Documentation: https://kiro.dev/docs/
本ブログは、コニカミノルタ株式会社と Amazon Web Services Japan が共同で執筆しました。 はじめに 2026 年 6 月 25 日、26 日に幕張メッセで開催された AWS Summit Japan 2026 で、コニカミノルタ株式会社 ( 以下、コニカミノルタ ) は「Amazon Bedrock による自然言語駆動型自律実験」を展示しました。自然言語の指示を AI が構造化し、カメラで実験台の状態を確認しながらロボットアームを動かし、結果を電子実験ノートへ戻すデモです。生成 AI、ロボティクス、記録基盤を一つの流れにつなぎ、Physical AI による「未来の実験室」の可能性を紹介しました(図 1)。 図 1 展示した実機デモ。 Amazon Bedrock  とロボティクスを組み合わせ、「未来の実験室」の可能性を示しました。 1. 研究開発と「未来の実験室」 コニカミノルタは、光学・画像・材料・微細加工の技術を幅広い事業で培ってきました。研究開発では、実験内容を次の判断へつなげる記録も重要です。電子実験ノートと社内ナレッジ共有基盤に、生成 AI の要約・通知を組み合わせ、記録を検索・再利用しやすくしています(図 2)。今回の展示は、この基盤を実験の指示と実行まで広げる試みです。 図 2 電子実験ノートの記録を生成 AI が要約・通知する仕組み。 2. Materials Informatics (MI) を支えるハイスループット実験 MI には十分な実験データが必要です。しかし材料開発は、高粘度材料や粉体、多段工程などを扱うため、既製の自動化設備を適用しにくい場合があります。 「未来の実験室」では、目的別に設計するハイスループット(HT)実験でデータを増やし、MI や生成 AI で次の判断を支援します。記録、実行、解析を循環させ、開発を加速します(図 3)。 図 3 「未来の実験室」の構想。生成 AI とロボットの連携により、発案、計画、実行を支援します。 3. 展示したデモ 来場者が電子実験ノートに「緑色を作ってください」などと入力すると、システムが複数のカラーフィルムから必要なものを選び、ロボットアームが重ね合わせて目標色へ近づけます。カメラが実験台を撮影し、Amazon Bedrock 上の基盤モデルが自然言語と画像からフィルムの種類と順番を判断します。ロボットアームは指定された操作を実行し、その結果を次の判断に利用します。 色づくりは短時間で仕組みを理解できる展示用タスクですが、人が目的を伝え、AI が状態を見て操作を選び、ロボットが実行する閉ループ実験の最小構成になっています。 発展例として、pH の値を見ながら溶液を加え、目標値まで調整する動画も紹介しました。将来は試薬調整、測定、分析、記録へ広げます。 図 4 システム構成。電子実験ノートの指示を Amazon Bedrock が解釈し、Worker PC を介してロボットアームを動かします。 4. 自然言語を安全に物理操作へつなぐ 安全性、再現性、監査性を確保するため、LLM が座標や動作列を直接生成せず、自然言語を構造化された中間表現へ変換します。例えば「緑色を作ってください」という指示を、目標色、利用可能なフィルム、操作候補、停止条件などに分解し、JSON 形式で出力します。座標制御やアクション列は、人が設計した決定論的な制御層が担います(図 5)。 図 5 自然言語から座標データまでの流れ。LLM は構造化と関数選択を担い、後段を検証可能な処理にしています。 存在しない対象や実現できない色を指定された場合は、無理に操作せず停止します。Physical AI では、動作性能だけでなく、止まるべき場面で確実に止まる設計が重要です。 5. 軽量モデルで動かせた理由 Amazon Bedrock 上の Claude Haiku 系モデルを使用しました。LLM の役割を自然言語と画像の解釈、中間表現への変換に絞り、物理制御を決定論的ロジックへ分けることで、軽量モデルでも速度とコストを両立しました。 6. 来場者の反応と開発 製造、化学、通信、商社、メディア、SIer など幅広い業界の方にご覧いただき、自然言語の指示でロボットが動く様子に関心が集まりました。 技術者から特に多かったのは、「LLM が生成した JSON を制御関数や座標へどう変換するか?」という質問です。AI の判断範囲と機器制御の境界に、実装上の本質があることを共有できました。座標を直接指定する試作から、Stack、Pick、Place、Remove などの操作をカプセル化。ここまでを 2 ヶ月ほどで実装し、開発には Kiro CLI をフル活用しました。 7. 研究開発基盤への展開 この展示を Physical AI と呼ぶのは、AI が現実の状態を観察し、目標との差を判断して物理操作を行うためです。ただし、目指すのは一過性のロボットデモではありません。 実験の指示、条件、操作、結果、ログを電子実験ノートへ戻し、検索・追跡できる形で残すことが重要です。再利用可能な記録が、次の仮説検証、品質確認、知財化や論文化を支えます。 自然言語の実験意図を Amazon Bedrock で構造化し、物理操作へつなぎ、結果を記録へ戻す。この循環により、実験室を知識、データ、実行が連携する研究開発基盤へ変えていきます。コニカミノルタには、産業機器のハードウェア技術、光学・画像・材料の知見、クラウド人財、研究開発現場があります。記録、再現性、品質、知財まで横断して設計できる点が強みです。 8. 今後の展望 今後は、複数のロボットアーム、搬送ロボット、電子天秤、ピペット、pH メーター、分注機、測定装置などとの連携を検討します。自動化自体を目的にせず、HT 化する実験と蓄積するデータの粒度を設計します。装置、材料、データサイエンス、クラウド、現場運用を横断し、実験をデータ駆動型へ変えます。 実運用では、判断と結果を検証できるログが不可欠です。安全性、品質、知財、監査性を考慮し、AI、ロボット、人が担う範囲と、記録する情報を明確にします。 まとめ 今回の展示は、自然言語で書かれた実験意図を生成 AI が構造化し、ロボットの物理操作へ変換し、結果を実験記録へ戻す最小構成を示したものです。 生成 AI の価値はチャット画面の中だけにとどまりません。記録、クラウド、AI、ロボティクスがつながることで、実験室は知識を蓄え、その知識から次のデータを生み出すシステムへ変わります。 コニカミノルタと AWS は、今後も対話と実装を重ね、生成 AI とクラウドが研究開発にもたらす可能性を探っていきます。 図 6 AWS Summit Japan 2026 で展示を担当したコニカミノルタメンバー。 執筆者 コニカミノルタ株式会社 技術開発本部 データサイエンスセンター データジェネレーション部 野場 考策 技術開発本部 データサイエンスセンター データジェネレーション部 室田 和敏 技術開発本部 デバイス技術開発センター マテリアルサイエンス部 成毛 章容 アマゾンウェブサービスジャパン合同会社 ハイテク&ヘルスケア事業本部 アカウントマネージャー 池田 拓生 ソリューションアーキテクト 森下 裕介
モノやサービスが生まれる現場では、開発から運用に至るさまざまなフェーズで、日々多くのデータが生まれています。かつてのモノづくりの現場では、「製品が世に出たら、お客様がどう使っているかは見えづらい」ことが当たり前でしたが、この前提は変化しつつあり、現在はモノやサービスがリリースされた後も、さまざまなシグナルを得られる時代になりました。顧客管理や売上の履歴、お客様からの問い合わせ、レビュー、デバイスが送信する稼働メトリクスなど…。これらのデータから得られるシグナルを速やかにキャッチして改善につなげていくことが、モノ・サービスの競争力を高め、企業価値を成長させる大きな要素になりうるでしょう。 しかし現実には、これらのデータを活用し、開発サイクルへシームレスにつなげられている組織は、まだ多くありません。データは集まっている、だがそれらを活用しきれていない、といったお声はよくいただきます。 本記事では、どうすればリリース後のデータを活用し、得られたインサイトを次の開発サイクルに適用できるのかを掘り下げ、誰もが体験可能なサンプルシナリオとともに紹介します。 なぜ運用データは次の開発につながらないのか 図 :運用フェーズにおけるデータ活用イメージ リリース後に集まるデータを製品の改善に活かそうとするとき、多くの組織が共通して行き当たるのが、二つの「サイロ」に関する課題です。 一つ目は、 サイロ化されたデータに関する課題 です。納品実績は営業部門に、問い合わせ履歴はサポート部門に、稼働データは保守部門に、製品仕様は開発部門にと、データは複数のドメインに分散しています。製品の問題解決や顧客要望に応える必要性が顕在化したとしても、担当者は自部門のデータにしかアクセスできず、全体像を見渡せないまま、調査の方向性を定めることすら難しいのが実情です。 二つ目は、 サイロ化された人材に関する課題 です。意味のある分析を行うためには、データを扱う技術、製品の知識、現場の実情という複数領域の知識が必要とされることも多いでしょう。しかしながら、多くの組織において、横断的な知識を備えた人材が存在することは稀です。真の課題にたどり着くために、複数のステークホルダーを集めて議論を重ねるケースも多いと思います。もちろんそれは有益であるものの、どうしても結論にたどり着くまでに時間がかかってしまい、スピーディーな解決につながりづらいことも多いと考えられます。 これら 2 つのサイロを乗り越え、日々集まるデータを改善サイクルの起点に変えていくには、次のような仕組みが鍵になるはずです。 さまざまな場所に分散するデータを、仮想的に一つにまとめて扱える仕組み 構造化・非構造化を問わず、用途に応じて多様なデータを分析対象にできる仕組み データとその分析結果を、組織共通の資産として共有できる仕組み 分析の専門家でなくても自然言語で問いを立てられ、誰が使っても一定品質の調査結果を得られる仕組み 指示されたデータの加工や集計を行うだけでなく、自ら問題を分析し、仮説を立ててデータで検証を進められる仕組み 分析結果を、次のアクションにつながる形で他システムへ連携できる仕組み Agentic AI アシスタント Amazon Quick によるデータと人のサイロの解決 これらの仕組みは、Agentic AI アシスタント Amazon Quick で実現可能です。Amazon Quick は、タスクの自動化・データ分析・Web アプリ構築・リサーチといった作業を、専門知識なしで一元的に行うことができるサービスです。 本来、AI エージェントを自前で動かすには、設備・電源・ネットワーク・サーバーなどのインフラ管理に加えて、モデルの選定やエージェントの実装、ガードレールの整備まで多くの手間が伴います。Amazon Quick はこれらをフルマネージドで引き受け、利用者はコードを書くことなくエージェントを設計・活用でき、ガードレール機能も組み込みで利用できます。さらに、入力したデータは自社の管理下に保たれ、基盤モデルの学習に使われることもありません。AWS のインフラストラクチャー自体もセキュアに運用されており、利用者は安心して分析に集中できます。 以下に、Amazon Quick の全体像を示します。 図 :Amazon Quick 全体像 Amazon Quick では、 Quick Spaces (以下 Spaces )という仮想的なデータコンテナを作成できます。Spaces には、さまざまな場所(AWS 上のストレージサービスやデータベースサービスのほか、外部 SaaS、オンプレミスのデータベースやファイルサーバーなど)にある構造化データおよび非構造化データを仮想的にまとめます。これによって、データサイロを排除し情報探索を効率化することができます。 Amazon Quick の Quick Chat (以下 Chat )は、データの探索、分析、アクションの実行を支援する対話型のアシスタントです。前述の Spaces と Chat は簡単な手順で接続でき、そうすると Chat は Spaces にあるリソースを使って回答、タスク遂行を行います。このとき Chat は、指示されたデータの加工や集計をこなすだけではありません。与えられたゴールに向けて、自ら分析の計画を立て、仮説の立案とデータによる検証を繰り返しながら、結論へと近づいていきます。Spaces にタスク遂行に必要なデータが集約されていれば、Chat の裏にある Agentic AI はタスクに関連するデータだけで結果を生成するため、ユーザーは関連性の高い回答を得られます。また、Chat にはエージェントの振る舞いを自然言語の指示としてあらかじめ定義できる機能( カスタムチャットエージェント )があります。ここに優秀なアナリストの思考手順を思考ルールとして仕込んでおくことで、誰が使っても一定以上の品質の調査やアクションを実行できるようになります。分析結果はチケット管理システムなどの外部ツールへ連携できます。このように、データを扱う技術・製品知識・現場の実情という複数領域の知識が一人に揃わなくても、Agentic AI がその隙間を埋めることで、人材のサイロを越えた分析が可能になります。 アニメーション :Quick Chat を活用したデータの深堀り分析 製品改善サイクルのサンプルシナリオ 製造業の業務での活用イメージを明確にするために、一つの「モノ」の開発サイクルを例に、具体的なシナリオを辿ってみましょう。 あなたは、空調機器(HVAC)メーカーの品質マネージャーである、と想像してください。あなたは、製品の品質を向上することに責務を負っていますが、製品の内部仕様に熟知しているわけではありません。そのような状況で、「ある時点から『冷房が効かない』という問い合わせが急増している」という情報を得ました。あなたはこれに対処する必要があります。 あなたはまず、その事実を確認するために、Quick Chat を使って「問い合わせの傾向を分析してください」と依頼します。すると、Agentic AI は、裏で接続されたお問い合わせデータと顧客管理台帳を参照し、問い合わせ傾向の事実を確認します。 続いて、「なぜそれが起こったのでしょうか。仮説を立ててください」と依頼して、Agentic AI に根本原因の仮説を立てさせます。さらに、稼働データ、ソフトウェアのバージョン、製品仕様書…など、接続されたデータを行ったり来たりしながら仮説を検証させます。最終的に、あなたが Agentic AI の力を借りながら、複数の根拠を元にして問題の原因にたどり着くことができます。 特定した根本原因を解決する方法はいくつか考えられるはずです。それらを遂行するためには、これまでの分析の経緯と必要な対策を他部門に連携する必要があります。この連携のためのチケット情報を Agentic AI が生成し、他部門が利用するシステムへの連携を支援します。チーム間の情報連携は一般的に手間がかかりますが、カスタムチャットエージェントに情報連携のルールをあらかじめ定義しておけば、そのルールに沿って情報が受け渡されるため、開発チームはすぐに内容を確認し、改善に着手することが可能です。 このように、あなたは Amazon Quick 上の Agentic AI を活用して、モノに関わって生まれるさまざまなデータを製品価値の向上に活用し、製品の開発サイクル全体をシームレスに形成することができました。 ワークショップで体験する 本ブログでご紹介したとおり、Amazon Quick を活用して、製品・サービスの改善サイクルを作ることが可能です。これを擬似的に体験できるワークショップを用意しています。 Accelerating Smart Product SDLC with AI Agent Workshop このワークショップは、ソフトウェア開発における、計画、開発、テスト、リリース、運用、の各フェーズを体験できる合計 5 つの Lab で構成されています。本ブログで紹介した運用フェーズにおけるデータ活用は、Lab 5 で体験できます。Lab 1 から Lab 4 では、計画からリリースまでのいわゆる製品開発の工程を体験できます。こちらの内容の詳細については、 Accelerating Smart Product SDLC with AI Agent Workshop のご紹介 をぜひご覧ください。Lab 5 だけ体験することも、5 つの Lab のうちいくつかをピックアップして体験することも可能です。 まとめ モノやサービスはリリースして終わりではなく、運用の中で生まれるデータこそが次の開発の起点になります。しかし多くの組織では、データと人材の 2 つのサイロがその活用を阻んでいます。Amazon Quick を使えば、分散するデータを Spaces でひとつにまとめ、Chat によって誰もが自然言語で横断的な分析を行い、その結果を開発チームへのアクションにシームレスにつなげられます。まずはワークショップで、運用データが開発サイクルへとつながる体験をお試しください。 ご質問や、自社での適用に関するご相談は、担当のソリューションアーキテクトまたは AWS へのお問い合わせ までお寄せください。 関連ブログ Accelerating Smart Product SDLC with AI Agent Workshop のご紹介
本ブログは 2026 年 8 月 6 日に公開された AWS Blog “ Automate certificates with ACME support in AWS Certificate Manager ” を翻訳したものです。 大規模な TLS 証明書の管理は、運用上の最大の懸念事項の 1 つであるとお客様からお聞きしています。 Certification Authority Browser Forum (CA/Browser Forum) は、パブリック証明書の最大有効期間の段階的な短縮を義務付けました。2027 年 3 月までに、最大有効期間は 100 日に短縮されます。2029 年 3 月までには 47 日となります。証明書を 1,000 件管理している組織にとって、最終段階への移行は、毎日およそ 30 件の更新イベントが発生することを意味します。このペースでの証明書の更新と、更新された証明書のローテーションは、手作業やチケットベースのワークフローで大規模に維持できるものではありません。 AWS は先日、 AWS Certificate Manager (ACM) における Automated Certificate Management Environment (ACME) プロトコルのサポートを発表しました。今回のリリースにより、certbot、cert-manager、acme.sh、win-acme などの人気のあるオープンソースツールをはじめ、チームが既に使い慣れている ACME クライアントを使用して、インフラストラクチャのパブリック証明書の発行と更新を自動化できます。サードパーティの認証機関 (CA) を利用しているお客様は、最小限の設定変更で、既存の ACME 互換クライアントの接続先を現在の CA から ACM に切り替えることができます。これは、 Amazon Web Services (AWS) 上、オンプレミス、ハイブリッド環境のいずれで実行している場合でも同様です。ACME を通じて作成された証明書は ACM に登録されるため、証明書インベントリ全体を統合的に把握できます。 この記事では、この機能の仕組み、開始方法、そして証明書の発行を大規模に管理するためのコントロールとベストプラクティスについて説明します。 背景 ACME は、ドメイン所有権の検証と証明書の発行のプロセスを自動化するオープンソースプロトコルであり、証明書自動化の標準的な仕組みとなっています。ACM は、 Elastic Load Balancing (ELB) 、 Amazon CloudFront 、 Amazon API Gateway などの AWS 統合サービスに対して、マネージド型の証明書発行と更新を長らく提供してきました。しかし多くのお客様は、データセンター内で管理するサーバー、Kubernetes クラスター、モノのインターネット (IoT) フリート、ハイブリッド環境など、独自のインフラストラクチャの証明書も自動化する必要があります。これまで、そうしたお客様は外部プロバイダーに頼らざるを得ませんでした。今回のリリースにより、AWS が管理する証明書エンドポイントと標準の ACME プロトコルを使用して、ACM の自動化モデルをそうしたインフラストラクチャにも適用できるようになります。 仕組み この機能では、一元的にプロビジョニングおよび管理される新しいリソースタイプである ACME エンドポイントが導入されます。各エンドポイントは、一意の ACME ディレクトリ URL と AWS Identity and Access Management (IAM) ベースのアクセスコントロールを持つ AWS リソースです。ACM の API または AWS マネジメントコンソールを通じてエンドポイントを作成および管理し、既存の ACME クライアントの接続先をエンドポイント URL に設定します。エンドポイントを通じて発行された証明書は自動的に ACM に登録され、 RequestCertificate および ImportCertificate API コールで作成された証明書と並んで証明書インベントリに表示されます。 このアーキテクチャは 2 つのプレーンに分かれています。コントロールプレーンでは、PKI 管理者が ACM の API を使用して ACME エンドポイントを作成し、そのエンドポイントが証明書を発行できるドメインを事前承認し、外部アカウントバインディング (EAB) 認証情報を生成します。データプレーンでは、ACME クライアントが EAB 認証情報を使用してエンドポイントに登録し、管理者が既に検証済みのドメインに対して証明書をリクエストします。このアーキテクチャによって、お客様は証明書の発行をスケールできるようになります。各クライアントがリクエストのたびにドメイン所有権を証明するのではなく、適切な ACM アクセス許可を持つプリンシパル (通常は PKI 管理者) がエンドポイントレベルで一度だけドメインを検証するため、アプリケーション所有者は証明書を取得するために DNS の認証情報を必要としません。 データプレーンではさらに、EAB がエンドポイントへのクライアントアクセスを制御します。各 EAB は、ACME クライアントが実行できる証明書操作を制御する IAM ロールにバインドされており、ACM で生成した認証情報は認可された ACME クライアントに配布されます。あるエンドポイントに対して認可された ACME クライアントは、別のエンドポイントを使用できません。これにより、環境間にセキュリティ境界が作られます。例えば、開発用エンドポイントに対して認可されたクライアントは、本番用エンドポイントから証明書を取得できません。 図 1 は、ACM を通じた ACME リクエストのフローを示しています。ACME クライアントは、EAB 認証情報を使用して ACME エンドポイントに対して認証を行います。エンドポイントは、証明書のオーダーを発行のために Amazon Trust Services にルーティングします。発行された証明書は ACM インベントリに登録され、 Amazon EventBridge と AWS CloudTrail によって、有効期限のアラートと監査ログが提供されます。 図 1: ACME のアーキテクチャとワークフロー 開始方法 ACM の新しい ACME 機能は簡単に始められます。以下の手順に従って、ACME で発行する最初の証明書を作成してください。 前提条件 ACM リソースを作成および管理するアクセス許可を持つ AWS アカウント インフラストラクチャにインストール済みの ACME クライアント (Certbot、cert-manager、acme.sh など) デバイスにインストール済みの AWS コマンドラインインターフェイス (AWS CLI) (コンソールでの同等の手順については、こちらのブログ記事「 AWS Certificate Manager の ACME サポートを使用してパブリック TLS 証明書の発行を自動化 」を参照してください) 証明書を発行するドメインの Amazon Route 53 ホストゾーン、または DNS プロバイダーで CNAME レコードを作成できる環境 ステップ 1: ACME エンドポイントを作成する ACME クライアントを ACM で使用する前に、ACME エンドポイントを作成する必要があります。このエンドポイントは、ACME クライアントが証明書のリクエストに使用する URL を提供します。 AWS CLI から以下のコマンドを実行して、ACME エンドポイントを作成します。 aws acm create-acme-endpoint \ --authorization-behavior PRE_APPROVED \ --certificate-authority '{"PublicCertificateAuthority":{"AllowedKeyAlgorithms":["EC_prime256v1"]}}' レスポンスからエンドポイントの Amazon リソースネーム (ARN) をメモします。 {"AcmeEndpointArn": "arn:aws:acm:us-east-1:123456789012:acme-endpoint/11111111-2222-3333-4444-555555555555"} 以下のコマンドを実行してエンドポイント URL を取得します。ARN の部分は作成したエンドポイントの ARN に置き換えてください。 aws acm describe-acme-endpoint \ --acme-endpoint-arn arn:aws:acm:us-east-1:123456789012:acme-endpoint/11111111-2222-3333-4444-555555555555 出力される ACME の EndpointUrl を保存します。 { "AcmeEndpoint": { "AcmeEndpointArn": "arn:aws:acm:us-east-1:123456789012:acme-endpoint/11111111-2222-3333-4444-555555555555", "EndpointUrl": "https://acm-acme-enroll.<region>.api.aws/6666666-7777-8888-9999-000000000000/directory", "Status": "ACTIVE", "AuthorizationBehavior": "PRE_APPROVED", "Contact": "REQUIRED", "CertificateAuthority": { "PublicCertificateAuthority": { "AllowedKeyAlgorithms": [ "EC_prime256v1" ] } }, "CreatedAt": "2026-07-14T18:23:58.876000-04:00", "UpdatedAt": "2026-07-14T18:23:58.876000-04:00" } } ステップ 2: ドメインを事前承認する ACME クライアントが証明書をリクエストできるようにする前に、管理者がエンドポイントレベルで一度だけ DNS を使用してドメインを検証します。 DomainScope を使用して、許可する証明書パターンを正確に制御します。 ExactDomain のみを有効にすると、クライアントはその特定の名前に限定されます。 Subdomains を有効にすると、 api.example.com のような名前が許可されます。 Wildcards を有効にすると、 *.example.com が許可されます。 スコープを無効のままにしておくと、それ以外の点では有効な ACME リクエストがそのパターンを要求したとしても、完全にブロックされます。本番用エンドポイントでは、よりセキュリティを強化した構成とするために、 ExactDomain と Subdomains のみを有効にし、 Wildcards は無効のままにしておくことを検討してください。 aws acm create-acme-domain-validation \ --acme-endpoint-arn arn:aws:acm:us-east-1:123456789012:acme-endpoint/11111111-2222-3333-4444-555555555555 \ --domain-name example.com \ --prevalidation-options '{"DnsPrevalidation":{"DomainScope":{"ExactDomain":"ENABLED","Subdomains":"ENABLED","Wildcards":"DISABLED"},"HostedZoneId":"Z1234567890ABC"}}' ドメインが Route 53 でホストされている場合、 HostedZoneId を指定すると、ACM が必要な CNAME レコードを自動的に作成します。ドメインが他の場所でホストされている場合は、この指定を省略し、提供される CNAME レコードを DNS プロバイダーで手動で作成してください。レコードが作成されると、通常は数秒以内に検証が完了します。 以下のレスポンスが返されます。 { "AcmeDomainValidationArn": "arn:aws:acm:us-east-1:123456789012:acme-endpoint/1111111-2222-3333-4444-555555555555/acme-domain-validation/6666666-8888-9999-0000-11111111111" } ステップ 3: EAB 認証情報を生成する EAB 認証情報は、ACME クライアントをエンドポイントに対して認証するために使用されます。セキュリティ境界を維持するため、クライアントまたは環境ごとに一意の認証情報を生成してください。 以下のコマンドを実行して EAB 認証情報を生成します。有効期限は組織のリスクプロファイルに合わせて調整してください。 aws acm create-acme-external-account-binding \ --acme-endpoint-arn arn:aws:acm:region:111122223333:acme-endpoint/00000000-0000-0000-0000-000000000000 \ --role-arn arn:aws:iam::111122223333:role/AcmeIssuanceRole \ --expiration '{"Value": 7, "Type": "DAYS"}' コマンドが正常に実行された際のレスポンスをメモします。 { "ExternalAccountBinding": { "AcmeExternalAccountBindingArn": "arn:aws:acm:region:111122223333:acme-endpoint/00000000-0000-0000-0000-000000000000/acme-external-account-binding/1234567-1234-1234-1234-123456789012", "AcmeEndpointArn": "arn:aws:acm:region:111122223333:acme-endpoint/00000000-0000-0000-0000-000000000000", "RoleArn": "arn:aws:iam::123456789012:role/service-role/AcmAcmeIssuanceRole-XXXXXXXX", "ExpiresAt": "2026-07-21T18:47:50.641000-04:00" } } 以下のコマンドを実行して認証情報を取得します。これらの値は、次のステップで ACME クライアントの設定に必要になります。 aws acm get-acme-external-account-binding-credentials \ --acme-external-account-binding-arn arn:aws:acm:region:111122223333:acme-endpoint/00000000-0000-0000-0000-000000000000/acme-external-account-binding/22222222-2222-2222-2222-222222222222 次のステップのために KeyId と MacKey を保存します。 { "KeyId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "MacKey": "xxxxxxxx-xxxxxxxxxx-xxxxxxxxxxxxxxx" } ステップ 4: ACME クライアントを設定する エンドポイント URL と EAB 認証情報が準備できたら、使用する ACME クライアントを設定できます。以下は、人気のある 2 つのクライアントの設定例です。なお、サーバー情報には、ステップ 1 の手順 4 で EndpointUrl として取得した値を使用します。 acme.sh: acme.sh --issue --server https://acm-acme-enroll.us-east-1.api.aws/123457-1234-1234-123456789012/directory \ --eab-kid <KeyId> --eab-hmac-key <MacKey> \ --email <EMAIL> \ -d <DOMAIN> \ --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please Certbot: certbot certonly --standalone --non-interactive --agree-tos \ --email <EMAIL> \ --server https://acm-acme-enroll.us-east-1.api.aws/1234567-1234-1234-123456789012/directory \ --eab-kid <KeyId> \ --eab-hmac-key <MacKey> \ -d <DOMAIN> 最初の登録が完了すると、以降の更新は ACME クライアントが処理します。 エンタープライズ向けのコントロール ACME に対応した他のサービスでも証明書は取得できますが、証明書環境をスケールする必要があるお客様に対して、同等のコントロールとガバナンスは提供されません。組織全体のリスクを軽減するために、以下のコントロールが利用できます。 ドメイン検証 多数のドメインを管理しているお客様から、ドメイン空間全体にわたって不正な証明書の発行を防ぐ方法が必要だという声をいただいています。ドメイン検証によって、これを制御できるようになります。検証する各ドメインに対して、そのドメインで発行を許可する証明書パターンを、 ExactDomain 、 Subdomains 、 Wildcards の中から有効にします。例えば、 internal.example.com を検証して Wildcards のみを有効にした場合、ACME クライアントは *.internal.example.com をリクエストできますが、 internal.example.com 自体や api.internal.example.com のリクエストは拒否されます。この制御は、リクエストが ACM の認証機関に到達する前にエンドポイントレベルで適用されます。また、1 つのエンドポイントの下で複数のドメインを、それぞれ独自のスコープで検証できます。 証明書の一元的な可視化 ACME エンドポイントを通じて発行された証明書は ACM に登録されます。 aws acm list-certificates コマンドを使用して、発行されたすべての証明書を確認できます。 IAM による認可、CloudTrail による監査ログとオブザーバビリティ エンドポイントの管理操作は IAM を通じて認可され、CloudTrail に記録されます。IAM ポリシーを使用して、どのプリンシパルがエンドポイントの作成、EAB 認証情報の生成、ドメイン制約の管理を行えるかを制御できます。 ベストプラクティス ACME 証明書を初めて導入するお客様は、組織に合わせて以下のベストプラクティスを検討してください。 組織や環境の境界に合わせてエンドポイントを分割する エンドポイントは、大規模な組織にとって有用な分離の手段として機能します。大企業は、全社で 1 つのエンドポイントを共有するのではなく、組織の境界 (事業部門、子会社、環境) ごとに 1 つのエンドポイントを作成できます。各エンドポイントは独自の事前承認済みドメインと独自の EAB セットを持つため、ある事業部門で認証情報が侵害されても、それを使って別の事業部門の証明書を取得することはできません。 ただし、この分割方針は運用上のオーバーヘッドとのバランスも考慮して判断してください。妥当な出発点は、事業部門内で環境 (開発、ステージング、本番) ごとに 1 つのエンドポイントを作成し、コンプライアンスや組織上の要件がある場合にのみ、事業部門ごとのエンドポイントへ拡張することです。 EAB 認証情報を安全に管理する エンドポイントの有効な KeyId と MacKey を持っている人は誰でも、そのエンドポイントで事前承認済みの任意のドメインの証明書を取得できます。そのため、これらの認証情報はアクセスキーと同様に取り扱う必要があります。 可能な限り MacKey をハードコーディングせず、 AWS Secrets Manager などのシークレットストアを使用します。エンドポイントの使用を認可した ACME クライアントにのみ配布してください。 EAB の有効期限を許容できるレベルに設定します。EAB は長期間有効な認証情報をサポートしていますが、すべてのシナリオで有効期間が極端に長い EAB が必要なわけではありません。 各 EAB のロールを作成する際は、最小権限の考え方に従います。すべてのバインディングでロールを共有するのではなく、EAB ごとにロールを作成することで、AWS 環境におけるリスクの軽減に役立ちます。 CloudTrail で CreateAcmeExternalAccountBinding コールと GetAcmeExternalAccountBindingCredentials コールを個別に監査します。実際のキーマテリアルの取得は、バインディングの作成とは別の API コールであるため、取得イベントに対するアラートは、バインディング作成のみの場合よりも、実際の認証情報の配布を示す強いシグナルになります。 実行時に EAB をクライアントに関連付ける方法を自動化する 複数の ACME クライアントで 1 つのバインディングを共有するのではなく、クライアントまたは環境ごとに一意の EAB 認証情報を生成してください。複数のエンドポイントへとスケールする段階になったら、運用上の労力を軽減するために、以下のパターンから必要なものを取り入れてください。 各 EAB とそれにバインドされた IAM ロールに、所属するクライアント (チーム、アプリケーション、環境) にちなんだ名前を付けます。これにより、スプレッドシートと照合しなくても、 DescribeAcmeExternalAccountBinding の出力だけでバインディングの用途が明確になります。 各クライアントの KeyId と MacKey を、そのクライアントに限定されたシークレットパス (例えば、チームと環境ごとの Secrets Manager のパス) に保存し、クライアントのプロビジョニングパイプラインが自身の認証情報を取得できるようにします。 Kubernetes では、チーム間で 1 つの共有 issuer を使用するのではなく、EAB ごとに 1 つの ClusterIssuer または名前空間スコープの Issuer を使用します。これにより、クライアントと EAB の関連付けがクラスター設定で明示的になり、他のチームに影響を与えずに特定のチームのアクセスを取り消すことができます。 一時的なインフラストラクチャ (ビルドエージェント、オートスケールされるフリート) の場合、一度きりの手動での受け渡しではなく、Infrastructure as Code または継続的インテグレーションおよびデプロイ (CI/CD) パイプラインの一部として EAB 認証情報をプロビジョニングします。これにより、認証情報のライフサイクルがインフラストラクチャのライフサイクルに追従します。 ACME のデプロイをモニタリングする ACME の強みは自動化にあり、組織は ACME の使用状況に異常がないかモニタリングする必要があります。 成功だけでなく、発行の失敗に対してもアラームを設定します。証明書の有効期間が 47 日になると、更新が気付かないうちに失敗した場合に対応できる時間は、有効期間の長い証明書で得られていた数か月の猶予に比べて、はるかに短くなります。 更新の自動化に依存する前にテストします。CA/Browser Forum の短縮された有効期間により、更新失敗が組織の業務を中断させる事態になる前に、非本番のエンドポイントに対して手動更新を強制実行し、クライアント、モニタリング、オンコールのランブックが期待どおりに動作することを確認してください。 提供リージョンと料金 AWS Certificate Manager の ACME サポートは、本日 (2026 年 8 月 6 日) からすべての商用 AWS リージョンで利用可能です。また、AWS GovCloud (US)、中国リージョン、 AWS European Sovereign Cloud の各 パーティション でも後日利用可能になる予定です。ACME の料金の詳細については、「 ACM の料金ページ 」を参照してください。 まとめ 証明書の有効期間の段階的な短縮は、自動化なしに簡単に解決できるものではありません。ACM の ACME サポートは、標準プロトコルと標準ツールを通じてその自動化を提供しながら、セキュリティチームが ACM で頼りにしている可視性とガバナンスのコントロールを維持します。 開始するには、「 AWS Certificate Manager のドキュメント 」を参照するか、「 開始方法ガイド 」に沿って進めてください。 Anthony Harvey Anthony は、AWS のワールドワイド公共部門グループのシニアセキュリティスペシャリストソリューションアーキテクトです。AWS に入社する前は、地方自治体で 5 年間、最高情報セキュリティ責任者を務めていました。公共部門での経験から、少ないリソースでより多くを実現する方法を見出すことに情熱を持ち、その考え方を活かしてお客様のセキュリティの取り組みを支援しています。 Chandan Kundapur Chandan は、AWS Certificate Manager (ACM) チームのプリンシパルプロダクトマネージャーです。15 年以上のサイバーセキュリティの経験を持ち、PKI 製品戦略の推進に情熱を注いでいます。 本ブログは Security Solutions Architect の 中島 章博 が翻訳しました。
本ブログは 2026 年 8 月 18 日に公開された AWS Blog “ Security Hub Extended adds Supply Chain Security as its tenth category ” を翻訳したものです。 今年 2 月以降、AWS は AWS Security Hub Extended を、9 カテゴリにわたる厳選された 14 パートナーから、10 カテゴリ 23 パートナーへと拡大してきました。今月の Black Hat では、そのうち 14 パートナーが Amazon Web Services (AWS) ブースでライブデモを実施しました。4 パートナーがシアタートークを行い、10 パートナーが SecurityLive のストリーミング配信で紹介されました。また、AWS のリーダーシップとパートナー企業の経営陣が一堂に会し、今後の計画を話し合うパートナーレセプションも開催しました。これらの企業は、AWS とともに、そして次第にパートナー同士でも、エンジニアリングと市場開拓 (GTM) に本格的に投資しています。このモデルが、パートナーが日々接しているお客様から支持されているからです。ブースで最も多く寄せられた質問は、サプライチェーンセキュリティはいつ提供されるのか、というものでした。 その提供が始まりました。サプライチェーンセキュリティはカテゴリとして最も多くのお問い合わせをいただいているため、今回はこの話題を中心にお伝えします。 サプライチェーンセキュリティ: お客様が求め続けてきたカテゴリ ソフトウェアサプライチェーンのリスクは、セキュリティチームの懸念事項から、取締役会レベルの議題へと変わりました。SolarWinds の事例は、ビルドシステムが侵害されると何が起きるかを明らかにしました。Log4j の事例は、たった 1 つの推移的依存関係の脆弱性が世界規模で何を引き起こすかを示しました。xz utils のバックドアの事例は、メンテナーを侵害する攻撃が何年もかけて実行される執拗さを浮き彫りにしました。それぞれが同じ問題の異なる側面を示しており、そのペースは加速しています。攻撃者は、企業が知らず知らずのうちに信頼しているオープンソースパッケージこそが、企業への近道であることを知っています。 Black Hat で話をしたすべてのお客様が、この問題をリスク登録簿に載せていました。しかし、その多くはまだ解決策を運用に落とし込めていませんでした。運用化には、個別のデプロイ、新しい契約、新しいコンソール、そしてセキュリティチームが優先順位を上げられない統合作業が必要だったからです。AWS が取り除こうとしているのは、まさにこうした導入の手間です。 Security Hub Extended では、厳選されたパートナーとして Chainguard と Socket によるサプライチェーンセキュリティの提供を開始しました。サプライチェーンセキュリティは、Extended の他のすべてと同じモデルを採用しています。すべてのオファリングが従量制料金で、請求は 1 つにまとまり、長期契約は必須ではありません。これまでどおりの調達プロセスを継続したい企業向けには、Security Hub Extended のプライベートオファーも利用できます。プライベートオファーは、一定期間の利用をコミットする契約で、より大きな割引が適用され、複数パートナーへの支出を単一の AWS 請求に集約でき、契約期間を通じて月払いと年払いのどちらの支払いオプションも選択できます。お客様の購買プロセスに合った方法を選択できます。 Chainguard の役割 Chainguard は、強化・検証されたビルドプロセスでソースから再ビルドしたオープンソースの依存関係を提供します。これにより、お客様の環境に入ってくるものは、マルウェアに強く、来歴 (プロベナンス) に裏付けられたものになります。 同社の調査 によると、ソースからの再ビルドを行っていれば、既知の悪意あるパッケージの 98% が本番環境に到達するのを防げたとされています。ソースを検証できないものは、Chainguard のリポジトリに一切登録されません。これが、パブリックレジストリと開発者の間のフィルターとなります。 Socket の役割 Socket は、オープンソースパッケージの実際の挙動を分析し、インストール時点で悪意ある依存関係をブロックします。数日から数週間後に CVE (Common Vulnerabilities and Exposures) が公開されるのを待つのではありません。パッケージがお客様の環境に入り込もうとしたその瞬間に、Socket はデータベースの情報ではなくパッケージの挙動そのものに基づいて検知します。さらに、到達可能性分析によって、どの脆弱性がお客様のコードから悪用可能かがわかるため、チームがノイズに埋もれることがありません。料金は、チェックする個別のパッケージ数に基づき、ビルドの実行回数には依存しません。 2 社が連携して機能する理由 Chainguard と Socket を組み合わせることで、重要な 2 つの問いに対応できます。 取り込むものを信頼できるか 悪意あるコンポーネントがアプリケーションに組み込まれる前に阻止できるか Chainguard はコードが構築される基盤の保護を支援し、Socket はそこに取り込むパッケージを保護します。両者は、クラウドでもオンプレミスでも、デプロイ先を問わずソフトウェアサプライチェーンの保護に役立ちます。Security Hub Extended を通じて両方を有効化すると、その検出結果は OCSF (Open Cybersecurity Schema Framework) 形式で他のすべての情報とともに Security Hub に流れ込みます。これにより、サプライチェーンのリスクは、エンドポイント、アイデンティティ、クラウドの各シグナルと並べて相関付けられ、優先順位付けされます。そこから、すでに統合済みの下流ツールへとルーティングされるため、開発者が現在使っているパイプラインにそのまま適合します。 23 パートナー、10 カテゴリ。お客様の要望に基づいて構築 Security Hub Extended のすべてのパートナーは、お客様がその機能を必要としていると伝えてくれたこと、そしてその特定のソリューションがすでにお客様のもとで機能していたことを理由に参加しています。脅威の状況が進化するためカテゴリを追加し、それらの問題をうまく解決している企業をお客様が教えてくれるためパートナーを追加しています。目標はシンプルです。すでにお持ちの AWS との取引関係を通じて、同業他社がすでに成果を上げているセキュリティソリューションの導入を簡素化することです。 現在の対象領域は、エンドポイント、アイデンティティ、E メール、ネットワーク、データ、ブラウザ、クラウド、AI、セキュリティオペレーション、そして新たにサプライチェーンに及びます。23 の厳選されたパートナーは、7AI、Britive、Chainguard、CrowdStrike、Cyera、Island、LayerX、Native Security、Noma、Okta、Oligo、Opti、Palo Alto Networks、Proofpoint、SailPoint、SentinelOne、Socket、Splunk、Sublime、Upwind、Varonis、Zenity、Zscaler です。 AWS が現在注力しているのは、統合を深化させ、有効化にかかる手間を減らすことで、これらのソリューションが個別にではなく連携して機能するようにすることです。そこにこそ、価値が相乗的に高まっていきます。 今後の取り組み ここまで説明してきたことはすべて、販売モデルが機能していることの表れです。つまり、お客様が期待どおりの柔軟性のもとで、AWS との単一の取引関係を通じてベストオブブリードのセキュリティを購入しているということです。しかし、より大きなビジョンは、これらのツールを単に購入しやすくするだけでなく、組み合わせて使うことで実際に効果が高まる統合レイヤーです。 最も注力している統合は、クロスパートナーの相関付けです。エンドポイントソリューション、アイデンティティソリューション、クラウドソリューションからのシグナルを、相互に関連付けられていない 3 つのアラートではなく、1 つのエクスポージャーと 1 つの攻撃パスにまとめます。これと並行して、有効化、デプロイ、統合にかかる手間を大幅に減らし、お客様がサブスクライブしてから価値を実感するまでの時間を数週間ではなく数時間にすることに取り組んでいます。この 2 つの取り組みにより、お客様がすでに信頼している厳選されたソリューションは、個別に使うよりも連携させることで、より大きな成果をもたらします。 これが、AWS がパートナーとともに今まさに加速している取り組みです。re:Invent に向けて、さらに詳しい情報をお届けする予定です。 利用できるオファリングを確認する 本番環境でオープンソースソフトウェアを運用していて、まだサプライチェーンの可視性を確保できていない場合は、そこから始めてください。今すぐ Security Hub コンソールから Chainguard と Socket を有効化できます。複数のセキュリティベンダーとの関係を管理していて、Security Hub Extended による統合がどのようなものかを知りたい場合は、AWS アカウントチームにご相談ください。すべてのパートナーの料金は 料金ページ に公開されており、営業担当への問い合わせは不要です。また、すでにセキュリティ態勢管理と脅威検出に Security Hub を使用している場合、Extended プランは現在お使いのコンソールでそのまま利用できます。 これはまだ始まりにすぎません。 Michael Fuller Michael は AWS に 16 年間在籍し、11 年にわたって AWS セキュリティサービスのプロダクトを率いてきました。業界歴は 29 年で、IBM、Cisco、Amazon においてプロダクトマネジメント、事業開発、ソフトウェア開発のさまざまな役職を歴任してきました。アリゾナ大学でコンピュータ工学の理学士号を、ワシントン大学で MBA を取得しています。 本ブログは Security Solutions Architect の 中島 章博 が翻訳しました。
物流業界では、貿易関連書類の作成・照合作業に多大な時間を要しています。情報を入手した後にシステムへ取り込み、別の書類を作成するといった煩雑な作業が日常的に発生し、さらに間違いがないかを一つ一つ確認する必要があります。深刻な人手不足が進む中、こうした業務を効率化しつつ品質を維持することは、物流事業者にとって喫緊の課題です。 本ブログでは、1938年の創業以来グローバルな国際物流を手掛けてきた株式会社日新(以下、日新)が、AWS 上で構築した「オプティマAI」プラットフォームについてご紹介します。オプティマAI は「人とAIの協働」をコンセプトに、物流業務における判断支援と業務効率化を実現するソリューションです。 以下は 2026年6月に開催された AWS Summit Japan 2026 での日新ブース展示内容をもとに記載しています。 日新について 日新は「サプライチェーン ロジスティクス プロバイダー」として、陸海空すべての輸送手段や倉庫・保管業務を組み合わせ、世界各地にワンストップの物流サービスを提供しています。「世界の人々に感動を運び、地球を笑顔で満たす」というパーパスのもと、国際輸送、国内輸送、倉庫・保管、引越、展示会輸送など幅広い事業を展開し、グローバルネットワークを活かした物流ソリューションを提供しています。 オプティマAI の全体像 オプティマAI は、物流業務における「人とAIの協働」を実現するプラットフォームです。AI が最適な判断を支援し、AI が可能な処理は AI が担当し、さらに AI 同士がコミュニケーションを行う ── その上で人が最終判断を行うという、人間中心のAI活用を目指しています。 最終的なビジョンとして、顧客側のAIと日新側のAIが API や MCP(Model Context Protocol)を介して連携し、サプライチェーン全体を横断した業務最適化を実現する構想です。発注支援・適正在庫予測、スケジュール予測、通関支援、倉庫・輸送効率化、見積り・書類チェック、混載効率化といった機能を、顧客と日新が共有ダッシュボード上で一元管理し、AIの作業進捗を確認しながら人間が最終判断を行います。さらに、顧客のSCMや物流を支援するアプリを、オプティマAI上でアジャイル共同開発することで、個社の要件にも柔軟に対応します。 図1: オプティマAI 全体イメージ オプティマAI は AWS 上に構築されています。Amazon Bedrock による生成AI・RAG 機能、Amazon OpenSearch Service による高速検索、AWS Lambda によるイベント駆動処理など、マネージドサービスを組み合わせることで、インフラ運用の負荷を最小化しながらAI機能の迅速な開発・拡張を可能にしています。サーバーレスアーキテクチャの採用により、スモールスタートから段階的にスケールアウトできる点も、物流DXの段階的推進にとって大きな利点です。 オプティマAI は以下の機能群で構成されています。 オプティマHS(税番採番AI) :HS コード分類業務を AI が支援 オプティマAI-OCR(貿易書類AI) :貿易書類の照合・チェック業務を AI が支援 オプティマ分析予測 / オプティマGATE :物流特化型の分析・予測AI(開発中) 以降では、現在実用化が進んでいるオプティマHS とオプティマAI-OCR について詳しくご紹介します。 オプティマHS:税番採番AI HS コード分類はなぜ難しいのか 物流における通関業務では、輸出入品に対して適切な HS コード(税番)を判定する必要があります。HS コードは国際条約に基づく品目分類番号で、関税率の決定や貿易統計に利用される極めて重要なものです。 しかし、HS コード分類は非常に難易度の高い作業です。HS 品目表には「部分品」や「附属品」の明確な定義がほとんどなく、同じ部品でも材料や形状、用途によって分類先が変わります。機械類は複数の部分品から構成され、その部分品がさらに別の部分品で構成されるという多層構造を持ち、さらに一つの部品が複数の機械に共通して使われることも珍しくありません。加えて、品目表の通則や部注・類注の除外規定など多層的なルールを正しく適用する必要があり、担当者には深い専門知識と経験が求められます。 こうした難しさから、HS コード分類は長年にわたりベテラン担当者の知識に依存してきました。人手不足が深刻化する物流業界において、この属人的な業務をいかに効率化し品質を維持するかが大きな課題です。 オプティマHS による AI 支援 オプティマHS は、この税番判定作業を AI が支援するシステムです。具体的には以下の流れで動作します: RAG(検索拡張生成)による知識活用 :実行関税率表、輸出統計品目表、社内規程・ルール、社内ノウハウを検索し、関連情報を取得 過去実績による類推 :類似の製品情報に対する過去の判定実績から税番候補を類推 画像・WEB チェック :製品画像やウェブ情報も参照して判断の精度を向上 税番候補と根拠の提示 :AI が税番候補を根拠とともに提示し、担当者の判断を支援 図2: オプティマHS(税番採番AI)の処理フロー 重要なのは、AIが最終判断を下すのではなく、あくまで「人が最終判断」を行う設計になっている点です。AIは候補と判断材料を提示し、専門知識を持つ担当者がそれを確認して最終決定を行います。 今後は、荷主様からの質問回答や商品マスター・カタログ等の情報も取り込み、さらに精度の高い支援を実現する予定です。 AWS の活用ポイント :オプティマHS では、 Amazon Bedrock を活用した RAG アーキテクチャにより、実行関税率表や社内ノウハウといった大量の専門知識を効率的に検索・活用しています。また、 Amazon OpenSearch Service による高速なベクトル検索で、過去実績からの類推を高精度かつ低レイテンシで実現しています。これにより、HS コード分類のような専門性の高い業務に対しても、最新の生成AI技術を迅速に適用することが可能になりました。 オプティマAI-OCR:貿易書類AI 貿易業務では、インボイス、パッキングリスト、船荷証券(B/L)、輸出申告書、船積依頼書など、一つの取引に対して多数の書類が発生します。これらの書類はそれぞれ異なるフォーマットで作成され、荷主、船会社、航空会社、通関業者など複数の関係者から異なるタイミングで届きます。担当者は、これらの書類間で品名・数量・金額・重量・仕向地などの情報が一致しているかを一つ一つ目視で照合し、不整合があれば関係者に確認を取る必要があります。書類の枚数が多いほどチェック箇所は掛け算で増え、かつ一つのミスが通関の遅延や追徴課税につながりうるため、正確さと速度の両立が常に求められる業務です。 オプティマAI-OCR は、この書類照合業務を AI が支援するシステムです: AI-OCR によるデジタル化 :貿易書類(インボイス、輸出申告書、船積依頼書)を AI-OCR でデータ化 AI による書類照合・正誤チェック :デジタル化された情報を AI が照合し、正誤チェックを実施 リコメンド表示 :チェック結果と推奨事項を画面に表示し、担当者の作業をサポート 図3: オプティマAI-OCR(貿易書類AI)の処理フロー さらに将来的には、AI エージェントによるドキュメント生成、基幹システムとの連携、上流・下流工程の自動化も視野に入れています。「AI 機能の提供ではなく、日常業務に AI を取り込む」という思想のもと、業務プロセスそのものに AI を組み込んでいます。 AWS の活用ポイント :AI-OCR のモデル推論には Amazon SageMaker AI を活用し、多様な書類フォーマットに対応したモデルのトレーニングとデプロイを効率的に行っています。デジタル化後の照合ロジックにはAmazon Bedrockの生成AI機能を活用し、書類間の不整合を文脈を考慮して検出します。また、 AWS Lambda によるイベント駆動型のパイプラインにより、書類が取り込まれたタイミングで自動的に処理が開始される仕組みを実現しています。 AWS 上のアーキテクチャと活用メリット オプティマAI は AWS 上に構築されており、主に以下のサービスを活用しています: Amazon Bedrock :RAG による知識検索と生成AI機能の基盤。税番判定の類推や書類照合のロジックに活用 Amazon OpenSearch Service :大量の貿易書類データや過去実績のベクトル検索・全文検索に活用 Amazon SageMaker AI :AI-OCR モデルのトレーニングと推論に活用 AWS Lambda :イベント駆動型の処理パイプラインを実現 Amazon S3 :書類データ、学習データ、モデルアーティファクトの保管 Amazon DynamoDB :過去実績やルール情報の高速アクセス AWS を採用したメリット 1. スモールスタートから段階的に拡張できるアーキテクチャ オプティマAIは2024年の実証実験から開始し、2025年に実用基盤、2026年以降にAI間連携へと段階的に発展させる戦略をとっています。開発プロセスにおいても、業務担当者との密なすり合わせとプロトタイピングによる有用性の確認を繰り返しながら、実際の業務に即した形でAI機能を磨き上げてきました。AWSのサーバーレス・マネージドサービスを活用することで、初期投資を抑えつつ、こうしたアジャイルな開発サイクルを支える柔軟な基盤を実現しています。プロトタイプから本番環境への移行もスムーズに行え、利用量の拡大に応じてシームレスにスケールアウトすることが可能です。 2. 生成AIの迅速な導入と進化への追従 Amazon Bedrock により、最新の基盤モデル(Claude、Amazon Nova 等)をAPIベースで即座に利用できます。モデルの進化に伴い、HS コード分類の精度向上や書類照合の品質改善が期待でき、インフラ側の変更なしに最新モデルへの切り替えが可能です。物流業界のように業務要件が多様で変化し続ける領域において、AI の進化を即座に取り込める柔軟性は大きな競争優位となります。 3. 運用負荷の最小化 マネージドサービスの活用により、サーバーの管理やスケーリング、パッチ適用といったインフラ運用の負荷を AWS に任せることができます。日新の DX 推進チームは、インフラ運用ではなく、物流業務に精通した AI アプリケーションの開発と改善に集中できています。 4. セキュリティとコンプライアンス 貿易書類や通関情報など機密性の高いデータを扱うため、セキュリティは最重要要件です。AWSのセキュリティ機能(VPCによるネットワーク分離、IAMによる細粒度なアクセス制御、暗号化機能など)により、エンタープライズレベルのセキュリティを確保しています。 「人とAIの協働」という設計思想 オプティマAI の最大の特徴は、「AI が人に取って代わる」のではなく「人と AI が協働する」という設計思想にあります。 物流業務、特に通関や貿易書類処理は、法規制への準拠や例外処理が頻繁に発生する領域です。こうした業務では AI が100%の精度で自動化することは現実的ではなく、むしろ AI が候補案と根拠を提示し、人間の専門家が最終判断を行うハイブリッド型のアプローチが有効です。 このアプローチにより、以下の効果が期待されます: 生産性の向上 :担当者が煩雑な調査・照合作業から解放され、より高度な判断業務に専念できる 品質の維持・向上 :AI による一貫したチェックにより、ヒューマンエラーを低減 ノウハウの継承 :ベテラン担当者の暗黙知を AI に学習させることで、組織知として保存・活用 まとめ 本ブログでは、日新のオプティマAI プラットフォームを通じて、物流業界における AI 活用の実践例をご紹介しました。 「人とAIの協働」をコンセプトに、税番採番AI(オプティマHS)、貿易書類AI(オプティマAI-OCR)、物流特化AI(オプティマ分析予測・GATE)を実用化し、さらにAI同士が仕事を進める次世代プラットフォームへと段階的に発展させる戦略は、物流DXを推進する上で示唆に富むアプローチです。 AWS のマネージドサービスを活用することで、スモールスタートから始めて段階的に拡張し、生成AIの進化を即座に取り込みながら、運用負荷を最小限に抑える ── この構成は、物流業界のように多様な業務プロセスを持つ企業がAIを本格活用する際の効果的なパターンと言えるでしょう。 今後、AI エージェント間の連携や MCP の活用により、顧客と日新のシステムがより密接に連携し、サプライチェーン全体の最適化が進むことが期待されます。
本記事は 2026 年 8 月 18 日 に公開された「 Fresher insights, faster decisions: talabat’s near-real-time analytics across AWS and Google Cloud 」を翻訳したものです。 talabat は、中東・北アフリカ (MENA) 地域をリードする日常生活アプリです。レストランや小売店の幅広い選択肢から、食品、食料品、その他の日用品を手軽に注文でき、パーソナライズされた体験を提供しています。2004 年にクウェートで創業した talabat は、アラブ首長国連邦、オマーン、カタール、バーレーン、ヨルダン、イラク、エジプトに事業を拡大し、2025 年 12 月時点で月間アクティブユーザー 700 万人以上にサービスを提供しています。本社はアラブ首長国連邦のドバイにあり、2024 年 12 月にはドバイ金融市場 (DFM) で新規株式公開 (IPO) を完了しました。Delivery Hero SE の子会社として、グローバルな知見を活かしてサービス向上と事業拡大に取り組んでいます。パートナーとライダーのネットワークを通じて、顧客が必要なものを必要なときに届ける、地域全体の日常の利便性を支えています。 本記事では、talabat がハイブリッドなマルチクラウドレイクハウスを構築し、ストリーミングデータの Apache Iceberg コピーを AWS 上に一元的に保持しながら、 Google Cloud Platform (GCP) からガバナンスの効いたニアリアルタイム分析を実現した方法を紹介します。 talabat におけるデータ データは talabat のビジネスの中枢です。顧客が「注文」ボタンを押した瞬間からドアベルが鳴るまで、システムは瞬時にデータドリブンな意思決定を行い、価格設定、配車、ルーティング、注文の不正検知をリアルタイムで最適化しています。長年にわたり、talabat のアプリケーションは 2 つのパブリッククラウドにまたがる環境へと成長しました。トランザクションおよびオペレーション基盤は AWS 上で成熟し、エンジニアリングチームがサービスを構築・運用しています。一方、多数のアナリスト、データサイエンティスト、分析エンジニアリングパイプラインは Google Cloud Platform のウェアハウスである Google BigQuery を標準としています。 どちらへの投資も深く、どちらも価値を生み出しています。戦略的な問いは「どちらのクラウドに統合するか」ではなく「両者の境界をまたいでデータをどうスムーズに流すか」でした。この前提がアーキテクチャ全体を形作っています。課題はクラウド間だけでなくリージョン間にも及びます。AWS サービスは EU リージョンでホストされ、GCP のデータは US リージョンにあります。 次の図は、AWS 上のオペレーションプレーンと GCP 上の分析プレーンの間における talabat のデータフローを示しています。 図 1: AWS 上のオペレーションプレーンと Google Cloud 上の分析プレーン間のデータフロー これまでデータエンジニアリングチームは、2 つのクラウド間のデータ移動をオーケストレーションしており、AWS から GCP へ、EU から US への物理的なデータ移動が必須でした。従来の ETL (抽出、変換、ロード) ツールやフレームワークでの移動は、複数のホップを経てデータの遅延と重複を引き起こしていました。具体的には、 Amazon Relational Database Service (Amazon RDS) から Amazon Simple Storage Service (Amazon S3) EU AWS リージョンへ、Amazon S3 EU から Amazon S3 US リージョンへ、そして最終的に Amazon S3 US から BigQuery US への移動です。 各ホップはコピーであり、コピーのたびにリスクが積み重なりました。障害点の増加、レイテンシーの累積、冗長なコンピューティングとストレージ、型の忠実性、そして最も重要なのはクロスリージョンおよびクロスクラウドのデータ転送料(エグレスコスト)です。 要するに、従来の設計は自ら作り出した問題、すなわち BigQuery がデータを読めるようにデータを移動するという問題の解決に、コスト、レイテンシー、信頼性の代償を払っていました。典型的なデータウェアハウスのボトルネックです。代わりにオープンデータレイクを使えないか?使えます。しかし分析の利用は BigQuery に集中しており、オープンソースのデータレイク層を通じたアクセスが制限されています。そこで再設計は逆の前提から始めました。AWS にコピーを 1 つ保持し、BigQuery にそのままの場所で読み取らせる。本記事の残りで説明するのは、この talabat のレイクハウスです。 課題 オペレーションシステムは、注文ライフサイクルの変更、ベンダー、メニュー、ロジスティクスやライダーのシグナル、決済情報といったビジネスイベントを継続的にストリームとして発行し、 Amazon Managed Streaming for Apache Kafka (Amazon MSK) 上の Apache Kafka にパブリッシュしています。これらのイベントは Protocol Buffers でエンコードされ、 Confluent Schema Registry に登録された後方互換スキーマで管理されているため、プロデューサーとコンシューマーが安全に進化できます。 分析側の要件は、簡単に述べられるものの実現は困難です。イベントを正しい型で、生成から数分以内にクエリ可能にし、各チームが既に使っているツールからクエリできるようにすることです。 2 つのクラウドを持つことを技術的負債と見なしがちですが、talabat のようなリアルタイムビジネスにとっては単に地形であり、それぞれの側に本来の強みがあります。 イベント基盤は AWS 上にある。トランザクションおよびストリーミングシステムが Amazon MSK にパブリッシュしている。これらのイベントを最も低レイテンシーかつ低リスクに参照・処理できるのは、同じ AWS リージョン内、イベント基盤のすぐ隣です。 分析基盤は Google Cloud 上にある。何千もの下流のモデルやダッシュボード、そしてそれらを構築する人々が、BigQuery をクエリサーフェスとして前提としています。 どちらか一方に統合するには数年規模のマイグレーションが必要であり、片方のユーザーグループにとっては大幅な機能後退を意味します。単にインジェストと分析の間の継ぎ目を取り除くためだけに。データエンジニアは、その継ぎ目を排除するのではなく設計することに決めました。設計目標は一文にまとまります。データの物理コピーを AWS に 1 つ保持し、両方のクラウドからネイティブに読み取れるようにする。ハイブリッドデータレイクハウスにより、「どちらのクラウドか」という問いはアーキテクチャ上の分岐ではなくアクセスパスの選択肢になります。 最初に試したこと: ホットパス上のクロスクラウド書き込み 最初の試みでは、最終的に採用したフローとは逆のアプローチを取りました。Raw (Bronze とも呼ばれる) レイヤーのデータを AWS から直接 Google Cloud Storage 上の BigQuery マネージド Iceberg テーブルに書き込みました。理論上、最大の参照者基盤に最も近い場所にデータが配置されます。しかし実際には、常時稼働のストリーミングパスでクラウドをまたいで書き込むことで、長期的に許容できない問題が生じました。 インジェストパスにおけるクロスクラウド依存。マイクロバッチのたびに、リモートクラウドの書き込み API の可用性とレイテンシーに結合していました。 ストリーミング書き込み API の障害がインジェスト障害として顕在化。リモート書き込みが脆弱なリンクとなり、読み取り側の問題が書き込み側の障害に転化しました。障害を吸収する場所としては最悪です。 プレビュー段階の機能が物理レイアウトを制約。特定のパーティショニング動作や機能が一般提供されておらず、コストとパフォーマンスのためのデータ編成が制限されていました。 教訓は明確でした。書き込みパスはシフトレフトすべきです。書き込みパスは短く、ローカルで、シンプルであるべきです。クロスクラウドの課題は読み取りパスに属し、読み取り専用、キャッシュ可能、リトライ可能であり、インジェストに影響しません。この再構成が、現在稼働しているアーキテクチャに直結しました。 BigQuery が AWS 上のデータを読み取る方法の選択 フローを反転させ (Raw データは AWS 上、読み取りは Google Cloud から)、BigQuery が物理的に AWS 上にあるテーブルを読み取る 3 つの方法を評価しました。4 つの基準に照らして評価しました。 データ移動なし。 オープンテーブルフォーマット。 ガバナンス可能な信頼モデル。 最小限の運用面。 アプローチ 評価 Google Cloud Storage へのクロスクラウド書き込み Bronze を Google Cloud Storage 上の BigQuery マネージド Iceberg に書き込み続ける方法。前述の理由で却下しました。インジェストのホットパスにクロスクラウド依存とクロスリージョンレイテンシーが生じるためです。 BigQuery Omni BigQuery Omni のマネージドなクロスクラウドコンピュートを通じて AWS 上のデータをクエリする方法。読み取り専用の Bronze レイヤーに対して必要以上のマネージド面と制約が生じ、カタログと信頼モデルを直接制御したかったため不採用としました。 Lakehouse フェデレーテッド Apache Iceberg REST カタログ (IAM 認証) BigQuery が Amazon S3 Tables (マネージド Apache Iceberg テーブルを提供する Amazon S3 の機能) 内のデータを、AWS Glue Data Catalog のメタデータを同期するフェデレーテッドカタログを通じて読み取る方法。アクセスはクロスクラウド IAM 信頼で認証されます。4 つの基準をすべて満たしたため、この方法を選択しました。 決め手となったのは、Raw データが AWS から出ないこと、フォーマットがオープンな Apache Iceberg であること ( Amazon Athena 、Spark、Iceberg 互換エンジンが同じテーブルを読める)、そしてクロスクラウドの関係が定期的なコピージョブではなくアイデンティティと信頼として表現されることです。 Amazon S3 Tables を選んだ理由 AWS 上に単一の Iceberg コピーを保持するアーキテクチャが決まった後、スケーラブルな Iceberg に特化したストレージレイヤーが必要でした。Amazon S3 Tables は運用面を追加せずに要件を満たしました。テーブルメンテナンス (コンパクション、スナップショット期限切れ、未参照ファイル削除) はサービスマネージドポリシーとして自動実行され、テーブル数に比例して増える外部オーケストレーションジョブが不要です。同様に重要な点として、各テーブルが Amazon Resource Name (ARN) でアドレス指定可能なリソースです。IAM ポリシーで個別テーブルへのアクセスを許可・拒否でき、他の AWS リソースに適用するのと同じ最小権限モデルが使えます。また、 AWS CloudTrail がすべてのアクセス判定を記録します。信頼境界が IAM のみで表現されるクロスクラウド設計では、テーブルがファーストクラスの IAM リソースであることは利便性ではなく前提条件です。S3 Tables により、マネージド Iceberg ハウスキーピングときめ細かく監査可能なアクセス制御が単一の構成で実現し、エンジニアリングチームはストレージ層の実装ではなくストリーミングロジックに集中できました。 ソリューション概要 システムは、オープンテーブルフォーマットで接続される 2 つの部分で構成されています。 AWS 上の短くローカルな書き込みパス。 BigQuery がデータを参照できるようにする読み取り専用のクロスクラウドハンドシェイク。 唯一の信頼できるソース (Single Source of Truth) は、Amazon S3 Tables 内の Apache Iceberg データです。すべてのコンシューマーがこの 1 つの物理コピーを読み取ります。 次の図は、イベントインジェストからストレージ、参照経路までのエンドツーエンドアーキテクチャを示しています。 図 2: イベントインジェストからストレージ、参照経路までのエンドツーエンドアーキテクチャ 書き込みパス: 短く、ローカルで、信頼性が高い Kafka トピックごとに 1 つの Amazon EMR Serverless Spark Structured Streaming ジョブ (プリベイクされた Docker イメージ、ARM64/Graviton 上の emr-7.13.0 ) を、Amazon MSK と同じ AWS リージョン (eu-west-2) で実行しています。コンピュートをイベント基盤と同じ場所に配置することで、マイクロバッチあたりのデータ転送量を最小化し、コストとレイテンシーを削減しています。各ジョブは Spark の foreachBatch オペレーションをトリガー間隔約 1〜5 分、at-least-once デリバリーで実行します。各マイクロバッチは 5 つのステップを実行します。 Kafka から コンシューム する。 登録済みスキーマを使用して Protocol Buffers を デコード する。 ターゲットの Iceberg スキーマに 変換 する。 Amazon S3 Tables 内の Iceberg テーブルに 追記 する。 オフセットを コミット する。 このサイクルが中断なく繰り返されます。 このパスは AWS のみで完結します。クロスクラウド依存はなく、意図的なクロスリージョンホップが 1 つだけあります。コンピュートは欧州 (ロンドン) リージョン (eu-west-2)、ストレージは米国東部 (バージニア北部) リージョン (us-east-1) です。標準の AWS リージョン間データ転送コストが発生しますが、これは BigQuery からのクロスクラウド読み取りが同一リージョン内に収まるようにするための意図的な選択です。 不正レコードはストリームをブロックしません。専用のデッドレターキュー (DLQ) テーブル ( <table>_dlq ) が別の S3 Tables バケットに配置され、生のペイロード ( raw_value_b64 ) と skip_reason が保存されます。暗黙のドロップは発生しません。DLQ テーブルは Lakehouse を通じて AWS Glue Data Catalog に登録されているため、エンジニアは Amazon Athena または BigQuery から障害を検査できます。 この時点から、Amazon S3 Tables が信頼できるソースとなります。 核心: クロスクラウドハンドシェイク ここが設計の中核です。BigQuery は Lakehouse フェデレーテッド Apache Iceberg REST カタログ を通じて S3 Tables の Iceberg データを読み取ります。Google Cloud 側の読み取り専用カタログが AWS 上のテーブルを参照する仕組みです。3 つのメカニズムで実現しています。 オープンなカタログ契約 (Iceberg REST) 。 Amazon S3 Tables は Apache Iceberg REST カタログ インターフェースを公開し、 Google Lakehouse も同じ標準を使用します。双方が Iceberg のオンディスクフォーマットと REST カタログプロトコルに合意しているため、変換レイヤーもデータコピーも不要です。BigQuery は Athena や Spark が読み取るのと同一の Iceberg データファイルを読み取ります。 Google Cloud 側では単一の Lakehouse フェデレーテッドカタログ です。アナリストにはテーブルが talabat-data.s3tables-glue.catalog.orders として表示されます。 クロスクラウドのアイデンティティと信頼 (IAM と OIDC) 。 Lakehouse カタログは、Google マネージドのサービス ID (Lakehouse REST カタログサービスアカウント) として AWS に認証します。 AWS Identity and Access Management (IAM) ロールが accounts.google.com との OpenID Connect (OIDC) フェデレーションを通じてこのサービス ID を信頼し、 sts:AssumeRoleWithWebIdentity でサービスアカウントの数値 ID をロールの信頼ポリシーにピン留めしています。S3 Tables Iceberg エンドポイントへのリクエストは SigV4 署名されます。他の AWS SDK が使用するのと同じ AWS リクエスト署名スキームで、S3 Tables サービスにスコープされています。つまり、ハンドシェイクはプロプライエタリなコネクターではなく、信頼された外部 ID が実行する標準の AWS リクエスト署名です。 信頼は AWS 側で Infrastructure as Code (IaC) としてコード化されており、最小権限が付与され、いつでも取り消し可能です。次の図は認証シーケンスを示しています。 図 3: Lakehouse カタログと AWS IAM 間のクロスクラウド認証シーケンス この信頼関係のステップバイステップのウォークスルー (IAM ロールの作成、トークンのオーディエンスとサブジェクトの検証、信頼ポリシーへの Lakehouse サービスアカウント ID のピン留め) については、 Create and manage AWS Glue federated datasets および Set up cross-cloud Lakehouse for AWS Glue を参照してください。 メタデータ同期 (約 5 分間隔のリフレッシュ) 。 フェデレーテッドカタログは、S3 Tables のフロントとなる AWS Glue Data Catalog からテーブルメタデータを定期的に同期します。新しく作成されたテーブルや新データは、短いリフレッシュサイクル (約 300 秒) で BigQuery から参照可能になります。読み取りはライブの Iceberg データに対して行われ、同期されるのはカタログポインターのみです。 結果として、AWS 上で一度書き込まれたテーブルは BigQuery で通常のカタログオブジェクトとして表示され、標準 SQL でクエリできます。一方で、バイトは AWS から出ず、フォーマットはオープンなままです。 Infrastructure as Code: クロスクラウド信頼面 以下のセクションでは、アーキテクチャ図に示した認証ハンドシェイクを説明します。Lakehouse カタログサービスアカウントが Google OIDC JSON Web Token (JWT) を提示し、AWS が IAM OIDC プロバイダーを通じて検証し、読み取り専用の S3 Tables アクセスにスコープされた短期間の認証情報を返します。 Google を信頼された ID プロバイダーとして登録する。Lakehouse カタログのサービスアカウントにスコープされます。 resource "aws_iam_openid_connect_provider" "google" { url = "https://accounts.google.com" client_id_list = [var.lakehouse_sa_audience] #Lakehouse REST-catalog serviceaccount } 信頼を特定の ID に限定する。ここがセキュリティの核心です。ロールは、サブジェクトがサービスアカウントに一致する Google 署名トークンを通じてのみ引き受け可能です。sub クレームの条件が他のすべてのプリンシパルを排除します。 data "aws_iam_policy_document" "trust" { statement { actions = ["sts:AssumeRoleWithWebIdentity"] principals { type = "Federated" identifiers = [aws_iam_openid_connect_provider.google.arn] } condition { test = "StringEquals" variable = "accounts.google.com:sub" values = [var.lakehouse_sa_subject_id] # nobody else can assume the role } } } resource "aws_iam_role" "lakehouse_read" { name = "bq-lakehouse-read" assume_role_policy = data.aws_iam_policy_document.trust.json max_session_duration = 43200 # 12-hour sessions, then re-issued } 読み取り専用の最小権限を付与する。引き受けたロールには、AWS Glue を通じたカタログメタデータの読み取りと S3 Tables を通じた Iceberg データへのアクセスに必要な権限のみが含まれ、IAM ポリシーで保護され、書き込み可能なものはありません。 statement { actions = [ "glue:Get*", "s3tables:GetTable", "s3tables:GetTableData", "s3tables:ListTables", "s3tables:ListTableBuckets", "s3tables:GetTableMetadataLocation", "s3tables:ListNamespaces", "s3tables:GetNamespace","s3tables:GetTableBucket" ] resources = [var.s3tables_bucket_arn, "${var.s3tables_bucket_arn}/*"] } Google 側のカタログをこのロールに紐付ける。Lakehouse フェデレーテッドカタログ自体はパイプラインとは別に事前作成 (一回限りの gcloud コマンド) され、前述のロールに紐づけられるため、すべての読み取りが信頼された ID を提示します。AWS キーが Google Cloud に存在することはありません。 gcloud iceberg catalogs create s3tables-glue \ --federated-catalog-type=GLUE --glue-aws-region=us-east-1 \ --glue-aws-role-arn=arn:aws:iam::<account>:role/bq-lakehouse-read これら 4 つのステップがハンドシェイクの全体像です。信頼された発行者、サービスアカウントのみが引き受けられるロール、最小権限の読み取り許可、そしてそのロールにバインドされたカタログです。 運用上の教訓: メタデータをファーストクラスの関心事として扱う オープンなフェデレーテッドカタログをクラウド間で運用する中で、テーブルメタデータをファーストクラスの運用上の関心事として扱うことの重要性を学びました。具体的には以下を意味します。 スナップショット保持 : Iceberg のスナップショット保持期間を短く設定し、テーブルごとのメタデータをコンパクトに保ち、確実に同期できるようにする。 コンパクション : S3 Tables 組み込みのメンテナンス設定を通じて、テーブルメンテナンス (コンパクションとスナップショット期限切れ) を統一的なサービスマネージドポリシーとして標準化する。 スキーマ進化 : Protobuf スキーマが進化 (後方互換の追加) すると、Spark ジョブが S3 Tables 内の Iceberg スキーマにカラムを追加・削除する。フェデレーテッドカタログは次の同期サイクルで変更を検出し、BigQuery は手動介入なしに変更を反映する。 設定方法さえ分かってしまえば小さく明確な設定項目にすぎませんが、カタログが正常に動作するか、時間とともにずれていくかの分かれ目です。 データ参照はエンジンの選択であり、コピーの選択ではない ソースがライブになった後、同一の Iceberg テーブルに 1 つの物理データセットから 3 つの方法でアクセスできます。 BigQuery ユーザー は標準 SQL でクエリし、Google Cloud ウェアハウスの他のデータと結合できる。 インフラエンジニア はアドホック確認や継続的インテグレーション (CI) バリデーションのために Amazon Athena で同じクエリを実行できる。 データサイエンティスト は BigQuery や Athena を経由せず、Spark で直接テーブルを読み取れる。 夜間エクスポートを待つ必要はなく、3 つの異なるコピーを照合する必要もありません。コピーは 1 つだけです。 パフォーマンスとコストへの影響 定性的なメリットは既に明らかです。 ニアリアルタイム分析のための数分レベルの鮮度を持つ Raw データ。従来アーキテクチャのレイテンシーはデータ量の問題ではなく設計上の制約でした。インジェスト自体は 5 分間隔で実行されていましたが、下流の 1 時間バッチジョブがエンドツーエンドの鮮度を 60〜90 分に制限していました。カタログフェデレーションにより、同じデータが生成から数分以内にクエリ可能になります。イベントの 95% が 5 分以内、レイテンシーに敏感なミッションクリティカルなワークロードでは 100% をカバーするようにパイプラインを調整する選択肢もあります。 S3 Tables に 1 つのストレージコピー、3 つのコンピュートエンジン。BigQuery、Athena、Spark またはその他の Iceberg 互換エンジンが Amazon S3 Tables 内の単一の物理 Iceberg データセットを読み取り、ストレージの重複とコピー同期に伴う照合コストを回避します。 ホットパスでのクロスクラウドエグレスなし。インジェストは AWS 内で完結します。唯一のクロスクラウドトラフィックは読み取り時のメタデータ同期とクエリ読み取りであり、継続的な書き込みストリームではありません。月次の AWS および Google Cloud データ転送料金、オーケストレーションオーバーヘッド、多層 ETL ワークフローコスト、ストレージバックアップ料金の内部比較に基づき、talabat は同等のデータボリュームでデータ移動コストを約 40% 削減しました。比較は継続的レプリケーションパイプラインの削除前後の 2 か月間にわたり、月間数百テラバイトの反復的なクロスリージョンおよびクロスクラウドデータ転送を排除しました。 オープンテーブルフォーマット、ロックインなし。Raw の Bronze データレイヤーが Amazon S3 Tables 内の Apache Iceberg であるため、データは特定のクエリエンジンやクラウドに囲い込まれません。新しいコンシューマーはエクスポートを要求する代わりに、Iceberg 対応のインターフェースで接続するだけです。 ガバナンス可能なクロスクラウドアクセス。クロスクラウドの境界は、常時稼働のデータパイプラインではなく、IAM 信頼関係 (最小権限、監査可能、取り消し可能) で保護されています。BigQuery 内のエンドユーザーアクセス制御は、GCP のネイティブなロールベースアクセス制御 (RBAC) とフェデレーテッドカタログのきめ細かなアクセス制御で別途管理されます。 今後の拡張 今後は、残りの高価値イベントストリームとバッチストアをハイブリッドな単一設定パターンに取り込み、ソースカバレッジを拡大する予定です。エンドツーエンドの鮮度目標とその周辺のオブザーバビリティ (バッチレベルのメトリクス、デッドレター監視、カタログ同期の正常性) を形式化しています。テーブル数が増加してもクロスクラウドカタログが高速かつ信頼性の高い状態を維持できるよう、スナップショット保持とコンパクションの調整を続けます。より広い観点では、Bronze レイヤーを超えた新しいデータセットについても「一度書き込み、任意のエンジンで読み取り」をデフォルトにし、クラウド間の接続基盤としてオープンテーブルフォーマットをさらに活用していく方針です。 まとめ 2 つのクラウドを使うことは、マイグレーションすべき問題として捉えられがちですが、talabat にとっては単に地形です。イベント基盤は AWS が中心であり、分析コミュニティは BigQuery で活動しています。Apache Iceberg を搭載した Amazon S3 Tables を AWS 上の唯一の信頼できるソースとし、クロスクラウド IAM 信頼で保護された Lakehouse フェデレーテッド Iceberg REST カタログを通じて BigQuery に読み取り専用で参照させることで、2 つのクラウドという制約を数分以内にエンジンが読み取れる単一のガバナンスされたデータセットに変えました。書き込みパスは短く、ローカルで、信頼性が高いままです。クロスクラウドの課題は、あるべき場所、すなわち読み取りパスに存在し、データ移動ではなくオープン標準とアイデンティティで表現されています。 これがハンドシェイクです。AWS 上にデータのコピーを 1 つ、オープンなカタログ契約、そしてクラウドの境界を越えてデータを読み取るための署名された、信頼された、取り消し可能なアイデンティティです。 本記事では BigQuery から AWS 上のデータを読み取ることに焦点を当てました。他のシステムから AWS Glue Data Catalog へのカタログフェデレーションを含む、より広範なマルチクラウド Lakehouse パターンについては、 Multi-cloud Lakehouse architecture on AWS for agentic AI を参照してください。 著者について Harish Ramesh Harish は、talabat の Staff Data Engineer です。小売、ヘルスケア、メディア、物流、ホスピタリティ、FMCG など幅広い業種で大規模データプロダクトを構築してきた経験を持ち、talabat でデータプラットフォームの構築と管理に注力しています。 Raghunandana Krishna Murthy Sanur Raghu は、talabat における Data Engineering and Machine Learning Platform の Senior Manager です。データおよび機械学習プラットフォームのアプリケーションとインフラストラクチャを開発するチームのリードを専門としています。 Lakshmi Nair Lakshmi は、AWS の Principal Analytics Specialist Solutions Architect です。業界横断で高度な分析システムの設計を専門とし、クラウドベースのデータプラットフォームの構築、リアルタイムストリーミング、ビッグデータ処理、データガバナンスの確立に注力しています。 この記事は Kiro が翻訳を担当し、Solutions Architect の Kenji Hirai がレビューしました。
はじめに 株式会社セガは、家庭用ゲーム機、PC、スマートフォン向けゲームの企画・開発・販売・運営を軸に、各種コンテンツや商品を全世界へ届けています。同社では、比較的新しい技術も積極的に取り入れる文化のもと、複数タイトルで AWS を活用してきました。 本記事では、同社が開発・運用する『ソニックランブル パーティ』のバックエンドに Amazon DynamoDB と Amazon ElastiCache Serverless for Valkey を採用した経緯・技術的な工夫・得られた効果を、開発チームの声を交えて紹介します。 ※本画像は株式会社セガの許諾を得て掲載しています 『ソニックランブル パーティ』は、Dr.エッグマンが作り出したおもちゃの世界で、「ソニック」シリーズの人気キャラクターたちがスリリングな障害物コースや競技アリーナで競い合うマルチプレイパーティーゲームです。スマートフォンと PC のクロスプレイに対応し、2024 年初頭に一部地域でソフトローンチを行い、2025 年 11 月にグローバルローンチを迎えました。 解決したかった課題 グローバルに展開する Games as a Service(GaaS)のバックエンドを、少人数のチームで開発・運用できるようにすること。これが本タイトルの大前提であり、データベース選定でも最優先の要件でした。マネージドサービスを最大限活用し、インフラ運用の負荷を極力排除する方針のもと、データベースには次のような要件がありました。 グローバル規模でスムーズにスケールできること :需要が読みにくいグローバル展開では、トラフィックの伸びに安定して追従できることが必要でした。Amazon Aurora では、API サーバーを増やすほど、各サーバーが保持するコネクションプールの分だけ DB への接続数が積み上がり、DB の接続数の上限が API サーバーのスケールの制約になりやすい構造がありました。 リソースのサイジング・管理からの解放 :ストレージ容量・CPU 性能のサイジングや、ユーザー分割(シャーディング)に伴う複数クラスターの運用といった、リソースを自分たちで管理し続ける作業そのものをなくし、キャパシティを気にせず開発に集中したいという要望がありました。 データ量が増えても安定したレイテンシー :数千万人規模のデータを持っても、応答性能(レイテンシー)が変わらないことが求められました。 稼働の波・スパイクへの対応 :ローンチ時のトラフィックが読みにくく、また「最初は大きく構え、後から縮小できるようにしておきたい」というゲーム業界特有の事情に、無駄なく追従できることが重要でした。 なぜ DynamoDB / ElastiCache Serverless for Valkey を選んだのか DynamoDB 採用の決め手 複数のデータベース/クラウドサービスを比較検討したうえで、DynamoDB を採用しました。前述の課題を踏まえ、次の点が決め手となりました。 サーバーレスで、実質無制限のスケーラビリティを持つこと メンテナンスウィンドウやバージョン管理を意識せず、運用し続けられること 接続数・ストレージ・CPU といったリソース管理から解放されること ElastiCache Serverless for Valkey 採用の決め手 メインデータベースである DynamoDB への読み取り負荷を抑え、レイテンシーとコストを最適化するために、インメモリのキャッシュ/データストアとして ElastiCache を採用しました。ElastiCache は当初 Redis OSS エンジンのノードベース構成で構築を開始し、その後 Redis OSS 互換の Valkey エンジンによる Serverless 構成へ移行しました。Serverless を選んだ決め手は次の点です。 ノードベースのクラスターモードで必要だったシャードやクラスターの構成・管理から解放され、少人数チームでも運用できること 「立ち上げ時は大きく構え、ローンチ後は規模に合わせて縮小・最適化していく」というゲーム特有の需要変動にキャパシティが自動で追従し、過剰なリソースを抱えずに済むこと 冗長化構成を自分たちで設計・管理しなくても、高可用性が標準で備わること アーキテクチャ概要 主要なコンポーネントと役割は次の通りです。 Amazon DynamoDB(メインデータベース) :主要なゲームデータを格納する永続データストア。ユーザーデータ(プロフィール・所持アイテム・進行状況等)とログデータ(行動ログ)を、基本的にシングルテーブル設計で管理しています。 Amazon ElastiCache Serverless for Valkey(キャッシュ/リーダーボード) :ユーザーデータのキャッシュ、マッチメイキング処理の作業データ、リーダーボード(Sorted Set)などに利用。用途別に汎用の Common とリーダーボード専用の Ranking の 2 つに分けています。 Amazon ECS on EC2(API サーバー) :API・マッチメイク・行動ログ集計加工の各アプリを配置しています。 Amazon EKS Auto Mode + Agones :専用ゲームサーバーを管理しています。なおこちらの詳細は別記事 「株式会社セガ、グローバル展開タイトル『ソニックランブル パーティ』を少人数チームで支える Amazon EKS Auto Mode × Agones 活用事例」 にてご紹介しています。 技術的に工夫した点 1. シングルテーブル設計とキー設計 チームはこれまでリレーショナルデータベース(RDB)の Aurora が中心で、DynamoDB の知見はほぼゼロからのスタートでした。DynamoDB は RDB のように join や任意条件での柔軟なクエリができません。RDB でもインデックス設計は行いますが、DynamoDB では、想定するアクセスパターンに合わせてキーや GSI(グローバルセカンダリインデックス)、データを非正規化してどう持つかまで含めて先に設計する必要があり、アクセスパターンがデータモデルそのものを規定します。本タイトルはユーザーデータ・アカウント・フレンド・ギルド(クルー)・ランキングなどエンティティが多く、かつ各エンティティに複数の検索軸(ユーザー ID・アカウント ID・フレンドコードなど)が必要でした。 そこで、全エンティティを 1 つのテーブルに集約するシングルテーブル設計を採用しました。各アイテムのキーに「エンティティ名」の接頭辞を付けて名前空間を分離し、検索軸は汎用的な GSI をエンティティ横断で使い回す設計としています。 たとえばアカウントデータのキー設計は次のようになっています。 キー 型(命名ルール) 具体例 用途 PK {エンティティ名}#U{ユーザーID} AccountDataEntity#U0001 ユーザー ID で引く(基本アクセス) GSI1 {エンティティ名}#A{アカウントID} AccountDataEntity#A5555 アカウント ID で検索 GSI2 {エンティティ名}#F{フレンドコード} AccountDataEntity#F9999 フレンドコードで検索 GSI3 {エンティティ名}#T{引き継ぎID} AccountDataEntity#T1234 引き継ぎ ID で検索 ※「具体例」は実際の値のイメージです。 参照時は、同じ GSI に対してエンティティ名付きのキーを指定するだけです。たとえば GSI1 は、アカウント検索にもギルド(クルー)検索にも同じ 1 本を使い回します。 例 1:アカウント ID 5555 のアカウントを引く Query (index = Gsi1, P1 = "AccountDataEntity#A5555" ) 例 2:同じ GSI1 で、今度はギルド(クルー)”Dragons” を引く Query (index = Gsi1, P1 = "CrewEntity#Dragons" ) このように、少数の汎用 GSI をエンティティ横断で使い回すことで、インデックスの本数を抑えつつ、多様な検索軸に対応できます。RDB 中心だったチームにとっても、移行そのものは想定より円滑に進みました。一方で、GSI を使いこなせるようになるまでには数か月を要し、負荷試験時に GSI のキャパシティ不足に気づきにくいといった学習コストもありました。 2. トランザクションを使わず楽観ロック中心の設計 コストと性能を考慮し、トランザクションは採用せず、楽観ロック中心の設計としました。実装には、AWS SDK のオブジェクト永続化モデルが備えるバージョン属性による楽観ロックを利用し、必要な場面では SkipVersionCheck(バージョンチェックの無効化)を使い分けられるよう、データアクセス層を設計しています。 一方、ギルド(クルー)機能のように複数ユーザーが同一データを同時に更新する機能では整合性の担保が重要になるため、そうした箇所では Valkey によるロックを用いて競合を防いでいます。 3. リーダーボードのホットキー対策 ランキングは、ElastiCache(Sorted Set)でライブに集計・配信する一方、スコアはユーザーデータとして DynamoDB にも永続化しています。この DynamoDB 側のランキング用 GSI では、同一のランキング(単一のパーティションキー)に多数のプレイヤーの書き込みが集中し、特定のパーティションがホットになりやすいという課題がありました。 そこで、ランキング用 GSI のパーティションキーにユーザー ID の下 4 桁によるシャード分割(P1 = …#Shard{ユーザーID下4桁})を導入し、書き込みを複数のパーティションに分散しています。ランキング全体の参照時は、集計タスクで各シャードを集約する構成です。 一方、キャッシュ側の ElastiCache Serverless にも同種の考慮が必要でした。ElastiCache Serverless は常にクラスターモードで動作するため、同一スロット制約を踏まえ、マルチキー操作は関連するキーを同一ハッシュスロットに寄せる(ハッシュタグを使う)キー設計が求められます。その分キーが偏る(ホットスロット化)リスクもあるため、トレードオフを意識する必要があります。本タイトルでも、設計当初にこの点を意識しておくとよいという気づきがありました。 4. グローバルローンチの急なトラフィックへの対策 2025 年 11 月のグローバルローンチは、トラフィックが読みにくい最大の山場でした。事前の暖機(ウォームアップ)として、次の対応を行いました。 DynamoDB :Warm Throughput を利用し、マネジメントコンソールから必要なスループットを引き上げるだけで暖機が完了しました。手動でのプロビジョンドスループット調整(引き上げ後にオンデマンドへ戻す運用)と比べ、手間を大きく削減できました。 ElastiCache Serverless :ローンチ前に最低 ECPU を設定するだけで事前に暖機できました。ローンチ後は通常運用に戻すのみで、キャパシティ調整の手間は最小限で済みました。 結果として、読みにくい急なスパイクにも問題なく追従できました。 AWS の技術支援 本タイトルの設計・実装にあたっては、AWS の技術支援プログラムである DynamoDB Immersion Day と、DynamoDB DCAD(Database Clinic in A Day)を通じて、数日間にわたる DynamoDB の勉強会・ハンズオンを実施しました。あわせて、Solutions Architect による設計相談・アーキテクチャレビュー・キー設計レビューも行っています。 特に効果が大きかったのは、次の点でした。 勉強会に社内の複数部署が参加したことで、「シングルテーブル設計」について複数の視点から比較・議論でき、設計の方向性を確かめられたこと 「TTL は設定時刻に必ず消えるわけではない」といった実運用上の注意点を事前に把握でき、誤った設計・運用のままサービスインすることを回避できたこと 実運用でのスケールの仕組みを聞けたことで、運用イメージを持てたこと 開発・運用面で得られた効果 開発・運用負荷を軽減し少人数運用を実現 現在、データベースを含むバックエンドを実質 1 名で開発・運用・保守できています。キャパシティ設計が不要なため、少人数でもアプリケーション開発に集中できています。 さらに、パーティショニングやシャーディングが透過的に扱えることで、開発環境と本番環境で構成を変えずに運用できる(dev/prod parity)点も大きなメリットでした。過去のプロジェクトで Aurora を利用していた際は、書き込み負荷を 1 クラスターで捌ききれず、ユーザー単位で複数クラスターにシャーディングしていました。どのクラスターにアクセスするかはアプリケーション側の振り分け(ディスパッチ)処理で制御していましたが、開発環境ではコスト都合で本番と同じクラスター構成を再現できないため、この振り分けを開発と本番で作り分ける必要がありました。一方、DynamoDB のパーティショニングや ElastiCache のシャーディングは透過的に行われ、キャパシティやシャード数の管理も不要です。そのため、アプリケーションはクラスターへの振り分けや分割を一切意識する必要がなく、同じコード・同じテーブル設計・キャッシュ構成が開発から本番までそのまま動作します。サーバーレスのため開発環境をコストのために縮小する必要もなく、本番との構成差が生じないことから、「開発で確認したものが本番でもそのまま通用する」状態になりました。 DynamoDB 移行後は、アラートが来たときを除いてほとんど監視画面を見る必要がなくなり、DB 周りの日常的な運用がほぼなくなりました。Aurora 利用時に気を配っていた、大規模テーブルのパーティション運用や肥大化に伴うパフォーマンス劣化への対処、API サーバーのスケール時のコネクション数(コネクションプール)といった懸念からも解放されています。 性能面の効果 DynamoDB のレイテンシーは、全 DynamoDB API の平均で 10 ミリ秒以下(CloudWatch の DynamoDB レイテンシー値)で安定しています。データ量が増えても応答性能が変わらないため、一貫して低いレイテンシーを維持できています。複雑なクエリを組まない(組む必要のない)設計になっていることも、クエリが重くなりにくい要因の 1 つです。 ElastiCache for Valkey については、従来利用してきた Redis と遜色ない性能を維持できています。頻繁に参照されるユーザーデータやランキングを ElastiCache でキャッシュすることで、低レイテンシーで応答しつつ、DynamoDB への読み取りアクセスも抑えられています。アクティブ・上位ユーザーほど参照頻度が高いため、限られたキャッシュ量でも高いヒット率が得られ、効率よく読み取り負荷を軽減できています。 コスト面の効果 最も実感しているのは、運用・管理まで含めたトータルでのコストメリットです。DynamoDB では、クラスター分割した Aurora での試算と比べて、開発・ステージング・QA 環境あわせて 95%、本番環境で 40〜50% のコストを削減できています。また、インフラの利用料金そのものに加え、これまで DB の運用・管理にかけていたコストまで含めて、負担が大きく下がりました。 ElastiCache Serverless については、開発環境ではノード構成と比べて大幅に低コストで運用できています。本番環境でも、スパイクに備えた過剰なプロビジョニングやリザーブドノードの事前購入が不要になり、負荷が読みにくいなかで容量を先に見込んで確保する必要がなくなりました。 可用性・耐障害性 最初のローンチ以降、無停止で安定稼働しており、サービスに影響するような障害は発生していません。 さいごに 『ソニックランブル パーティ』で得られたこうした成果を踏まえ、DynamoDB と Valkey は今後、部門の標準アーキテクチャとして後続タイトルでも採用していく予定です。なお、ElastiCache for Valkey を Serverless とノードベースのどちらで構成するかは、リザーブドノードの活用可否を踏まえて各プロジェクトで選択できるようにしています。 株式会社セガ 第4オンライン研究開発プログラム部 副部長の上園 政雄氏は、次のように話しています。 「DynamoDB と ElastiCache Serverless for Valkey は、少人数でグローバル展開を支えるうえで欠かせない基盤になりました。今後のタイトルでも標準的なアーキテクチャとして活用していきたいと考えています。」 株式会社セガ 第4オンライン研究開発プログラム部 副部長 上園 政雄 氏
本記事は、株式会社セガとアマゾンウェブサービスジャパンが共同で執筆しています。 はじめに 株式会社セガは、家庭用ゲーム機、PC、スマートフォン向けゲームの企画・開発・販売・運営を軸に、各種コンテンツや商品を全世界へ届けています。同社では、比較的新しい技術も積極的に取り入れる文化のもと、複数タイトルで AWS を活用してきました。 本事例の対象は、同社が開発・運用する『ソニックランブル パーティ』の専用ゲームサーバー基盤です。『ソニックランブル パーティ』は、Dr.エッグマンが作り出したおもちゃの世界で、「ソニック」シリーズの人気キャラクターたちがスリリングな障害物コースや競技アリーナで競い合うマルチプレイパーティーゲームです。スマートフォンとPCのクロスプレイに対応し、2024 年に一部地域でソフトローンチを行い、2025 年 11 月にグローバルローンチを迎えました。 ※本画像は株式会社セガの許諾を得て掲載しています 本記事では、この専用ゲームサーバー基盤で、ゲームサーバーのオーケストレーションに Agones を用い、その基盤に Amazon EKS (Elastic Kubernetes Service) Auto Mode を採用した経緯と効果を、お客様の声を交えて紹介します。 EKS Auto Mode の採用により、開発環境では「ゼロインスタンス運用」によるコスト削減を実現、本番環境ではグローバルローンチ以降、インフラ起因の停止はなく安定稼働を続けています。加えてその運用負荷削減効果により、運用が軌道に乗ってからは API サーバーやデータベースも含めた全環境を 1 名のエンジニアで運用できています。 解決したかった課題 グローバルに展開するマルチプレイヤーゲームの専用ゲームサーバー基盤を、少人数のチームで開発・運用することが、本プロジェクトの大きな前提でした。マネージドサービスを活用する観点では Amazon GameLift Servers も選択肢ですが、選定当時はコンテナに未対応だったことに加え、技術のオープン性も重視した背景から、本プロジェクトでは Agones によるセルフホストを選択しました。Agones はオープンソースの専用ゲームサーバーホスティング製品で、Amazon EKS 上で利用でき、専用ゲームサーバーの構成を簡素化できます。しかし Kubernetes 基盤の運用は避けられず、Agones の運用には次のような負荷が存在します。 ノード管理・Amazon Machine Images (AMI) 更新: ノードのプロビジョニング、AMI のバージョン管理とセキュリティパッチ適用のための更新作業 スケーリング設計: 需要変化に対してノードを迅速にスケールアウト・スケールインさせる仕組みの構築と運用 各種アドオンのバージョン管理: AWS Load Balancer Controller や kube-proxy 等のバージョンアップ対応 かつ本タイトルでは API サーバーに Amazon Elastic Container Service (ECS) を採用しており、Agones のためだけに Kubernetes の運用負荷を抱えるという課題がありました。 なぜ Agones on EKS Auto Mode を選んだのか 上記の課題の解決のため、Agones の基盤に Amazon EKS Auto Mode を採用しました。Amazon EKS Auto Mode は、2024 年 12 月の AWS re:Invent で一般提供が開始された機能で、Kubernetes クラスタのコンピューティング・ストレージ・ネットワーキングの管理を自動化します。Karpenter をベースとしたノード管理、Bottlerocket による最適化された OS、各種アドオンのマネージド管理により、ノード管理・AMI 更新・スケーリング・アドオンのバージョン管理が AWS の責任範囲となり、専用ゲームサーバー基盤の運用をシンプルにできる点が決め手でした。 アーキテクチャ概要 なお、本タイトルのデータベースに関する事例の詳細については、別記事 “ 株式会社セガ、グローバル展開タイトル『ソニックランブル パーティ』を少人数チームで支える Amazon DynamoDB / Amazon ElastiCache Serverless for Valkey 活用事例 ” にて紹介しています。 安定運用を実現するための設計 専用ゲームサーバーという特性上、EKS Auto Mode の採用における最大の検討事項は、 EKS Auto Mode によるノードの自動中断と、Agones のゲームサーバーライフサイクル管理の競合 でした。 EKS Auto Mode は、コスト最適化のための集約 (Consolidation)、設定変更や AMI 更新への追従 (Drift)、一定期間経過したノードの入れ替え (Expiration) など、様々な理由でノードを自動的に中断します。中断時には対象ノード上の Pod へ終了シグナル (SIGTERM) が発行されるため、対策をしないとプレイ中のゲームサーバーが強制終了されるリスクがありました。専用ゲームサーバーには「プレイ中のゲームセッションを中断させない」という強い制約があるため、この競合の解消が採用の鍵でした。 本プロジェクトでは、AWS の技術支援を受けながら、次の設計パターンを組み合わせてこの課題を解決しました。 猶予期間の設計: ノードが強制削除されるまでの猶予 ( terminationGracePeriod ) と、Pod が終了しきるまでの猶予 ( terminationGracePeriodSeconds ) を、ゲームの最大持続時間より長く設定します。ノード中断が発生してもプレイ中のゲームが終わるまで待ってから安全に停止できます。 シグナルハンドリングの実装: ゲームサーバーアプリが終了シグナルを受け取ったとき、進行中のゲームは終了を待ってから停止し、待機中のサーバーは新規割り当てをブロックして速やかに退去します。 ノード自動最適化の有効化 ( spec.eviction.safe: Always ): Agones のデフォルト設定はノードの退去をすべてブロックし、EKS Auto Mode のコスト最適化やセキュリティパッチ適用を妨げます。この設定を変更することで、上記の猶予期間とシグナルハンドリングでプレイ中のゲームを守りつつ、EKS Auto Mode の自動最適化を活かします。 NodePool の分離: 特性の異なる Agones のコントローラ系とゲームサーバー本体を別々のノードグループ (NodePool) に配置し、それぞれに適した猶予期間等を設定します。 可用性の確保: ゲームサーバーの割り当てを担うコンポーネント (agones-allocator 等) に PodDisruptionBudget (PDB) を設定し、ノード中断時にも機能を維持します。 これらの設計により、EKS Auto Mode の運用自動化のメリットを享受しながら、プレイ中のゲームを守る安定運用を実現しています。各設定の具体的な内容は、別記事 “ Amazon EKS Auto Mode 上で Agones を安定稼働させる設計のポイント “で実装例を交えて解説しています。 導入して得られた効果 コスト:「ゼロインスタンス運用」により開発環境コストを大幅に削減 長期間の開発、目的別に多数の環境を維持する必要性、といった背景から、開発環境のコストは無視できません。本タイトルでは、EKS Auto Mode への移行により実現された Karpenter の高速スケーリングを活かし、開発者がいない時間帯は ゲームサーバーが起動するノードを 0 台にし、マッチメイキング中に起動する「ゼロインスタンス運用」を実現しました。これにより、常時起動が必要ない開発環境の EKS ノードのコストを大幅に削減しました。 運用:日常的な運用作業からの解放 EKS Auto Mode への移行で、ノード管理や AMI 管理といった作業の大部分を任せることができ、EKS の運用設計における考慮事項を大きく減らせたとともに、運用工数も削減できました。例えばセキュリティパッチ適用のための AMI 更新作業では、通常は担当者のアサイン、スケジュール調整、影響確認、適用計画の作成、適用実施と、多くの場合に一週間以上かける作業が、本タイトルではほぼ対応不要と判断できています。またノードプールを yaml で定義・管理できるため、kubectl を中心とした kubernetes 標準の運用フローに統一できました。ノードプールの追加・変更もコードベースで管理できるため、設定変更や構成管理が容易になり、運用性・保守性の向上につながったと感じでいます。グローバルローンチ後は、一定期間 3 名体制で運用整備し、その後はAPI サーバーやデータベースも含めた全環境を 1 名のエンジニアで運用できています。 パフォーマンス:迅速なスケールイン・アウトでリソース利用効率向上 EKS Auto Mode はノードのスケールアウト・スケールインともに応答性が高く、Pod 需要の変化に対してクラスタが迅速に追従できました。その結果、ゲームサーバーがリソース不足で待機する時間を短縮できただけでなく、需要減少時には不要なノードも速やかに解放されるため、リソース利用効率も向上しました。また、本タイトルで独自に実装した Pod AutoScaler とも高い親和性を示し、Pod の需要変化に応じたスケーリング戦略をインフラ側へ迅速に反映でき、ピーク時の応答性と平常時の効率性を高いレベルで両立できています。 可用性:本番環境でもスムーズに移行、グローバルローンチ後も無停止で安定稼働 本タイトルでは、2024 年 12 月の一般提供開始と同時に EKS Auto Mode の検証を開始し、2025 年 1 月に開発環境へ、同年 3 月にはソフトローンチ済みの本番環境への導入が完了と、わずか 4 ヶ月でスムーズな移行を実現できました。2025 年 11 月のグローバルローンチ以降、専用ゲームサーバー基盤は安定稼働しており、インフラ起因のサービス影響のある障害は発生していません。 AWS による支援について EKS Auto Mode と Agones の共存における安定運用のための設計にあたっては、AWS の SA (ソリューションアーキテクト) が支援しました。株式会社セガの担当者は、「EKS Auto Mode 導入時は既に一部地域でソフトローンチ済みで、運用中の環境に手を入れるリスクもありましたが、AWS 社員と直接密にやり取りできる形で随時技術支援をいただきながら進めることができ、対応も早く、安心して進めることができました」と語っています。 今後の展望 EKS Auto Mode と Agones を組み合わせた設計・本番運用は世界的にも先進的な取り組み事例となりました。本アーキテクチャは今後、部門のスタンダードアーキテクチャとして後続タイトルでも主要な選択肢となる見込みです。 まとめ 株式会社セガは『ソニックランブル パーティ』の専用ゲームサーバー基盤で利用する Agones を動作させる基盤として Amazon EKS Auto Mode を採用しました。Agones の柔軟性を活かしつつ EKS Auto Mode で運用管理をシンプルにすることで、グローバル規模のタイトルの少人数チームでの安定運用とコスト最適化を両立しました。 株式会社セガ 第 4 オンライン研究開発プログラム部の穂園氏・松崎氏は、次のように振り返っています。 「以前はノードや AMI の管理、スケーリング設定に常に気を配っていましたが、EKS Auto Mode への移行後は日々の運用からほぼ解放されました。インフラを気にせず開発に向き合えるようになったことが、何よりの変化です。」 著者 穂園 智哉 株式会社セガ 第 4 オンライン研究開発プログラム部 松崎 大 株式会社セガ 第 4 オンライン研究開発プログラム部 西坂 信哉 アマゾンウェブサービスジャパン合同会社 ソリューションアーキテクト
本記事は 2026 年 8 月 18 日 に公開された「 Characterizing SQL*Net latency in your application for Oracle Database@AWS migrations 」を翻訳したものです。 Oracle Database@AWS (ODB@AWS) は、AWS データセンター内で Oracle Cloud Infrastructure (OCI) が管理する Oracle Exadata インフラストラクチャを利用できるサービスです。ODB@AWS は、Amazon Virtual Private Cloud (Amazon VPC) 内で稼働する Amazon Elastic Compute Cloud (Amazon EC2)、 Amazon Elastic Container Service (Amazon ECS)、 Amazon Elastic Kubernetes Service (Amazon EKS) などの AWS サービスとの間で、低レイテンシーのネットワーク接続を提供します。アプリケーションホストと Exadata 間の SQL*Net トラフィックは ODB Peering を経由し、Amazon VPC と ODB ネットワーク間でプライベートにルーティングされます。 本記事では、データベースとアプリケーションのワークロードを ODB@AWS へ移行する準備を進めるための手法を紹介します。この手法を使うと、オンプレミスのワークロードが SQL*Net レイテンシーに敏感かどうかを評価し、 ODB@AWS のマルチクラウドアーキテクチャ で増える SQL*Net レイテンシーの影響を把握できます。さらに、ODB@AWS の移行候補となるワークロードにおける接続とデプロイの考慮事項も解説します。 ODB@AWS 移行で SQL*Net レイテンシーの評価が重要な理由 ODB@AWS への移行では、ワークロードが SQL*Net レイテンシーの増加に敏感かどうかが重要な検討ポイントになります。極めて短時間 (データベース処理時間がサブミリ秒) で、頻繁 (毎秒数千回の実行) に、かつ少数のセッションに集中して実行される SQL 文を含むワークロードは、SQL*Net ラウンドトリップレイテンシーが数百マイクロ秒増えるだけでも影響を受け、アプリケーションパフォーマンスに直接響く可能性があります。本記事の手法を使えば、アプリケーションのワークロードがこの 3 つの特性を持つかどうかを判断し、該当する場合は移行前に影響を定量化できます。 1 つの原則は常に成り立ちます。クライアントネットワークのレイテンシーが下がってアプリケーションパフォーマンスが悪化することはありませんが、必ず改善するわけでもありません。Oracle は SQL*Net のラウンドトリップを減らすためのガイダンスを何十年も前から公開しています。ストアドプロシージャ、配列フェッチ、バルク処理は、処理をサーバー側に移したりまとめて実行したりすることで、クライアントとサーバー間のラウンドトリップ回数を削減します。Oracle 自身の Net Services ドキュメントにも次の記述があります。 「ネットワークを越えるラウンドトリップの回数を減らすようアプリケーションをチューニングすることが、ネットワークパフォーマンスを改善する最善の方法です。」 ただし、そうした最適化を施しても SQL*Net レイテンシーに強く影響されるモジュールがアプリケーションに残っている場合は、本手法で移行前にレイテンシー感度を特定し、定量化できます。 手法の概要 本手法は Oracle の標準的なパフォーマンスツール (Automatic Workload Repository (AWR)、Active Session History、SQL Trace) を使い、次の 3 つのフェーズで構成されます。 フェーズ 1: AWR スクリーニングで候補となる SQL 文を特定する。 フェーズ 2: フェーズ 1 で挙がった候補の SQL 文を SQL Execution Session Density (SESD) で検証する。 フェーズ 3: SQL Trace と Client Request Elapsed Time (CRET) の分析で SQL*Net レイテンシーへの感度を把握する。 手法の詳細 Client Request Elapsed Time (CRET) とは 本手法は、Oracle のアイドル待機イベントを SQL*Net レイテンシー感度の主要な計測手段に使う新しいアプローチです。対象となるアイドル待機は SQL*Net message from client (SNMFC) です。連続する 2 つの SNMFC 待機に挟まれた区間を、本記事では Client Request Elapsed Time (CRET) イベントと呼びます。 クライアントアプリケーションから SQL*Net 経由でデータベースインスタンスに送られる SQL リクエストは、いずれも次の 3 段階のタイムラインをたどります。 クライアント時間 + クライアントからサーバーへのネットワーク時間: クライアントアプリケーションは前回の結果を処理し (またはアイドル状態のままとなり)、次の SQL リクエストを SQL*Net 経由でデータベースサーバーへ送信します。クライアント時間には、計算処理、ウェブ層とのやり取り、GUI アプリケーションが人間の入力を待つようなアイドル時間が含まれます。この段階の間、データベースセッションはずっと次のリクエストの到着を待つ SNMFC 待機の状態にあります。 データベース処理時間: データベースサーバーがリクエストを受け取り、処理し、応答を準備します。 サーバーからクライアントへのネットワーク時間: データベースサーバーが結果セットまたは完了コードを SQL*Net 経由でクライアントアプリケーションへ送信します。送信直後、データベースセッションは再び SNMFC 待機に入ります。 段階 1 と段階 3 の合計が非データベース時間 (Non-Database Time) です。段階 2 は完全にデータベース内部の処理であり、SQL*Net のクライアントネットワークレイテンシーとは無関係です。 CRET = Database Time + Client Time + SQL*Net RTT 図 1: クライアントリクエストのタイムライン。連続する 2 つの message from client 待機が 1 つの CRET イベントを挟む CRET 手法の紹介 ここからは CRET 手法を、フェーズ 1 (AWR スクリーニング)、フェーズ 2 (SQL Execution Session Density)、フェーズ 3 (SQL Trace と CRET 分析) の 3 つに分けて詳しく見ていきます。 フェーズ 1: AWR スクリーニング (候補となる SQL 文の特定) まず、レイテンシーに敏感と思われるアプリケーション処理が動いていた期間を含む AWR レポートを用意し、ヘッダーに記載された経過時間を確認します。たとえば次の図は、30 分間を対象とした AWR レポートのヘッダーセクションです。 図 2: 30 分間のスナップショット期間を示す AWR レポートのヘッダー スクリーニングの目的は、頻繁かつ短時間で実行される SQL 文、つまり毎秒数千回実行されデータベース処理時間がマイクロ秒レベルの SQL 文を特定することです。SQL Ordered by Executions セクションを開き、上位の各 SQL 文について毎秒あたりの実行回数 (総実行回数 ÷ AWR の経過時間 (秒)) と平均データベース処理時間 (総経過時間 ÷ 実行回数) を計算します。データベース処理時間がサブミリ秒で、かつ毎秒数千回実行されている SQL 文がレイテンシー感度の候補です。処理時間が数ミリ秒に及ぶ SQL 文は、1 回の実行あたりのデータベース処理時間が、増加分のネットワーク時間を大きく上回るため、一般に SQL*Net レイテンシーの増加を許容できます。 フェーズ 1 スクリーニングの例 実際の例を見てみます。360 分 (21,600 秒) を対象とした AWR レポートに SQL Ordered by Executions セクションが含まれています。次のスクリーンショットはそのセクションの上位 5 行で、続く表は各行のフェーズ 1 分析結果です。 図 3: 実行回数の多い上位 5 つの SQL 文を示す AWR の SQL ordered by executions セクション SQL_ID 経過時間 (秒) 実行回数 実行回数/秒 平均 DB 時間 評価 …f243rp 10,966 112,622,398 5,214/秒 97 µs 候補。フェーズ 2 へ進む。 …t4xvug 9,809 97,577,695 4,517/秒 101 µs 候補。フェーズ 2 へ進む。 …r5tj7z 15,302 57,889,149 2,680/秒 264 µs 候補。フェーズ 2 へ進む。 …r8qyvu 13,509 40,966,821 1,897/秒 330 µs 候補。フェーズ 2 へ進む。 …9uyp0z 18,471 24,081,444 1,115/秒 767 µs 候補の可能性あり。DB 処理時間はミリ秒に近づいているが、まだサブミリ秒。フェーズ 2 へ進む。 フェーズ 2: SQL Execution Session Density (SESD) フェーズ 1 では AWR を使い、短時間かつ頻繁に実行される候補の SQL 文を特定します。ただし、SQL Ordered by Executions セクションの実行回数は全セッションを合算したインスタンス全体の集計値です。その実行が 1 セッションによるものか 1,000 セッションによるものかは、AWR からはわかりません。フェーズ 3 に進む前に、候補の SQL 文が 1 つ、あるいはごく少数のセッションから実行されていることを確認します。 考え方はシンプルです。1 回の実行にデータベース処理時間 100µs を要する SQL 文の場合、1 つのセッションが毎秒 10,000 回実行するケースと、100 セッションがそれぞれ毎秒 100 回実行するケースは、AWR 上では区別できません。レイテンシーに敏感なのは前者だけです。少数のセッションに実行が集中している状態は High SESD で、フェーズ 3 の分析対象になります。多数のセッションに実行が分散している状態は Low SESD で、フェーズ 3 は不要です。 SESD は、該当する SQL_ID を実行していたセッションのユニーク数を Active Session History に問い合わせる、 V$SQL の USERS_EXECUTING 列を参照する、あるいはアプリケーションの動作を把握しているアプリケーションオーナーに確認する、といった方法で判断できます。High SESD ならフェーズ 3 の分析に進み、Low SESD なら進みません。 SQL Execution Session Density の詳細 先のフェーズ 1 の AWR に出てきた SQL_ID 52cn24qf243rp は、毎秒 5,214 回実行され、平均データベース処理時間は 97µs でした。SESD を評価した結果、この SQL_ID を実行しているセッションがわずか 5 つだったとします。各セッションは毎秒およそ 1,043 回の実行を担うことになり、CRET サイクル 1 回あたりの実行予算は約 959µs です (1,043 × 959µs = 1,000,000µs = 1 秒)。CRET サイクル時間が 959µs と短いため、SQL*Net レイテンシーの変化が相対的なパフォーマンスに大きく影響しかねません。その影響を評価するのがフェーズ 3 です。この SQL 文はフェーズ 3 の分析に最適な候補と言えます。逆に、同じ毎秒 5,214 回の実行が 200 セッションに分散していれば、各セッションの実行間隔はおよそ 38ms となり、フェーズ 3 の分析は不要です。 フェーズ 3: SQL Trace と CRET 分析 ここまでで、フェーズ 1 のスクリーニングで短時間かつ頻繁に実行される SQL 文を特定し、フェーズ 2 の SESD 分析でその実行がごく少数のセッションに集中していることを確認しました。残る作業は、対象セッションの 1 つをトレースし、CRET イベントの分析で実際のレイテンシー感度を定量化することです。 SQL Trace の有効化 候補の SQL 文を実行中のセッションを特定し、待機イベント付きでトレースを有効にします。 EXEC DBMS_MONITOR.SESSION_TRACE_ENABLE(session_id => &sid, serial_num => &serial#, waits => TRUE, binds => FALSE); 実行の代表的なサンプルが取得できるよう、十分な時間トレースを継続します。トレースが終わったら無効にします。 EXEC DBMS_MONITOR.SESSION_TRACE_DISABLE(session_id => &sid, serial_num => &serial#); CRET パラグラフ: 実例 次の図は、SQL Trace ファイルから抜き出した実際の CRET パラグラフです。連続する 2 つの SNMFC 待機 (赤くハイライトされた部分) がパラグラフを挟んでいます。 図 4: 連続する 2 つの message from client 待機をハイライトした SQL Trace の抜粋 CRET の継続時間は、2 つの SNMFC が示す tim= の差分で、1,297,258,033,879 から 1,297,258,032,801 を引いた 1,078µs です。後ろの SNMFC が示す ela= 値 (947µs) が、この CRET サイクルにおける非データベース時間に相当します。CRET の継続時間から非データベース時間を引くとデータベース時間が求まり、1,078 から 947 を引いた 131µs となります。 CRET 分析ツール 次の 4 つの AWK ワンライナーが CRET 分析ツールを構成します。いずれも処理対象のトレースファイル名を第 1 引数として受け取り、実行には gawk(1) が必要です。ワンライナーは SQL Trace ファイルを直接処理するため、Oracle のクライアントソフトウェアは不要です。4 つのワンライナーが出力する内容は次のとおりです。 ワンライナー 1 — CRET サマリー: 総経過時間、CRET 数、CRET レート (CRET/秒)。 ワンライナー 2 — SNMFC 経過時間のパーセンタイル: 非データベース時間の分布 (Min、P50、P90、P99、Max)。 ワンライナー 3 — CRET 経過時間のパーセンタイル: ラウンドトリップ全体の時間分布 (Min、P50、P90、P99、Max)。 ワンライナー 4 — レイテンシー影響の予測: SQL*Net RTT が 100µs、150µs、200µs 増えた場合の実行時間の増加予測。 ワンライナー 1 — CRET サマリー grep -i 'message from client' $1 | gawk '{p=match($0,/tim=[0-9]+/); t=substr($0,p+4,RLENGTH-4)+0; if(NR==1) s=t; e=t; n++} END{el=(e-s)/1000000; print sprintf("CRET Analysis | Elapsed: %.1f sec (%.2f min) | CRETs: %d | Rate: %.2f/sec", el, el/60, n-1, (n-1)/el)}' ワンライナー 2 — SNMFC 経過時間のパーセンタイル grep -i 'message from client' $1 | gawk '{p=match($0,/ela= *[0-9]+/); v=substr($0,p,RLENGTH); sub(/ela= */,"",v); val=v+0; if(NR==1) mn=val; if(val<mn) mn=val; a[NR]=val} END{n=asort(a); p50=a[int(n*0.5+0.5)];p90=a[int(n*0.9+0.5)];p99=a[int(n*0.99+0.5)]; mx=a[n]; print sprintf("SNMFC Elapsed (us): Min: %d | P50: %d | P90: %d | P99: %d | Max: %d", mn, p50, p90, p99, mx)}' ワンライナー 3 — CRET 経過時間のパーセンタイル grep -i 'message from client' $1 | gawk '{p=match($0,/tim=[0-9]+/); t=substr($0,p+4,RLENGTH-4)+0; if(NR>1){d=t-prev; if(NR==2) mn=d; if(d<mn) mn=d; c[NR-1]=d} prev=t} END{n=asort(c);p50=c[int(n*0.5+0.5)]; p90=c[int(n*0.9+0.5)];p99=c[int(n*0.99+0.5)]; mx=c[n]; print sprintf("CRET Elapsed (us): Min: %d | P50: %d | P90: %d | P99: %d | Max: %d", mn, p50, p90, p99, mx)}' ワンライナー 4 — レイテンシー影響の予測 grep -i 'message from client' $1 | gawk '{p=match($0,/tim=[0-9]+/); t=substr($0,p+4,RLENGTH-4)+0; if(NR==1) s=t; e=t; n++}END{crets=n-1; el=(e-s);print sprintf("Latency Impact: +100us: +%.0fs (+%.1f%%) | +150us: +%.0fs (+%.1f%%) | +200us: +%.0fs (+%.1f%%)", crets*100/1000000, (crets*100/el)*100,crets*150/1000000, (crets*150/el)*100,crets*200/1000000, (crets*200/el)*100)}' 実践例: CRET 分析の出力 次のスクリーンショットは、クライアント側の実行パターンがまったく異なる 2 つのトレースファイル (いずれも CRET イベント 10,000 件) に対して、4 つのワンライナーを実行した例です。一方はタイトループ、もう一方はリクエストの合間にクライアント側の処理待ちが大きく入るパターンです。ワンライナーの出力から、それぞれのパターンのレイテンシー感度が定量的にわかります。 図 5: タイトループのトレースとクライアント遅延のトレースに対する 4 つの CRET ワンライナーの出力 クライアントがタイトループするトレース (ora_196424.trc) このトレースの対象期間は 7.0 秒で、10,000 件の CRET は平均で毎秒 1,430 件でした。1 秒を 1,430 で割ると、単一セッションの実行予算は 699µs になります。SNMFC の P50 である 665µs が非データベース時間で、ここには SQL*Net RTT とクライアント時間の両方が含まれます。単一セッションの実行予算 699µs のうち 665µs を非データベース時間が占めており、SQL*Net RTT を追加する余地はほぼありません。ワンライナー 4 の出力によると、たとえば SQL*Net RTT に 150µs を加えた場合、経過時間 7 秒に対して 2 秒 (+21.5%) 増えます。この SQL 文を処理しているセッションは、SQL*Net RTT レイテンシーの目立った増加を許容できません。 クライアント遅延のあるトレース (ora_255365.trc) このトレースには 1,557.7 秒の間に生成された 10,000 件の CRET が含まれ、平均は毎秒 6.42 件です。ただしセッションの実行パターンはバースト的で、この平均値は実態を表していません。SNMFC の P99 が 4.17 秒であることから、数秒単位のアイドル期間が短時間の集中的な処理の合間に挟まっており、毎秒平均は実行の密度を測る指標として意味を持たないとわかります。1 秒を 6.42 で割ると、単一セッションの実行予算は CRET 1 回あたり約 156ms になります。SNMFC の P50 である 888µs (0.888ms) が非データベース時間で、SQL*Net RTT とクライアント時間の両方を含みます。156ms の実行予算に対して非データベース時間は 1ms 未満しか占めておらず、SQL*Net RTT の増加は問題になりません。ワンライナー 4 の出力によると、たとえば 10,000 件の CRET イベントそれぞれに SQL*Net RTT を 200µs 追加しても、26 分のトレースに対する増加はわずか 2 秒です。経過時間の増加率は 0.1% です。 CRET 分析: 両者の比較 指標 例 A: タイトループ (敏感) 例 B: クライアント遅延 (許容) CRET 総数 10,000 10,000 CRET レート 1,430.06 / 秒 6.42 / 秒 SNMFC P50 (非 DB 時間) 665µs 888µs SNMFC P99 (非 DB 時間) 902µs 4,171,289µs (4.17 秒) CRET P50 (ラウンドトリップ) 683µs 1,041µs CRET P99 (ラウンドトリップ) 923µs 4,171,440µs (4.17 秒) 総経過時間 7.0 秒 (0.12 分) 1,557.7 秒 (25.96 分) +150µs RTT の影響 +2 秒 (+21.5%) +2 秒 (+0.1%) 評価 SQL*Net RTT レイテンシーの増加を許容できない SQL*Net RTT レイテンシーの増加を許容できる 全体の流れ Client Request Elapsed Time (CRET) 手法は、3 つのフェーズで段階的に絞り込むスクリーニングプロセスです。フェーズ 1 では AWR を使い、データベース処理時間がサブミリ秒で実行頻度の高い SQL 文を特定します。フェーズ 2 では SQL Execution Session Density (SESD) を評価し、実行が 1 つまたはごく少数のセッションに集中しているかを判断します。多数のセッションに分散していれば、その SQL 文は対象外です。集中している場合はフェーズ 3 に進み、High SESD のセッションをトレースしたうえで、トレースファイルに対して CRET 分析ツールを実行し、SQL*Net RTT がさまざまな幅で増加した場合の実行時間への影響を予測します。 結果の解釈 本手法では、SQL*Net レイテンシーの増加が実行時間に与える影響を予測します。移行の判断にあたっては、次の枠組みを出発点にしてください。 予測される影響 分類 ガイダンス < 5% 許容 (Tolerant) ワークロードは低い SQL*Net レイテンシーを必要としません。ODB@AWS に適しています。 5% – 10% 境界 (Borderline) アプリケーションオーナーとの協議が必要です。判断の前に、移行先リージョンでの実際の ODB@AWS RTT を測定してください。 > 10% 敏感 (Sensitive) 明確なパフォーマンス低下が見込まれます。RTT の測定、緩和策の検討、アーキテクチャの見直しが必要です。 ODB@AWS 移行候補における接続とデプロイの考慮事項 次のステップに沿って進めれば、ワークロードの適合性を評価し、ODB@AWS で SQL*Net レイテンシーを可能な限り低く抑えられます。 まず CRET 手法でワークロードをスクリーニングする。アーキテクチャを決める前に、少なくともフェーズ 1 (AWR スクリーニング) を実施し、高速かつ高頻度で、少数のセッションに集中している (High SESD) SQL 文を特定します。この分析によって、ワークロードが ODB@AWS デプロイの有力候補なのか、先にアプリケーション層の最適化が必要なのかを判断できます。 アプリケーション層を同一の場所に配置し、直接 ODB Peering を確立する。レイテンシーに敏感なアプリケーションコンポーネントは、ODB ネットワークと同じアベイラビリティゾーンにデプロイし、AZ 間のレイテンシーによる負荷を排除します。アプリケーションの VPC と ODB ネットワークの間には直接 ODB Peering を確立します。直接 Peering により、AWS Transit Gateway や AWS Cloud WAN を経由せず、Exadata データベースまでの最短のネットワーク経路が得られます。接続パターンの詳細は「 Oracle Database@AWS ネットワーク接続パターンの実装 」を参照してください。 ODB@AWS 高性能ネットワーキング を有効にし、レイテンシーを検証する。 ODB@AWS 高性能ネットワーキング を有効にすると、同一アベイラビリティゾーン内のアプリケーション層 (EC2、ECS、EKS) と ODB@AWS データベースの間で 安定したサブミリ秒の SQL*Net ラウンドトリップレイテンシー を実現できます。高性能ネットワーキングは、自動的にプロビジョニングされる EC2 プレイスメントグループを使い、アプリケーションインスタンスを Exadata インフラストラクチャの物理的に近い位置に配置します。追加料金はかかりません。測定と検証の手順は「 Oracle Database@AWS の高性能ネットワーキング入門 」の「Measuring Network Latency」セクションを参照してください。 まとめ 本記事では、ワークロードの SQL*Net レイテンシー特性が ODB@AWS のマルチクラウドデプロイアーキテクチャに適合するかどうかを段階的に判断する手法として、CRET 手法を紹介しました。高速かつ高頻度で、少数のセッションに集中して実行される SQL 文を分析すれば、移行前に SQL*Net レイテンシーへの感度を把握できます。 CRET の評価でレイテンシーに敏感と判明したワークロードについては、ODB@AWS アーキテクチャを候補から外す前に、配列フェッチ、バルク処理、ストアドプロシージャを使って SQL*Net のラウンドトリップを減らすことを検討してください。 著者について Sameer Malik Sameer は、AWS のプリンシパル Solutions Architect として、エンタープライズデータベースとクラウドデータプラットフォームのモダナイゼーションを担当しています。Oracle、Exadata、PostgreSQL、Amazon Aurora、Amazon RDS に精通し、複雑なデータベース環境を、最新のアプリケーションや AI を支えるスケーラブルで回復力の高いプラットフォームへと変革する取り組みを支援しています。 Kevin Closson Kevin は、AWS の RDS Commercial Engines グループに所属するプリンシパルデータベースエンジニアです。データベースプラットフォームのパフォーマンスに精通し、Amazon RDS を含むさまざまなプラットフォームの I/O 性能テストに広く使われている SLOB (Silly Little Oracle Benchmark) ツールの作成者です。 この記事は Solutions Architect の 矢木 覚 が翻訳しました。