AWSのブログ - TECH PLAY

TECH PLAY

AWS

AWS の技術ブログ

å…š3642ä»¶

この蚘事では、 Amazon DynamoDB デヌタに察する怜玢を Amazon OpenSearch Service ずの れロ ETL 統合を䜿甚しお実装する方法を玹介したす。デヌタパむプラむンの構築ず保守を行うこずなく、アプリケヌションに党文怜玢、あいたい䞀臎、耇雑な怜玢ク゚リを远加する方法を孊びたす。 Amazon DynamoDB は、倧芏暡な環境で 1 桁ミリ秒の応答時間ず高スルヌプット操䜜を必芁ずするアプリケヌションに最適な遞択肢です。OpenSearch Service ず組み合わせるこずで、アプリケヌションは耇雑な怜玢ず分析のための匷力な機胜を獲埗したす。このれロ ETL 統合がアプリケヌションの怜玢機胜をどのように匷化できるかを瀺す実甚的なナヌスケヌスを芋おいきたしょう。 珟状の抂芁 AnyCompany は、゚コフレンドリヌで持続可胜な補品を専門ずする架空のオンラむンマヌケットプレむスで、䞖界䞭の環境意識の高い消費者にサヌビスを提䟛しおいたす。圌らのアプリケヌションは AWS サヌバヌレスアヌキテクチャ 䞊で動䜜しおおり、 AWS Lambda 関数が e コマヌス操䜜を凊理したす。補品情報や圚庫詳现などのコアトランザクションデヌタは DynamoDB に保存されおいたす。 AnyCompany の補品甚 DynamoDB テヌブルレむアりトには、以䞋の属性が含たれたす 属性 䟋 product_id ( パヌティションキヌ ) Id_1 name ECO T-Shirt description Organic CottonTee price 100 rating 5 category Activewear brand AnyCompany tags organic specs {“color”:”white”,”size”:”M”} stock 48 created_at 2025-12-16T16:15:43.473864+0000 updated_at 2025-12-16T16:15:43.473864+0000 曞き蟌み操䜜では、AnyCompany は DynamoDB を䜿甚しおデヌタの䞀貫性を維持したす。補品情報を曎新する際、システムは product_id をパヌティションキヌずしお䜿甚しお補品の曎新を実行したす。AnyCompany の補品カタログの拡倧により、顧客の怜玢パタヌンがより耇雑になり、システムはバリ゚ヌション、スペルミス、セマンティックク゚リ、ファセット怜玢顧客が䟡栌垯、ブランド、評䟡、補品カテゎリなどの耇数の属性を䜿甚しお補品をフィルタリングし、絞り蟌むこずができる機胜を凊理する必芁がありたす。 䌁業が拡倧するに぀れお、以䞋のような怜玢シナリオが浮䞊しおいたす マルチフィヌルド怜玢 – 顧客は、補品名、説明、カテゎリ、タグなどの耇数のフィヌルドを同時に怜玢する必芁がありたす。 マルチレンゞ怜玢 – 顧客は、䟡栌垯$20-$50や評䟡4-5 ぀星など、耇数の基準で補品をフィルタリングしたいず考えおいたす。 発芋ずナビゲヌション – 顧客は、ファセット怜玢を䜿甚しお結果を段階的に絞り蟌みカテゎリ、ブランドなどのフィルタを䜿甚、動的な集蚈を通じお遞択肢を理解したいカテゎリ別の補品数、ブランド、評䟡の分垃を確認するなどず考えおいたす。 あいたい怜玢ず提案 – 顧客は、タむプミスやスペルミスがあっおも怜玢が機胜するこずを望んでいたす䟋えば、「reuseble botl」ず入力しおも「reusable water bottle」が芋぀かる。たた、入力䞭にオヌトコンプリヌト提案を受け取り、補品をより迅速に芋぀けられるようにしたいず考えおいたす。 セマンティック怜玢 – 顧客は、正確な補品名ではなく自然蚀語の説明を䜿甚するこずがよくありたす。䟋えば、「biodegradable kitchen storage containers」を怜玢するず、関連する゚コフレンドリヌな食品保存補品が返されるべきです。 AWS は DynamoDB ず OpenSearch Service 間のれロ ETL 統合 を提䟛し、これら 2 ぀のサヌビス間でデヌタを同期したす。この統合により、カスタムデヌタパむプラむンを構築および保守するこずなく、OpenSearch Service の怜玢機胜で DynamoDB ベヌスのアプリケヌションを補完し、これらの怜玢芁件を満たすこずができたす。 以䞋の䟋では、OpenSearch Service が AnyCompany のこれらの怜玢シナリオで DynamoDB をどのように補完するかに぀いお説明したす。 マルチフィヌルド怜玢 顧客の怜玢パタヌンは本質的に動的であり、顧客は垞に補品を怜玢する新しい方法を求めおいたす。AnyCompany では、顧客は怜玢ク゚リが耇数の補品属性に同時に䞀臎するこずを望んでおり、補品名、説明、カテゎリ、タグで䞀臎を探しお、関連するアむテムを芋逃さないようにしおいたす。 OpenSearch は、怜玢ナヌスケヌスをカスタマむズし、怜玢の関連性を向䞊させるための倚くの機胜を提䟛したす。完党なリストに぀いおは、 怜玢機胜 を参照しおください。OpenSearch は、デヌタを怜玢するために䜿甚できる ク゚リドメむン固有蚀語DSL ず呌ばれる怜玢蚀語を提䟛したす。 以䞋は、この機胜を実装するク゚リの䟋です GET products/_search { "query": { "bool":{ "should": [ { } ] } }, "size":20 } マルチレンゞ怜玢 前述の怜玢機胜に基づいお、AnyCompany の顧客は、特定の䟡栌垯$25–50内の補品を怜玢しながら、特定のカテゎリず評䟡を考慮するなど、耇数のフィルタリング基準を組み合わせたいず考えるこずがよくありたす。 OpenSearch Service では、さたざたな方法を䜿甚しお怜玢結果をフィルタリングできたす。各方法は特定のシナリオに適しおいたす。ク゚リレベルでフィルタを適甚し、 Boolean ク゚リ句ず post_filter および aggregation レベルのフィルタを䜿甚できたす。 以䞋は、この機胜を実装するク゚リの䟋です GET products/_search { "query": { "bool":{ "should": [ { "multi_match": { "query": "Men's Wear", "fields": ["name.ngram","description","category","tags"] } } ], } }, "size":20 } 発芋ずナビゲヌション AnyCompany では、顧客は特定のアむテムを怜玢するのではなく、むンタラクティブなむンタヌフェヌスを通じお補品を発芋したいず考えおいたす。䟋えば、持続可胜なファッションを閲芧しおいる顧客は、「Men’s Wear」の怜玢から始めお、利甚可胜な補品の党䜓像を理解したいず考えるかもしれたせん。圌らは、利甚可胜なカテゎリ、持続可胜なオプションを提䟛するブランド、䞀般的な䟡栌垯、補品評䟡を確認したいず考えおいたす。集蚈されたデヌタは通垞、サむドバヌにフィルタリングオプションずしお衚瀺され、顧客が盎感的に怜玢結果を絞り蟌むこずができたす。 OpenSearch 集蚈 を䜿甚するず、デヌタを分析し、そこから統蚈を抜出できたす。メトリクス集蚈を適甚しお簡単な蚈算を実行したり、バケット集蚈を䜿甚しおドキュメントのセットをバケットずしお分類したり、パむプラむン集蚈を䜿甚しお耇数の集蚈を連鎖させたりできたす。 以䞋は、この機胜を実装するク゚リの䟋です GET products/_search { "query": { "bool":{ "should": [ { "multi_match": { "query": "Men's Wear", "fields": ["name.ngram","description","category","tags"] } } ] } }, "aggs": { "categories": {"terms":{"field":"category.keyword","size":10}}, "brands":{"terms":{"field":"brand.keyword","size":10}}, "colors":{"terms":{"field":"specs.color","size":10}}, "sizes":{"terms":{"field":"specs.size","size":10}}, "size":20 } あいたい怜玢ず提案 AnyCompany では、顧客は䞍完党な蚘憶で補品を怜玢するこずが倚く、タむプミスをしながらも、意図を予枬できるリアルタむムの怜玢提案を期埅しおいたす。䟋えば、「Omga」ず入力するず、タむプミスを蚱容し、「OmegaWear」や「Omega Eco Essentials」などの関連補品を提案する必芁がありたす。これには、スペルのバリ゚ヌションやタむプミスを凊理しながら、ショッピング䜓隓を向䞊させる怜玢提案を提䟛する堅牢な怜玢システムが必芁です。OpenSearch では、キヌストロヌクごずに曎新され、関連する提案を提䟛し、タむプミスを蚱容するオヌトコンプリヌト機胜を蚭蚈できたす。 以䞋は、この機胜を実装するク゚リの䟋です GET products/_search { "suggest": { "product_suggest": { "prefix": "Om", }, "size": 5 } } } } セマンティック怜玢 AnyCompany では、顧客は特定の補品名やカテゎリではなく、「red beach hat for summer」のような自然なフレヌズを䜿甚しお補品のニヌズを衚珟するこずがよくありたす。この盎感的な怜玢方法には、キヌワヌドの䞀臎だけでなく、顧客のク゚リの背埌にあるセマンティックな意味を理解するシステムが必芁です。 OpenSearch は、 ベクトル怜玢 を通じおこの自然な怜玢䜓隓を可胜にしたす。システムは、顧客のク゚リをベクトル埋め蟌みテキストのセマンティックな意味を捉える数倀衚珟に倉換したす。これにより、正確なキヌワヌド䞀臎ではなく、抂念的な類䌌性に基づいお䞀臎させるこずができたす。 以䞋は、この機胜を実装するク゚リの䟋です GET /products/_search { "query": { }, "aggs": { "categories": { "terms": { "field": "category" }}, "brands": { "terms": { "field": "brand" }}, "avg_rating": { "avg": { "field": "rating" }} }, "size": 20 } 以䞋のセクションでは、既存の Amazon DynamoDB 操䜜を維持しながら、怜玢機胜をサポヌトする゜リュヌションを実装する方法を瀺したす。 ゜リュヌションの抂芁 以䞋の図は、゜リュヌションアヌキテクチャを瀺しおいたす。 AnyCompany の既存のアヌキテクチャは、 Amazon API Gateway が顧客のリク゚ストを AWS Lambda 関数にルヌティングするサヌバヌレスパタヌンに埓っおいたす。この関数は、プラむマリデヌタストアずしお機胜する DynamoDB テヌブルに察しお読み取りおよび曞き蟌み操䜜を実行したす。 既存のアヌキテクチャを補完するために、AnyCompany は DynamoDB ず OpenSearch Service 間のれロ ETL 統合を実装したす。統合は 2 ぀のフェヌズでデヌタを同期したす ポむントむンタむムリカバリPITR は既存の DynamoDB デヌタを Amazon S3 に゚クスポヌトしお初期スナップショットを䜜成し、 DynamoDB Streams は継続的な倉曎をキャプチャしお OpenSearch サヌビスにほがリアルタむムで曎新したす。 セマンティック怜玢に必芁な リモヌト掚論 を有効にするために、 OpenSearch ML コネクタ を䜿甚しお OpenSearch を Amazon Bedrock の Titan テキスト埋め蟌み モデルに接続できたす。 OpenSearch Ingestion パむプラむンはこれらのストリヌムを消費し、必芁に応じおデヌタを倉換し、ほがリアルタむムで OpenSearch Service に同期したす。同期゚ラヌをキャプチャするために、デッドレタヌキュヌDLQずしお Amazon Simple Storage Service Amazon S3バケットを指定したす。 怜玢機胜をサポヌトするために、゜リュヌションは OpenSearch Service を䜿甚しお怜玢リク゚ストを凊理する新しい Lambda 関数を远加したす。この関数は OpenSearch Service SDK を䜿甚しおクラむアントを䜜成し、怜玢ク゚リを実行したす。この新しい関数は、既存の操䜜を凊理し続ける既存の曞き蟌み Lambda 関数ず䞊行しお動䜜したす。 この蚭蚈により、AnyCompany は e コマヌスワヌクロヌドを維持しながら、堅牢な怜玢機胜を実装できたす。 Amazon DynamoDB ず Amazon OpenSearch Service 間のれロ ETL 統合の実装 このセクションでは、匷化された怜玢機胜のためのセマンティック怜玢機胜を含む、DynamoDB ず OpenSearch Service 間のれロ ETL 統合をセットアップする方法を瀺したす。 前提条件 この゜リュヌションをセットアップするには、以䞋が必芁です AWS アカりント 。 以䞋の AWS リ゜ヌスを䜜成および管理するための適切な AWS Identity & Access Management IAM暩限 DynamoDB テヌブル。 OpenSearch ドメむン 。 Amazon OpenSearch IngestionOSISパむプラむン。 CloudFormation テンプレヌト 。 DynamoDB ゚クスポヌトおよび DLQ むベント甚の Amazon S3 汎甚バケット。 Amazon Titan Embeddings G1 が有効になっおいる Amazon Bedrock。詳现に぀いおは、 Amazon Bedrock 基盀モデルぞのアクセス を参照しおください。 実装手順 ステップ 1DynamoDB テヌブルの䜜成 ゜リュヌションのりォヌクスルヌの目的で、「Products」ずいう名前の新しい DynamoDB テヌブルを䜜成したす。既存の DynamoDB テヌブルでこの゜リュヌションを実装する堎合は、このステップをスキップできたす。以䞋の AWS CLI コマンドを実行しおテヌブルを䜜成したす aws dynamodb create-table \ --table-name Products \ --attribute-definitions \ AttributeName=product_id,AttributeType=S \ --key-schema \ AttributeName=product_id,KeyType=HASH \ --billing-mode PAY_PER_REQUEST \ --region us-east-1 テヌブルのステヌタスが CREATING から ACTIVE に倉わるたで埅ちたす。ステヌタスは以䞋で確認できたす aws dynamodb describe-table \ --table-name Products \ --region us-east-1 \ --query 'Table.TableStatus' ステップ 2DynamoDB Streams ずポむントむンタむムリカバリPITRの有効化 以䞋の AWS CLI コマンドを実行したす aws dynamodb update-table \ --table-name Products \ --stream-specification \ StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES \ --region us-east-1 aws dynamodb update-continuous-backups \ --table-name Products \ --point-in-time-recovery-specification \ PointInTimeRecoveryEnabled=true \ --region us-east-1 ステップ 3OpenSearch ドメむンの䜜成 以䞋の AWS CLI コマンドを実行しおドメむンを䜜成したす aws opensearch create-domain \ --domain-name demo \ --engine-version "OpenSearch_3.1" \ --cluster-config InstanceType=t3.small.search,InstanceCount=1 \ --ebs-options EBSEnabled=true,VolumeType=gp3,VolumeSize=10 \ --access-policies '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"*"},"Action":"es:*","Resource":"arn:aws:es:us-east-1:YOUR_ACCOUNT_ID :domain/demo/*"}]}' \ --advanced-security-options '{"Enabled":true,"InternalUserDatabaseEnabled":true,"MasterUserOptions":{"MasterUserName":"admin","MasterUserPassword": "YourStrongPassword123!"}}' \ --node-to-node-encryption-options Enabled=true \ --encryption-at-rest-options Enabled=true \ --domain-endpoint-options EnforceHTTPS=true \ --region us-east-1 泚意 YOUR_ACCOUNT_ID を実際の AWS アカりント ID に眮き換えおください YourStrongPassword123! を匷力なパスワヌドに眮き換えおくださいOpenSearch Dashboards ぞのログむンに䜿甚するため保存しおください ドメむンのステヌタスを確認 aws opensearch describe-domain \ --domain-name demo \ --region us-east-1 \ --query 'DomainStatus.{Status:Processing,Endpoint:Endpoint }' Processing フィヌルドが Status false を返すたで埅ちたす。これはドメむンがアクティブであるこずを瀺したす。アクティブになったら、EndpointAPI アクセス甚をメモし、䜜成したマスタヌナヌザヌ名ずパスワヌドを䜿甚しお OpenSearch Dashboards URL通垞は https:///_dashboards/に移動したす。 ステップ 4OpenSearch セキュリティ蚭定の構成 OpenSearch Service ドメむンの OpenSearch Dashboards プラグむンに移動したす。Dashboards ゚ンドポむントは、 OpenSearch Service コン゜ヌル のドメむンダッシュボヌドで確認できたす。 メむンメニュヌから Security 、 Roles を遞択し、 ml_full_access ロヌルを遞択したす。 Mapped users 、 Manage mapping を遞択したす。 Backend roles の䞋に、ドメむンを呌び出す暩限が必芁な Lambda ロヌルの ARN を远加したす。 arn:aws:iam:::role/LambdaInvokeOpenSearchMLCommonsRole Map を遞択し、ナヌザヌたたはロヌルが Mapped users の䞋に衚瀺されるこずを確認したす。 このマッピングにより、モデル統合に必芁な暩限が有効になりたす。このロヌルは、モデル ID を登録する次のステップで䜜成されたす。 図 2OpenSearch セキュリティ蚭定 ステップ 5Bedrock モデル統合のセットアップ リモヌト掚論を䜿甚するず、Amazon SageMaker AI や Amazon Bedrock などの ML サヌビスでモデル掚論をリモヌトでホストし、ML コネクタを䜿甚しお Amazon OpenSearch Service に接続できたす。 リモヌト掚論のセットアップを容易にするために、Amazon OpenSearch Service はコン゜ヌルで AWS CloudFormation テンプレヌトを提䟛したす。 Amazon OpenSearch Service コン゜ヌル を開きたす。 巊偎のナビゲヌションペむンで、 Integrations を遞択したす。 Integrate with Amazon Titan Text Embeddings model through Amazon Bedrock を遞択したす Configure domain 、 Configure public domain を遞択したす。 「Amazon OpenSearch Endpoint」ず「Model region」のパラメヌタ倀を入力したす。 「 I acknowledge that AWS CloudFormation might create IAM resources 」をチェックしたす Create stack を遞択したす スタックのデプロむが正垞に完了したら、Outputs タブに移動し、 Model Id をメモしたす。 図 3Bedrock モデル統合 ステップ 6OpenSearch Ingest パむプラむンのセットアップ Amazon Bedrock のモデルを䜿甚しお入力フィヌルド description から埋め蟌みを䜜成し、 description_embedding ずいう名前のフィヌルドにマッピングする むンゞェストパむプラむン を䜜成したす。 ドメむンの OpenSearch Dashboards URL に移動したす。URL は OpenSearch Service コン゜ヌル のドメむンダッシュボヌドで確認できたす。 巊偎のナビゲヌションパネルを開き、 DevTools を遞択したす。 埋め蟌みパむプラむンを䜜成したす PUT /_ingest/pipeline/bedrock-embedding-pipeline { "description": "A text embedding pipeline", "processors": [ { "text_embedding": { "model_id": "<your_model_id>", // 前のステップの ModelId に眮き換えたす。 "field_map": { "description": "description_embedding" }, "skip_existing": true } } ] } 図 4OpenSearch Ingest パむプラむンの䜜成 ステップ 7OpenSearch むンデックステンプレヌトの準備 ナヌスケヌスのれロ ETL 統合パむプラむンをセットアップする前に、怜玢芁件を分析し、最適なパフォヌマンスのための適切なむンデックステンプレヌトを蚭蚈したす。 以䞋のガむドラむンを怜蚎しおください アクセスパタヌンを分析し、怜玢可胜にする必芁があるフィヌルドを決定し、適切なフィヌルドタむプを遞択したす。 product_id や category のような正確な䞀臎には keyword を䜿甚したす。 党文怜玢機胜には、アナラむザヌ付きの text を䜿甚したす。 タむムスタンプフィヌルドには date を䜿甚したす。 フィヌルド遞択を最適化するために、凊理オヌバヌヘッドを削枛するために必芁なフィヌルドのみをむンデックス化したす。 特殊な怜玢ニヌズに察しおカスタムアナラむザヌを実装したす。䟋えば、オヌトコンプリヌト機胜には n-gram アナラむザヌを䜿甚し、郚分䞀臎を可胜にしたす。 セマンティック怜玢芁件を決定したす。ビゞネスナヌスケヌスに適したフィヌルドを埋め蟌みたす。遞択した埋め蟌みモデルずパフォヌマンス芁件に基づいお、適切な次元ずアルゎリズムでベクトルフィヌルドマッピングを構成したす。 以䞋は、マッピングテンプレヌトの䟋です { "template": { "settings": { "index": { "number_of_shards": 1, "number_of_replicas": 1, "knn": true, "knn.algo_param.ef_search": 100, "default_pipeline": "bedrock-embedding-pipeline" }, "analysis": { "analyzer": { "custom_analyzer": { "type": "custom", "tokenizer": "standard", "filter": [ "lowercase", "stop" ] }, "ngram_analyzer": { "type": "custom", "tokenizer": "standard", "filter": [ "lowercase", "ngram_filter" ] } }, "filter": { "ngram_filter": { "type": "ngram", "min_gram": 4, "max_gram": 5 } } } }, "mappings": { "properties": { "product_id": { "type": "keyword" }, "name": { "type": "text", "analyzer": "custom_analyzer", "fields": { "keyword": { "type": "keyword" }, "ngram": { "type": "text", "analyzer": "ngram_analyzer" }, "suggest": { "type": "completion", "analyzer": "simple" } } }, "description": { "type": "text", "analyzer": "custom_analyzer" }, "price": { "type": "float" }, "rating": { "type": "float" }, "category": { "type": "text", "fields": { "keyword": { "type": "keyword" } } }, "brand": { "type": "text", "fields": { "keyword": { "type": "keyword" } } }, "tags": { "type": "text", "fields": { "keyword": { "type": "keyword" } } }, "specs": { "properties": { "color": { "type": "keyword" }, "size": { "type": "keyword" }, "weight": { "type": "float" }, "dimensions": { "type": "keyword" } } }, "stock": { "type": "integer" }, "created_at": { "type": "date" }, "updated_at": { "type": "date" }, "description_embedding": { "type": "knn_vector", "dimension": 1536, "method": { "engine": "faiss", "space_type": "l2", "name": "hnsw", "parameters": { } } } } } } } ステップ 8OpenSearch Ingestion パむプラむンのセットアップ DynamoDB Service コン゜ヌル を開き、 Integrations を遞択し、統合を䜜成しお Amazon OpenSearch を遞択したす。 ゜ヌスDynamoDB テヌブルの構成 ドロップダりンから統合の゜ヌスずなる DynamoDB テヌブルを遞択したす。 Enable Stream Enable Export を有効にし、S3 Bucket、S3 region を構成したす Configure processor デヌタ倉換のためのプロセッサヌをセットアップ Configure sink OpenSearch ドメむン Choose a domain 「Index Name」ずしお「products」ず入力したす。 Customized Mapping を遞択し、ステップ 7 で定矩したテンプレヌトを䜿甚したす。 倱敗したむベントをオフロヌドし、分析甚にアクセス可胜にするために、デッドレタヌキュヌDLQを有効にしたす。S3 バケット名ずリヌゞョンを入力したす。 Configure pipeline 䞀意のパむプラむン名を入力したす珟圚の AWS アカりントの珟圚のリヌゞョン内で。 芁件に応じおパむプラむン容量を構成したす。単䞀の Ingestion OpenSearch Compute UnitOCUは、課金可胜なコンピュヌティングおよびメモリナニットを衚したす。デヌタパむプラむンの実行に䜿甚される OCU の数に基づいお時間単䜍で課金されたす。ベヌスラむンずしお、1 ぀の OCU は䞀般的なワヌクロヌドで最倧 2 MiB/秒を凊理できたす。ワヌクロヌドに応じお最小および最倧 OCU 容量を入力したす。 OpenSearch Ingestion は、他のサヌビスを代理で䜿甚するための暩限が必芁です。 Create and use a new service role を遞択したす。 ステップ 4 ず同様に、OSIS パむプラむンの IAM ロヌルを OpenSearch all_access ロヌルのバック゚ンドロヌルずしおマッピングしたす。これにより、デヌタむンゞェストのための安党できめ现かいアクセス制埡が可胜になりたす。 Review and create すべおの構成を確認したす。 Preview pipeline を遞択し、yaml ファむルを確認したす。 Create Pipeline を遞択しおパむプラむンを䜜成したす。 図 5OpenSearch Ingestion パむプラむンの䜜成 怜蚌 れロ ETL 統合をセットアップした埌、デヌタが耇補されおいるこずをテストおよび怜蚌できたす。 DynamoDB にサンプルアむテムを䜜成したす。以䞋は、アむテムを䜜成するサンプルシェルスクリプトです #!/bin/bash for i in {1..10}; do colors=("red" "white" "green" "blue" "black") sizes=("XS" "S" "M" "L" "XL") products=("Hoodie" "Jacket" "Pants" "Shorts" "Sweater" "Joggers" "Tank Top" "Polo Shirt" "Vest" "Leggings") categories=("Activewear" "Men's Wear" "Women's Wear" "Loungewear" "Outerwear") brands=("AnyCompany1" " AnyCompany2" " AnyCompany3" " AnyCompany4" " AnyCompany5" " AnyCompany6") features=("Sustainably crafted" "Eco-friendly materials" "Ethically produced" "Premium quality" "Organic materials") color=${colors[$((RANDOM % 5))]} features=${features[$((RANDOM % 5))]} size=${sizes[$((RANDOM % 5))]} category=${categories[$((RANDOM % 5))]} brand=${brands[$((RANDOM % 6))]} product_name=${products[$((i - 1))]} timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ") aws dynamodb put-item \ --table-name Products \ --region us-east-1 \ --item "{ \"product_id\": {\"S\": \"product_$i\"}, \"name\": {\"S\": \"$brand $product_name\"}, \"description\": {\"S\": \"$features $product_name - $category\"}, \"price\": {\"N\": \"$((100 + RANDOM % 400)).99\"}, \"rating\": {\"N\": \"4.$((RANDOM % 10))\"}, \"category\": {\"S\": \"$category\"}, \"brand\": {\"S\": \"$brand\"}, \"tags\": {\"L\": [{\"S\": \"organic\"}, {\"S\": \"sustainable\"}, {\"S\": \"eco-friendly\"}]}, \"specs\": {\"M\": { \"color\": {\"S\": \"$color\"}, \"size\": {\"S\": \"$size\"}, \"weight\": {\"N\": \"0.$((RANDOM % 9 + 1))\"}, \"dimensions\": {\"S\": \"$((RANDOM % 30 + 10))x$((RANDOM % 30 + 10))x$((RANDOM % 10 + 1))\"} }}, \"stock\": {\"N\": \"$((RANDOM % 200))\"}, \"created_at\": {\"S\": \"$timestamp\"}, \"updated_at\": {\"S\": \"$timestamp\"} }" && echo "✓ Created: product_id=$i" done echo "Done!" ドメむンの OpenSearch Dashboards URL に移動したす。URL は OpenSearch Service コン゜ヌルのドメむンダッシュボヌドで確認できたす。 巊偎のナビゲヌションパネルを開き、 Dev Tools を遞択したす。 OpenSearch ぞのデヌタフロヌを確認したす。 //すべお怜玢 GET products/_search { "query": { "match_all": {} } } セマンティックナヌスケヌスク゚リを実行しお、セマンティック芁件を怜蚌したす。 GET products/_search { "query": { "neural": { "description_embedding": { "query_text": "sports", "model_id": "<ステップ 5 で取埗した model_id に曎新>" } } } } この蚘事の前半で提䟛されたク゚リを䜿甚しお、他のすべおのナヌスケヌスをテストできたす。 図 6デヌタ怜蚌 パむプラむンのセットアップを完了し、デヌタ同期を怜蚌した埌、トランザクション操䜜を DynamoDB に保持しながら、怜玢ク゚リを OpenSearch Service にルヌティングするようにアプリケヌションコヌドをリファクタリングしたす。 具䜓的な実装は、アプリケヌションアヌキテクチャずプログラミング蚀語によっお異なりたす。AWS SDK を䜿甚しお OpenSearch Service をク゚リする手順に぀いおは、 AWS SDK を䜿甚した Amazon OpenSearch Service ずの察話 を参照しおください。 ベストプラクティス DynamoDB ず OpenSearch Service 間のれロ ETL 統合を実装する際は、以䞋の ベストプラクティス を怜蚎しおください OSIS パむプラむンの゜ヌスオプションずしお DynamoDB ストリヌムを䜿甚したす。これにより、完党な初期スナップショットを必芁ずせずに、新しいレコヌドたたは曎新されたレコヌドのみがキャプチャされたす。ストリヌミングデヌタでパむプラむンフロヌをテストしたら、゚クスポヌトオプションを䜿甚しお完党なデヌタを移行したす。 Amazon VPC を䜿甚しお、パブリックむンタヌネット経由ではなく、ネットワヌク境界内で OpenSearch Ingestion パむプラむンを通じおデヌタフロヌを匷制したす。 埋め蟌みがすでに含たれおいるフィヌルドに察する冗長な API 呌び出しを防ぐために、 skip_existing フラグを有効にしお、埋め蟌み生成むンゞェストパむプラむンを最適化したす。 OpenSearch Service ドメむンず OpenSearch Ingestion パむプラむンの Amazon CloudWatch ログ を有効にしたす。これにより、デヌタフロヌ党䜓の可芖性が提䟛され、問題を迅速に特定できたす。ドメむンレベルでログを構成しお、怜玢ク゚リ、むンデックス操䜜、クラスタヌヘルスメトリクスをキャプチャしたす。OpenSearch Ingestion パむプラむンの堎合、詳现なログを有効にしお、デヌタ倉換ずむンゞェストプロセスを監芖したす。 むンゞェストパむプラむンの DLQ を構成したす。マッピング゚ラヌ、倉換の問題、たたは䞀時的なサヌビスの問題によりドキュメントの凊理が倱敗した堎合、DLQ はこれらの倱敗したレコヌドをキャプチャしお、埌で分析および再凊理できるようにしたす。これにより、デヌタ損倱が防止され、回埩メカニズムが提䟛されたす。 AWS Key Management ServiceAWS KMS を䜿甚しお、DynamoDB テヌブルず OpenSearch Service ドメむンの䞡方で保存時の暗号化を有効にし、暗号化キヌを完党に制埡し、コンプラむアンス芁件を満たしたす。 DynamoDB テヌブルで削陀保護を有効にしお、重芁なデヌタの誀削陀を防ぎ、本番ワヌクロヌドに远加の安党局を提䟛したす。 統合パむプラむンの各コンポヌネントに特定の IAM ロヌルずポリシヌを䜜成しお、最小暩限アクセスを実装し、サヌビスが機胜するために必芁な暩限のみを持぀ようにしたす。 シャヌドサむゞング、むンスタンスタむプ、デプロむ構成を含む OpenSearch Service ドメむンのサむゞング掚奚事項に぀いおは、 Amazon OpenSearch Service ドメむンサむゞングガむド を参照しおください。 モニタリングずアラヌト OpenSearch Ingestion は、パむプラむンのパフォヌマンスを監芖するのに圹立぀メトリクスを公開したす。パむプラむンの健党性を監芖する際は、以䞋の䞻芁な領域に焊点を圓おおください デヌタむンゞェストをブロックする可胜性のある認蚌の問題。 デヌタ損倱に぀ながる可胜性のあるドキュメント凊理の倱敗。 デヌタ凊理を遅くする可胜性のある容量のボトルネック。 アプリケヌションの応答時間に圱響を䞎えるパフォヌマンスの䜎䞋。 Bedrock 固有の監芖に぀いおは、モデル呌び出しのレむテンシヌ、スロットリング、トヌクン䜿甚量のメトリクスに特に泚意しおください。 これらの領域を積極的に監芖するこずで、DynamoDB から OpenSearch Service ぞの信頌性の高いデヌタフロヌを維持し、怜玢機胜の応答性を確保できたす。これらの問題を早期に怜出するために CloudWatch アラヌトを蚭定し、ナヌザヌに圱響を䞎える前にプロアクティブなアクションを実行できるようにしたす。 ログずモニタリング の詳现ずベストプラクティスに぀いおは、 Amazon OpenSearch Ingestion のベストプラクティス および Amazon Bedrock モニタリング のドキュメントを参照しおください。 コストに関する考慮事項 OpenSearch Ingestion を䜿甚した DynamoDB から OpenSearch Service ぞの統合を蚈画する際は、Amazon CloudWatch メトリクスを通じお DynamoDB の曞き蟌みスルヌプットを分析したす。DynamoDB テヌブルの曞き蟌みアクティビティは DynamoDB Streams にレコヌドを生成し、OpenSearch Ingestion パむプラむンがそれを消費したす。最小、最倧、平均の曞き蟌みリク゚ストナニットWRUを理解するこずで、OpenSearch Ingestion パむプラむンを適切にサむゞングできたす。この蚘事の執筆時点では、OpenSearch Ingestion パむプラむンは 1 から 96 の OpenSearch Compute UnitOCUにスケヌリングできたす。ベヌスラむンずしお、1 ぀の OCU は䞀般的なワヌクロヌドで最倧 2 MiB/秒を凊理できたすが、デヌタサむズ、パむプラむン倉換、OpenSearch Service ドメむンのサむズずむンデックス/シャヌド戊略によっお異なる堎合がありたす。 䟋えば、テヌブルが 1 秒あたり 20,000 WRU を凊理する堎合、このスルヌプットを効率的に凊理するには最䜎 10 OCU が必芁です。総コストには、DynamoDB Streams の料金100,000 読み取りリク゚ストあたり $0.02、OpenSearch Service クラスタヌのコストむンスタンスタむプずストレヌゞに基づく、OpenSearch Ingestion パむプラむンのコストOCU 時間あたりの䟡栌、および通垞の DynamoDB コストが含たれたす。DynamoDB から OpenSearch パむプラむンにリモヌト掚論甚の Amazon Bedrock を組み蟌む堎合は、どのフィヌルドに埋め蟌みが必芁かを評䟡し、凊理するテキストデヌタの量を芋積もりたす。レコヌド数、テキストフィヌルドのサむズ、曎新頻床に基づいお、予想されるトヌクン䜿甚量を蚈算したす。コスト構造は、遞択した基盀モデルによっお異なるトヌクンごずの埓量課金モデルに埓いたす。 クリヌンアップ 継続的な料金の発生を避けるために、この゜リュヌションで䜜成したリ゜ヌスを削陀たたは無効化したす。AWS 環境をクリヌンアップするには、次の手順に埓っおください CloudFormation スタック を削陀したす CloudFormation コン゜ヌルを開きたす。 モデルアクセス甚に䜜成したスタックを遞択したす。 Delete を遞択し、削陀を確認したす。 OpenSearch リ゜ヌスを削陀したす Amazon OpenSearch Ingestion コン゜ヌルを開き、パむプラむンを削陀しお OSIS パむプラむンを削陀 したす。 Amazon OpenSearch Service コン゜ヌルを通じお OpenSearch ドメむンを削陀 したす。 DynamoDB テヌブルProductsを削陀したす。 デッドレタヌキュヌDLQず DynamoDB ゚クスポヌトに䜿甚した S3 バケットを空にしたす。 これらの手順を完了したら、各サヌビスコン゜ヌルで、すべおのリ゜ヌスが適切に削陀たたは無効化されおいるこずを確認しおください。 たずめ この蚘事では、 Amazon DynamoDB デヌタに察する怜玢を Amazon OpenSearch Service ずの れロ ETL 統合を䜿甚しお実装する方法を玹介したした。 AnyCompany の䟋を通じお、この統合が実際の怜玢課題顧客のタむプミスやセマンティックク゚リの凊理から、ファセット怜玢やマルチフィヌルド怜玢の有効化たでにどのように察凊するかを実蚌したした。 Amazon OpenSearch Service ドキュメント ず DynamoDB れロ ETL 統合ガむド を探玢しお、独自の環境でこれらの機胜の実装を開始しおください。 本蚘事は 2026 幎 02 月 18 日 に公開された “Implementing search on Amazon DynamoDB data using zero-ETL integration with Amazon OpenSearch service” を翻蚳したものです。 原文: https://aws.amazon.com/blogs/database/implementing-search-on-amazon-dynamodb-data-using-zero-etl-integration-with-amazon-opensearch-service/ 著者に぀いお Varun Sharma Varun は、AWS Professional Services チヌムで働くシニアデリバリヌコンサルタントです。 Vamsi Krishna Ganti Vamsi は、AWS Professional Services チヌムで働くシニアデリバリヌコンサルタントです。 Sudhansu Mohapatra Sudhansu は、AWS Professional Services チヌムで働くデリバリヌコンサルタントです。
2021 幎に AWS に入瀟しお以来、私は Amazon Elastic Compute Cloud (Amazon EC2) むンスタンスファミリヌが成長するのを芋おきたした。そのペヌスは今でも驚きを隠せたせん。AWS Graviton 搭茉のむンスタンスから、特殊な高速コンピュヌティングオプションたで、パフォヌマンスの限界をさらに抌し䞊げる新しいむンスタンスタむプが数か月ごずにリリヌスされおいるように感じられたす。2026 幎 2 月の時点で、AWS は 1,160 を超える Amazon EC2 むンスタンスタむプを提䟛しおおり、その数は今も増え続けおいたす。 2026 幎 2 月 16 日週最初のニュヌスである Amazon EC2 M8azn むンスタンスの䞀般提䟛はその良い䟋です。M8azn むンスタンスは、第 5 䞖代 AMD EPYC プロセッサを搭茉した高呚波で高ネットワヌクの汎甚むンスタンスであり、クラりド内で最も高い 5 GHz の最倧 CPU 呚波数を提䟛しおいたす。前䞖代の M5zn むンスタンスず比范した堎合、M8azn むンスタンスは最倧 2 倍優れたコンピュヌティングパフォヌマンス、4.3 倍広いメモリ垯域幅、10 倍倧きい L3 キャッシュを提䟛したす。たた、M5zn より最倧 2 倍のネットワヌクスルヌプット、最倧 3 倍の Amazon Elastic Block Store (Amazon EBS) スルヌプットも提䟛したす。 第 6 䞖代の Nitro Card を䜿甚しお AWS Nitro System 䞊に構築された M8azn むンスタンスは、自動車、航空宇宙、゚ネルギヌ、電気通信分野におけるリアルタむム財務分析、ハむパフォヌマンスコンピュヌティング、高頻床取匕、CI/CD パむプラむン、ゲヌム、シミュレヌションモデリングなどのワヌクロヌド向けです。このむンスタンスでは、メモリず vCPU の比率が 4:1 になっおおり、2 個から 96 個の vCPU 数、最倧 384 GiB のメモリを搭茉した 9 皮類のサむズ (2 皮類のベアメタルタむプを含む) で利甚できたす。詳现に぀いおは、 Amazon EC2 M8azn むンスタンスペヌゞ をご芧ください。 2026 幎 2 月 9 日週のリリヌス 以䞋は、2026 幎 2 月 9 日週に行われたその他の発衚の䞀郚です。 Amazon Bedrock が 6 ぀のフルマネヌゞドオヌプンりェむトモデルのサポヌトを远加 – Amazon Bedrock が、DeepSeek V3.2、MiniMax M2.1、GLM 4.7、GLM 4.7 Flash、Kimi K2.5、Qwen3 Coder Next のサポヌトを開始したした。これらのモデルは、フロンティア掚論ず゚ヌゞェンティックコヌディングのワヌクロヌドに察応したす。DeepSeek V3.2 ず Kimi K2.5 は掚論ず゚ヌゞェンティックむンテリゞェンスを察象ずしおおり、GLM 4.7 ず MiniMax M2.1 は倧芏暡な出力りィンドりでの自埋コヌディングをサポヌトし、Qwen3 Coder Next ず GLM 4.7 Flash は本番環境デプロむ甚のコスト効率に優れた代替手段を提䟛したす。Project Mantle を掻甚するこれらのモデルは、OpenAI API 仕様ずの蚭定䞍芁の互換性を提䟛したす。 ã“のリリヌスにより、仕様䞻導型の AI 開発ツヌルである Kiro での DeepSeek v3.2、MiniMax 2.1、Qwen3 Coder Next ずいった新しいオヌプンりェむトモデルの䜿甚も可胜になりたす。 Amazon Bedrock が AWS PrivateLink のサポヌトを拡倧 – Amazon Bedrock が、 bedrock-runtime ゚ンドポむントの既存サポヌトに加えお、 bedrock-mantle ゚ンドポむントでも AWS PrivateLink をサポヌトするようになりたした。bedrock-mantle ゚ンドポむントは、Amazon Bedrock で提䟛される倧芏暡な機械孊習モデル甚の分散型掚論゚ンゞンである Project Mantle を掻甚しおいたす。Project Mantle は、サヌビス品質制埡を備えたサヌバヌレス掚論、自動化されたキャパシティ管理によっお匕き䞊げられたデフォルトカスタマヌクォヌタ、OpenAI API 仕様ずの蚭定䞍芁の互換性を提䟛したす。OpenAI API 互換゚ンドポむントの AWS PrivateLink サポヌトは、14 の AWS リヌゞョンでご利甚いただけたす。䜿甚を開始するには、Amazon Bedrock コン゜ヌルにアクセスするか、OpenAI API 互換性ドキュメントを参照しおください。 Amazon EKS Auto Mode がマネヌゞド Kubernetes 機胜のための匷化されたロギング機胜を発衚 – Amazon EKS Auto Mode で Amazon CloudWatch Vended Logs を䜿甚するログ配信゜ヌスを蚭定できるようになりたした。これは、Auto Mode のマネヌゞド Kubernetes 機胜からコンピュヌティングの自動スケヌリング、ブロックストレヌゞ、負荷分散、ポッドネットワヌキングに関するログを収集するために圹立ちたす。各 Auto Mode 機胜は、AWS 認蚌ず承認が組み蟌たれた CloudWatch Vended Logs 配信゜ヌスずしお、暙準の CloudWatch Logs よりも䜎い料金で蚭定できたす。ログは、CloudWatch Logs、Amazon S3、たたは Amazon Data Firehose を宛先ずしお配信できたす。この機胜は、EKS Auto Mode が提䟛されおいるすべおのリヌゞョンでご利甚いただけたす。 Amazon OpenSearch Serverless がコレクショングルヌプのサポヌトを開始 – 新しいコレクショングルヌプを䜿甚しお、異なる AWS Key Management Service (AWS KMS) キヌを持぀コレクションの党䜓で OCU (OpenSearch Compute Unit) を共有できるようになりたした。コレクショングルヌプは、コレクションレベルのセキュリティずアクセス制埡を維持しながら、共有コンピュヌティングモデルを通じお党䜓的な OCU コストを削枛したす。たた、最倧 OCU 制限に加えお最小 OCU 割り圓おを指定するこずも可胜になったため、遅延の圱響を受けやすいアプリケヌションの起動時におけるベヌスラむンキャパシティが保蚌されたす。コレクショングルヌプは、珟圚 Amazon OpenSearch Serverless が提䟛されおいるすべおのリヌゞョンでご利甚いただけたす。 Amazon RDS がスナップショットの埩元時におけるバックアップ蚭定のサポヌトを開始 – スナップショット埩元操䜜の実行前ず実行䞭にバックアップ保持期間ず垌望するバックアップりィンドりを衚瀺し、倉曎できるようになりたした。これたで、埩元されたデヌタベヌスむンスタンスずクラスタヌはスナップショットメタデヌタからのバックアップパラメヌタ倀を継承し、倉曎できるのは埩元完了埌のみでした。これからは、自動バックアップずスナップショットの䞀郚ずしおバックアップ蚭定を衚瀺し、埩元時にこれらの倀を指定たたは倉曎できるようになるため、埩元埌に倉曎する必芁がなくなりたす。この機胜は、すべおの AWS 商甚リヌゞョンず AWS GovCloud (米囜) リヌゞョンにあるすべおの Amazon RDS デヌタベヌス゚ンゞン (MySQL、PostgreSQL、MariaDB、Oracle、SQL Server、Db2) ず Amazon Aurora (MySQL 互換および PostgreSQL 互換゚ディション) で利甚でき、远加料金はかかりたせん。 AWS のお知らせに関する詳しいリストに぀いおは、「 AWS の最新情報 」ペヌゞをご芧ください。 近日開催予定の AWS むベント カレンダヌを確認しお、近日開催予定の AWS むベントにサむンアップしたしょう。 AWS Summit – 2026 幎の AWS Summit に参加したしょう。AWS Summit は、クラりドおよび AI 関連の新興テクノロゞヌを探求し、ベストプラクティスに぀いお孊び、業界の同業者や専門家ず぀ながるこずができる無料の察面むベントです。Summit は、 パリ (4 月 1 日)、 ロンドン (4 月 22 日)、 バンガロヌル (4 月 23〜24 日) で開催される予定です。 AWS AI and Data Conference 2026 – 3 月 12 日にアむルランドの Lyrath Convention Centre で開催される、1 日限りの無料察面むベントです。このカンファレンスでは、Amazon Bedrock、Amazon SageMaker、QuickSight を甚いた゚ヌゞェントの蚭蚈、トレヌニング、およびデプロむの他、゚ヌゞェントの AWS デヌタサヌビスずの統合、゚ヌゞェントを倧芏暡に運甚するためのガバナンスプラクティスの適甚ずいったトピックを取り䞊げたす。アゞェンダには、アヌキテクト、開発者、ビゞネスリヌダヌ向けの戊略的ガむダンスずハンズオンラボが含たれおいたす。 AWS Community Day – コミュニティリヌダヌたちがコンテンツを蚈画、調達、提䟛するコミュニティ䞻導のカンファレンスであり、テクニカルディスカッション、ワヌクショップ、ハンズオンラボが行われたす。このむベントは、 アヌメダバヌド (2 月 28 日)、 スロバキア (3 月 11 日)、 プネヌ (3 月 21 日) で開催される予定です。 AWS Builder Center に参加しお、ビルダヌず぀ながり、゜リュヌションを共有し、開発をサポヌトするコンテンツにアクセスしたしょう。こちらのリンクから、今埌開催されるすべおの AWS 䞻導の察面むベントおよび仮想むベント ず デベロッパヌ向けのむベント をご芧ください。 2026 幎 2 月 16 日週のニュヌスは以䞊です。2026 幎 2 月 23 日週の Weekly Roundup もお楜しみに! – Esra この蚘事は、Weekly Roundup シリヌズの䞀郚です。毎週、AWS からの興味深いニュヌスや発衚を簡単にたずめおお知らせしたす! 原文は こちら です。
りェブサむトのパフォヌマンス問題はよくあるこずですが、根本原因の特定は困難な䜜業ずなりたす。この投皿では、 Server-Timing ヘッダヌ の朜圚胜力を匕き出すこずで、パフォヌマンスに関するトラブルシュヌティングのプロセスをシンプルにする方法を孊びたす。 Server-Timing ヘッダヌは、バック゚ンドのコンポヌネントがナヌザヌリク゚ストぞのレスポンスにおいお、タむミングメトリクスやパフォヌマンスモニタリングに関するむンサむトを䌝達できるようにしたす。 りェブサむトのアクセスでは、画像倉換などのコンテンツ最適化やデヌタベヌスからの動的なデヌタ取埗を含んだ、耇雑なサヌバヌサむドのプロセスが関䞎しおいたす。遅いリク゚ストの原因ずなるサヌバヌやプロセスを特定するには、耇数のログを突き合わせお分析する必芁があり、時間がかかっおしたいたす。このプロセスをシンプルにするこずで迅速に問題を解決できたす。具䜓的には、ナヌザヌ䜓隓の品質シグナルずサヌバヌサむドのパフォヌマンス指暙ずを盎接関連付けお、単䞀のログ行内にカプセル化するこずで実珟したす。この方法は、広範なデヌタク゚リや盞関分析が䞍芁であり、パフォヌマンス問題を玠早く特定し、原因ずなるサヌバヌコンポヌネントたで远跡するこずを可胜にしたす。このアプロヌチの実䟋ずしお Common Media Client DataCMCD が挙げられたす。 CMCD は動画ストリヌミング業界で最近生たれた革新的な技術で、クラむアントおよびサヌバヌ䞡方のオブサヌバビリティデヌタを単䞀のリク゚ストログ行にシヌムレスに統合するものです。りェブサむトにおいおは、 Server-Timing ヘッダヌを実装するこずで同様の方匏を採甚できたす。サヌバヌサむドのメトリクスずクラむアントサむドで利甚可胜なメトリクスずを効果的に統合し、特定のリク゚スト-レスポンスサむクルのパフォヌマンスを包括的に把握するのです。 私たちが提案する゜リュヌションは 2 ぀のパヌトで構成されたす。第䞀に、゚ンドナヌザヌのレむテンシを枬定しおパフォヌマンス問題を特定するこず、第二に、そうした問題が発生した際にサヌバヌのむンサむトに即座にアクセスするこずです。 たず前者を取り䞊げおから、 Server-Timing の実装に぀いお掘り䞋げおいきたしょう。 パフォヌマンス問題の怜出 りェブサむトのパフォヌマンスはレむテンシに倧きく䟝存したす。レむテンシずは、ナヌザヌアクションリンクのクリックやフォヌムの送信などずサヌバヌからのレスポンスずの間の時間遅延を指したす。りェブサむトにおけるレむテンシは、通垞 Time to First Byte  TTFB 、別名 First Byte Latency  FBL の圢匏で枬定されたす。これは、りェブサむトのコンテンツがナヌザヌの画面に描画され始めるたでの速さを枬定したもので、 First Contentful Paint  FCP や Largest Contentful Paint  LCP などの Core Web Vitals シグナルに盎接圱響したす。シヌムレスなナヌザヌ䜓隓を確保するには、 TTFB を 800 ミリ秒以䞋に維持するこずが 掚奚されおいたす 。このベンチマヌクは、遅いリク゚ストを特定するための有甚な閟倀ずしお機胜したす。 Amazon CloudFront のようなサヌビスを掻甚するこずで、静的および 動的コンテンツ 䞡方の TTFB の改善に圹立ちたす。 クラむアントサむドの芖点で TTFB を枬定する際は、ナヌザヌのリク゚スト開始時点から、サヌバヌからのレスポンスの最初のバむト受信時点たでの時間を察象範囲ずしたす。この蚈算には、ネットワヌク䌝送時間やサヌバヌサむドでのすべおの凊理時間が含たれおおり、りェブサむトのアヌキテクチャに応じお、コンテンツ配信ネットワヌク CDN の凊理、オリゞンサヌバヌの凊理、デヌタベヌスのク゚リ、およびその他のリク゚スト凊理タスクなどが含たれたす。サヌバヌサむドの芖点で TTFB を枬定する堎合は、 サヌバヌがリク゚ストを受信しおから、レスポンスの最初のバむトをネットワヌク局に送出する時点たでの時間を察象範囲ずしたす。このずき、ネットワヌク転送時間は含たれず、 TTFB はレスポンスを開始する前のサヌバヌの凊理時間を本質的に瀺したす。さらに、リク゚ストフロヌの途䞭にサヌバヌが䜍眮するシナリオでは、サヌバヌは二重の圹割を果たしたす。䞀぀はダりンストリヌムからのリク゚ストを受信するサヌバヌずしお、もう䞀぀はアップストリヌムの他のサヌバヌにリク゚ストを転送するクラむアントずしお機胜するのです。この動䜜モデルは、 Amazon CloudFront のような CDN 内のサヌバヌにおいお䞀般的であり、そのようなサヌバヌではクラむアントサむドずサヌバヌサむドの䞡方の TTFB メトリクスが存圚するこずになりたす。 CloudFront ず゚ッゞ関数、 Application Load Balancer 、りェブサヌバヌ、デヌタベヌスなどのコンポヌネントを含む兞型的なりェブサむトアヌキテクチャでは、リク゚ストからレスポンスたでのサむクルは図 1 に瀺すように進行したす。 図 1. 兞型的なりェブサむトアヌキテクチャにおけるリク゚スト-レスポンスサむクルのタむミング 図 1 では、リク゚ストずレスポンスの開始ず終了のそれぞれのタむムスタンプを T を甚いお衚しおいたす。これらのタむムスタンプを䜿甚しお、様々な TTFB を以䞋のように蚈算したす ナヌザヌ TTFB は T1 から T18 たでの時間間隔です。ナヌザヌ゚クスペリ゚ンスをモニタリングし、掚奚倀を超えた時の問題特定をするために枬定すべき指暙です。ナヌザヌ TTFB が短いほど、レスポンスが速く、良いナヌザヌ゚クスペリ゚ンスであるこずを瀺しおいたす。 CloudFront ダりンストリヌム TTFB は T2 から T17 たでの時間間隔です。キャッシュヒット、぀たり、オリゞンでの凊理を必芁ずせず CloudFront キャッシュからリク゚ストが凊理される堎合には、 TTFB は CloudFront がリク゚ストを凊理しおレスポンスを準備するのにかかった時間のみを瀺したす。゚ッゞ関数を䜿甚するのであれば、その実行時間も含たれたす。ただし、キャッシュミスの堎合には、オリゞンがリク゚ストを凊理しおレスポンスを準備するたでにかかった時間ず、オリゞンから CloudFront ぞレスポンスを転送する時間が远加されたす。 CloudFront アップストリヌム TTFB は T3 から T14 たでの時間間隔です。これは、CloudFront がリク゚ストをオリゞンに送信し、レスポンスを受信するたでのキャッシュミスの堎合を衚しおいたす。 CloudFront ず同様に、オリゞン偎のシステム内のすべおのサヌバヌも独自の TTFB を持っおいたす。たずえば、HTML ペヌゞを生成するためにデヌタベヌスク゚リを実行する堎合に、T7 から T10 たでの時間間隔ずしお、デヌタベヌス凊理時間ず䌝送時間の䞡方を枬定したす。 アップストリヌムのコンポヌネントからダりンストリヌムぞの䌝送時間は、ダりンストリヌム TTFB からアップストリヌム TTFB を匕いた倀で掚定できたす。たずえば、CloudFront からナヌザヌぞの最初のバむトの䌝送時間は、ナヌザヌ TTFB から CloudFront ダりンストリヌム TTFB を匕いお蚈算できたす。䌝送時間が短いほど、ネットワヌク状態が良奜で、距離が短いこずを瀺したす。 ブラりザ内の JavaScript を䜿甚しおナヌザヌ TTFB を枬定するには、 Resource Timing API が䜿甚できたす。この API では、リク゚ストの開始時刻、DNS 解決時間、TCP および TLS ハンドシェむク、レスポンスの最初のバむトの受信ずいったリ゜ヌスの読み蟌みに関わるさたざたな段階のタむムスタンプを取埗できたす。これにより、TTFB の蚈算やリ゜ヌスの読み蟌みに関連するその他の有甚なタむミング情報の取埗が容易になりたす。 const timings = {}; new PerformanceObserver((entryList) => { const entries = entryList.getEntries(); entries.forEach(entry => { if (entry.responseStart > 0) { timings.userDNS = (entry.domainLookupEnd - entry.domainLookupStart).toFixed(2); timings.userTCP = (entry.connectEnd - entry.connectStart).toFixed(2); timings.userTLS = (entry.requestStart - entry.secureConnectionStart).toFixed(2); timings.userTTFB = (entry.responseStart - entry.requestStart).toFixed(2); } }); }).observe({ type: 'resource', buffered: true }); このコヌドスニペットは、りェブペヌゞから読み蟌たれた各リ゜ヌスの DNS、TCP、TLS、および TTFB のタむミングを取埗しおいたす。同様に、 Navigation Timing API を䜿甚しお、ブラりザ内のナビゲヌションリク゚ストに察しおこれらのタむミングを取埗できたす。このデヌタを䜿甚するず、レむテンシが蚱容範囲内かどうかを刀断できるだけでなく、リク゚ストの DNS、TCP、TLS 各段階の所芁時間を分析するこずもできたす。これらのメトリクスは、パケットが移動するこずになるナヌザヌずフロント゚ンドサヌバヌ間のネットワヌク距離や、ネットワヌクの茻茳状態に圱響を受けたす。これらの倀が倧きく、800 ミリ秒のベンチマヌクに近づいおいる堎合は、よりスムヌズなナヌザヌ゚クスペリ゚ンスのためにネットワヌク状態を改善する必芁があるこずを瀺しおいたす。 CloudFront は、゚ッゞロケヌションでナヌザヌに近い堎所でリク゚ストを終端するこずにより、ネットワヌクパフォヌマンスを倧幅に向䞊させるこずができたす。 しかし、サヌバヌサむドが原因のパフォヌマンス問題はこのデヌタでは可芖化できたせん。そこで Server-Timing が圹立ちたす。 Server-Timing の実装 あらゆるりェブサヌバヌでは HTTP レスポンスに Server-Timing ヘッダヌを含めるこずができ、サヌバヌメトリクスを提䟛したす。このヘッダヌはすべおのモダンブラりザでサポヌトされおおり、 PerformanceServerTiming むンタヌフェヌスを䜿甚しおメトリクスを簡単に解析および取埗できたす。 CloudFront はすでに Server-Timing をサポヌトしおおり、凊理に関連するメトリクスを䌝達できたす。たずえば、cdn-downstream-fbl メトリクスは前述した CloudFront ダりンストリヌム TTFB であり、 cdn-upstream-fbl は CloudFront アップストリヌム TTFB です。その他の利甚可胜なメトリクスずその説明に぀いおは、 開発者ガむド で確認できたす。 CloudFront で Server-Timing を有効化するには、 レスポンスヘッダヌポリシヌ を䜜成したす。 Server-Timing ヘッダヌパネルの「有効」オプションを切り替え、サンプリングレヌトを指定したす。他のレスポンスヘッダヌの远加たたは削陀も必芁に応じお蚭定したす。CloudFront の Server-Timing 機胜により、CloudFront がリク゚ストを十分な速さで凊理できおいるかを評䟡できたす。キャッシュヒットの堎合、 cdn-downstream-fbl メトリクスの倀は小さくなり、これは CloudFront が迅速にレスポンスを開始したこずを瀺したす。逆に、このメトリクスの倀が倧きい堎合は、凊理が遅いこずを瀺唆し、CloudFront 偎に問題があるこずを瀺したす。キャッシュミスの堎合には、 cdn-upstream-connect ず cdn-upstream-dns メトリクスを確認しお CloudFront からオリゞンぞの接続時間の倀も評䟡したす。これらのメトリクスの倀が小さい堎合は、リク゚ストフロヌにおける次のサヌバヌ図 1 に瀺されおいる Application Load Balancer などが正垞に皌働しおおり、接続を玠早く確立し、CloudFront のオリゞン向けサヌバヌの近くに配眮されおいるこずを瀺唆しおいたす。たいおいの堎合、 cdn-upstream-connect や cdn-upstream-dns の倀は 0 になりたす。なぜならば、CloudFront の 持続的接続 機胜が以前に確立された接続を再利甚しおいるからです。 cdn-upstream-fbl メトリクスは、オリゞンからのレスポンスの最初のバむトが CloudFront に到達する速さを瀺したす。このメトリクスの倀が倧きく、 cdn-upstream-connect ず cdn-upstream-dns の倀が小さい堎合は、 Application Load Balancer の埌段にあるオリゞン偎のシステムに問題が発生し、速いレスポンスを提䟛できおいないこずを瀺したす。理想的には、これらのメトリクスがナヌザヌの経隓するレむテンシナヌザヌ TTFB に倧きく圱響を䞎えおはいけたせん。 CloudFront の Server-Timing ヘッダヌは、 CloudFront のダりンストリヌム・アップストリヌム䞡方のパフォヌマンスに関するむンサむトを提䟛したすが、リク゚スト䞭にオリゞンで䜕が起こったかを盎接教えおはくれたせん。耇数の異なるコンポヌネントやテクノロゞヌで構成される珟代のオリゞンアヌキテクチャの倚様性を鑑みれば、包括的な理解のためには、それぞれのパフォヌマンスタむミング情報を組み蟌むこずが䞍可欠です。オリゞンサヌバヌからむンサむトを抜出するには、オリゞンからの CloudFront ぞのレスポンスに Server-Timing ヘッダヌを独自に実装しお含めるこずができたす。 CloudFront がこのヘッダヌを眮き換えるこずはありたせん。代わりに、オリゞンから受信した Server-Timing ヘッダヌに CloudFront が自身のメトリクスを远加したす。独自で実装する Server-Timing ヘッダヌに含めるタむミングメトリクスずしおは、画像の最適化、 API 呌び出し、デヌタベヌスのク゚リ、゚ッゞコンピュヌティングなどの重芁なバック゚ンドプロセスの枬定倀が考えられたす。たずえば、 PHP を䜿甚しおデヌタベヌスク゚リを実行しおいる堎合、次のようにしおク゚リの所芁時間を枬定できたす。 $dbReadStartTime = hrtime(true); // Database query goes here $dbReadEndTime = hrtime(true); $dbReadTotalTime = ($dbReadEndTime - $dbReadStartTime) / 1000000; header('Server-Timing: my-query;dur=' . $dbReadTotalTime); こちらのコヌドスニペットでは、デヌタベヌス操䜜の完了にかかった時間を取埗し、 Server-Timing ヘッダヌ内で my-query メトリクスずしお䌝達しおいたす。デヌタベヌスは時に過負荷状態になり、パフォヌマンスのボトルネックずなるこずがあるため、このデヌタはそのようなシナリオを明らかにするのに圹立ちたす。 Node.js を䜿甚しおいる堎合は、 PerformanceServerTiming むンタヌフェヌス仕様の 䟋 を参考にしお、 Server-Timing ヘッダヌを実装しおください。 ゚ッゞ関数 によっお远加になるレむテンシも Node.js を䜿甚しおいる堎合ず同様の実装で枬定を行いたす。ネットワヌク呌び出しを含んだ耇雑な凊理を行う Lambda@Edge 関数では特に有益です。以䞋の䟋では、オリゞンレスポンスむベントにアタッチされた Lambda@Edge 関数で Server-Timing ヘッダヌの実装をしおいたす import json import time # CF headers are available in request object for Lambda@Edge functions attached to origin response event only def lambda_handler(event, context): # Get function's start timestamp handler_start_time = time.time() response = event['Records'][0]['cf']['response'] request = event['Records'][0]['cf']['request'] server_timing_value = [] # List of CloudFront headers to include in server timing for additional inisghts cf_headers = ['cloudfront-viewer-country', 'cloudfront-viewer-city', 'cloudfront-viewer-asn'] # Iterate over each header name and construct the value for the Server-Timing header for header_name in cf_headers: if header_name in request['headers']: header_value = request['headers'][header_name][0]['value'] server_timing_value.append('{}; desc="{}"'.format(header_name, header_value)) # Function's logic goes here # Get function's stop timestamp handler_stop_time = time.time() handler_duration = round((handler_stop_time - handler_start_time) * 1000, 2) server_timing_value.append('{}; dur={}'.format("my-function", handler_duration)) if server_timing_value: # Construct the Server-Timing header server_timing = [{ "key": "Server-Timing", "value": ', '.join(server_timing_value) }] # Add or append the Server-Timing header if 'server-timing' in response['headers']: response['headers']['server-timing'][0]['value'] += ', ' + ', '.join(server_timing_value) else: response['headers']['server-timing'] = server_timing print("Server-Timing:", response['headers']['server-timing']) return response 泚目すべき点ずしお、このコヌドで远加されるメトリクスは、ハンドラヌコヌドの実行時間のみであり、その他の Lambda のタむミングは陀倖されおいたす。なお、オリゞンアヌキテクチャの情報が悪意のある攻撃者に悪甚されるおそれがあるため、メトリクスには意図的に抜象的な名前を䜿甚しおいたす。 たた、ナヌザヌの地理的䜍眮情報ず ASN 番号に関するむンサむトを Server-Timing ヘッダヌに远加したこずにも泚目すべき点です。 そしお、 クラむアントサむドでも Server Timing を取埗できるように serverTiming プロパティを䜿甚しおコヌドを拡匵したす。以䞋が修正されたコヌドスニペットずなりたす。 // Creating a new PerformanceObserver to monitor performance entries new PerformanceObserver((entryList) => { const entries = entryList.getEntries(); for (const entry of entries) { // Object to store timings for various stages const timings = { userDNS: null, // User DNS resolution time userTCP: null, // User TCP handshake time userTLS: null, // User TLS handshake time CFDNS: null, // CDN DNS resolution time CFUpstreamHandshake: null, // CDN upstream TCP handshake time MyQuery: null, // Query time CFUpstreamTTFB: null, // CDN upstream Time To First Byte (TTFB) MyFunction: null, // Function execution time CFDownstreamTTFB: null, // CDN downstream TTFB userTTFB: null, // User Time To First Byte (TTFB) CFRID: null, // CDN Request ID CFCacheStatus: null, // CDN Cache status (Hit or Miss) UserASN: null // User Autonomous System Number (ASN) }; // Iterating through server timing entries for the current performance entry entry.serverTiming.forEach((serverEntry) => { switch (serverEntry.name) { case 'cdn-rid': timings.CFRID = serverEntry.description; break; case 'cdn-cache-miss': timings.CFCacheStatus = "Miss"; break; case 'cdn-cache-hit': timings.CFCacheStatus = "Hit"; break; case 'cdn-upstream-connect': timings.CFUpstreamHandshake = serverEntry.duration; break; case 'cdn-downstream-fbl': timings.CFDownstreamTTFB = serverEntry.duration; break; case 'cdn-upstream-dns': timings.CFDNS = serverEntry.duration; break; case 'cdn-upstream-fbl': timings.CFUpstreamTTFB = serverEntry.duration; break; case 'my-query': timings.MyQuery = serverEntry.duration; break; case 'my-function': timings.MyFunction = serverEntry.duration; break; case 'cloudfront-viewer-asn': timings.UserASN = serverEntry.description; break; } }); // Calculating user-specific timings if the response not served from the local cache if (entry.responseStart > 0) { timings.userDNS = (entry.domainLookupEnd - entry.domainLookupStart).toFixed(2); timings.userTCP = (entry.connectEnd - entry.connectStart).toFixed(2); timings.userTLS = (entry.requestStart - entry.secureConnectionStart).toFixed(2); timings.userTTFB = (entry.responseStart - entry.requestStart).toFixed(2); // Logging metrics for the current entry console.log("Metrics for:", entry.name); console.log("userDNS:", timings.userDNS); console.log("userTCP:", timings.userTCP); console.log("userTLS:", timings.userTLS); console.log("CFDNS:", timings.CFDNS); console.log("CFUpstreamHandshake:", timings.CFUpstreamHandshake); console.log("DBQuery:", timings.MyQuery); console.log("CFUpstreamTTFB:", timings.CFUpstreamTTFB); console.log("lambdaEdge:", timings.MyFunction); console.log("CFDownstreamTTFB:", timings.CFDownstreamTTFB); console.log("userTTFB:", timings.userTTFB); console.log("CFRID:", timings.CFRID); console.log("CFCacheStatus:", timings.CFCacheStatus); console.log("UserASN:", timings.UserASN); console.log("------------------------------------------------------"); } } }).observe({ type: 'resource', // Observing resource-related performance entries buffered: true }); この改良されたコヌドスニペットでは、Server Timing を取埗したのちに、クラむアントメトリクスず共に timings オブゞェクトに統合しおいたす。これにより、クラむアントサむドずサヌバヌサむドの䞡方のリク゚スト – レスポンスサむクルにおける包括的なパフォヌマンスのむンサむトを䞀箇所にたずめるこずができたした。以䞋は console.log の出力䟋です。 Metrics for: https://d1234.cloudfront.net/script.php userDNS: 0.00 userTCP: 0.00 userTLS: 5.00 CFDNS: 0 CFUpstreamHandshake: 88 DBQuery: 0.538685 CFUpstreamTTFB: 178 lambdaEdge: 0.09 CFDownstreamTTFB: 229 userTTFB: 233.10 CFRID: mRq-Uvr__3OBDo0IX9ELV5Lrk3lF-bOp4eOIqTEXlFkFn0wIWPKgpA== CFCacheStatus: Miss UserASN: 1257 この䟋を芋おみたしょう。 CloudFront の Lambda@Edge 関数の実行ず、オリゞンサヌバヌのデヌタベヌスク゚リの䞡方を合わせお、最初のバむトをネットワヌクに送信するたでに 229 ミリ秒かかりたした CFDownstreamTTFB 。最初のバむトは 233 ミリ秒埌にクラむアントデバむスに到達しおいるので userTTFB 、䌝送時間は 4 ミリ秒であるこずを瀺しおいたす。クラむアントデバむスは、以前に確立された TCP および TLS 接続を再利甚しおおり userTCP 、 userTLS 、 CloudFront の IP アドレスをキャッシュしおいたした userDNS 。 CloudFront はオリゞンに向けお新しい TCP 接続を確立する際 CFUpstreamHandshake 、 88 ミリ秒かかりたした。オリゞンはリク゚ストを 90 ミリ秒以内 CFUpstreamTTFB – CFUpstreamHandshake で凊理しおおり、玠早くレスポンスの最初のバむトを返しおいるこずがわかりたす。結論ずしお、゚ンドナヌザヌの党䜓的なレむテンシは掚奚倀の 800 ミリ秒を䞋回っおおり、満足のいくものであるず蚀えたす。 Server-Timing を他のデヌタで拡充する Server-Timing ヘッダヌは、サヌバヌサむドの凊理時間を䌝達するために蚭蚈されたものですが、その構文は単にその甚途に限定されたものではありたせん。たずえば、CloudFront ではキャッシュのステヌタスや内郚のナニヌクなリク゚スト ID をメトリクスに含んでいたす。これらのデヌタは CloudFront の凊理を正確に分析するために䞍可欠なものです。同様にしお、リク゚ストの経路に関しおむンサむトを提䟛するメトリクスを加えお、 Server-Timing ヘッダヌを独自に拡充するこずができたす。たずえば、ログを芋぀けやすくするために、クラスタヌ内のサヌバヌの内郚 ID を远加するこずもできたす。ナヌザヌの地理的䜍眮情報やデバむスタむプも远加はできたすが、 CloudFront のヘッダヌ の䜿甚で実珟できたす。先述の Lambda@Edge 関数で䜿甚方法を瀺した通りです。これらのヘッダヌは、オリゞンレスポンスむベントに関連付けられた Lambda@Edge 関数、もしくは、ビュヌワヌレスポンスむベントやビュヌワヌリク゚ストむベントに関連付けられた CloudFront 関数のリク゚ストオブゞェクトで利甚できたす。オリゞンリク゚ストポリシヌでこれらのヘッダヌを有効化するず、 オリゞンりェブサヌバヌが CloudFront からのリク゚ストに含たれるこれらのヘッダヌを取り扱えるようになりたす。こうしお、拡充されたメトリクスを Server-Timing ヘッダヌに統合するのです。 Amazon CloudWatch で結果を分析する Server-Timing ヘッダヌは、パフォヌマンス問題を特定し、根本原因を突き止めるのに有甚ですが、りェブサむトパフォヌマンスの他の重芁な偎面に関するむンサむトは提䟛したせん。たずえば、JavaScript 実行に関連する゚ラヌや、环積レむアりトシフト Cumulative Layout Shift などの特定の Web Vitals メトリクスは、この゜リュヌションでは盎接キャプチャされたせん。もしすでにリアルナヌザヌモニタリング RUM  ベヌスのりェブサむトモニタリング゜リュヌションを利甚しおいるのであれば、 Server-Timing ヘッダヌを統合するこずで、 既存の手法を眮き換えたり、パフォヌマンスモニタリングを Server-Timing のみに限定したりするのではなく、既存の手法を補完できたす。包括的なりェブサむトモニタリング゜リュヌションの䞀䟋ずしお Amazon CloudWatch RUM がありたす。 CloudWatch RUM のむンサむトを前述の手法で拡匵するには、 Server-Timing ヘッダヌから抜出したメトリクスを取埗する カスタムむベント を䜜成し、 CloudWatch RUM クラむアント経由で CloudWatch に送信したす。このアプロヌチにより、すべおの CloudWatch RUM のむンサむトず Server-Timing を同じサヌビス内に統合し、䞡方のデヌタセットをシヌムレスに分析できるようになりたす。 前述のコヌドスニペットに぀いお、 Server-Timing ヘッダヌから抜出したデヌタずクラむアントサむドの枬定倀を䜿甚しお、CloudWatch RUM クラむアントを介しおカスタムむベントを蚘録する方法の䟋を以䞋に瀺したす // Sending performance data to a remote server cwr('recordEvent', { type: 'my-server-timing', data: { current_url: entry.name, ...timings // Spread operator to include all timings } }); この䟋では、 timings オブゞェクトのすべおのプロパティず倀を、 cwr 関数 に送信される data オブゞェクトに含めおいたす。これは、特定の゚ントリに察しおキャプチャされたすべおのタむミングが、 current_url ず共に送信されるこずを意味したす。 カスタムむベントは CloudWatch Logs に蚘録され、CloudWatch Logs Insights を䜿甚しおク゚リを実行できたす。さらに、 メトリクスフィルタヌ を䜿甚しお CloudWatch メトリクスを䜜成しお、モニタリング目的のメトリクスアラヌムを蚭定するこずができたす。 䞊蚘のコヌドで収集しおいるタむミングのカスタムメトリクス実装の䟋を以䞋に瀺したす { "event_timestamp": 1710929230000, "event_type": "my-server-timing", "event_id": "9ae82980-4bfb-47f5-8183-b241379e09e1", "event_version": "1.0.0", "log_stream": "2024-03-20T03", "application_id": "c27d1cef-e531-45ad-9bc4-8e03a716c775", "application_version": "1.0.0", "metadata": { "version": "1.0.0", "browserLanguage": "en", "browserName": "Chrome", "browserVersion": "123.0.0.0", "osName": "Mac OS", "osVersion": "10.15.7", "deviceType": "desktop", "platformType": "web", "pageId": "/", "interaction": 0, "title": "TTFB Demo", "domain": "d1234.cloudfront.net", "aws:client": "arw-script", "aws:clientVersion": "1.17.0", "countryCode": "SE", "subdivisionCode": "AB" }, "user_details": { "sessionId": "c9d2514a-8884-4b32-aec0-25203f213f84", "userId": "0f7f2bf3-c9b7-46ab-bc9e-2ff53864ea74" }, "event_details": { "current_url": "https://d1234.cloudfront.net/getmeal.php", "userDNS": "0.00", "userTCP": "0.00", "userTLS": "9.50", "CFDNS": 0, "CFUpstreamHandshake": 90, "MyQuery": 0.517874, "CFUpstreamTTFB": 180, "MyFunction": 0.12, "CFDownstreamTTFB": 233, "userTTFB": "239.30", "CFRID": "ujYncZYVJeIOk6fI7ApFuNt-mJoh8hfL3nZPgAj77z7RdtSzNMTcqQ==", "CFCacheStatus": "Miss", "UserASN": "1257" } } このメトリクスに基づいお、ナヌザヌ TTFB のメトリクス甚に以䞋のフィルタヌパタヌンを䜜成できたす: { $.event_details.userTTFB= * && $.event_details.CFCacheStatus= * && $.event_details.UserASN= * && $.metadata.countryCode=*} これにより、囜コヌド、 ASN 番号、 CloudFront キャッシュステヌタスなどのディメンションを持぀ナヌザヌ TTFB のメトリクスを䜜成できたす。その埌、このメトリクスに察しおアラヌトを䜜成し、掚奚される 800 ミリ秒などの事前定矩された静的な閟倀を超えた堎合に通知を受け取るこずができたす。たた、 CloudWatch 異垞怜出 を利甚するこずもできたす。 最適化ずコスト 重芁なこずずしお、Server-Timing ヘッダヌがレスポンスサむズを増加させる点を認識しおください。これは、 CloudFront のデヌタ転送アりトに関するコストや、分析システム内でのデヌタの保存や凊理に圱響を䞎える可胜性がありたす。たずえば、前述の Server-Timing ヘッダヌの倀は玄 350 バむトに盞圓したすが、仮に 100 䞇リク゚ストを仮定した堎合、远加で 0.325 ギガバむトのデヌタを転送するこずになりたす。りェブサむトが受信するリク゚スト数によっおは、これが倧きなコストになる堎合ずならない堎合がありたす。ただし、 Server-Timing に必須情報、特にアクション可胜なデヌタのみを含めるこずで、このコストを削枛できたす。たずえば、䞻にパフォヌマンス䜎䞋の怜出に Server-Timing が必芁な堎合は、掚奚しきい倀である 800 ミリ秒を超えるリク゚ストにのみ远加するこずを遞択できたす。さらに、むンタラクティブフォヌムや API 呌び出しなど、りェブサむト䞊の重芁なリ゜ヌスの読み蟌みにのみ適甚するこずで、䜿甚量を最小限に抑えるこずもできたす。これには、クラむアントサむドの JavaScript コヌドで該圓するメトリクスに必芁なフィルタヌを実装するこずで実珟できたす。 たずめ この投皿では、りェブサむトパフォヌマンスモニタリングにおける TTFB の重芁性を探求し、リク゚スト-レスポンスサむクルにおいお詳现なむンサむトを提䟛する Server-Timing ヘッダヌの掻甚方法を実蚌したした。レむテンシの枬定ずサヌバヌサむドメトリクス CloudFront の凊理時間、オリゞンサヌバヌのレスポンス時間などの取埗により、りェブサむトの所有者はパフォヌマンス問題の根本原因を特定し、りェブサむトの最適化に向けた積極的な察策を講じるこずができたす。 本蚘事は「 How to identify website performance bottlenecks by measuring time to first byte latency and using Server-Timing header 」ず題された蚘事の翻蚳ずなりたす。 翻蚳はプロフェッショナルサヌビスの 鈎朚隆 が担圓したした。
AI コヌディングアシスタントに簡単なこず、䟋えば関数名の倉曎やファむルの移動を䟝頌するず、突然埩旧䜜業に远われるこずがありたす。むンポヌトが壊れたり、参照が存圚しないファむルを指したりしたす。5 分前にコンパむルできおいたコヌドベヌスが、至る所で゚ラヌを投げ始めたす。20 秒で終わるはずのリファクタリングが、5 分間のデバッグずクリヌンアップセッションに倉わっおしたうのです。 ゚ヌゞェントにずっおリファクタリングが難しい理由 リファクタリングは単なる倧芏暡な怜玢眮換ではありたせん。コヌドベヌスのセマンティック構造党䜓にわたるグラフトラバヌサル問題なのです。関数名を倉曎するず、倉曎は連鎖したす。ワヌクスペヌス党䜓のすべおの呌び出し箇所、それを参照する型定矩ずむンタヌフェヌス、import/export 文、テスト、そしおオプションでドキュメントずコメント。ファむルの移動はさらに耇雑な波及効果を匕き起こし、すべおの䟝存ファむルのむンポヌトパス、バレルファむル index.ts ず再゚クスポヌト、 tsconfig パスやバンドラヌ蚭定に組み蟌たれたモゞュヌル解決の前提、Webpack 蚭定のような散圚する蚭定ファむルなどに圱響したす。ここに根本的なミスマッチがありたす。LLM はパタヌンマッチングを通じおもっずもらしいコヌドを生成するこずに優れおいたすが、リファクタリングは もっずもらしさよりも粟床 を芁求したす。これは創造的なタスクではなく、シンボルの関係、蚀語固有のセマンティクス、プロゞェクトの䟝存関係グラフの正確な理解を必芁ずする制玄充足問題なのです。「正しく芋える」が、深くネストさ れたモゞュヌルの 1 ぀のむンポヌトを芋逃した゚ヌゞェントは、単に小さな゚ラヌを犯しただけではありたせん。本番環境たで衚面化しないランタむム障害を導入したのです。これが、どれほど掗緎されおいたずしおも、テキスト生成が構造的なコヌド倉換においお信頌性に欠けるツヌルである理由です。 問題゚ヌゞェントが効率的ではなく、非効率に動䜜するずき 倚くの AI ゚ヌゞェントがリファクタリングで぀たずくのは、 構造的 な線集を テキスト 線集ずしお扱うからです。開発者が盎面し続けおいる倱敗モヌドをいく぀か玹介したす。 䟝頌内容 「このメ゜ッドの名前を倉曎しお」 埓来の倱敗 ゚ヌゞェントはメ゜ッド定矩を曎新したしたが、プロゞェクト党䜓の呌び出し箇所を芋逃したした。プロンプトで参照を曎新するよう明瀺的に䟝頌した堎合でも、プロセスは遅く゚ラヌが発生しやすいルヌプになりたした。叀い名前を怜玢しお眮換するのです。このプロンプトを考えおみたしょう。 expression.js の get_loose_identifier を、それが䜕をするかをよりよく反映するように名前倉曎しおください。このシンボルの名前倉曎は 4 ぀のファむルに䌝播し、8 ぀の参照ず 3 ぀のむンポヌトに圱響したす。次の図の巊偎埓来のアプロヌチは、専甚のリファクタリングツヌルなしでこの操䜜がどのように展開されるかを瀺しおいたす。最初のファむル expression.js でシンボルの名前を倉曎した埌、゚ヌゞェントはコヌドベヌスで get_loose_identifier を怜玢し、耇数の LLM 呌び出しずツヌル呌び出しを通じお CallExpression.js ず AssignmentExpression.js を曎新したす。努力したにもかかわらず、残りの参照を芋逃しおいたす。 Kiro の察凊法 開発者が IDE でこのタスクを手動で実行する方法を考えおみたしょう。 get_loose_identifier で F2 を抌し、新しい名前を入力しお、Enter を抌したす。IDE は、コヌドベヌス党䜓の 8 ぀の参照ず 3 ぀のむンポヌトすべおを曎新しながら、自動的に名前倉曎を実行したす。これがたさにセマンティックリネヌムツヌルが行うこずです。次の図の右偎新しいアプロヌチは、Kiro が単䞀のツヌル呌び出しで名前倉曎党䜓を適切に実行する方法を瀺しおいたす。 䟝頌内容 「このファむルの lint ゚ラヌを修正しお」 埓来の倱敗 ゚ヌゞェントは linter の出力をテキスト線集の ToDo リストずしお扱いたした。1 ぀のファむルでシグネチャの関数名を camelCase から snake_case に倉曎したしたが、他のファむルで「参照が芋぀からない」や「むンポヌトが芋぀からない」゚ラヌを導入したした。すべおの䜿甚箇所ぞの倉曎の䌝播に倱敗したのです。 Kiro の察凊法 ナヌザヌが盎接名前倉曎を䟝頌しなくおも、゚ヌゞェントがセマンティックリネヌムツヌルから恩恵を受ける䟋を瀺したす。ナヌザヌぱヌゞェントに「 text_helpers.py の lint ゚ラヌを修正しお」ず䟝頌したす。lint ゚ラヌは、 utils/text_helpers.py 内の normalizeText ず slugifyTitle を snake_case に倉曎する必芁があるこずを瀺しおいたす。コヌドベヌスの郚分的なスナップショットを以䞋に瀺したす。 これらの修正をテキスト線集ずしお扱う゚ヌゞェントは、関数定矩の名前を倉曎し、ロヌカル参照を修正するかもしれたせんが、他の堎所のむンポヌトや呌び出し箇所を芋逃す可胜性が高く、実行時に ImportError / NameError を匕き起こしたす。セマンティックリネヌムツヌルを䜿甚するこずで、Kiro は定矩だけでなく、 api/routes.py ず services/indexer.py のむンポヌトず呌び出しも曎新したす。以䞋の画像の通りです。 䟝頌内容 「コンポヌネントを再線成しお – Button.tsx を src/components/ から src/shared/ui/ に移動しお」 埓来の倱敗 ゚ヌゞェントはタスクを単玔なファむル操䜜ずしお扱いたした。ファむルの移動は成功したしたが、叀い堎所を指すすべおのむンポヌト文が壊れおいたす。゚ヌゞェントはその埌、怜玢眮換操䜜でファむルごずにむンポヌトを修正しようずしたしたが、動的むンポヌトを芋逃したした。 import('../components/Button') 。 Kiro の察凊法 Kiro がむンポヌトパスを自動的に曎新する具䜓的な䟋を瀺したす。図は、プロゞェクト構造の郚分的なスナップショットず䟝存するコヌドスニペットの䞀郚を瀺しおいたす。 Button.tsx を src/components/ から src/shared/ui/ に移動した埌、Kiro は移動したファむルに関連するすべおのむンポヌト文を自動的に曎新したす。 䞻な利点 組み蟌みの蚀語サヌバヌが線集を凊理するため、手動の怜玢眮換は䞍芁です。 蚀語認識TypeScript/JavaScript モゞュヌル解決を理解したす。 より安党動䜜するコヌドを壊す可胜性が䜎くなりたす。 ゚ッゞケヌスの凊理パス゚むリアス、モノレポなどに察応したす。 これは、VSCode の゚クスプロヌラヌでファむルをドラッグアンドドロップしたずきに起こるこずずたったく同じです。セマンティックリネヌムツヌルぱヌゞェントベヌスの同等機胜です Kiro ゚ヌゞェントのリファクタリング方法 IDE は、゚ヌゞェント AI の台頭以前にこの問題をすでに解決しおいたした。VSCode でシンボルの名前を倉曎するために F2 を抌すず、IDE は掚枬したせん。コヌドの構造を理解する蚀語サヌバヌに盞談し、ワヌクスペヌス党䜓の線集を蚈算し、安党に適甚したす。VSCode のワヌクスペヌス線集機胜により、単なるテキストパタヌンではなく、コヌドの構造を理解するプログラマブルなセマンティック怜玢眮換が可胜になりたす。Kiro ゚ヌゞェントは、LLM 掚論だけでリファクタリングをシミュレヌトしようずはしたせん。代わりに、゚ヌゞェントは䞊蚘ず同じメカニズムを䜿甚しお、これらの実蚌枈みの IDE 機胜をプログラム的に公開する 2 ぀の新しいリファクタリングツヌルを登録したす。゚ヌゞェントがシンボルの名前を倉曎したりファむルを移動したりする必芁がある堎合、意図をむンテリゞェントに認識し、適切なリファクタリングツヌルを遞択しお呌び出したす。゚ヌゞェントはリファクタリングワヌクフロヌを調敎し、IDE の蚀語サヌバヌが正確性の怜蚌を支揎したす。 これらの゚ヌゞェント登録リファクタリングツヌルが内郚でどのように機胜するかを芋おみたしょう。 セマンティックリネヌムツヌル正しいリネヌムを実珟 このツヌルは、VSCode のシンボル名前倉曎 API に盎接接続したす。F2 を抌したずきに䜿甚するのず同じものです。 vscode.prepareRename を䜿甚しおシンボルが名前倉曎可胜かどうかを怜蚌し䟋キヌワヌドではない、 vscode.executeDocumentRenameProvider を䜿甚しおワヌクスペヌス党䜓で必芁なすべおの倉曎を含むワヌクスペヌス線集を生成したす。TypeScript、JavaScript、TSX、JSX の堎合、組み蟌みの VSCode 名前倉曎プロバむダヌがすべおを凊理したす。Python、Go、Java などの堎合、ツヌルはむンストヌルされた蚀語拡匵機胜ずそれらが提䟛する蚀語サヌバヌに䟝存したす。 スマヌトリロケヌトツヌルすべおを壊さずにファむルを移動 このツヌルは、VSCode のファむル移動機胜を䜿甚しお、すべおの参照を自動的に曎新しながらファむルを再配眮したす。VSCode の゚クスプロヌラヌでドラッグアンドドロップするのず同等のプログラム的な操䜜ですが、゚ヌゞェントがあなたのために実行できたす。 vscode.WorkspaceEdit.renameFile ず vscode.workspace.applyEdit を䜿甚しお、ツヌルは耇数のファむルにわたる包括的な倉曎を生成し、圱響を受けるむンポヌトを曎新したす。 これが重芁な理由 創造性よりも粟床 リファクタリングは、コヌドがどのように芋えるべきかを LLM に想像させる必芁はありたせん。コヌドが 実際に䜕であるか を理解し、倖科的に倉曎できるツヌルが必芁なのです。 実蚌枈みのむンフラストラクチャを通じた信頌 これらは実隓的な LLM 機胜ではなく、開発者が日垞的にすでに䟝存しおいるリファクタリングむンフラストラクチャずの盎接統合です。F2 を抌したずきに機胜すれば、゚ヌゞェントが実行したずきにも機胜したす。 蚀語に䟝存しない 重い䜜業は蚀語サヌバヌによっお行われるため、このアプロヌチは技術スタックず蚀語党䜓に䞀般化されたす。 生産性の維持 20 秒の手動リファクタリングが、5 分間の AI 生成リカバリヌミッションになるべきではありたせん。適切なツヌルを䜿甚すれば、操䜜は高速でアトミックなたたです。 より倧きな芖点 構築による正確性ずいう私たちの哲孊に基づいお、 IDE 蚺断統合 を導いたのず同じ原則で、VSCode のリファクタリング機胜の党範囲をカバヌするようにこのアプロヌチを拡匵しおいたす。゚ラヌが耇合する前にキャッチするためにリアルタむム蚺断を統合したのず同様に、これらの実蚌枈みの決定論的 IDE 機胜を、新しい内郚スマヌトリロケヌトおよびセマンティックリネヌムツヌルに拡匵したした。 しかし、リファクタリング機胜は名前倉曎ず再配眮で止たりたせん。VSCode の蚀語サヌバヌは、゚ヌゞェントが掻甚すべき豊富な自動コヌド倉換スむヌトを提䟛したす。コヌドブロックを再利甚可胜な関数に抜出するメ゜ッド/関数の抜出、コヌドを簡玠化する倉数/関数のむンラむン化、すべおの呌び出し箇所でメ゜ッドパラメヌタを曎新するシグネチャの倉曎、アロヌ関数ぞの倉換やその他の蚀語固有の倉換は有力な候補です。 このアプロヌチを取るこずで、゚ヌゞェントが実行される基盀に正確性、セキュリティ、信頌性を組み蟌むこずができたす。これらのツヌルで確立したパタヌンは、ツヌルキットぞの新しい远加を導きたす。LLM に脆匱なテキスト眮換スクリプトを生成するよう䟝頌する代わりに、むンテリゞェントなコヌディング゚ヌゞェントは、開発者がすでに信頌しおいるこれらの実蚌枈みの IDE 操䜜を掻甚し続けたす。IDE が正しく実行する方法を知っおいるずき、私たちはそれに䜜業をさせたす。゚ヌゞェントがより有胜になるに぀れお、これはその出力をより信頌できるものにするための良いテクニックでもありたす。 違いを䜓隓する準備はできたしたか Kiro を無料で始めお 、開発ワヌクフロヌをどのように倉革できるかを確認しおください。 Discord の成長するコミュニティに参加しお、フィヌドバックを共有し、質問をし、AI 支揎コヌディングで構築しおいる他の開発者ず぀ながりたしょう。 謝蟞 ゚ンゞニアリングの掞察ず貎重なフィヌドバックを提䟛しおくれた Al Harris に感謝したす。 本蚘事は 2026 幎 2 月 5 日に公開された Pardis Pashakhanloo ず Rajdeep Mukherjee による “ Refactoring made right: how program analysis makes AI agents safe and reliable ” を翻蚳したものです。翻蚳は Solutions Architect の吉村が担圓いたしたした。
本蚘事は 2025/11/24 に公開された “ Running NVIDIA Cosmos world foundation models on AWS” を翻蚳したものです。 自埋走行車、ロボティクス、スマヌトファクトリヌ向けのフィゞカル AI システムの開発においおは、高品質か぀十分なトレヌニングデヌタを生成するずいうこずが非垞に重芁な課題ずなりたす。このブログでは、Amazon Web Services (AWS) 䞊で NVIDIA Cosmos TM ワヌルドファりンデヌションモデルWFMをデプロむしお、倧芏暡に高品質の合成デヌタを生成する方法を瀺したす。たた、異なるナヌスケヌスに最適化された 2 ぀の本番環境向けアヌキテクチャを玹介したす。 フィゞカル AI により、システムは耇雑か぀動的な環境で知芚、感知、掚論、および自埋的な行動ができたす。しかし、これらのモデルの事前トレヌニングず事埌トレヌニングには、膚倧な量の高品質な実挔䟋が必芁です。ビデオからの既存の実挔䟋や、人間が䜜成する新しい実挔䟋は限られおおり、十分なデヌタを提䟛できたせん。合成デヌタの生成は、このデヌタギャップの課題を克服し、フィゞカル AI を進化させお、業界党䜓でビゞネスを倉革する高床な新しい行動を可胜にするために重芁です。 Cosmos オヌプン WFM はこのギャップを埋め、シナリオの合成、ドメむンのランダム化、および空間掚論を通じお、自埋走行車、ヒュヌマノむドロボット、スマヌトファクトリヌ、およびビデオ分析 AI ゚ヌゞェント向けのフィゞカル AI の開発を可胜にしたす。Cosmos モデルを最倧限に掻甚するには、慎重に蚭蚈され、構成された管理むンフラストラクチャが必芁です。このむンフラストラクチャは、スケヌラブルでコスト効率が高い必芁がありたす。 このブログでは、AWS むンフラストラクチャ䞊で Cosmos WFM をデプロむするためのシステムアヌキテクチャず実装のベストプラクティスを玹介したす。これにより、゚ンタヌプラむズグレヌドのスケヌラビリティ、セキュリティ、パフォヌマンスを実珟したす。たた、コスト効率性、簡単な管理、および再珟可胜なデプロむメントも提䟛したす。 フィゞカル AI デヌタパむプラむンの課題 倧芏暡蚀語モデルLLMは、むンタヌネット䞊の䜕十幎にもわたるデゞタル化されたテキスト、曞籍、りェブサむト、ビデオ、䌚話などの事実䞊無制限のトレヌニングデヌタを利甚しおいたす。この膚倧なコヌパスにより、モデルはスケヌルで蚀語パタヌン、掚論、および知識衚珟を孊習できたす。しかし、フィゞカル AI システムは根本的に異なる課題に盎面しおいたす「デヌタ䞍足問題」です。 図 1: フィゞカル AI のための合成デヌタ生成の進化 むンタヌネット䞊のテキストずは異なり、物理的盞互䜜甚のデヌタは䞍足しおいたす。オブゞェクトを操䜜したり、環境をナビゲヌトしたり、噚甚なタスクを実行したりするには、行動をクロヌンする暡倣孊習などの珟圚の技術が必芁です。これには、実際の物理的盞互䜜甚で取埗された珟実のセンサヌデヌタカメラ映像、力の枬定、感芚フィヌドバックなどが必芁です。このデヌタを収集するにはコストや時間がかかり、しばしば危険です。 そこで合成デヌタの生成が䞍可欠になりたす。Cosmos WFM は物理的に劥圓性のあるシナリオを合成したす。これには、写実的な光の倉化、オブゞェクトのテクスチャ、カメラアングル、および動きの軌跡が含たれたす。これにより、開発サむクルが加速し、モデルの堅牢性が向䞊し、フィゞカル AI が経枈的に実行可胜になりたす。 Cosmos WFM 抂芁 Cosmos は、WFM を掻甚しおフィゞカル AI を進化させるために蚭蚈されたプラットフォヌムです。その䞭栞には、事前トレヌニングされたマルチモヌダルモデルである Cosmos オヌプン WFM があり、開発者が䞖界の状態をビデオずしお生成し、フィゞカル AI の掚論や事埌トレヌニングを行い、特殊なフィゞカル AI モデルを開発できたす。Cosmos プラットフォヌムは 3 ぀のモデルで構成されおいたす Cosmos Predict 画像、深床マップ、センサヌデヌタ、テキストプロンプトなどの初期条件から、物理的・時間的に正しい未来の状態を動画で生成するモデルです。 Cosmos Transfer テキストプロンプトず実䞖界のデヌタ、シミュレヌションから埗られた耇数の空間制埡入力を䜿甚しお、フィゞカル AI 開発のための物理孊を意識した䞖界状態の映像を生成したす。Transfer は、照明、背景、倩候、色、テクスチャなどの倚様性を远加するこずで、䞎えられたデヌタセットを拡匵および増殖させるこずができたす。 Cosmos Reason Cosmos Reason は、物理 AI のためのオヌプンでカスタマむズ可胜な掚論ビゞョン蚀語モデルVLMです。この VLM により、ロボットやビゞョン AI ゚ヌゞェントは、事前知識、物理孊、垞識を䜿甚しお珟実䞖界を理解し、行動できたす。このモデルは 物理的 掚論 リヌダヌボヌド でトップを獲埗し、デヌタアノテヌションや批評、ロボット蚈画ずトレヌニング、業界党䜓でのビデオ分析 AI ゚ヌゞェントの䜜成など、さたざたなナヌスケヌスに適甚できたす。Cosmos Reason は、 NVIDIA Blueprint for Video Search and SummarizationVSS でビデオ分析 AI ゚ヌゞェントの開発に䜿甚されおいたす。 これらのモデルを特定のドメむン向けに構築、カスタマむズ、デプロむするには、開発者は NVIDIA Cosmos Cookbook を掻甚できたす。掚論、事埌トレヌニング、ファむンチュヌニングのためのステップバむステップのワヌクフロヌ、技術的なレシピ、具䜓的な䟋を提䟛したす。 AWS 䞊で Cosmos WFM を実行するためのアヌキテクチャ AWS は次の 2 ぀のデプロむメントオプションがありたす – リアルタむム掚論 NVIDIA NIM マむクロサヌビスを Amazon Elastic Kubernetes Service (Amazon EKS) で䜎遅延のむンタラクティブアプリケヌション甚に䜿甚できたす。NVIDIA NIM マむクロサヌビスは、組織が NVIDIA GPU 䞊で AI モデルを実行できる䞀連の高速化されたされた掚論マむクロサヌビスです。 – バッチ掚論 コンテナ化されたモデルを AWS Batch で高スルヌプットのオフラむンワヌクロヌド甚に䜿甚できたす。 NIM-on-EKS パタヌンは、垞時皌働する GPU 察応 Pods で応答遅延ず可甚性を優先したす。䞀方、AWS Batch パタヌンは、ゞョブの投入をトリガヌずしたコンピュヌティングプロビゞョニングを通じお、コスト効率ず匟力的なスルヌプットを最適化したす。これらのアヌキテクチャを遞択する際は、レむテンシヌ芁件、掚論量パタヌン、コスト制玄、および物理 AI 開発パむプラむンの統合ポむントを考慮する必芁がありたす。 オプション 1ラむブ掚論の実行– Amazon EKS 䞊の Cosmos NIM マむクロサヌビス Amazon EKS 䞊の Cosmos NIM マむクロサヌビスオプションは、゚ンタヌプラむズグレヌドのオヌケストレヌション、自動スケヌリング、および簡玠化された運甚を提䟛したす。これは、高可甚性、動的スケヌリング、およびクラりドネむティブな統合を必芁ずする本番環境のデプロむメントに掚奚されるアプロヌチです。Cosmos NIM マむクロサヌビスは、最適化された掚論゚ンゞンを備えた Cosmos モデルをパッケヌゞ化し、手動構成の耇雑さを解消したす。このパタヌンのデプロむメントのステップバむステップガむドに぀いおは、 “Deploying generative AI applications with NVIDIA NIMs on Amazon EKS” ブログ投皿 を参照しおください。 アヌキテクチャ図 図 2: Amazon EKS 䞊での Cosmos NIM マむクロサヌビスを䜿甚したラむブ掚論の実行のアヌキテクチャ 利点 – ゚ンタヌプラむズグレヌドのオヌケストレヌション : Kubernetes は宣蚀型構成、自動ロヌルアりトずロヌルバック、ポッド再起動による自己修埩、および手動構成なしのサヌビスディスカバリヌを提䟛したす。 – 高可甚性 : マルチポッドデプロむメントにより、単䞀障害点がなくなりたす。クロス AZ ノヌド配眮により、アベむラビリティヌゟヌンの障害を回避できたす。ロヌリングアップデヌトにより、デプロむメント䞭のサヌビス可甚性が維持されたす。 – 運甚の簡玠化 : マネヌゞドコントロヌルプレヌンにより、ノヌドのメンテナンスが䞍芁になりたす。自動アップグレヌドにより、クラスタヌのコンポヌネントが最新の状態に保たれたす。AWS サヌビスずの統合により、統䞀されたモニタリングずセキュリティが提䟛されたす。 オプション 2: バッチ掚論の実行 – AWS Batch 䞊の Cosmos コンテナ AWS Batch は、倧芏暡なバッチコンピュヌティングワヌクロヌドを実行するためのフルマネヌゞドサヌビスを提䟛し、オフラむン掚論シナリオのための Cosmos WFM のデプロむメントに理想的なプラットフォヌムずなりたす。このアヌキテクチャにより、軌跡デヌタの合成、シヌンバリ゚ヌション、たたは環境予枬の生成など、倧量の物理 AI デヌタを凊理できたす。垞時むンフラストラクチャを維持する必芁なく、AWS Batch によっおオヌケストレヌションされるコンテナ化された Cosmos モデルを掻甚したす。ゞョブキュヌの需芁に基づいお、自動的に最適なコンピュヌトリ゜ヌスGPU 察応 EC2 むンスタンスをプロビゞョニングしたす。たた、Amazon S3 たたは Amazon EFS からの入力デヌタを元に、バッチゞョブを開始するこずができたす。これらのゞョブは、ビデオ生成、シヌン補完、たたは物理シミュレヌションなどの掚論タスクを実行したす。この結果は、ロボットトレヌニングパむプラむンや自埋システム開発ワヌクフロヌずいった埌段の凊理のために EFS に曞き戻されたす。Amazon CloudWatch ずの統合は包括的なモニタリングを提䟛し、AWS IAM ポリシヌはモデルアヌティファクトずデヌタリポゞトリぞの安党な最小特暩アクセスを保蚌したす。このパタヌンのデプロむメントのステップバむステップガむドに぀いおは、この ワヌクショップ を参照しおください。 アヌキテクチャ図 図 3: AWS Batch で Cosmos コンテナを䜿甚しおバッチ掚論を実行するためのリファレンスアヌキテクチャ 利点 – コスト最適化 : 動的スケヌリングにより、AWS Batch は掚論ゞョブが実行される時のみ GPU コンピュヌトリ゜ヌスをプロビゞョニングし、完了時にむンスタンスを終了したす。この埓量課金モデルにより、アむドルむンフラストラクチャに関連するコストが排陀され、特にデヌタセット拡匵や倜間の合成デヌタ生成などの断続的なワヌクロヌドに有効です。さらに、スポットむンスタンスの掻甚によっおコンピュヌトコストを削枛するこずも可胜です。 – 運甚管理の簡玠化 : マネヌゞドサヌビスにより、自動ゞョブスケゞュヌリング、リ゜ヌスプロビゞョニング、䟝存関係管理、再詊行ロゞックにより、むンフラストラクチャの耇雑さが軜枛され、クラスタヌの操䜜ではなくモデルの最適化に集䞭できたす。 – 倧芏暡デヌタ生成のための匟力的なスルヌプット : AWS Batch は、単䞀ゞョブから数千の䞊列掚論タスクたで、フィゞカル AI トレヌニングのための倧芏暡なデヌタセットを凊理したす。この匟力的な挔算胜力により、䟡倀実珟たでの時間を加速し、ロボットポリシヌ開発ず自埋システム怜蚌における繰り返しを高速化できたす。 たずめ AWS で Cosmos WFM を実行するず、倧芏暡な物理 AI 機胜を利甚できたす。このブログでは、異なる組織のニヌズず制玄に最適化された 2 ぀の本番環境向けアヌキテクチャを玹介したした。 AWS モデルマヌケットプレむス䞊で提䟛されおいる Cosmos Reason 掚論ビゞョン蚀語モデル を導入し、高床な空間-時間的理解ず物理的垞識を掻甚しお AI プロゞェクトを匷化し、よりスマヌトなロボット蚈画、ビデオ分析、および最先端の効率性ず掚論機胜を備えた自動デヌタ泚釈を可胜にするかをご確認ください。 著者泚: この技術ガむドは、Cosmos プラットフォヌムの機胜、AWS のベストプラクティス、および倧芏暡モデルデプロむメントの䞀般原則に基づいおいたす。具䜓的な実装の詳现は、お客様の芁件、最新の NVIDIA NIM マむクロサヌビスリリヌス、AWS サヌビスの曎新、および組織のポリシヌず制玄によっお異なる堎合がありたす。最新の情報に぀いおは、垞に NVIDIA ず AWS の最新のドキュメントを参照しおください。 翻蚳は、゜リュヌションアヌキテクトの山本が担圓したした。 Abhishek Srivastav Abhishek Srivastav は Amazon Web Services のプリンシパル゜リュヌションアヌキテクトで、クラりド採甚戊略の加速を通じお顧客の成功を掚進しおいたす。AI/ML 技術、ハむパフォヌマンスコンピュヌティング、シミュレヌション、物理 AI など、幅広い技術的専門知識を持ち、耇雑な䌁業の課題に察する゜リュヌションの蚭蚈を専門ずしおいたす。珟圚の圹割では、CIO、CTO、その他の技術幹郚ず協力しお、デゞタルトランスフォヌメヌションず生成 AI むニシアチブのロヌドマップを開発しおいたす。 Brett Hamilton Brett Hamilton は NVIDIA の Developer Relations マネヌゞャヌで、フィゞカル AI ずワヌルドファりンデヌションモデルに取り組んでいたす。圌は ISV ずの協力、新技術の採甚拡倧、珟実䞖界の課題解決に特化しおいたす。Brett の AI ずの関わりは 2015 幎に B2B チャットボットの開発から始たりたした。その埌、音声アシスタント、NLP ず蚀語アプリケヌション、そしおビゞュアル AI にたで及びたした。圌は Cisco、AWS、そしお NVIDIA で補品リヌダヌシップ、ビゞネス開発、そしお開発者関係の圹割を担っおきたした。 Diego Garzon Diego Garzon は NVIDIA の AI/AV シニア゜リュヌションアヌキテクトで、フィゞカル AI ずシミュレヌションに取り組んでいたす。以前は Microsoft のプロシヌゞャルコンテンツディレクタヌずしお Xbox Game Studios のプロシヌゞャルグラフィックスをリヌドしおいたした。キャリアの初期には、Blizzard Entertainment ず Blue Sky Studios で働き、アニヌ賞にノミネヌトされたした。たた、ピクサヌの WALL·E にも貢献したした。Diego は SIGGRAPH で流䜓シミュレヌションず氎の効果に関する研究を発衚したした。たた、GDC でグロヌバルむルミネヌションずプロシヌゞャルラむティングプロヌブに぀いお発衚したした。さらに、ビゞュアル゚フェクト゜サむ゚ティの理事を務めたこずもありたす。 Jathavan Sriram Jathavan Sriram は NVIDIA のシニア゜リュヌションアヌキテクトで、AI ずロボティクス゜リュヌションを専門ずしおいたす。圌の専門分野はクラりドむンフラストラクチャ、Kubernetes、AI 技術で、ワヌルドファりンデヌションモデルずフィゞカル AI アプリケヌションに泚目しおいたす。圌はクラりドネむティブプラットフォヌム䞊で顧客が生成 AI を倧芏暡に展開できるようにするこずに情熱を泚いでいたす。 Shaun Kirby Shaun Kirby は AWS のプリンシパル゚ンタヌプラむズアヌキテクトで、自動車および補造業向けの Internet of Things (IoT) ずロボティクスを専門ずしおいたす。圌は顧客がクラりド技術で卓越するのを助け、ゲヌムチェンゞングな゜リュヌションを先駆けおいたす。AWS に入る前は、Cisco でラピッドプロトタむピングず IoT ショヌケヌスをリヌドし、倧芏暡システム統合の経隓がありたした。
本蚘事は、2026 幎 1 月 30 日に公開された BMW Group unlocks insights from petabytes of data with agentic search on AWS を翻蚳したものです。 ドむツのミュンヘンに本瀟を眮く BMW Group は、15 か囜の 30 か所以䞊の生産・組立斜蚭で 159,000 人の埓業員を雇甚しおいたす。BMW Group は自動車むノベヌションのリヌダヌずしお、デヌタず人工知胜 (AI) を掻甚し、デゞタルトランスフォヌメヌションの最前線に立ち続けおいたす。2020 幎、BMW Group は Cloud Data Hub (CDH) を立ち䞊げたした。珟圚、これは Data Lakehouse ずしお運甚されおおり、クラりド䞊で党瀟的なデヌタずデヌタ゜リュヌションを管理するための BMW Group の䞭倮プラットフォヌムずなっおいたす。これにより、党瀟の埓業員に察し、デヌタ駆動型アプリケヌションの実装ずデヌタむンサむト生成の䞭心的な基盀を提䟛しおいたす。 珟圚、CDH は 20 PB のデヌタを保存し、1 日平均 110 TB のデヌタを取り蟌んでいたす。この膚倧なデヌタから掞察を抜出するこずは、特に技術的および分析的な専門知識を持たないナヌザヌにずっおは困難な堎合がありたす。関連するデヌタ゜ヌスを特定し、耇雑なク゚リを構築し、衚圢匏の出力を解釈する必芁があるためです。 本蚘事では、BMW Group が AWS Professional Services ず協力しお、 Amazon S3 Vectors 、 Amazon Bedrock 、 Amazon Bedrock AgentCore の機胜を組み合わせた゚ヌゞェンティック怜玢゜リュヌションを開発した方法を説明したす。この゜リュヌションは、技術スキルに関係なく、BMW Group のナヌザヌが自然蚀語を䜿甚しお倧芏暡なデヌタセットから実甚的なデヌタむンサむトを抜出できるように蚭蚈されおいたす。 課題: デヌタずむンサむトのギャップの解消 埓来のデヌタ分析ワヌクフロヌは耇雑で時間がかかり、䌁業デヌタから䟡倀ある掞察を迅速に匕き出すこずを劚げる障壁ずなっおいたす。プロセスはデヌタの発芋から始たり、ナヌザヌは適切なデヌタ゜ヌスを芋぀けるために、数十、数癟、あるいは数千ものデヌタアセットを怜玢する必芁がありたす。次に、ナヌザヌは SQL ク゚リを蚘述しお実行する必芁があり、耇雑な結合や集蚈にはスキヌマの知識が必芁です。ク゚リ結果を生成した埌、生の衚圢匏の出力を実甚的な掞察に倉換するには、特定のドメむン専門知識が必芁になるこずがよくありたす。これらの課題は、特に構造化デヌタず非構造化デヌタを組み合わせる堎合、組織がデヌタアセットを効果的に掻甚する胜力を著しく制限する可胜性がありたす。 ゜リュヌション抂芁 BMW Group の゚ヌゞェンティック怜玢゜リュヌションは、AI ゚ヌゞェントフレヌムワヌク内で 3 ぀の補完的な怜玢アプロヌチを組み合わせるこずで、倧芏暡なデヌタセットからむンサむトを抜出するずいう課題に察凊したす。この゜リュヌションにより、ナヌザヌは自然蚀語を䜿甚しおペタバむト芏暡の構造化デヌタず非構造化デヌタをク゚リでき、ク゚リの特性に基づいお最適な怜玢戊略が自動的に遞択されたす。 本蚘事では、車䞡テストで報告された問題の詳现な蚘録を収集する補品品質システムのデヌタセットを䜿甚しお゜リュヌションを玹介したす。各レコヌドには、問題の説明、分類、技術的な詳现がドむツ語ず英語の䞡方で含たれおおり、䞖界䞭の生産斜蚭やサヌビスセンタヌから蓄積されたものです。このデヌタセットは、䜕幎にもわたる品質゚ンゞニアリングの知識を衚しおおり、意味的に類䌌した問題がチヌムや蚀語によっお異なる甚語で蚘述されおいたす。 このアヌキテクチャは、それぞれ特定の怜玢パタヌン向けに蚭蚈された 3 ぀の専門ツヌルで構成されおいたす。 ハむブリッド怜玢: セマンティック怜玢ず SQL フィルタリングを組み合わせお、抂念的に類䌌したデヌタを効率的に取埗したす。このツヌルは、たずベクトルベヌスのセマンティック怜玢を実行しお関連するレコヌドを特定し、次に SQL フィルタを適甚しお正確に絞り蟌みたす。「特定の車䞡モデルのブレヌキシステムに関するフィヌドバックを怜玢する」など、抂念的な理解ず構造化されたフィルタリングの䞡方が必芁なク゚リに最適です。 網矅的怜玢: AI を掻甚した評䟡を䜿甚しお、セマンティック怜玢だけでは甚語のバリ゚ヌションにより関連する結果を芋逃す可胜性がある堎合に、䞀臎するすべおのレコヌドを包括的に分析したす。このツヌルは SQL ク゚リを実行しお候補レコヌドを取埗し、次に倧芏暡蚀語モデル (LLM) を䜿甚しお各結果を評䟡し、詳现な掚論で関連性を刀断したす。「ブレヌキ関連の問題は䜕件発生したしたか」など、完党なカバレッゞが䞍可欠な質問に特に効果的です。 SQL ク゚リ: セマンティック分析が䞍芁な堎合に、正確なデヌタ取埗のための盎接的な構造化ク゚リ機胜を提䟛したす。このツヌルは、構造化されたデヌタフィヌルドに察する集蚈、カりント、統蚈分析などの玔粋な分析ク゚リを凊理したす。 AI ゚ヌゞェントがこれらのツヌルを統制し、各ナヌザヌク゚リを分析しお最も適切な怜玢戊略を決定したす。゚ヌゞェントは、抂念的なク゚リにはセマンティック怜玢、包括的な分析には網矅的怜玢、構造化された分析には盎接 SQL を自動的に切り替えたす。これらすべおが単䞀の䌚話型むンタヌフェヌスを通じお実行されたす。このむンテリゞェントなルヌティングにより、ナヌザヌは基盀ずなる技術的な耇雑さを理解したり、怜玢方法を手動で遞択したりするこずなく、関連する結果を受け取るこずができたす。 アヌキテクチャの詳现 次のアヌキテクチャ図は、これらのコンポヌネントがどのように連携しお゚ヌゞェンティック怜玢䜓隓を提䟛するかを瀺しおいたす。 図 1. ゚ヌゞェンティック怜玢゜リュヌションのアヌキテクチャ コアコンポヌネント デヌタストレヌゞずベクトル怜玢 Amazon S3 Vectors (S3 Vectors) は、ベクトル埋め蟌みに察するセマンティック怜玢を可胜にし、専甚のベクトルデヌタベヌスむンフラストラクチャを必芁ずせずに、数癟䞇のデヌタポむントにわたる効率的な最近傍ク゚リをサポヌトしたす。S3 Vectors の構造化デヌタに察しおは、 Amazon Athena (Athena) がサヌバヌレス SQL ク゚リ実行を提䟛し、元の゜ヌスデヌタに察するアドホック分析ず構造化フィルタリングを可胜にしたす。 LLM ず゚ヌゞェントの実装 Amazon Bedrock (Bedrock) は、耇数の LLM で゜リュヌションを匷化したす。ベクトル埋め蟌みの生成には Amazon Titan Text Embeddings V2 (Titan Text Embeddings) を䜿甚し、゚ヌゞェントのオヌケストレヌションのための䞻芁な掚論モデルずしお Anthropic の Claude Sonnet 4.5 を䜿甚し、網矅的怜玢におけるコスト効率の高い分類タスクには Anthropic の Claude Haiku 4.5 を䜿甚したす。AWS のオヌプン゜ヌスフレヌムワヌクである Strands Agents は、ツヌルの遞択、䌚話フロヌ、モデルずのむンタラクションを管理しながら、本番環境レベルの信頌性を維持しお AI ゚ヌゞェントをオヌケストレヌションしたす。 デヌタ取り蟌みずベクトルむンデックスの䜜成 ゚ヌゞェンティック怜玢゜リュヌションがク゚リに回答する前に、゜ヌスデヌタを凊理し、セマンティック怜玢甚にむンデックス化する必芁がありたす。ここでは、 AWS Lambda (Lambda) を䜿甚しおサヌバヌレスの取り蟌みパむプラむンを実装し、タむトルや説明などの自由圢匏のテキスト属性を含む構造化デヌタベヌスレコヌドを、怜玢可胜なベクトル埋め蟌みに倉換したした。 取り蟌みプロセスは、次のステップに埓いたす。 デヌタ抜出: Lambda 関数は Amazon Athena で゜ヌスデヌタベヌステヌブルをク゚リし、ドむツ語ず英語の䞡方で問題の説明、タむトル、分類を含む補品品質レコヌドを取埗したす。 テキスト準備: 各レコヌドに察しお、パむプラむンは意味的に関連するフィヌルド (クラスタヌ名、問題タむトル、説明) を連結し、埋め蟌み生成に適した統䞀されたテキスト衚珟を䜜成したす。 埋め蟌み生成: 準備されたテキストは Titan Text Embeddings に送信され、各レコヌドの意味的な意味を捉える 1,024 次元のベクトル埋め蟌みが生成されたす。 ベクトルストレヌゞ: 埋め蟌みは S3 Vectors むンデックス圢匏を䜿甚しお Amazon S3 に保存され、各ベクトルには怜玢操䜜時の取埗のために察応するレコヌド ID がタグ付けされたす。 メタデヌタの氞続化: 元の構造化デヌタは S3 に残り、Athena 経由でク゚リできるため、゚ヌゞェンティック怜玢ツヌルは意味的類䌌性ず SQL ベヌスのフィルタリングを組み合わせるこずができたす。 このむンゞェストアヌキテクチャはデヌタを増分凊理するため、BMW Group は新しい補品品質問題が報告されるたびに、デヌタセット党䜓を再凊理するこずなく、ベクトルむンデックスを継続的に曎新できたす。 ハむブリッド怜玢 ハむブリッド怜玢ツヌルは、セマンティック類䌌性ず SQL フィルタリングを組み合わせるこずで、ナヌザヌが正確なビゞネス制玄を適甚しながら、抂念的に関連するレコヌドを芋぀けるこずを可胜にしたす。䟋えば、「前四半期の F09 車䞡におけるブレヌキシステムのフィヌドバックを芋぀ける」ずいうク゚リは、セマンティックな理解 (䜕が「ブレヌキシステムのフィヌドバック」に該圓するか) ず構造化されたフィルタリング (特定の車䞡モデルず時間範囲) の䞡方を必芁ずしたす。 仕組み: ナヌザヌがク゚リを送信するず、゚ヌゞェントは 3 ぀のパラメヌタを䜿甚しおハむブリッド怜玢ツヌルを呌び出したす。 1) 怜玢する抂念を説明するセマンティックク゚リ (䟋:「ブレヌキシステムのフィヌドバック」)、 2) 取埗する類䌌レコヌドの数を指定する top_k 倀 (䟋: 100)、 3) フィルタリング甚のプレヌスホルダヌ {semantic_ids} を含む SQL ク゚リテンプレヌトです。その埌、ツヌルは耇数のステップからなるプロセスを実行しお、関連性の高い結果を提䟛したす。 ステップ 1 – セマンティック怜玢フェヌズ: ツヌルはたず、セマンティックク゚リを Titan Text Embeddings に送信しおク゚リベクトルを生成したす。次に、このベクトルを䜿甚しお、コサむン類䌌床 (cosine similarity) に基づいお最も類䌌した top_k 件の補品品質レコヌドを S3 Vectors むンデックスから怜玢したす。S3 Vectors API は、ク゚リずのセマンティックな関連性によっおランク付けされた ID のリストを返したす。 入力䟋: 「ブレヌキシステムのフィヌドバック」 出力䟋: 類䌌床でランク付けされた ID: [12847, 9203, 15634, 8821, 
 ] (ブレヌキパッドの摩耗、ブレヌキフルヌドのチェック、ブレヌキ性胜などに関する䞊䜍 100 件のレコヌド) ステップ 2 – SQL フィルタリングフェヌズ: セマンティック ID が SQL ク゚リテンプレヌトに泚入されたす。その埌、Athena がこの SQL ク゚リを実行したす。このク゚リには、远加の WHERE 句、JOIN、集蚈、たたはその他の有効な SQL 操䜜を含めるこずができ、日付、重芁床レベル、車䞡モデルなどの構造化デヌタ属性に基づいお結果をさらに絞り蟌むこずができたす。 入力 SQL テンプレヌトの䟋: SELECT * FROM quality_records WHERE record_id IN ({semantic_ids}) AND vehicle_model = ‘F09’ AND report_date >= DATE ‘2025-10-01’ 実行されたク゚リの䟋: SELECT * FROM quality_records WHERE record_id IN (12847, 9203, 15634, 8821, 
) AND vehicle_model = ‘F09’ AND report_date >= DATE ‘2025-10-01’ 出力䟋: セマンティック類䌌性ず構造化フィルタの䞡方に䞀臎する 7 件のレコヌド ステップ 3 – 結果の統合: フィルタリングされた結果が゚ヌゞェントに返され、゚ヌゞェントは Anthropic の Claude Sonnet 4.5 を䜿甚しお自然蚀語の応答を合成し、関連する詳现ず掞察を含むナヌザヌフレンドリヌな圢匏で調査結果を提瀺したす。 ナヌザヌぞの出力䟋 「2024 幎第 4 四半期の F09 車䞡においお、ブレヌキ関連の蚘録が 7 件芋぀かりたした。最も倚かったのは、ブレヌキパッド点怜 (3 ä»¶)、ブレヌキフルヌド亀換 (2 ä»¶)、ブレヌキ性胜チェック (2 ä»¶) です。」 このハむブリッドアプロヌチにより、結果がセマンティックに関連性があり (「ブレヌキシステムのフィヌドバック」にはブレヌキパッドの摩耗、ブレヌキフルヌドのサヌビスなどが含たれるこずを理解)、か぀正確にフィルタリングされる (F09 のみ、盎近の四半期のみ) こずが保蚌されたす。このアプロヌチは、自然蚀語理解の柔軟性ず構造化ク゚リの粟床を組み合わせるこずで、セマンティックに関連性があり、ビゞネス芁件に埓っお正確にフィルタリングされた結果をナヌザヌに提䟛するように蚭蚈されおいたす。次のシヌケンス図は、完党なワヌクフロヌを瀺しおいたす。 図 2. ハむブリッド怜玢のシヌケンス図 包括的な分析のための網矅的怜玢 ハむブリッド怜玢は意味的に類䌌したレコヌドを芋぀けるこずに優れおいたすが、䞀郚のク゚リでは完党なカバレッゞを確保するために、䞀臎するすべおのレコヌドの包括的な分析が必芁です。「F00 モデルでブレヌキ関連の問題は䜕件発生したしたか」のような質問では、甚語のバリ゚ヌション (䟋: 「ブレヌキ」、「ブレヌキシステム」、「ブレヌキパッド」、「ABS」 ) によっおセマンティック怜玢が関連するケヌスを芋逃す可胜性があるため、網矅的な評䟡が必芁です。網矅的怜玢ツヌルは、SQL ベヌスの候補取埗ず AI による関連性分類を組み合わせるこずで、この課題に察凊したす。 網矅的怜玢ワヌクフロヌは、゚ヌゞェントがク゚リに察しお類䌌性ベヌスの怜玢ではなく包括的なカバレッゞが必芁であるず刀断したずきに開始されたす。このツヌルは 2 ぀のパラメヌタを受け取りたす。デヌタベヌスから候補レコヌドを取埗する SQL SELECT ク゚リず、関連性のある結果を構成するものを定矩する怜玢問題の説明です。 候補の取埗: ゚ヌゞェントは、甚語の䞍䞀臎を避けるため、セマンティックな抂念ではなく構造化されたフィルタのみを䜿甚しお SQL ク゚リを生成したす。たずえば、「ブレヌキ関連の問題」のようなセマンティックな甚語でフィルタリングする代わりに、ク゚リは正確なカラム倀を䜿甚したす: SELECT * FROM quality_records WHERE vehicle_model = ‘F00’ これにより、LLM がデヌタセットから正しい甚語を掚枬するこずに䟝存せずに、構造化された条件に䞀臎するすべおのレコヌド (朜圚的に数千の候補) を取埗できたす。このツヌルには再詊行メカニズムが含たれおいたす。Athena が゚ラヌ (無効なカラム名、構文゚ラヌ、たたはその他の SQL ゚ラヌ) を返した堎合、゚ラヌメッセヌゞが゚ヌゞェントに返され、修正されたク゚リを再生成できたす。これにより、ハルシネヌションによる SQL が暗黙的に倱敗するのを防ぎ、゚ヌゞェントが実際のスキヌマ情報に基づいお自己修正できるようサポヌトしたす。 バッチ凊理による LLM 分類: すべおの候補を䞀床に凊理するのではなく、このツヌルは効率的な凊理のために候補を 20 件のレコヌドのバッチに分割したす。各バッチはマヌクダりンテヌブルずしおフォヌマットされ、Bedrock 経由で小型の LLM (Anthropic の Claude Haiku 4.5) に送信されたす。モデルは各レコヌドを怜玢問題に照らしお評䟡し、関連性があるかどうかを刀断し、その刀断に察する簡朔な根拠を提䟛したす。20 ずいう数は、モデル呌び出しの回数ず コンテキストの劣化 (コンテキストりィンドり内のトヌクン数が増加するず、そのコンテキストから情報を正確に想起するモデルの胜力が䜎䞋する) の間の良いトレヌドオフであるこずがわかりたした。バッチは䞊列凊理され、総凊理時間が倧幅に短瞮されたす。この䞊列化により、分類タスクに小型で高速なモデルを䜿甚しおコスト効率を維持しながら、数千のレコヌドを数秒で評䟡できたす。 結果の集玄: すべおのバッチが完了した埌、ツヌルは関連する結果を集玄し、各レコヌドに LLM の刀断根拠を含む _reason_for_match フィヌルドを远加しお充実させたす。この透明性により、ナヌザヌは特定のレコヌドが含たれた理由を理解でき、LLM を掻甚したフィルタリングぞの信頌を構築できたす。 網矅的怜玢アプロヌチは、関連するケヌスを芋逃すずビゞネス䞊の意思決定に圱響を䞎える可胜性がある重芁なク゚リに察しお、完党なカバレッゞを提䟛したす。SQL の構造化されたフィルタリングず LLM のセマンティック理解を組み合わせるこずで、このツヌルはどちらのアプロヌチ単独では実珟できない粟床ず再珟率の䞡方を達成したす。次のシヌケンス図は、完党なワヌクフロヌを瀺しおいたす。 図 3. 党探玢のシヌケンス図 䞻なメリットず成果 構造化デヌタず非構造化デヌタぞの統䞀的なアプロヌチ ハむブリッド怜玢、網矅的怜玢、SQL ク゚リの組み合わせにより、この゜リュヌションは単䞀の䌚話型むンタヌフェヌス内で構造化デヌタず非構造化デヌタの䞡方をシヌムレスに凊理できたす。ナヌザヌは、抂念的な理解を必芁ずする質問 (「類䌌のブレヌキシステムのフィヌドバックを芋぀ける」)、正確なフィルタリング ( 「前四半期のブレヌキ問題の数を数える」 )、たたは包括的な分析 ( 「安党関連のすべおのむンシデントを評䟡する」 ) を、ツヌルを切り替えたりク゚リを再構成したりするこずなく行うこずができたす。゚ヌゞェントのむンテリゞェントなツヌル遞択により、各ク゚リタむプが最も適切な方法で凊理され、䞀貫した自然蚀語のナヌザヌ゚クスペリ゚ンスを維持しながら正確な結果を提䟛したす。 コスト効率の高いサヌバヌレスアヌキテクチャ サヌバヌレス AWS サヌビス で完党に構築されおいるため、゜リュヌションコンポヌネントは䜿甚しおいないずきはれロにスケヌルし、コンピュヌティングリ゜ヌスはオンデマンドで割り圓おられ、実際の䜿甚量に察しおのみ料金が発生したす。サヌバヌレスアヌキテクチャにより、埓来のむンフラストラクチャの運甚オヌバヌヘッドや固定コストなしに、AI を掻甚した高床なデヌタ分析プラットフォヌムを開発できたす。 たずめ この゚ヌゞェンティック怜玢゜リュヌションは、AWS の生成 AI サヌビスがナヌザヌずデヌタのむンタラクション方法をどのように倉革できるかを実蚌しおいたす。ナヌザヌずむンサむトの間の埓来の障壁を軜枛するこずで、このアプロヌチにより、゚ンタヌプラむズアプリケヌションに必芁な粟床ずスケヌルを維持しながら、すべおのナヌザヌがデヌタむンサむトを生成できるようになりたす。組織が生成するデヌタ量が増加し続ける䞭、このような゜リュヌションは、゚ンタヌプラむズデヌタ資産の䟡倀を最倧限に匕き出すために䞍可欠なものずなっおいたす。 AWS で AI を掻甚したデヌタ゜リュヌションの構築に぀いお詳しく知りたい方は、 生成 AI リ゜ヌス をご芧ください。 Ruben Simon Ruben Simon は、BMW 最倧のデヌタプラットフォヌムである Cloud Data Hub のベテランプロダクトマネヌゞャヌです。デヌタ、アナリティクス、AI分野におけるデゞタルトランスフォヌメヌションの掚進に情熱を泚ぎ、囜際的なチヌムずの協働を生き甲斐ずしおいたす。仕事以倖では家族ずの時間を倧切にし、継続的な孊びに匷い関心を持っおいたす。 Fabian Söllner Fabian Söllner は BMW Cloud Data Hub チヌムの゜フトりェア゚ンゞニアである。最先端のビゞネスむンテリゞェンスず人工知胜゜リュヌションを提䟛するこずで、組織党䜓の同僚を支揎するこずに尜力しおいる。仕事以倖では、様々なスポヌツ、特にロヌドサむクリングずトラむアスロンぞの情熱を巧みにキャリアず䞡立させ、個人ず職業の䞡面での自己研鑜ぞの意欲を瀺しおいる。 Florian Seidel Florian Seidel は AWS のグロヌバル゜リュヌションアヌキテクトずしお自動車分野を専門ずしおいたす。戊略的顧客がクラりド技術の朜圚胜力を最倧限に掻甚し、自動車産業の革新を掚進するよう導いおいたす。アナリティクス、機械孊習、AI、耐障害性分散システムぞの情熱を持ち、最先端の抂念を実甚的な゜リュヌションぞず倉革する支揎を行っおいたす。クラりド戊略の蚭蚈以倖の時間には、家族や友人のための料理や電子音楜制䜜の実隓を楜しんでいたす。 Khalid Al Khalili Khalid Al Khalili は、BMW グルヌプのデヌタアヌキテクトであり、BMW のデヌタむノベヌションの䞭心的なプラットフォヌムである Cloud Data Hub のアヌキテクチャを統括しおいたす。圌は、シヌムレスなデヌタ䜓隓の創出、耇雑な芁件を効率的でナヌザヌフレンドリヌな゜リュヌションぞず倉換するこずを匷く提唱しおいたす。新機胜の開発に携わっおいないずきは、同僚や郚門暪断的なチヌムず協力しお BMW のデヌタ戊略を掚進・圢成し、急速に進化する環境においお BMW が垞に先頭を走り続けるこずを確保するこずに喜びを感じおいたす。 Martin Maritsch Martin Maritsch は、AWS ProServe のシニア生成型 AI アヌキテクトであり、生成型 AI および MLOps を専門ずしおいたす。AWS クラりド䞊の AI/ML サヌビスの可胜性を最倧限に匕き出すこずで、䌁業顧客がビゞネス成果を達成できるよう支揎しおいたす。 Shukhrat Khodjaev Shukhrat Khodjaev は、AWS ProServe のシニア・゚ンゲヌゞメント・マネヌゞャヌであり、AI を専門ずしおいたす。顧客が AI 倉革を加速し、むノベヌションを掚進し、AI アプリケヌションの限界を抌し広げお、具䜓的なビゞネス成果を生み出すこずを支揎しおいたす。 本蚘事は Senior Solutions Architect の 長谷川 仁志 が翻蚳したした。
本蚘事は 2026 幎 2 月 10 日 に公開された「 Set up LucidLink with service managed fleet scripts for AWS Deadline Cloud 」を翻蚳したものです。 最新のクリ゚むティブワヌクフロヌでは、むンフラストラクチャ管理の負荷なくオンデマンドでスケヌルできる高性胜レンダリング機胜が求められたす。この課題に察しお AWS Deadline Cloud のサヌビスマネヌゞドフリヌトSMFを䜿うこずで、Amazon Elastic Compute Cloud (Amazon EC2) むンスタンス管理や、OS アップデヌト、Virtual Private Cloud (VPC) 蚭定、ネットワヌク蚭定などの耇雑な管理をAWS Deadline Cloud が代行しおくれるため、珟堎担圓者はむンフラストラクチャ運甚ではなく、レンダリングワヌクロヌドに集䞭できたす。 その䞊で、LucidLink のクラりドネむティブなハむブリッドファむルシステムを組み合わせるず、クラりドずオンプレミスの䞡方でむンフラストラクチャ管理を䞍芁ずする匷力な゜リュヌションになりたす。クリ゚むティブチヌムは最小限のむンフラストラクチャで倧芏暡なレンダリングを実行し぀぀、どこからでもプロゞェクトファむルにすぐにアクセスできたす。 本蚘事では、AWS Deadline Cloud の SMF に LucidLink を統合する方法を玹介し、スケヌラブルで高性胜なレンダリングワヌクフロヌを構築する゜リュヌションを解説したす。 AWS Deadline Cloud は SMF のConfig スクリプトに察応し、LucidLink などのサヌドパヌティストレヌゞ゜リュヌションをレンダリングワヌクフロヌに統合しやすくなりたした。Deadline Cloud 環境に LucidLink を組み合わせ、高性胜でスケヌルアりト可胜なクラりドベヌスのレンダリング環境をセットアップする手順をご玹介したす。 前提条件 開始する前に、以䞋を準備ください。 以䞋の暩限を持぀ AWS アカりント : AWS Deadline Cloud のファヌムずフリヌトの䜜成・管理 AWS Secrets Manager シヌクレットの䜜成・読み取り AWS Identity and Access Management (IAM) ロヌルずポリシヌの倉曎 認蚌情報を蚭定枈みの AWS Command Line Interface ( AWS CLI ) pip がむンストヌルされた Python 3 (Deadline Cloud CLI ツヌル甚) 以䞋を満たす LucidLink アカりント : 有効な認蚌情報 (ナヌザヌ名ずパスワヌド) 䜜成枈みの Filespace ず Workspace Filespace 名ず Workspace 名の把握 AWS Deadline Cloud の基本的な抂念ず甚語の理解 この䟋では、ゞョブ実行フロヌで以䞋を行いたす。 ① 管理者暩限で LucidLink をむンストヌル ② ゞョブ実行前にレンダヌノヌドに適切な LucidLink Filespace をマりント ③ ゞョブ完了時に LucidLink Filespace をアンマりント ④ Filespace ぞの接続を怜蚌するカスタムゞョブを䜜成/実行 レンダリングラむフサむクルにおいお、この 4 ぀のタッチポむントを䜿甚したす。 図 1. AWS Deadline Cloud ず LucidLink の統合ワヌクフロヌ 構築する内容 このチュヌトリアルを完了するず、以䞋の環境が構築されたす。 LucidLink 察応フリヌトを備えた Deadline Cloud ファヌム SMF Config スクリプトによる LucidLink クラむアントの自動むンストヌル ゞョブごずにファむルシステムを動的にマりントする OpenJD ゞョブテンプレヌト ステップ 1: LucidLink の認蚌情報を AWS Secrets Manager に保存する AWS Secrets Manager を䜿甚しお LucidLink の認蚌情報を安党に保存したす。その認蚌情報は、レンダリングゞョブが LucidLink ファむルシステムをマりントする際に取埗されたす。 AWS Secrets Manager コン゜ヌルを開く [新しいシヌクレットを保存する] をクリック [その他のシヌクレットのタむプ] を遞択 以䞋のキヌず倀のペアを远加: {   "username": "your-lucidlink-username",   "password": "your-lucidlink-password" } シヌクレット名: lucidlink-credentials 䜜成プロセスを完了 ステップ 2: Deadline Cloud ファヌムをセットアップする レンダリングワヌクロヌドをホストする Deadline Cloud ファヌムを䜜成したす。 AWS Deadline Cloud コン゜ヌルに移動 ファヌムを䜜成 をクリック ファヌム蚭定を構成: ファヌム名: lucidlink-render-farm ファヌムを䜜成 をクリック ステップ 3: LucidLink 察応のSMFを䜜成する ステップ 3a: LucidLink むンストヌル蚭定スクリプトを䜜成する フリヌトむンスタンスに LucidLink クラむアントをむンストヌルする蚭定スクリプトを䜜成したす。このスクリプトはむンストヌルずデヌモンのセットアップのみを行いたす。フリヌトにデプロむする前に、スタンドアロンの EC2 むンスタンスでスクリプトが正しく動䜜するこずをテストしおください。 <p>#!/bin/bash # LucidLink Client Installation Script # This script only installs the LucidLink client and sets up the daemon service # Filesystem mounting is handled separately via OpenJD job templates set -ex # -----------------------------Install tree utility----------------------------- # Install tree for directory visualization yum install tree -y # ----------------------Install and configure LucidLink 3----------------------- echo "Installing LucidLink client..." # Download latest stable LucidLink RPM package wget -q https://www.lucidlink.com/download/new-ll-latest/linux-rpm/stable/ -O lucidinstaller.rpm<br />ls -l lucidinstaller.rpm # Install the LucidLink client yum install -y lucidinstaller.rpm # Create systemd service for persistent daemon echo "Creating systemd service for LucidLink daemon..." cat << EOF > /etc/systemd/system/lucidlink.service [Unit] Description=LucidLink Filespace Daemon After=network-online.target Wants=network-online.target [Service] Type=simple ExecStart=/usr/local/bin/lucid3 daemon ExecStop=/usr/local/bin/lucid3 exit Restart=on-failure RestartSec=5 User=root Group=root [Install] WantedBy=multi-user.target EOF # Enable and start the LucidLink daemon service echo "Enabling and starting LucidLink daemon service..." systemctl daemon-reload systemctl enable lucidlink systemctl start lucidlink # Create base mount directory with proper permissions echo "Creating mount point..." mkdir -p /mnt/lucid <br />chmod a+rwx /mnt/lucid # Verify installation echo "LucidLink client installation complete" lucid3 status 次に、LucidLink 蚭定スクリプトを䜿甚しおフリヌトを䜜成したす。 Deadline Cloud ファヌムペヌゞのフリヌトタブぞ移動しお フリヌトを䜜成 をクリック フリヌトの詳现を定矩 セクション: フリヌト名: lucidlink-render-fleet フリヌトタむプ: サヌビスマネヌゞド 次ぞ をクリック ワヌカヌ機胜 セクション: CPU たたは GPU むンスタンスを遞択 オペレヌティングシステム: Linux 次ぞ  ã‚’クリック 远加の蚭定を行う â€“ オプション セクション: ワヌカヌ蚭定スクリプトを有効化 にチェック スクリプト内容: LucidLink 蚭定スクリプトを貌り付け ステップ 4: LucidLink マりント甚のキュヌ環境Queue Environment を䜜成する ステップ 4a: LucidLink ゞョブキュヌを䜜成する Deadline Cloud ファヌムペヌゞのキュヌタブぞ移動しお キュヌを䜜成 をクリック 基本蚭定を構成: 名前: lucidlink-queue ゞョブアタッチメントのバケット名 : lucidlink-attachments フリヌトを関連付ける – オプション: lucidlink-render-fleet キュヌを䜜成 をクリック ナヌザヌがレンダリングゞョブを送信できるゞョブキュヌが䜜成され、先ほど䜜成したレンダヌフリヌトが䜿甚されたす。 ステップ 4b: キュヌの IAM ロヌル暩限を曎新する キュヌが䜿甚しおいる IAM ロヌルを確認し、Secrets Manager のシヌクレットぞのアクセス暩限を远加したす。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:lucidlink-credentials*" } ] } Queue Environment を䜿甚するず、特定のキュヌでゞョブが開始されるたびに Deadline Cloud でカスタムスクリプトを実行できたす。この䟋では、ゞョブ実行䞭の 2 ぀のタむミングで Bash スクリプトを実行したす。 ゞョブ開始時 (Queue Environment - Enter) ゞョブ完了埌 (Queue Environment - Exit) Queue Environment では、parameterDefinitions を通じおナヌザヌにパラメヌタを公開できたす。ここでは、以䞋の蚭定を倉曎可胜にし、デフォルト倀も蚭定しおいたす。 Lucid Secret Name (Secrets Manager に保存したシヌクレット名) LucidLink の Workspace ず Filespace Open Job Description YAML では次のようになりたす。 parameterDefinitions: - name: LucidSecretName type: STRING description: AWS Secrets Manager secret name containing LucidLink credentials default: lucidlink-credentials - name: LucidWorkspace type: STRING description: LucidLink workspace name to mount userInterface: control: LINE_EDIT label: Workspace Name default: lucid-workspace - name: LucidFilespace type: STRING description: LucidLink filespace name to mount userInterface: control: LINE_EDIT label: Filespace Name default: lucid-filespace Queue Environment Enter 時 #!/bin/bash # Exit on error, undefined vars, pipe failures set -euo pipefail echo "Mounting LucidLink filesystem..." # Create mount point directory MOUNTPOINT="/mnt/lucid/{{Param.LucidWorkspace}}/{{Param.LucidFilespace}}" mkdir –p ${{MOUNTPOINT}} # Get credentials from AWS Secrets Manager SECRET=$(aws secretsmanager get-secret-value \ --secret-id "{{Param.LucidSecretName}}" \ --query 'SecretString' --output text) # Parse credentials from JSON LUCID_USERNAME=$(echo "$SECRET" | jq -r '.username') LUCID_PASSWORD=$(echo "$SECRET" | jq -r '.password') # Mount filesystem echo "${LUCID_PASSWORD}" | lucid3 link \ --fs "{{Param.LucidFilespace}}.{{Param.LucidWorkspace}}" \ --user "${LUCID_USERNAME}" \ --mount-point "${MOUNTPOINT}" \ --fuse-allow-other # Verify mount is accessible if [ -d "${MOUNTPOINT}" ] && [ "$(ls -A ${MOUNTPOINT})" ]; then echo "Mount verification successful" else echo "Warning: Mount point appears empty or inaccessible" exit 1 fi Queue Environment Exit 時 echo "Unmounting LucidLink filesystem..." lucid3 unlink --fs "{{Param.LucidFilespace}}.{{Param.LucidWorkspace}}" || true echo "LucidLink filesystem unmounted" これらをたずめお 1 ぀の Open Job Description 環境にするず、Deadline キュヌ で䜿甚できたす。 specificationVersion: 'environment-2023-09' parameterDefinitions: - name: LucidSecretName type: STRING description: AWS Secrets Manager secret name containing LucidLink credentials default: lucidlink-credentials - name: LucidWorkspace type: STRING description: LucidLink workspace name to mount userInterface: control: LINE_EDIT label: Workspace Name default: lucid-workspace - name: LucidFilespace type: STRING description: LucidLink filespace name to mount userInterface: control: LINE_EDIT label: Filespace Name default: lucid-filespace environment: name: LucidLinkMount description: Environment for mounting LucidLink filesystem script: actions: onEnter: command: "{{Env.File.MountLucidLink}}" onExit: command: "{{Env.File.UnmountLucidLink}}" embeddedFiles: - name: MountLucidLink type: TEXT runnable: true data: | #!/bin/bash # Exit on error, undefined variables, and pipe failures set -euo pipefail   echo "Mounting LucidLink filesystem..." # Create mount point directory MOUNTPOINT="/mnt/lucid/{{Param.LucidWorkspace}}/{{Param.LucidFilespace}}" mkdir -p "${MOUNTPOINT}"   # Get credentials from AWS Secrets Manager SECRET=$(aws secretsmanager get-secret-value \ --secret-id "{{Param.LucidSecretName}}" \ --query 'SecretString' --output text)   # Parse credentials from JSON LUCID_USERNAME=$(echo "$SECRET" | jq -r '.username') LUCID_PASSWORD=$(echo "$SECRET" | jq -r '.password')   # Mount filesystem echo "${LUCID_PASSWORD}" | lucid3 link \ --fs "{{Param.LucidFilespace}}.{{Param.LucidWorkspace}}" \ --user "${LUCID_USERNAME}" \ --mount-point "${MOUNTPOINT}" \ --fuse-allow-other   # Verify mount is accessible if [ -d "${MOUNTPOINT}" ] && [ "$(ls -A ${MOUNTPOINT})" ]; then echo "Mount verification successful" else echo "Warning: Mount point appears empty or inaccessible" exit 1 fi - name: UnmountLucidLink type: TEXT runnable: true data: | echo "Unmounting LucidLink filesystem..." lucid3 unlink --fs "{{Param.LucidFilespace}}.{{Param.LucidWorkspace}}" || true echo "LucidLink filesystem unmounted" AWS Deadline Cloud にロヌドするには、察象のキュヌを遞択し、「Queue Environments」タブに移動したす。 図 2. AWS Deadline Cloud のQueue Environmentsテヌブル Actions から Create New from YAML を遞択し、Queue Environmentsスクリプトを貌り付けたす。 図 3. AWS Deadline Cloud のQueue Environments線集ペヌゞ ステップ 5: セットアップをテストする 図 4. 完了した AWS Deadline Cloud タスクの実行 LucidLink の統合を怜蚌するため、AWS Deadline Cloud CLI でテストゞョブを䜜成しお送信したす。 Deadline Cloud CLI のむンストヌル たず、Deadline Cloud CLI ツヌルをむンストヌルしたす: pip install 'deadline[gui]' Deadline Cloud Monitor のむンストヌル Deadline Cloud Monitor はゞョブの認蚌ずモニタリングに必芁です。AWS Deadline Cloud コン゜ヌルからダりンロヌドしおむンストヌルしたす。 AWS Deadline Cloud コン゜ヌルに移動 サヌビスペヌゞに移動 お䜿いのオペレヌティングシステム甚の Deadline Cloud Monitor をダりンロヌド 衚瀺される手順に埓っおむンストヌル テストゞョブテンプレヌトの䜜成 LucidLink ファむルシステムが正しくマりントされアクセス可胜であるこずを確認する基本的な OpenJD ゞョブテンプレヌトを䜜成したす。以䞋の内容を新しいディレクトリに template.yaml ずしお保存したす。 specificationVersion: 'jobtemplate-2023-09' name: Test LucidLink Mount steps: - name: Print Tree of LucidLink Mount script: actions: onRun: command: '{{Task.File.runScript}}' embeddedFiles: - name: runScript type: TEXT runnable: true data: | #!/usr/bin/env bash set -ex tree --du -h -L 6 /mnt/lucid テストゞョブを送信しおモニタリングしたす。 以䞋のいずれかの方法でテストゞョブを送信したす。 コマンドラむンでの送信: deadline bundle submit --farm-id <farm-id> --queue-id <queue-id> <bundle-directory> GUI での送信 (パラメヌタのカスタマむズが可胜): deadline bundle gui-submit <directory-name> 統合の怜蚌 ゞョブが完了したら、LucidLink ファむルシステムが正垞にマりントされたこずを確認したす。 Deadline Cloud Monitor アプリケヌションを開く ゞョブリストからテストゞョブを芋぀ける ログを衚瀺 をクリックしおゞョブ出力を確認 ログに LucidLink マりントポむント /mnt/lucid のディレクトリツリヌ構造が衚瀺されおいるこずを確認 テストが成功するず、LucidLink Filespace の完党なディレクトリ階局が衚瀺され、ゞョブ実行䞭にファむルシステムが正しくマりントされアクセス可胜であるこずが確認できたす。 考慮事項 このモゞュラヌアヌキテクチャはむンストヌルずマりントを分離しおおり、ゞョブごずに異なるファむルシステム蚭定を䜿甚できたす。LucidLink デヌモンは systemd サヌビスずしお実行されゞョブ実行間で氞続化されたす。マりントポむントには chmod 755 暩限ず --fuse-allow-other フラグが必芁です。認蚌情報は AWS Secrets Manager から安党に取埗され、OpenJD テンプレヌトがマりントずアンマりントを自動的に凊理しおリ゜ヌスを適切に管理したす。フリヌトにデプロむする前に、必ずスタンドアロンの EC2 むンスタンスで蚭定スクリプトをテストしおください。 トラブルシュヌティング セットアップやゞョブ実行で問題が発生した堎合は、たず AWS Deadline Cloud コン゜ヌルでフリヌト蚭定スクリプトのログを確認し、LucidLink クラむアントが正しくむンストヌルされたこずを怜蚌したす。マりントの問題に぀いおは、倱敗したタスクを右クリックしお「View Worker Logs」を遞択し、デヌモンが実行䞭であるこずを確認しおから、ゞョブ固有のログでファむルシステムアクセス゚ラヌを確認したす。暩限の問題は通垞、フリヌトの IAM ロヌルに Secrets Manager シヌクレットぞのアクセス暩がないか、マりントポむントの暩限調敎が必芁であるこずを瀺しおいたす。テンプレヌト関連の問題は、本番ワヌクロヌドを送信する前に、OpenJD YAML構文の怜蚌ずDeadline Cloud CLIによるゞョブテンプレヌトのテストによっお特定できたす。 クリヌンアップ Deadline Cloud ず LucidLink の䜿甚を䞭止する堎合は、AWS Deadline Cloud コン゜ヌルでフリヌトずキュヌを削陀したす。テスト甚の EC2 むンスタンスを䜜成した堎合は、EC2 コン゜ヌルから終了したす。䞍芁になった堎合は、LucidLink の認蚌情報を含む AWS Secrets Manager シヌクレットも削陀しおください。 たずめ LucidLink のむンストヌルずファむルシステムのマりントを分離するこずで、柔軟でメンテナンスしやすい構成を実珟できたす。サヌビスマネヌゞドフリヌトが 1 回限りのクラむアントむンストヌルを凊理し、OpenJD ゞョブテンプレヌトがゞョブごずのファむルシステムマりントを管理するこずで、以䞋のメリットが埗られたす。 モゞュヌル性: ゞョブごずに異なるファむルシステムや蚭定をマりント可胜 リ゜ヌス効率: ファむルシステムは必芁なずきだけマりントされ、自動的にアンマりント セキュリティ: 認蚌情報はゞョブ環境内で安党に凊理 信頌性: むンストヌルずマりントの䞡フェヌズで適切な゚ラヌ凊理ずクリヌンアップ このアヌキテクチャは、セキュリティのベストプラクティスを維持し぀぀運甚を効率化し、レンダリングワヌクフロヌに高性胜な共有ストレヌゞを提䟛したす。LucidLink のグロヌバルファむルシステムず AWS Deadline Cloud のスケヌラブルなレンダリングむンフラストラクチャを組み合わせるこずで、クリ゚むティブチヌムは地理的な境界を越えおシヌムレスにコラボレヌションできたす。 AWS の担圓者 に問い合わせお、ビゞネスの加速を支揎する方法をご確認ください。 関連情報 AWS Deadline Cloud のサヌビスマネヌゞドフリヌトず蚭定スクリプトの詳现は、 AWS Deadline Cloud ドキュメント を参照しおください。Open Job Description (OpenJD) の詳现は、 OpenJD specifications GitHub ペヌゞ たたは OpenJD ドキュメントペヌゞ を参照しおください。 LucidLink に぀いお LucidLink は、クリ゚むティブチヌムがどこからでも協力しお䜜業できるストレヌゞコラボレヌションプラットフォヌムです。れロ知識暗号化で保護された単䞀の共有 Filespace で、あらゆる芏暡のプロゞェクトに即座に安党にアクセス、線集、共有できたす。詳しくは LucidLink on AWS をご芧ください。 著者に぀いお Zach Willner AWS のメディア & ゚ンタヌテむンメント担圓シニアパヌトナヌ゜リュヌションアヌキテクトです。AWS 䞊のメディア & ゚ンタヌテむンメント向けパヌトナヌ゚コシステムの構築に取り組んでいたす。 DJ Rahming AWS のビゞュアルコンピュヌティング担圓シニア゜リュヌションアヌキテクトです。 参考リンク AWS Media Services AWS Media & Entertainment Blog (日本語) AWS Media & Entertainment Blog (英語)  AWS のメディアチヌムの問い合わせ先: awsmedia@amazon.co.jp ※ 毎月のメルマガをはじめたした。最新のニュヌスやむベント情報を発信しおいきたす。賌読垌望は䞊蚘宛先にご連絡ください。 翻蚳は Visual Compute SSA 森が担圓したした。原文は こちら をご芧ください。
みなさん、こんにちは。AWS ゜リュヌションアヌキテクトの朚村です。 最近はフィゞカル AI の動向把握に泚力しおいたす。䞋蚘で觊れおいる「 月刊 AWS 補造 2026幎2月号 」にもいく぀か蚘事が取り䞊げられおいたすので是非ご芧ください。 2 月 27 日 金に「 䌁業で぀かうためのCoding Agent「Kiro」 オンラむン勉匷䌚 」が開催されたす。AI ゚ヌゞェントを掻甚した開発プロセスの効率化に関心がある方はぜひ参加ください たた 3 月 26 日朚には「 Amazon Quick Suite で倉わる業務の珟堎 — 掻甚䌁業・AWS瀟員による事䟋玹介 」が開催されたす。分析業務や定型業務の効率化に興味がある方はぜひご参加ください それでは、2 月 9 日週の生成 AI with AWS界隈のニュヌスを芋おいきたしょう。 さたざたなニュヌス ブログ蚘事「AWS Transform custom: AI 駆動 Java モダナむれヌションで技術的負債を削枛」を公開 AWS Transform custom を䜿甚しお、Java アプリケヌションのモダナむれヌションを AI で自動化する方法を玹介しおいたす。Java 8 から Java 21 ぞのアップグレヌドを䟋に、AWS マネヌゞド倉換の適甚手順や、組織固有のカスタム定矩倉換の䜜成方法をステップバむステップで解説しおいたす。手動リファクタリングでは数週間かかる䜜業を数分で実珟できるため、技術的負債の削枛に取り組んでいる方はぜひご芧ください。 ブログ蚘事「Amazon、Nova モデル匷化に向けプラむベヌト AI バグバりンティプログラムを開始」を公開 Amazon が Amazon Nova 基盀モデルを察象ずしたプラむベヌト AI バグバりンティプログラムを開始したした。セキュリティ研究者やパヌトナヌ倧孊の専門家ず連携し、プロンプトむンゞェクション、モデルの脆匱性、CBRN 関連の脅嚁怜出などの領域でテストを行い、有効な脆匱性の報告に察しお 200 ドルから 25,000 ドルの報奚金が支払われたす。 ブログ蚘事「゚ンタヌプラむズにおける AI ゚ヌゞェント: Amazon Bedrock AgentCore を掻甚したベストプラクティス」を公開 Amazon Bedrock AgentCore を掻甚しお本番環境で䜿える゚ンタヌプラむズ向け AI ゚ヌゞェントを構築するための 9 ぀のベストプラクティスを玹介しおいたす。小さく始めおスコヌプを明確にするこず、初めからオブザヌバビリティを枬定するこず、蚈画的なツヌル戊略、評䟡の自動化、マルチ゚ヌゞェントアヌキテクチャ、セキュリティ、継続的テストなど、初期のスコヌピングから組織党䜓ぞのスケヌリングたで幅広くカバヌした実践的なガむドです。 ブログ蚘事「月刊 AWS 補造 2026幎2月号」を公開 補造業向けの月次アップデヌトブログです。今月のピックアップトピックはフィゞカル AI で、AWS Japan が提䟛するフィゞカル AI 開発支揎プログラムの玹介や、VLA/VLM モデル開発の技術支揎に関する情報、NVIDIA GR00T や HuggingFace LeRobot を掻甚した゚ッゞからクラりドたでのフィゞカル AI 環境構築、AWS Batch でのロボット孊習基盀の構築方法など、フィゞカル AI 関連の翻蚳ブログ 5 本が玹介されおいたす。 サヌビスアップデヌト Amazon Bedrock が 6 ぀のフルマネヌゞドオヌプンりェむトモデルを远加サポヌト Amazon Bedrock で 6 ぀の新しいオヌプンりェむトモデル (DeepSeek V3.2、MiniMax M2.1、GLM 4.7、GLM 4.7 Flash、Kimi K2.5、Qwen3 Coder Next) が利甚可胜になりたした。これたで高コストだった高性胜 AI モデルの掚論が倧幅に安くなり、䌁業でのコヌド生成や掚論タスクが手軜に実珟できたす。これらのモデルは、高床なサヌビス品質提䟛を行うための新しい分散掚論゚ンゞン Project Mantle によっお提䟛されたす。詳现は こちらのドキュメント をご参照ください。 Amazon Bedrock が AWS PrivateLink のサポヌトを拡匵 Amazon Bedrock が AWS PrivateLink のサポヌトを拡匵し、新たに bedrock-mantle ゚ンドポむントでもプラむベヌトアクセスが可胜になりたした。埓来は bedrock-runtime ゚ンドポむントのみでしたが、今回 Project Mantle ずいう新しい掚論゚ンゞンの゚ンドポむントも远加されたした。これにより䌁業のプラむベヌトネットワヌク内から安党に AI モデルを利甚でき、セキュリティを重芖する䌁業での生成 AI アプリケヌション開発が進めやすくなりたす。米囜東郚バヌゞニア北郚やアゞアパシフィック東京リヌゞョンなど 14 のリヌゞョンで利甚可胜です。詳现は こちらのドキュメント をご参照ください。 Amazon Bedrock AgentCore Browser でプロキシ蚭定をサポヌト Amazon Bedrock AgentCore Browser でプロキシ蚭定がサポヌトされたした。これにより䌁業のプロキシむンフラを通じおブラりザセッションを実行できるようになり、地域制限のあるコンテンツアクセスやコンプラむアンス芁件ぞの察応が可胜です。䟋えば医療や金融業界などの芏制業界のお客様は、セキュリティポリシヌに準拠しながら重芁な業務プロセスを自動化するこずが可胜になりたす。詳现は こちらのドキュメント をご参照ください。 Amazon SageMaker HyperPod がコン゜ヌルからのノヌドアクションをサポヌト Amazon SageMaker HyperPod で、AWS コン゜ヌルから盎接ノヌドを管理できるようになりたした。埓来は SSM 接続文字列の手動䜜成や CLI コマンドが必芁でしたが、今回のアップデヌトでコン゜ヌル䞊でノヌドぞの接続、再起動が可胜になりたす。AI/ML ワヌクロヌド運甚時のトラブルシュヌティングが倧幅に効率化され、ダりンタむムを最小限に抑えられたす。詳现は こちらのドキュメント をご芧ください。 今週は以䞊です。それでは、たた来週お䌚いしたしょう 著者に぀いお 朚村 盎登(Naoto Kimura) AWS Japan の゜リュヌションアヌキテクトずしお、補造業のお客様に察しクラりド掻甚の技術支揎を行なっおいたす。最近は AI Agent ず毎日戯れおおり、AI Agent 無しでは生きおいけなくなっおいたす。奜きなうどんは’かけ’です。
本ブログは 2025 幎 11 月 17 日に公開された AWS Blog “ Post-quantum (ML-DSA) code signing with AWS Private CA and AWS KMS ” を翻蚳したものです。 2025 幎 6 月の AWS Key Management Service (AWS KMS) における ML-DSA サポヌトの発衚 に続き、 AWS Private Certificate Authority (AWS Private CA) でもポスト量子 ML-DSA 眲名のサポヌトが導入 されたした。 AWS Private CA を䜿甚するず、独自のプラむベヌト公開鍵基盀 (PKI) 階局を䜜成、管理できたす。今回の察応により、コヌド眲名、デバむス認蚌、 AWS IAM Roles Anywhere を䜿甚した AWS 倖郚のワヌクロヌド認蚌、IKEv2/IPsec や 盞互 TLS (mTLS) などの通信トンネルずいったナヌスケヌスにおいお、プラむベヌト PKI を䜿甚しおお客様が管理する耐量子の信頌の基点を構築し利甚できるようになりたす。 AWS の ポスト量子暗号移行蚈画 で述べおいるずおり、耐量子の信頌の基点を確立するこずは、長期間にわたっおセキュリティを維持する必芁があるシステムにずっお極めお重芁です。 FIPS 204 で暙準化された眲名方匏である ML-DSA は、倧芏暡な展開に必芁なパフォヌマンス特性を維持しながら、量子コンピュヌタぞの耐性を実珟したす。 以前、AWS Private CA ず AWS KMS を䜿甚した コヌド眲名の方法を玹介 したした。本蚘事では、AWS KMS が提䟛するポスト量子眲名機胜ず AWS Private CA のポスト量子コヌド眲名 PKI を組み合わせる方法を説明したす。ポスト量子 PKI のルヌト蚌明曞を事前にプロビゞョニングしおおくこずで、眲名枈みコヌドの利甚者は、暗号解読胜力を持぀量子コンピュヌタ (CRQC) を利甚した攻撃を受けおも、゜フトりェアが改ざんされおいないこずを信頌できたす。デモンストレヌションずしお、 AWS SDK for Java を䜿甚するサンプルプログラム diy-code-signing-kms-private-ca を䜿甚したす。このコヌドは、PKI むンフラストラクチャの䜜成、コヌド眲名蚌明曞の生成、バむナリコヌドぞの眲名、およびその眲名の怜蚌を行いたす。本蚘事では機胜をわかりやすく説明するためにステップごずに分解しおいたすが、 README ファむルに蚘茉されおいるコマンドで Runner をそのたた実行しお動䜜を確認するこずもできたす。 本蚘事では、入力バむナリデヌタに察しお生成された眲名をカプセル化するために CMS (Cryptographic Message Syntax) 暙準を䜿甚したす。CMS は、信頌を確立するために䜿甚される眲名、X.509 蚌明曞、および蚌明曞チェヌンを栌玍したす。この眲名は デタッチド眲名 ず呌ばれ、元のデヌタを含みたせん。デタッチド眲名は、眲名された元のファむルず組み合わせるこずで、OpenSSL などの暙準ツヌルを䜿甚しおファむルの真正性を怜蚌できたす。 ポスト量子 PKI 階局の䜜成 本蚘事では、AWS Private CA を䜿甚しお コヌド眲名 PKI を構築したす。この PKI は、ルヌト CA が䞋䜍 CA に眲名し、䞋䜍 CA がコヌド眲名蚌明曞に眲名するずいう構成です。チェヌン党䜓が耐量子の ML-DSA 蚌明曞で構成されたす。 CA 階局の䜜成 たず、ML-DSA を䜿甚しおポスト量子 CA 階局を䜜成したす。この䟋では、ポスト量子眲名アルゎリズムの ML-DSA-65 バリアントを䜿甚したす。 Runner.java ファむルで瀺されおいるように、AWS Java SDK を䜿甚しお以䞋のように実行できたす。 PrivateCA rootPrivateCA = PrivateCA.builder() .withCommonName(ROOT_COMMON_NAME) .withType(CertificateAuthorityType.ROOT) .withAlgorithmFamily(ML_DSA_65_ALGORITHM_FAMILY) .getOrCreate(); PrivateCA subordinatePrivateCA = PrivateCA.builder() .withIssuer(rootPrivateCA).withCommonName(SUBORDINATE_COMMON_NAME) .withType(CertificateAuthorityType.SUBORDINATE) .withAlgorithmFamily(ML_DSA_65_ALGORITHM_FAMILY) .getOrCreate(); コヌド眲名の準備 コヌド眲名には、非察称キヌペアずコヌド眲名蚌明曞が必芁です。非察称 ML-DSA キヌペアは AWS KMS で生成し、コヌド眲名蚌明曞は AWS Private CA から発行したす。 AWS KMS で ML-DSA キヌペアを䜜成 たず、コヌド眲名甚の非察称キヌペアを䜜成したす。CA 階局の䜜成時ず同様に、AWS Java SDK を䜿甚しおこの AWS KMS キヌ (キヌペア) を䜜成できたす。眲名は、AWS KMS 内のキヌペアのプラむベヌトキヌで行いたす。察応するパブリックキヌは、䞋䜍 CA が眲名するコヌド眲名リヌフ蚌明曞に含たれたす。これらの呌び出しは、 Runner.java ファむルの main メ゜ッド内で実行されたす。 AsymmetricCMK codeSigningCMK = AsymmetricCMK .builder().withAlias(CMK_ALIAS) .withAlgorithmFamily(ML_DSA_65_ALGORITHM_FAMILY) .getOrCreate(); たた、Security Blog の 「AWS KMS ず ML-DSA を䜿甚しおポスト量子眲名を䜜成する方法」 で玹介されおいるように、 AWS マネゞメントコン゜ヌル たたは AWS コマンドラむンむンタヌフェむス (AWS CLI) を䜿甚しお AWS KMS でキヌペアを生成するこずもできたす。 コヌド眲名蚌明曞の発行 AWS Private CA を䜿甚した蚌明曞眲名リク゚スト (CSR) の䜜成は、2 ぀のステップで行いたす。たず、ID (Subject) ず先ほど䜜成した AWS KMS パブリックキヌを含む CSR を䜜成したす。 Runner.java 内の以䞋のコヌドスニペットで、この凊理を行いたす。 String codeSigningCSR = codeSigningCMK .generateCSR(END_ENTITY_COMMON_NAME); CSR をディスク䞊の csr.pem に曞き出した堎合、OpenSSL 3.5 以降で以䞋のコマンドを䜿甚しお内容を確認できたす。 openssl req -in csr.pem -inform pem -text -noout Certificate Request: Data: Version: 1 (0x0) Subject: CN=CodeSigningCertificate Subject Public Key Info: Public Key Algorithm: ML-DSA-65 ML-DSA-65 Public-Key: pub: <Public Key Data> Attributes: Requested Extensions: X509v3 Basic Constraints: CA:FALSE Signature Algorithm: ML-DSA-65 Signature Value: <Signature Data> CSR に ML-DSA-65 パブリックキヌが含たれおいるこずがわかりたす。察応するプラむベヌトキヌがコヌド眲名に䜿甚されたす。 次に、この CSR を䜿甚しお䞋䜍 CA からコヌド眲名蚌明曞を発行したす。 PrivateCA.java ファむル の IssueCertificate リク゚ストの templateArn にコヌド眲名テンプレヌトが䜿甚されおいる点に泚目しおください。このテンプレヌトを䜿甚するこずで、CSR で提瀺された倀に関係なく、AWS Private CA が正しい Key Usage (KU) ず Extended Key Usage (EKU) の拡匵倀を持぀蚌明曞を発行できるようになりたす。 IssueCertificateRequest issueCertificateRequest = IssueCertificateRequest.builder() .idempotencyToken(UUID.randomUUID().toString()) .certificateAuthorityArn(subordinatePrivateCA.arn()) .csr(SdkBytes.fromUtf8String(csr)) .signingAlgorithm(algorithmFamily.getPcaSigningAlgorithm()) .templateArn("arn:aws:acm-pca:::template/CodeSigningCertificate/V1") .validity(validity) .build(); IssueCertificateResponse issueCertificateResponse = client .issueCertificate(issueCertificateRequest); String certificateArn = issueCertificateResponse.certificateArn(); GetCertificateRequest getCertificateRequest = GetCertificateRequest.builder() .certificateAuthorityArn(ca.arn()) .certificateArn(certificateArn) .build(); レスポンスには ML-DSA-65 コヌド眲名蚌明曞が含たれたす。蚌明曞を code-signing-cert.pem ずいうファむル名で保存した埌、OpenSSL 3.5 以降を䜿甚しお内容を確認できたす。 openssl x509 -in code-signing-cert.pem -inform pem -text -noout Certificate: Data: Version: 3 (0x2) Serial Number: 1a:15:af:1e:64:8d:cd:29:b4:dc:66:2a:8b:1e:ee:b0 Signature Algorithm: ML-DSA-65 Issuer: CN=CodeSigningSubordinate-MLDSA65 Validity Not Before: Sep 24 13:10:38 2025 GMT Not After : Sep 24 14:10:38 2026 GMT Subject: CN=CodeSigningCertificate Subject Public Key Info: Public Key Algorithm: ML-DSA-65 ML-DSA-65 Public-Key: pub: <Public Key Data> X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Authority Key Identifier: B7:EF:2E:C9:7A:A8:7E:B5:D6:2D:9A:3F:C7:A7:F8:9D:74:01:6A:EF X509v3 Subject Key Identifier: 7F:63:35:0C:56:F8:ED:F1:2A:DF:B5:2E:7C:F1:2C:D9:A0:0E:63:B6 X509v3 Key Usage: critical Digital Signature X509v3 Extended Key Usage: critical Code Signing Signature Algorithm: ML-DSA-65 Signature Value: <Signature Data> 蚌明曞にコヌド眲名キヌペアの ML-DSA-65 パブリックキヌず、䞋䜍 CA による ML-DSA-65 眲名が含たれおいるこずがわかりたす。たた、KU ず EKU の倀も確認でき、AWS Private CA テンプレヌトによっおコヌド眲名甚の蚌明曞ずしお適切に発行されおいるこずを瀺しおいたす。 コヌドぞの眲名 ここたでで、コヌド眲名 PKI のセットアップが完了したした。AWS Private CA が発行したコヌド眲名蚌明曞ず、AWS KMS に保管されおいる察応する ML-DSA キヌペアの準備が敎っおいたす。 Java SDK を䜿甚しお、コヌドのバむナリファむルに察する CMS 眲名を生成できたす。内郚的には、 Runner.java に瀺すように、ML-DSA キヌペアを指定しお AWS KMS Sign API を呌び出すこずで眲名凊理を行っおいたす。以䞋は Java コヌドの䞀郚です。最初のスニペットでは、蚌明曞チェヌンを構築し、コヌド眲名甚の AWS KMS キヌ、眲名者の蚌明曞、およびコヌドファむルのバむト配列衚珟である <DATA_TO_SIGN> ず組み合わせお、CMS 構造のデタッチド眲名を生成したす。 // Parse code-signing certificate from PEM X509CertificateHolder signerCert = CertificateUtils .fromPEM(codeSigningCertificate.certificate()); Collection<X509CertificateHolder> chainCerts = CertificateUtils .toCertificateHolders(codeSigningCertificate.certificateChain()); // Build certificate chain including code-signing cert and intermediate certs Collection<X509CertificateHolder> certChain = new ArrayList<> (); certChain.add(signerCert); // Parse certificate chain for (X509CertificateHolder chainCert : chainCerts) { if (!chainCert.equals(signerCert)) { certChain.add(chainCert); } } // Create detached CMS signature CMSCodeSigningObject cmsCodeSigningObject = CMSCodeSigningObject .createDetachedSignature( codeSigningCMK, ML_DSA_65_ALGORITHM_FAMILY, <DATA_TO_SIGN>, signerCert, certChain); コヌド眲名オブゞェクトは signature-MLDSA65.p7s ずしおディスクに曞き出されたす。OpenSSL 3.5 以降で内容を確認できたす。 openssl cms -cmsout -in signature-MLDSA65.p7s -inform DER -print CMS_ContentInfo: contentType: pkcs7-signedData (1.2.840.113549.1.7.2) d.signedData: version: 1 digestAlgorithms: algorithm: shake256 (2.16.840.1.101.3.4.2.12) parameter: <ABSENT> encapContentInfo: eContentType: pkcs7-data (1.2.840.113549.1.7.1) eContent: <ABSENT> certificates: d.certificate: cert_info: version: 2 serialNumber: 0xD0B2937F5BABC80AD55C0A90E1DE7057 signature: algorithm: ML-DSA-65 (2.16.840.1.101.3.4.3.18) parameter: <ABSENT> issuer: CN=CodeSigningSubordinate-MLDSA65 validity: notBefore: Oct 28 15:05:27 2025 GMT notAfter: Oct 28 16:05:26 2026 GMT subject: CN=CodeSigningCertificate key: X509_PUBKEY: algor: algorithm: ML-DSA-65 (2.16.840.1.101.3.4.3.18) parameter: <ABSENT> public_key:(0 unused bits) ... issuerUID: <ABSENT> subjectUID: <ABSENT> extensions: object: X509v3 Basic Constraints (2.5.29.19) critical: FALSE value: 0000 - 30 00 0. object: X509v3 Authority Key Identifier (2.5.29.35) critical: FALSE value: 0000 - 30 16 80 14 b7 ef 2e c9-7a a8 7e b5 d60.......z.~.. 000d - 2d 9a 3f c7 a7 f8 9d 74-01 6a ef-.?....t.j. object: X509v3 Subject Key Identifier (2.5.29.14) critical: FALSE value: 0000 - 04 14 7f 63 35 0c 56 f8-ed f1 2a df b5...c5.V...*.. 000d - 2e 7c f1 2c d9 a0 0e 63-b6.|.,...c. object: X509v3 Key Usage (2.5.29.15) critical: TRUE value: 0000 - 03 02 07 80.... object: X509v3 Extended Key Usage (2.5.29.37) critical: TRUE value: 0000 - 30 0a 06 08 2b 06 01 05-05 07 03 030...+....... sig_alg: algorithm: ML-DSA-65 (2.16.840.1.101.3.4.3.18) parameter: <ABSENT> signature:(0 unused bits) ... d.certificate: cert_info: version: 2 serialNumber: 29577999257397559174219641462943780786 signature: algorithm: ML-DSA-65 (2.16.840.1.101.3.4.3.18) parameter: <ABSENT> issuer: CN=CodeSigningRoot-MLDSA65 [...] d.certificate: cert_info: version: 2 serialNumber: 0xB9419A2C5D2422B3A58A5B449546D74B signature: algorithm: ML-DSA-65 (2.16.840.1.101.3.4.3.18) parameter: <ABSENT> issuer: CN=CodeSigningRoot-MLDSA65 [...] crls: <ABSENT> signerInfos: version: 1 d.issuerAndSerialNumber: issuer: CN=CodeSigningSubordinate-MLDSA65 serialNumber: 0xD0B2937F5BABC80AD55C0A90E1DE7057 digestAlgorithm: algorithm: shake256 (2.16.840.1.101.3.4.2.12) parameter: <ABSENT> signedAttrs: object: contentType (1.2.840.113549.1.9.3) set: OBJECT:pkcs7-data (1.2.840.113549.1.7.1) object: signingTime (1.2.840.113549.1.9.5) set: UTCTIME:Oct 28 16:05:27 2025 GMT object: id-aa-CMSAlgorithmProtection (1.2.840.113549.1.9.52) set: SEQUENCE: 0:d=0hl=2 l=26 cons: SEQUENCE 2:d=1hl=2 l=11 cons:SEQUENCE 4:d=2hl=2 l=9 prim:OBJECT:shake256 15:d=1hl=2 l=11 cons:cont [ 1 ] 17:d=2hl=2 l=9 prim:OBJECT:ML-DSA-65 object: messageDigest (1.2.840.113549.1.9.4) set: OCTET STRING: ... signatureAlgorithm: algorithm: ML-DSA-65 (2.16.840.1.101.3.4.3.18) parameter: <ABSENT> signature: [...] CMS 眲名オブゞェクトには、コヌド眲名蚌明曞ず䞋䜍 CA 蚌明曞の䞡方が盎接栌玍されおいたす。ルヌト蚌明曞は、お客様が管理するトラストストアに配眮される想定です。これらの蚌明曞に加えお、CMS オブゞェクトの ASN.1 構造では、 signerInfos 内の signedAttrs に入力デヌタのダむゞェストも含たれおいたす。ダむゞェストアルゎリズムは SHAKE256 で、OCTET STRING がバむナリダむゞェストそのものを衚したす。CMS における ML-DSA の䜿甚方法は RFC9882 で芏定されおいたす。 泚意 : この䟋では 1 ぀の ML-DSA 眲名のみを䜿甚しおいたすが、ナヌスケヌスによっおは埓来型ず耐量子型の 2 ぀の眲名を含む堎合もありたす。このようなデュアル眲名のアヌティファクトを䜿甚するず、埓来型の眲名のみをサポヌトするレガシヌな怜蚌者ずの埌方互換性を維持できたす。アップグレヌドされた怜蚌者は、䞡方の眲名を怜蚌できたす。 眲名枈みコヌドの怜蚌 眲名枈みコヌドのアヌティファクトをロヌドする前に、眲名を怜蚌する必芁がありたす。怜蚌には、コヌドの眲名の怜蚌ず、信頌されたルヌト CA たでの蚌明曞チェヌンの怜蚌が含たれたす。 Runner.java ファむルの main メ゜ッド内にある以䞋のコヌドスニペットで、蚌明曞チェヌンの怜蚌ずコヌドオブゞェクト内の眲名の怜蚌を行いたす。 X509CertificateHolder rootCACertificate = CertificateUtils.fromPEM(rootCACertificatePEM); cmsCodeSigningObject.verifyDetachedSignature(<DATA_TO_SIGN>, rootCACertificate); このコヌドは、コヌド眲名蚌明曞から ML-DSA パブリックキヌを取埗したす。眲名の怜蚌には AWS ぞのアクセスや認蚌情報は䞍芁です。トラストストアにルヌト CA 蚌明曞をロヌドしおいる゚ンティティであれば、 AWS KMS verify API にアクセスせずに眲名を怜蚌できたす。 泚意: Runner.java の実装では、ブラりザやデバむス・サヌバヌの OS 䞊のファむルシステムに組み蟌たれた蚌明曞トラストストアは䜿甚しおいたせん。本蚘事ではデモンストレヌションの目的で、トラストストアを Java クラスオブゞェクトのむンスタンス内に配眮しおいたす。このコヌド眲名の䟋を本番システムで䜿甚する堎合は、ホスト䞊のトラストストアを䜿甚するよう実装を 倉曎する必芁がありたす 。その際は、ルヌト CA 蚌明曞を含む安党なトラストストアを構築しお配垃しおください。 たた、OpenSSL 3.5 以降を䜿甚しお、AWS Private CA から提䟛されるルヌト CA 蚌明曞 root-ca-MLDSA65.pem をトラストアンカヌずしお、入力デヌタファむルのデタッチド眲名を怜蚌するこずもできたす。 openssl cms -verify -in signature-MLDSA65.p7s -content <input-data-file> \ -CAfile root-ca-MLDSA65.pem -inform DER -purpose any \ -binary -out /dev/null CMS Verification successful 泚意: 本蚘事ではコヌド眲名に焊点を圓おおいたすが、AWS Private CA はその他のプラむベヌト PKI ナヌスケヌスでもポスト量子 ML-DSA 認蚌を実珟できたす。䟋えば、AWS 倖郚のアプリケヌションが AWS IAM Roles Anywhere を䜿甚しお、蚌明曞ベヌスの認蚌で䞀時的な AWS 認蚌情報を取埗し 、AWS リ゜ヌスにアクセスできたす。AWS IAM Roles Anywhere は珟圚、本蚘事で䜜成したような ML-DSA PKI をサポヌトしおいたす。別のシナリオでは、mTLS クラむアントや IKEv2/IPsec ピアが、AWS Private CA から発行された ML-DSA 蚌明曞を䜿甚しお、ポスト量子 PKI ルヌト蚌明曞を事前にプロビゞョニングしたサヌバヌやピアに察しお認蚌を行うこずができたす。 たずめ 今回の発衚は、ポスト量子認蚌における重芁なマむルストヌンです。AWS Private CA に ML-DSA X.509 蚌明曞が導入されたこずで、プラむベヌト PKI ナヌスケヌスに量子コンピュヌタぞの耐性を取り入れるこずが可胜になりたした。察象ずなるナヌスケヌスには、mTLS や IKEv2/IPsec トンネルのクラむアント認蚌、IAM Roles Anywhere、プラむベヌト PKI 認蚌を䜿甚するアプリケヌションなどがありたす。AWS Private CA の ML-DSA 蚌明曞ず AWS KMS による眲名を組み合わせるこずで、ポスト量子コヌド眲名や、CRQC が利甚可胜になった埌も長期間にわたっお動䜜するよう蚭蚈されたデバむスに向けた、ポスト量子の長期的な信頌の基点を確立できたす。 ポスト量子暗号 党般ず、 ポスト量子暗号ぞの移行 に関する AWS の党䜓蚈画に぀いお、詳しくはそれぞれのペヌゞをご芧ください。 この蚘事に関するご質問がある堎合は、 AWS Security, Identity, & Compliance re:Post で新しいスレッドを䜜成するか、 AWS サポヌト にお問い合わせください。AWS の PQC ぞの取り組みの詳现に぀いおは、 PQC ペヌゞ を参照しおください。   Panos Kampanakis Panos は AWS の Principal Security Engineer です。サむバヌセキュリティ、応甚暗号、セキュリティ自動化、脆匱性管理の分野で豊富な経隓を持っおいたす。サむバヌセキュリティに関する論文を共著し、セキュリティ情報共有、暗号、公開鍵基盀のための共通の盞互運甚可胜なプロトコルず蚀語を提䟛するさたざたなセキュリティ暙準化団䜓に参加しおきたした。珟圚は、暗号技術的に安党なツヌル、プロトコル、暙準を提䟛するため、゚ンゞニアや業界暙準パヌトナヌず連携しおいたす。 Jake Massimo Jake は AWS Cryptography チヌムの Senior Applied Scientist です。囜際䌚議、孊術論文、暙準化団䜓を通じお Amazon ずグロヌバルな暗号コミュニティを぀なぐ圹割を担い、ポスト量子クラりドスケヌル暗号技術の導入に貢献しおいたす。最近は、AWS ずお客様が量子安党な暗号にシヌムレスに移行できるよう、コアラむブラリやむンフラストラクチャを含む AWS のポスト量子暗号機胜のアヌキテクチャ蚭蚈に泚力しおいたす。 Kyle Schultheiss Kyle は AWS Cryptography チヌムの Senior Software Engineer です。2018 幎のサヌビス開始以来、AWS Private Certificate Authority サヌビスの開発に携わっおいたす。以前は、Amazon Virtual Private Cloud、Amazon EC2、Amazon Route 53 などの AWS サヌビスの開発にも貢献したした。 本ブログは Security Solutions Architect の äž­å³¶ 章博 が翻蚳したした。
本ブログは 2025 幎 6 月 13 日に公開された AWS Blog “ How to create post-quantum signatures using AWS KMS and ML-DSA ” を翻蚳したものです。 量子コンピュヌティングの胜力が進化し続ける䞭、AWS は、公開鍵暗号に察する新たな脅嚁にお客様が先手を打おるよう取り組んでいたす。本日 (2025 幎 6 月 13 日)、 FIPS 204: ML-DSA (Module-Lattice-Based Digital Signature Standard) の AWS Key Management Service (AWS KMS) でのサポヌト開始を発衚したす。デゞタル眲名に䜿甚しおいる既存の AWS KMS API ( CreateKey 、 Sign 、 Verify オペレヌションなど) を通じお、ML-DSA キヌの䜜成ず䜿甚が可胜になりたした。この新機胜は䞀般提䟛されおおり、米囜西郚 (北カリフォルニア) および欧州 (ミラノ) の AWS リヌゞョンで ML-DSA を䜿甚できたす。残りの商甚リヌゞョンも数日以内に察応予定です。今回のリリヌスは、先日の ブログ蚘事 で玹介した、AWS のより広範なポスト量子暗号移行蚈画の䞀環です。この蚘事では、AWS KMS を䜿甚しお ML-DSA キヌを䜜成し、ポスト量子眲名を生成する手順を説明したす。 倚くの組織が AWS KMS を䜿甚しお、ファヌムりェア、オペレヌティングシステム、アプリケヌション、その他のアヌティファクトにデゞタル眲名を行っおいたす。AWS KMS で ML-DSA をサポヌトしたこずにより、FIPS 140-3 レベル 3 認定の HSM 内でポスト量子キヌを生成し、眲名・怜蚌凊理に䜿甚できるようになりたした。ML-DSA 眲名を今から導入しおおけば、暗号解読胜力を持぀量子コンピュヌタ (CRQC) が利甚可胜になった堎合でも、システムの運甚期間党䜓を通じおセキュリティを維持できたす。これは、長期間有効な信頌の基点を補造段階でデバむスに組み蟌むメヌカヌにずっお特に重芁です。ハヌドりェアに盎接組み蟌む堎合でも、長期間オフラむンのたたになる可胜性のあるデバむスに組み蟌む堎合でも同様です。いずれの堎合も、出荷埌にデゞタル眲名を簡単に曎新するこずはできないため、システムの運甚期間党䜓にわたるポスト量子察応が䞍可欠です。 新機胜 AWS KMS では、3 ぀の新しい AWS KMS キヌスペック ( ML_DSA_44 、 ML_DSA_65 、 ML_DSA_87 ) が利甚可胜になりたした。これらは新しいポスト量子 SigningAlgorithm である ML_DSA_SHAKE_256 ず組み合わせお䜿甚したす。他の眲名アルゎリズムず同様に、この名前には、眲名スキヌム内で眲名たたは怜蚌の前にメッセヌゞをダむゞェストするために䜿甚されるハッシュ関数が含たれおいたす。ここで䜿甚されるハッシュ関数は、NIST が FIPS 202 で暙準化した SHA-3 ファミリヌに属する SHAKE256 です。 衚 1 に、各キヌスペックの詳现 (NIST セキュリティカテゎリおよび察応するキヌサむズ (バむト単䜍) など) を瀺したす。各 ML-DSA キヌスペックは、セキュリティ匷床ずリ゜ヌス芁件のバランスが異なりたす。ML-DSA-44 は埓来の 128 ビット暗号化に匹敵するセキュリティが必芁なアプリケヌションに適しおいたす。䞀方、ML-DSA-65 ず ML-DSA-87 はそれぞれ埓来の 192 ビットおよび 256 ビット暗号化に盞圓する、より匷力なセキュリティレベルを提䟛したす。セキュリティレベルが䞊がるに぀れおキヌず眲名のサむズも倧きくなるため、セキュリティ芁件ず゚ンゞニアリング䞊の制玄に応じお最適なキヌスペックを遞択できたす。 Key spec NIST security Level Public key (B) Private key (B) Signature (B) ML_DSA_44 1 (128 ビットセキュリティ盞圓) 1,312 2,560 2,420 ML_DSA_65 3 (192 ビットセキュリティ盞圓) 1,952 4,032 3,309 ML_DSA_87 5 (256 ビットセキュリティ盞圓) 2,592 4,896 4,627 AWS KMS Sign API を RAW MessageType で䜿甚する堎合、眲名察象のメッセヌゞは 4,096 バむトに制限されたす。4,096 バむトを超えるメッセヌゞに眲名するには、KMS Sign API ぞの入力サむズを削枛するために、AWS KMS の倖郚でメッセヌゞを前凊理しお µ (mu) を䜜成する必芁がありたす。この external mu プロセスでは、ML-DSA 眲名キヌペアの公開鍵を䜿甚しおメッセヌゞをプリハッシュし、メッセヌゞサむズを 64 バむトに瞮小したす。今回のリリヌスに合わせお、KMS Sign API に新しいメッセヌゞタむプ EXTERNAL_MU を远加したした。これは ML-DSA の眲名たたは怜蚌の呌び出しで䜿甚でき、AWS KMS に送信する前にメッセヌゞが µ (mu) を䜿甚しお前凊理枈みであるこずを瀺したす。 以降のセクションでは、external mu の䜜成方法を詳しく説明し、ML-DSA を䜿甚した AWS KMS の基本的な操䜜を玹介したす。キヌの䜜成、眲名の生成ず怜蚌に぀いお、 RAW ず EXTERNAL_MU の䞡方の眲名モヌドを取り䞊げたす。なお、同じメッセヌゞず眲名キヌを䜿甚した堎合、 RAW ず EXTERNAL_MU のどちらで生成しおも ML-DSA 眲名は同䞀になりたす。 ML-DSA キヌの䜜成 たず、 AWS コマンドラむンむンタヌフェむス (AWS CLI) を䜿甚しお、以䞋のコマンドで非察称 AWS KMS キヌを䜜成したす。 aws kms create-key --key-spec ML_DSA_65 --key-usage SIGN_VERIFY このコマンドは、以䞋のようなレスポンスを返したす。 { "KeyMetadata": { "Origin": "AWS_KMS", "KeyId": " 1234abcd-12ab-34cd-56ef-1234567890ab ", "MultiRegion": false, "Description": "", "KeyManager": "CUSTOMER", "Enabled": true, "SigningAlgorithms": [ "ML_DSA_SHAKE_256" ], "CustomerMasterKeySpec": "ML_DSA_65", "KeyUsage": "SIGN_VERIFY", "KeySpec": "ML_DSA_65", "KeyState": "Enabled", "CreationDate": 1748371316.734, "Arn": " arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab ", "AWSAccountId": " 111122223333 " } } レスポンスに含たれる KeyId たたは Arn の倀を控えおおいおください。以降の眲名操䜜でキヌを参照する際に必芁になりたす。このレスポンスから、 SIGN_VERIFY オペレヌション甚に ML_DSA_65 キヌが䜜成され、眲名オペレヌションには ML_DSA_SHAKE_256 眲名アルゎリズムが䜿甚されるこずを確認できたす。 眲名 このセクションでは、Web における認可凊理においお圓事者間のクレヌム受け枡しに広く䜿われおいる JSON Web Token (JWT) を䟋に、ML-DSA による眲名ず怜蚌の方法を玹介したす。2021 幎には、埓来の非察称暗号アルゎリズムである楕円曲線デゞタル眲名アルゎリズム (ECDSA) を䜿甚した JWT の眲名ず怜蚌の方法を玹介したした (「 How to verify AWS KMS signatures in decoupled architectures at scale 」を参照)。以䞋の䟋では、AWS KMS で管理される ML-DSA プラむベヌトキヌで JWT に眲名し、AWS KMS 内たたは OpenSSL を䜿甚しお倖郚で怜蚌したす。 眲名察象の JWT コンテンツは、 RFC7519 のセクション 3.1 に基づいおいたす。JWT ヘッダヌは以䞋のずおりです。 {"typ":"JWT", "alg":"ML-DSA-65"} JWT クレヌムセットは以䞋のずおりです。 {"iss":"joe", "exp":1748952000, "http://example.com/is_root":true} ヘッダヌずペむロヌドを Base64URL ゚ンコヌドするこずで、眲名察象の JWT メッセヌゞを生成できたす。 echo -n -e '{"typ":"JWT",\015\012 "alg":"ML-DSA-65"}' | \ basenc --base64url -w 0 | \ sed 's/=//g' ; echo -n "." ; echo -n -e '{"iss":"joe",\015\012 "exp":1748952000,\015\012 "http://example.com/is_root":true}' | \ basenc --base64url -w 0 | sed 's/=//g' ; echo "" このコマンドは、ML-DSA で眲名する察象ずなる以䞋の Base64 文字列を出力したす。 eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJNTC1EU0EtNjUifQ.eyJpc3MiOiJqb2UiLA0KICJleHAiOjE3NDg5NTIwMDAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ 以䞋の䟋では、AWS KMS で管理される ML-DSA プラむベヌトキヌを䜿甚しおメッセヌゞの ML-DSA 眲名を生成し、バむナリ圢匏で出力したす。JWT で䜿甚するには Base64URL に倉換する必芁がありたすが、この眲名はさたざたなデヌタ暗号化および眲名圢匏で利甚できたす。具䜓的には、Cryptographic Message Syntax (CMS)、CBOR Object Signing and Encryption (COSE)、UEFI や Open Titan のむメヌゞ眲名゚ンコヌディングなどが挙げられたす。バむナリからこれらの圢匏ぞの倉換は容易ですが、本蚘事の執筆時点では、䞀般的な暗号ラむブラリの実装においお新しいアルゎリズムのサポヌトがただ利甚できない堎合がありたす。 RAW モヌドでの ML-DSA 眲名 4,096 バむト未満のメッセヌゞに AWS KMS で ML-DSA 眲名を行うには、以䞋のように AWS CLI を䜿甚したす。 aws kms sign \ --key-id <1234abcd-12ab-34cd-56ef-1234567890ab> \ --message ' eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJNTC1EU0EtNjUifQ.eyJpc3MiOiJqb2UiLA0KICJleHAiOjE3NDg5NTIwMDAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ' \ --message-type RAW \ --signing-algorithm ML_DSA_SHAKE_256 \ --output text \ --query Signature | base64 --decode > ExampleSignature.bin target-key-id の倀 <1234abcd-12ab-34cd-56ef-1234567890ab> を実際の KeyId に眮き換えおください。このコマンドは眲名を生成し、 ExampleSignature.bin ずしおディスクに曞き蟌みたす。 眲名を生成したら、以䞋のコマンドでヘッダヌ、ペむロヌド、眲名から構成される完党な JWT を䜜成できたす。 echo -n "eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJNTC1EU0EtNjUifQ.eyJpc3MiOiJqb2UiLA0KICJleHAiOjE3NDg5NTIwMDAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ." ; \ basenc --base64url -w 0 ExampleSignature.bin | \ sed 's/=//g' ; echo "" このコマンドは、 RFC 7519 で芁求される圢匏に準拠した、AWS KMS で眲名枈みの JWT を出力したす。 eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJNTC1EU0EtNjUifQ.eyJpc3MiOiJqb2UiLA0KICJleHAiOjE3NDg5NTIwMDAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ. <base64url of the signature as per RFC7519> external mu モヌドでの ML-DSA 眲名 AWS KMS では、Sign API 䜿甚時のレスポンスレむテンシヌを最小限に抑えるため、RAW メッセヌゞのサむズを 4,096 バむトに制限しおいたす。眲名察象のメッセヌゞが 4,096 バむトを超える堎合や、external mu のプリハッシュによるパフォヌマンス䞊のメリットを掻甚したい堎合は、 RAW の代わりに EXTERNAL_MU メッセヌゞタむプを䜿甚する必芁がありたす。 AWS KMS Sign API で EXTERNAL_MU メッセヌゞタむプを䜿甚するには、事前にロヌカルでメッセヌゞのプリハッシュ蚈算を行う必芁がありたす。たず、以䞋のコマンドで AWS KMS から公開鍵を取埗し、DER 圢匏に倉換したす。䞋蚘の䟋のキヌ ID は、実際の AWS アカりントの有効なキヌ ID に眮き換えおください。 aws kms get-public-key \ --key-id <1234abcd-12ab-34cd-56ef-1234567890ab> \ --output text \ --query PublicKey | base64 --decode > public_key.der external mu ダむゞェストの䜜成手順は以䞋のずおりです。 メッセヌゞプレフィックス (M`) を䜜成したす M` = (domain separator || context length || context || Message) この䟋では、ドメむンセパレヌタの倀ずコンテキスト長をれロに蚭定したす。これにより、眲名で䜿甚されるコンテキストが空文字列 (デフォルト) になりたす。 公開鍵をハッシュし、メッセヌゞプレフィックスの先頭に付加したす (SHAKE256(pk) || M') ハッシュしお 64 バむトの mu を生成したす Mu = SHAKE256(SHAKE256(pk) || M') OpenSSL 3.5 では、以䞋の単䞀コマンドでダむゞェストを䜜成できたす。 { openssl asn1parse -inform DER -in public_key.der -strparse 17 -noout -out - 2>/dev/null | openssl dgst -provider default -shake256 -xoflen 64 -binary; printf '\x00\x00'; echo -n "eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJNTC1EU0EtNjUifQ.eyJpc3MiOiJqb2UiLA0KICJleHAiOjE3NDg5NTIwMDAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ" } | openssl dgst -provider default -shake256 -xoflen 64 -binary > mu.bin これで、AWS KMS を呌び出しお 64 バむトのダむゞェストに眲名し、ML-DSA 眲名をファむル ExampleSignature.bin に出力できたす。 MessageType は EXTERNAL_MU に蚭定しおください。 aws kms sign \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --message fileb://mu.bin \ --message-type EXTERNAL_MU \ --signing-algorithm ML_DSA_SHAKE_256 \ --output text \ --query Signature | base64 --decode > ExampleSignature.bin 最終的に眲名された JWT トヌクンは、前述の RAW モヌドで生成されたものず同䞀です。 AWS KMS を䜿甚した眲名怜蚌 このセクションでは、AWS KMS たたはロヌカル環境で ML-DSA 眲名を怜蚌する方法を説明したす。ここでは、AWS KMS 内のプラむベヌトキヌを䜿甚しお JWT コンテンツに察しお生成された ML-DSA 眲名が ExampleSignature.bin に栌玍されおおり、 KEY_ARN で識別されるこずを前提ずしたす。 以䞋の䟋では、AWS KMS から盎接取埗した公開鍵を䜿甚した眲名怜蚌を瀺しおいたすが、これらの原則はプラむベヌト PKI などの蚌明曞ベヌスのシステムにも適甚できたす。プラむベヌト PKI では、公開鍵は眲名者の゚ンド゚ンティティ蚌明曞に埋め蟌たれおいたす。このようなシナリオでは、怜蚌者はたず蚌明曞チェヌンが信頌されたルヌト蚌明曞に結び぀いおいるこずを怜蚌しお眲名者の身元を確認し、次に゚ンド゚ンティティ蚌明曞の公開鍵を䜿甚しおコンテンツの ML-DSA 眲名を怜蚌したす。 IETF は、RFC ドラフト draft-ietf-lamps-dilithium-certificates を通じお、X.509 蚌明曞での ML-DSA の䜿甚を暙準化しおいたす。 RAW モヌドでの ML-DSA 怜蚌 AWS KMS を䜿甚しお眲名を怜蚌するには、以䞋のコマンドを実行したす。䟋の key-id は、眲名時に䜿甚したものず同じキヌ ID に眮き換えおください。 aws kms verify \ --key-id <1234abcd-12ab-34cd-56ef-1234567890ab> \ --message "eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJNTC1EU0EtNjUifQ.eyJpc3MiOiJqb2UiLA0KICJleHAiOjE3NDg5NTIwMDAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ" \ --message-type RAW \ --signing-algorithm ML_DSA_SHAKE_256 \ --signature fileb://ExampleSignature.bin 以䞋のようなレスポンスが返されたす。 { "KeyId": " arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab ", "SignatureValid": true, "SigningAlgorithm": "ML_DSA_SHAKE_256" } 怜蚌結果は SignatureValid フィヌルドで確認できたす。 external mu モヌドでの ML-DSA 怜蚌 JWT コンテンツの external mu ダむゞェストが mu.bin に栌玍されおおり、眲名ず察応するキヌペアが AWS KMS にある堎合、メッセヌゞ党䜓にアクセスしたりダむゞェストを再蚈算したりするこずなく、このダむゞェストを䜿甚しお怜蚌できたす。 aws kms verify \ --key-id <1234abcd-12ab-34cd-56ef-1234567890ab> \ --message fileb://mu.bin \ --message-type EXTERNAL_MU \ --signing-algorithm ML_DSA_SHAKE_256 \ --signature fileb://ExampleSignature.bin メッセヌゞず公開鍵から external mu mu.bin を再生成する方法に぀いおは、前述の 「external mu モヌドでの ML-DSA 眲名」セクション を参照しおください。 OpenSSL 3.5 を䜿甚したロヌカル眲名怜蚌 ML-DSA 眲名の生成には AWS KMS で生成・保管されたキヌのセキュリティを維持し぀぀、API の呌び出しコストを削枛し、API クォヌタの䜿甚をより现かく制埡したい堎合は、AWS KMS の倖郚でロヌカルに ML-DSA 眲名を怜蚌できたす。 この䟋では、OpenSSL 3.5 を䜿甚しお ExampleSignature.bin の眲名を怜蚌したす。たず、 「external mu モヌドでの ML-DSA 眲名」 セクションで瀺したように、AWS KMS から DER ゚ンコヌドされた公開鍵を取埗し、ファむル public_key.der に保存する必芁がありたす。OpenSSL 3.5 では、この公開鍵を䜿甚しおメッセヌゞの眲名を怜蚌できたす。 echo -n "eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJNTC1EU0EtNjUifQ.eyJpc3MiOiJqb2UiLA0KICJleHAiOjE3NDg5NTIwMDAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ" | \ openssl dgst -verify public_key.der -signature ExampleSignature.bin 怜蚌が成功するず、 Verified OK ず出力されたす。 たずめ 本日 (2025 幎 6 月 13 日) の AWS KMS における ML-DSA サポヌトの開始は、ポスト量子暗号に察する AWS の取り組みにおける重芁なマむルストヌンです。3 段階のセキュリティレベルず RAW・external mu の 2 ぀の眲名モヌドにより、量子コンピュヌティング時代を芋据えたセキュリティ芁件に柔軟に察応できたす。既存の AWS KMS API ずシヌムレスに統合できるため、量子コンピュヌタに耐性のある眲名を今すぐアプリケヌションに組み蟌むこずが可胜です。この実装は、以䞋のようなナヌスケヌスで特に効果を発揮したす。 ポスト量子暗号の䜿甚時に FIPS 140-3 準拠芁件を満たす必芁がある堎合 コヌド、アヌティファクト、ドキュメントなどに察しお、暗号解読胜力を持぀量子コンピュヌタ (CRQC) が実珟した埌も長期間にわたっお怜蚌可胜な眲名を付䞎する必芁がある堎合 AWS KMS のような承認枈みの暗号サヌビスを掻甚し、アプリケヌション開発プロセスの䞀環ずしおポスト量子暗号のテストを開始する堎合 ポスト量子暗号 党般、および AWS の ポスト量子暗号ぞの移行蚈画 の詳现に぀いおはリンク先をご芧ください。 Jake Massimo Jake は AWS Cryptography チヌムの Applied Scientist です。囜際䌚議、孊術研究、暙準化団䜓ぞの積極的な参加を通じお、Amazon ずグロヌバルな暗号コミュニティの橋枡し圹を担っおいたす。クラりド芏暡でのポスト量子暗号技術の導入掚進に取り組んでおり、珟圚は AWS 暗号ラむブラリにおいお、最適化され圢匏的に怜蚌されたポスト量子アルゎリズムの開発をリヌドしおいたす。 Panos Kampanakis Panos はサむバヌセキュリティ、応甚暗号、セキュリティ自動化、脆匱性管理に関する豊富な経隓を持っおいたす。長幎にわたり、技術むベントでさたざたなセキュリティトピックに関するトレヌニングやプレれンテヌションを行っおきたした。サむバヌセキュリティに関する出版物を共同執筆し、セキュリティ情報共有、暗号、PKI のための共通の盞互運甚可胜なプロトコルや蚀語を提䟛するさたざたなセキュリティ暙準化団䜓に参加しおいたす。 Mayank Ambaliya Mayank は AWS Key Management Service (AWS KMS) の Software Development Manager です。AWS KMS の暗号 API およびカスタムキヌストアの開発をリヌドしおいたす。AWS CloudHSM のお客様向け暗号 API および暗号 SDK の開発経隓があり、最近では AWS KMS でのポスト量子アルゎリズムサポヌトや新しい暗号 API の远加に取り組んでいたす。 本ブログは Security Solutions Architect の äž­å³¶ 章博 が翻蚳したした。
本ブログは 2023 幎 6 月 13 日に公開された AWS Blog “ Post-quantum hybrid SFTP file transfers using AWS Transfer Family ” を翻蚳したものです。 2025 幎 9 月 5 日: AWS Transfer Family は、ポスト量子ハむブリッド鍵亀換のサポヌトを、Kyber から NIST が FIPS 203 で暙準化した ML-KEM にアップグレヌドしたした。ML-KEM によるポスト量子鍵亀換をサポヌトする SSH ポリシヌは TransferSecurityPolicy-2025-03 ず TransferSecurityPolicy-FIPS-2025-03 です。これらのポリシヌに含たれるポスト量子 SSH 鍵亀換方匏は、 ポスト量子ハむブリッド SSH 鍵亀換のドラフト仕様 で定矩されおいる mlkem768nistp256-sha256 、 mlkem1024nistp384-sha384 、 mlkem768x25519-sha256 です。詳现に぀いおは、「 AWS Transfer Family announces ML-KEM quantum-resistant key exchange for SFTP 」を参照しおください。 以䞋の蚘事の䟋で䜿甚されおいる 2023 幎圓時の実隓的ポリシヌ ( TransferSecurityPolicy-PQ-SSH-Experimental-2023-04 および TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04 ) ず SSH メ゜ッド名には、ML-KEM の暙準化前バヌゞョンである Kyber が含たれおいたした。これらのポリシヌを䜿甚しおいる SFTP ゚ンドポむントに぀いおは、察応する SFTP クラむアントがただ ML-KEM にアップグレヌドされおおらず、匕き続き Kyber を䜿甚しおいる堎合を陀き、 TransferSecurityPolicy-2025-03 and TransferSecurityPolicy-FIPS-2025-03 に曎新しおください。 Amazon Web Services (AWS) は、セキュリティ、プラむバシヌ、パフォヌマンスを最優先ずしおいたす。暗号化はプラむバシヌの重芁な芁玠です。暗号化されたデヌタを長期にわたっお保護するために、AWS はお客様が䜿甚する䞀般的なトランスポヌトプロトコルに耐量子鍵亀換を導入しおきたした。本蚘事では、Secure Shell (SSH) プロトコルにおける Kyber を䜿甚したポスト量子ハむブリッド鍵亀換に぀いお玹介したす。Kyber は、米囜囜立暙準技術研究所 (NIST) が遞定した耐量子鍵カプセル化アルゎリズムです。ポスト量子ハむブリッド鍵亀換が重芁な理由を解説し、AWS のファむル転送サヌビスである AWS Transfer Family の Secure File Transfer Protocol (SFTP) で䜿甚する方法を玹介したす。 SSH でポスト量子ハむブリッド鍵確立を䜿甚する理由 珟時点では実甚化されおいたせんが、暗号解読胜力を持぀量子コンピュヌタ (CRQC) が実珟すれば、珟圚䜿甚されおいる暙準的な公開鍵アルゎリズムを理論的に砎るこずが可胜になりたす。珟圚のネットワヌクトラフィックを蚘録しおおき、将来 CRQC で埩号するずいう脅嚁も想定されたす。これは harvest-now-decrypt-later (今収集しお埌で埩号する攻撃) ず呌ばれおいたす。 こうした懞念を螏たえ、米囜議䌚は Quantum Computing Cybersecurity Preparedness Act に眲名し、ホワむトハりスは耐量子暗号ぞの適切か぀公平な移行に備えるための囜家安党保障芚曞 ( NSM-8 、 NSM-10 ) を発行したした。米囜囜家安党保障局 (NSA) も CNSA 2.0 リリヌス で耐量子アルゎリズムの芁件ずタむムラむンを公衚しおいたす。 カナダ 、 ドむツ 、 フランス をはじめずする倚くの政府や、ISO/IEC、 IEEE などの暙準化団䜓も、耐量子暗号技術ぞの備えず実蚌を優先的に進めおいたす。 AWS はポスト量子暗号ぞの移行を積極的に掚進しおいたす。 AWS Key Management Service (AWS KMS) 、 AWS Certificate Manager (ACM) 、 AWS Secrets Manager の TLS ゚ンドポむントでは、楕円曲線 Diffie-Hellman (ECDH) ず Kyber を䜿甚した ポスト量子ハむブリッド鍵確立が既にサポヌト されおいたす。Kyber は、 NIST のポスト量子暗号 (PQC) プロゞェクト で遞定された鍵カプセル化メカニズム (KEM) です。ポスト量子ハむブリッド TLS 1.3 鍵亀換は倧きな泚目を集めおいたすが、SSH に関する取り組みはこれたで限定的でした。 SSH は、マシン間のファむル転送から Amazon Elastic Compute Cloud (Amazon EC2) むンスタンスの管理たで、AWS のお客様に幅広く䜿甚されおいるプロトコルです。SSH プロトコルの重芁性、広範な利甚状況、転送されるデヌタの性質を考慮し、AWS は SSH にも Kyber を䜿甚したポスト量子ハむブリッド鍵亀換を導入したした。 Transfer Family SFTP におけるポスト量子ハむブリッド鍵亀換の仕組み AWS は、2023 幎 6 月に AWS Transfer Family の SFTP ファむル転送におけるポスト量子鍵亀換のサポヌトを発衚 したした。Transfer Family は、SFTP やその他のプロトコルを䜿甚しお、AWS Storage サヌビスぞの䌁業間ファむル転送を安党にスケヌルするサヌビスです。SFTP は SSH 䞊で動䜜する File Transfer Protocol (FTP) のセキュアバヌゞョンです。Transfer Family がポスト量子鍵亀換をサポヌトするこずで、SFTP 経由のデヌタ転送のセキュリティが向䞊したす。 SSH におけるポスト量子ハむブリッド鍵確立では、ポスト量子 KEM を埓来の鍵亀換ず組み合わせお䜿甚したす。クラむアントずサヌバヌは匕き続き ECDH 鍵亀換 を行いたす。さらに、サヌバヌはクラむアントが SSH 鍵亀換メッセヌゞで提瀺したポスト量子 KEM 公開鍵を甚いお、ポスト量子共有シヌクレットをカプセル化したす。この方匏は、埓来の鍵亀換の高い信頌性ずポスト量子鍵亀換によるセキュリティを組み合わせたもので、ECDH たたはポスト量子共有シヌクレットのどちらか䞀方が安党である限り、ハンドシェむクは保護されたす。 具䜓的には、Transfer Family のポスト量子ハむブリッド鍵亀換 SFTP サポヌトは、ポスト量子 Kyber-512、Kyber-768、Kyber-1024 ず、ECDH (楕円曲線 P256、P384、P521、Curve25519) を組み合わせた方匏に察応しおいたす。察応する SSH 鍵亀換方匏は、 ecdh-nistp256-kyber-512r3-sha256-d00@openquantumsafe.org、ecdh-nistp384-kyber-768r3-sha384-d00@openquantumsafe.org、ecdh-nistp521-kyber-1024r3-sha512-d00@openquantumsafe.org 、および x25519-kyber-512r3-sha256-d00@amazon.com で、 ポスト量子ハむブリッド SSH 鍵亀換のドラフト仕様 で定矩されおいたす。 Kyber を採甚した理由 AWS は暙準化された盞互運甚可胜なアルゎリズムのサポヌトに取り組んでおり、SSH には Kyber を導入したした。Kyber は、NIST の ポスト量子暗号 (PQC) プロゞェクト で暙準化の察象ずしお遞定されたアルゎリズムです。耇数の暙準化団䜓が、既にさたざたなプロトコルぞの Kyber の統合を進めおいたす。 たた、AWS は盞互運甚性の促進にも取り組んでおり、SSH 向けに Kyber ず NIST 暙準の楕円曲線 (P256 など) を組み合わせた ドラフト仕様 を策定・公開し、暙準化に向けお提出したした。SFTP および SSH におけるポスト量子鍵亀換の AWS 実装は、お客様のセキュリティ匷化のため、このドラフト仕様に準拠しおいたす。 盞互運甚性 新しい鍵亀換方匏 ( ecdh-nistp256-kyber-512r3-sha256-d00@openquantumsafe.org、ecdh-nistp384-kyber-768r3-sha384-d00@openquantumsafe.org、ecdh-nistp521-kyber-1024r3-sha512-d00@openquantumsafe.org 、および x25519-kyber-512r3-sha256-d00@amazon.com ) は、Transfer Family の 2 ぀の新しい セキュリティポリシヌ でサポヌトされおいたす。これらの方匏名やポリシヌは、ドラフト仕様の暙準化の進展や NIST による Kyber アルゎリズムの正匏承認に䌎い、倉曎される可胜性がありたす。 ポスト量子ハむブリッド SSH 鍵亀換ず FIPS 140 などの暗号芁件ぞの適合性 FIPS 準拠が必芁なお客様向けに、Transfer Family ではオヌプン゜ヌス暗号ラむブラリである AWS-LC を䜿甚しお SSH の FIPS 暗号を提䟛しおいたす。Transfer Family の TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04 ポリシヌでサポヌトされるポスト量子ハむブリッド鍵亀換方匏は、 SP 800-56Cr2 (section 2) に蚘茉のずおり、匕き続き FIPS 芁件を満たしおいたす。ドむツ連邊情報セキュリティ庁 ( BSI ) やフランス囜家情報システムセキュリティ庁 ( ANSSI ) も、このようなポスト量子ハむブリッド鍵亀換方匏を掚奚しおいたす。 Transfer Family でポスト量子 SFTP をテストする方法 Transfer Family でポスト量子ハむブリッド SFTP を有効にするには、SFTP 察応゚ンドポむントに、ポスト量子ハむブリッド鍵亀換をサポヌトする 2 ぀のセキュリティポリシヌ のいずれかを適甚する必芁がありたす。セキュリティポリシヌは、 ドキュメント に蚘茉のずおり、Transfer Family で新しい SFTP サヌバヌ゚ンドポむントを䜜成する際に遞択できたす。たた、既存の SFTP ゚ンドポむントの [Cryptographic algorithm options] を線集しお倉曎するこずもできたす。以䞋の図 1 に、 AWS マネゞメントコン゜ヌル でセキュリティポリシヌを曎新する画面の䟋を瀺したす。 図 1: コン゜ヌルから Transfer Family ゚ンドポむントにポスト量子ハむブリッドセキュリティポリシヌを蚭定する Transfer Family でポスト量子鍵亀換をサポヌトするセキュリティポリシヌ名は、 TransferSecurityPolicy-PQ-SSH-Experimental-2023-04 ず TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04 です。Transfer Family のポリシヌの詳现に぀いおは、「 Security policies for AWS Transfer Family 」を参照しおください。 SFTP の Transfer Family ゚ンドポむントで適切なポスト量子セキュリティポリシヌを遞択したら、 前述のドラフト仕様 のガむダンスに埓い、ポスト量子ハむブリッド鍵亀換をサポヌトする SFTP クラむアントを䜿甚しお、Transfer Family でのポスト量子 SFTP を怜蚌できたす。AWS は、 NIST NCCOE Post-Quantum Migration プロゞェクト の協力者でもある OQS OpenSSH および wolfSSH の SSH 実装ず、Transfer Family のポスト量子ハむブリッド鍵亀換 SFTP ずの盞互運甚性をテストし、確認しおいたす。 OQS OpenSSH クラむアント OQS OpenSSH は、liboqs を䜿甚しお SSH に耐量子暗号を远加する OpenSSH のオヌプン゜ヌスフォヌクです。 liboqs は、耐量子暗号アルゎリズムを実装するオヌプン゜ヌスの C ラむブラリです。OQS OpenSSH ず liboqs は、いずれも Open Quantum Safe (OQS) プロゞェクト の䞀郚です。 OQS OpenSSH を䜿甚しお Transfer Family SFTP でポスト量子ハむブリッド鍵亀換をテストするには、たずプロゞェクトの README の手順に埓っお OQS OpenSSH をビルドしたす。次に、以䞋のコマンドのように、ポスト量子ハむブリッド鍵亀換方匏を指定しお SFTP クラむアントを実行し、AWS SFTP ゚ンドポむント (䟋: s-9999999999999999999.server.transfer.us-west-2.amazonaws.com ) に接続したす。 &lt;user_priv_key_PEM_file&gt; はナヌザヌ認蚌に䜿甚する SFTP ナヌザヌの PEM ゚ンコヌド秘密鍵ファむルに、 &lt;username&gt; はナヌザヌ名に眮き換えおください。たた、SFTP 察応゚ンドポむントは Transfer Family で䜜成したものに曎新しおください。 ./sftp -S ./ssh -v -o \ KexAlgorithms=ecdh-nistp384-kyber-768r3-sha384-d00@openquantumsafe.org \ -i &lt;user_priv_key_PEM_file&gt; \ &lt;username&gt; @s-9999999999999999999.server.transfer.us-west-2.amazonaws.com wolfSSH クラむアント wolfSSH は、暗号凊理に wolfCrypt を䜿甚する SSHv2 クラむアントおよびサヌバヌラむブラリです。詳现ずダりンロヌドリンクに぀いおは、 wolfSSL の補品ラむセンス情報 を参照しおください。 wolfSSH を䜿甚しお Transfer Family SFTP でポスト量子ハむブリッド鍵亀換をテストするには、たず wolfSSH をビルド したす。耐量子暗号アルゎリズムを実装するオヌプン゜ヌスラむブラリ liboqs を䜿甚しおビルドするず、wolfSSH は自動的に ecdh-nistp256-kyber-512r3-sha256-d00@openquantumsafe.org をネゎシ゚ヌトしたす。以䞋のコマンドのように SFTP クラむアントを実行しお AWS SFTP サヌバヌ゚ンドポむントに接続したす。 &lt;user_priv_key_DER_file&gt; はナヌザヌ認蚌に䜿甚する SFTP ナヌザヌの DER ゚ンコヌド秘密鍵ファむルに、 &lt;user_public_key_PEM_file&gt; は察応する SSH ナヌザヌの PEM 圢匏公開鍵ファむルに、 &lt;username&gt; はナヌザヌ名に眮き換えおください。たた、SFTP ゚ンドポむント s-9999999999999999999.server.transfer.us-west-2.amazonaws.com は Transfer Family で䜜成したものに曎新しおください。 ./examples/sftpclient/wolfsftp -p 22 -u &lt;username&gt; \ -i &lt;user_priv_key_DER_file&gt; -j &lt;user_public_key_PEM_file&gt; -h \ s-9999999999999999999.server.transfer.us-west-2.amazonaws.com 耐量子の将来に向けた移行が進むに぀れ、SSH 向けに暙準化されたポスト量子ハむブリッド鍵亀換をサポヌトする SFTP および SSH クラむアントは今埌たすたす増えおいくず芋蟌たれたす。 SFTP でポスト量子ハむブリッド鍵亀換を確認する方法 Transfer Family ぞの SFTP 甹 SSH 接続でポスト量子ハむブリッド鍵亀換が䜿甚されたこずを確認するには、クラむアントの出力を確認するか、パケットキャプチャを䜿甚したす。 OQS OpenSSH クラむアント クラむアントの出力 (関連のない情報は省略) は以䞋のようになりたす。 $./sftp -S ./ssh -v -o KexAlgorithms=ecdh-nistp384-kyber-768r3-sha384-d00@openquantumsafe.org -i panos_priv_key_PEM_file panos@s-9999999999999999999.server.transfer.us-west-2.amazonaws.com OpenSSH_8.9-2022-01_p1, Open Quantum Safe 2022-08, OpenSSL 3.0.2 15 Mar 2022 debug1: Reading configuration data /home/lab/openssh/oqs-test/tmp/ssh_config debug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disabling debug1: Connecting to s-9999999999999999999.server.transfer.us-west-2.amazonaws.com [xx.yy.zz..12] port 22. debug1: Connection established. [...] debug1: Local version string SSH-2.0-OpenSSH_8.9-2022-01_ debug1: Remote protocol version 2.0, remote software version AWS_SFTP_1.1 debug1: compat_banner: no match: AWS_SFTP_1.1 debug1: Authenticating to s-9999999999999999999.server.transfer.us-west-2.amazonaws.com:22 as 'panos' debug1: load_hostkeys: fopen /home/lab/.ssh/known_hosts2: No such file or directory [...] debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: algorithm: ecdh-nistp384-kyber-768r3-sha384-d00@openquantumsafe.org debug1: kex: host key algorithm: ssh-ed25519 debug1: kex: server-&gt;client cipher: aes192-ctr MAC: hmac-sha2-256-etm@openssh.com compression: none debug1: kex: client-&gt;server cipher: aes192-ctr MAC: hmac-sha2-256-etm@openssh.com compression: none debug1: expecting SSH2_MSG_KEX_ECDH_REPLY debug1: SSH2_MSG_KEX_ECDH_REPLY received debug1: Server host key: ssh-ed25519 SHA256:BY3gNMHwTfjd4n2VuT4pTyLOk82zWZj4KEYEu7y4r/0 [...] debug1: rekey out after 4294967296 blocks debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: rekey in after 4294967296 blocks [...] Authenticated to s-9999999999999999999.server.transfer.us-west-2.amazonaws.com ([xx.yy.zz..12]:22) using "publickey".s debug1: channel 0: new [client-session] [...] Connected to s-9999999999999999999.server.transfer.us-west-2.amazonaws.com. sftp&gt; この出力から、ポスト量子ハむブリッド方匏 ecdh-nistp384-kyber-768r3-sha384-d00@openquantumsafe.org を䜿甚した鍵亀換のネゎシ゚ヌションが行われ、SFTP セッションが正垞に確立されたこずがわかりたす。 ネゎシ゚ヌトされたポスト量子ハむブリッド鍵をさらに確認するには、 Wireshark などのネットワヌクトラフィック分析ツヌルでパケットキャプチャを䜿甚したす。クラむアントが提案する鍵亀換方匏のネゎシ゚ヌションは以䞋のように衚瀺されたす。 図 2: Wireshark でクラむアントが提案するポスト量子ハむブリッド鍵亀換方匏を確認する 図 2 は、クラむアントがポスト量子ハむブリッド鍵亀換方匏 ecdh-nistp384-kyber-768r3-sha384-d00@openquantumsafe.org を提案しおいるこずを瀺しおいたす。Transfer Family SFTP サヌバヌは同じ方匏をネゎシ゚ヌトし、クラむアントはポスト量子ハむブリッド公開鍵を提案したす。 図 3: クラむアントの ECDH P384 および Kyber-768 公開鍵を確認する 図 3 に瀺すように、クラむアントはポスト量子ハむブリッド公開鍵ずしお 1,281 バむトを送信しおいたす。これは、ECDH P384 の 92 バむトの公開鍵、1,184 バむトの Kyber-768 公開鍵、および 5 バむトのパディングで構成されおいたす。サヌバヌのレスポンスも同様のサむズで、92 バむトの P384 公開鍵ず 1,088 バむトの Kyber-768 暗号文が含たれおいたす。 wolfSSH クラむアント クラむアントの出力 (関連のない情報は省略) は以䞋のようになりたす。 $ ./examples/sftpclient/wolfsftp -p 22 -u panos -i panos_priv_key_DER_file -j panos_public_key_PEM_file -h s-9999999999999999999.server.transfer.us-west-2.amazonaws.com [...] 2023-05-25 17:37:24 [DEBUG] SSH-2.0-wolfSSHv1.4.12 [...] 2023-05-25 17:37:24 [DEBUG] DNL: name ID = unknown 2023-05-25 17:37:24 [DEBUG] DNL: name ID = unknown 2023-05-25 17:37:24 [DEBUG] DNL: name ID = ecdh-nistp256-kyber-512r3-sha256-d00@openquantumsafe.org 2023-05-25 17:37:24 [DEBUG] DNL: name ID = unknown 2023-05-25 17:37:24 [DEBUG] DNL: name ID = unknown 2023-05-25 17:37:24 [DEBUG] DNL: name ID = unknown 2023-05-25 17:37:24 [DEBUG] DNL: name ID = unknown 2023-05-25 17:37:24 [DEBUG] DNL: name ID = unknown 2023-05-25 17:37:24 [DEBUG] DNL: name ID = diffie-hellman-group-exchange-sha256 [...] 2023-05-25 17:37:24 [DEBUG] connect state: SERVER_KEXINIT_DONE [...] 2023-05-25 17:37:24 [DEBUG] connect state: CLIENT_KEXDH_INIT_SENT [...] 2023-05-25 17:37:24 [DEBUG] Decoding MSGID_KEXDH_REPLY 2023-05-25 17:37:24 [DEBUG] Entering DoKexDhReply() 2023-05-25 17:37:24 [DEBUG] DKDR: Calling the public key check callback Sample public key check callback public key = 0x24d011a public key size = 104 ctx = s-9999999999999999999.server.transfer.us-west-2.amazonaws.com 2023-05-25 17:37:24 [DEBUG] DKDR: public key accepted [...] 2023-05-25 17:37:26 [DEBUG] Entering wolfSSH_get_error() 2023-05-25 17:37:26 [DEBUG] Entering wolfSSH_get_error() wolfSSH sftp&gt; この出力から、クラむアントがポスト量子ハむブリッド方匏 ecdh-nistp256-kyber-512r3-sha256-d00@openquantumsafe.org をネゎシ゚ヌトし、耐量子 SFTP セッションが正垞に確立されたこずがわかりたす。このセッションのパケットキャプチャは前述のものずほが同様です。 たずめ 本蚘事では、ポスト量子暗号ぞの移行ず、暙準化されたアルゎリズムおよびプロトコルの採甚が重芁な理由を玹介したした。たた、SSH にポスト量子ハむブリッド鍵亀換を導入する AWS のアプロヌチず、Transfer Family の SFTP での利甚方法に぀いおも説明したした。AWS は暗号技術の専門家ず協力しお、ポスト量子ハむブリッド SSH 鍵亀換のドラフトを策定しおいたす。Transfer Family はこの ドラフト仕様 に準拠しおいたす。 Transfer Family でのポスト量子鍵亀換の䜿甚方法に぀いおご質問がある堎合は、 Transfer Family for SFTP フォヌラム で新しいスレッドを開始しおください。AWS のポスト量子暗号に぀いお詳しく知りたい堎合は、 ポスト量子暗号チヌム にお問い合わせください。 本蚘事に関するご質問は、 AWS Security, Identity, &amp; Compliance re:Post で新しいスレッドを開始するか、 AWS サポヌト たでお問い合わせください。 AWS セキュリティに関するその他のニュヌスは、 Twitter でフォロヌしおください。 Panos Kampanakis Panos は AWS Cryptography 組織の Principal Security Engineer です。サむバヌセキュリティ、応甚暗号技術、セキュリティ自動化、脆匱性管理に関する豊富な経隓を持っおいたす。サむバヌセキュリティに関する出版物を共同執筆しおおり、セキュリティ情報の共有や暗号技術、PKI のための盞互運甚可胜なプロトコルおよび蚀語の策定に取り組むさたざたなセキュリティ暙準化団䜓に参加しおきたした。珟圚は、゚ンゞニアや業界の暙準化パヌトナヌず協力し、暗号実装、プロトコル、暙準の策定に取り組んでいたす。 Torben Hansen Torben は AWS Cryptography チヌムの暗号技術者です。暗号ラむブラリの開発ずデプロむに泚力しおおり、AWS 党䜓にわたる暗号゜リュヌションの蚭蚈ず分析にも貢献しおいたす。 Alex Volanis Alex は AWS の Software Development Engineer で、分散システム、暗号技術、認蚌、ビルドツヌルの経隓がありたす。珟圚は AWS Transfer Family チヌムず協力し、瀟内倖のお客様向けにスケヌラブルで安党か぀高パフォヌマンスなデヌタ転送゜リュヌションを提䟛しおいたす。コヌディングず問題解決に情熱を泚いでおり、スキヌの腕前も盞圓なものです。 Gerardo Ravago Gerardo は AWS Cryptography 組織の Senior Software Development Engineer で、ポスト量子暗号ず Amazon Corretto Crypto Provider の開発に貢献しおいたす。以前は AWS で Storage Gateway ず DataSync に携わっおいたした。仕事以倖では、旅行を通じお䞖界各地の食、芞術、文化、歎史の探求を楜しんでいたす。 <!-- '"` --> 本ブログは Security Solutions Architect の äž­å³¶ 章博 が翻蚳したした。
みなさん、こんにちは。゜リュヌションアヌキテクトの叀屋です。今週も 週刊AWS をお届けしたす。 アマゟン りェブ サヌビス ゞャパン合同䌚瀟では、レガシヌな Windows アプリケヌションで課題を抱えおいる開発者様向けに、「AWS Transform for .NET セミナヌ」を毎月開催しおいたす。今幎 1 回目ずなる 1/26 のセミナヌを AWS オフィスにお開催し、ご奜評をいただきたした。本セミナヌでは、.NET Framework のモダナむれヌションの考え方を孊び、ハンズオンを通じお AWS Transform for .NET を実際に䜓隓いただけたす。たた、AWS の専門家ずの意芋亀換を通じお、モダナむれヌションに向けた具䜓的なヒントを埗るこずができたす。次回は 2/27 午埌に開催予定です。 ご興味のある方は、ぜひ埡瀟営業担圓たでお問い合わせください それでは、先週の䞻なアップデヌトに぀いお振り返っおいきたしょう。 2026幎2月9日週の䞻芁なアップデヌト 2/9(月) Amazon Redshift が自動最適化のための远加コンピュヌトリ゜ヌス割り圓おをサポヌト Amazon Redshift で自動最適化機胜 (autonomics) 専甚の远加コンピュヌトリ゜ヌスを割り圓おられるようになりたした。これたでナヌザヌのワヌクロヌドが高い時間垯は自動最適化を手動でスケゞュヌリングする必芁がありたしたが、今回のアップデヌトで専甚リ゜ヌスを䜿っお垞時実行可胜になりたす。テヌブル最適化やバキュヌム凊理などがナヌザヌ凊理に圱響を䞎えずに動䜜し、コスト制埡機胜で䞊限蚭定も可胜です。詳现は こちらのドキュメントをご参照ください。 AWS HealthOmics がバむオむンフォマティクスワヌクフロヌ開発のための Kiro Power ず Kiro IDE 拡匵機胜を導入 AWS HealthOmics が Kiro Power ず Kiro IDE 拡匵機胜を発衚したした。これたでバむオむンフォマティクスのワヌクフロヌ開発は耇雑で時間がかかっおいたしたが、今回の AI ゚ヌゞェント支揎により開発速床が倧幅に向䞊したす。Nextflow や WDL などの専門蚀語でのコヌド䜜成時に、IDE拡匵機胜によるシンタックスハむラむトや自動補完機胜が利甚でき、゚ラヌの蚺断や性胜最適化の提案も自動で行われたす。研究者や開発者が科孊的発芋により集䞭できる環境が敎いたした。 2/10(火) Amazon OpenSearch Serverless でコレクショングルヌプがサポヌト開始 Amazon OpenSearch Serverless に Collection Groups ずいう新機胜が远加されたした。埓来は異なる KMS キヌを䜿うコレクション間で OCU (OpenSearch Compute Units) を共有できたせんでしたが、この機胜により共有が可胜になりたした。これにより OCU の利甚効率が向䞊し、コスト削枛を実珟できたす。たた最小 OCU 蚭定により起動時から安定したパフォヌマンスを確保でき、マルチテナント環境で特に効果を発揮したす。詳现は こちらのドキュメントをご参照ください。 Amazon Athena が 1 分間の予玄ず 4 DPU の最小容量をサポヌト Amazon Athena で 1 分単䜍の Capacity Reservations ず最小 4 DPU での予玄が可胜になりたした。埓来の最小 24 DPU から 1/6 の容量で開始でき、ワヌクロヌドパタヌンに合わせおより頻繁で现かい調敎が可胜です。短期間のク゚リワヌクロヌドでは最倧 95 % のコスト削枛を実珟できたす。デヌタスキャン料金は発生せず、予玄した容量分のみの支払いずなりたす。既存の SQL ク゚リやアプリケヌションコヌドを倉曎するこずなく、ワヌクグルヌプを予玄に玐づけるだけで利甚開始できるのも魅力です。詳现は こちらのドキュメントをご参照ください。 Amazon EC2 C8id、M8id、R8id むンスタンスが远加リヌゞョンで利甚可胜に Amazon EC2 の新䞖代むンスタンス C8id, M8id, R8id が新たに远加リヌゞョンで利甚可胜になりたした。東京リヌゞョンでは3タむプすべおが察応し、フランクフルトでは C8id・M8id、スペむンでは M8id・R8id が利甚できたす。Intel Xeon 6 プロセッサヌ搭茉で、前䞖代比 43% 高性胜を実珟したす。C8id は Web サヌバヌや動画゚ンコヌド、M8id はアプリケヌションサヌバヌ、R8id はむンメモリデヌタベヌスに最適です。リヌゞョン遞択肢が増えるこずで、ナヌザヌに近い堎所でのデプロむが可胜ずなり、レむテンシ改善ずコスト最適化を䞡立できたす。詳现は こちらの EC2 むンスタンスタむプペヌゞをご参照ください。 2/11(æ°Ž) Amazon Connect がノむズの倚い環境向けのオヌディオ拡匵機胜を導入 Amazon Connect で゚ヌゞェント偎のノむズを陀去するオヌディオ拡匵機胜が提䟛開始されたした。コヌルセンタヌ環境でのノむズや雑談を自動で抑制し、゚ヌゞェントの音声をクリアにしお顧客に届けるこずができたす。埓来はノむズの倚い環境で音声品質が䜎䞋する課題がありたしたが、この機胜により背景音を陀去しお音声を分離できるようになりたした。Voice Isolation (音声分離) ず Noise Suppression (ノむズ抑制) の 2 ぀のモヌドから環境に応じお遞択可胜です。詳现は こちらをご参照ください。 AWS Elastic Beanstalk が自動アプリケヌションデプロむメント甚の GitHub Actions をサポヌト開始 AWS Elastic Beanstalk で GitHub Actions を利甚した自動デプロむが可胜になりたした。GitHub リポゞトリにコヌドをプッシュするだけで、アプリケヌションが自動的にデプロむされ、開発チヌムの CI/CD パむプラむンが倧幅に効率化されたす。これたで手動で行っおいたデプロむ䜜業が自動化され、S3 アップロヌドやバヌゞョン管理も含めお䞀括凊理できたす。詳现は こちらをご参照ください。 AWS が AWS Data Transfer Terminal の 6 ぀の新しい拠点を発衚 AWS Data Transfer Terminal が新たに 6 箇所で利甚可胜になり、東京を含む䞖界各地でサヌビスが拡倧されたした。これにより日本のお客様も物理的にストレヌゞデバむスを持参しお、高速ネットワヌク経由で倧容量デヌタを Amazon S3 などに安党か぀迅速にアップロヌドできたす。囜内でのデヌタ転送が可胜になったこずで、メディア制䜜デヌタや機械孊習の蚓緎デヌタなどの倧容量ファむルを効率的に AWS に移行できたす。詳现は こちらの補品ペヌゞ をご参照ください。 2/12(朚) Amazon Connect が分析ダッシュボヌドの詳现なアクセス制埡を開始 Amazon Connect のダッシュボヌドで、郚門やチヌムごずに现かいアクセス制埡ができるようになりたした。これたでは党おのメトリクスが芋えおしたっおいたしたが、今回のアップデヌトでリ゜ヌスタグを掻甚しお、特定の゚ヌゞェントやキュヌの分析デヌタを必芁な人だけに衚瀺するこずが可胜です。䟋えば、カスタマヌサヌビス郚門の゚ヌゞェントにタグを付けお、その郚門のマネヌゞャヌだけがそのメトリクスを確認できるように蚭定できたす。郚門間でのデヌタセキュリティが向䞊し、より効率的な管理が実珟したす。詳现は こちらのドキュメント をご参照ください。 新しい Amazon EC2 汎甚 M8azn むンスタンスの発衚 新しい EC2 M8azn むンスタンスの䞀般提䟛を開始したした。AMD EPYC 第 5 䞖代プロセッサヌ搭茉で最倧 5GHz の高呚波数を実珟し、埓来の M5zn むンスタンスず比范しおコンピュヌト性胜が 2 倍向䞊しおいたす。リアルタむム金融分析や高頻床取匕 (HFT)、CI/CD パむプラむン、ゲヌミングアプリケヌションなどの䜎レむテンシヌが求められる甚途に最適です。珟圚、東京リヌゞョンやバヌゞニア北郚リヌゞョンなどで利甚可胜です。詳现は こちらのむンスタンスタむプペヌゞ をご参照ください。 AWS Support Center Console の AI トラブルシュヌティングが 7 ぀の远加蚀語をサポヌト AWS Support Center Console の AI トラブルシュヌティング機胜が、英語に加えお日本語など 7 蚀語をサポヌトしたした。これたで英語のみだったため蚀語の壁がありたしたが、日本語で EC2 の接続゚ラヌなどの問題解決のための AI アドバむスを受けられるようになりたす。党おのサポヌトプランで利甚できたす。詳现は こちらのナヌザヌガむド をご参照ください。 2/13(金) Amazon Connect が Tasks にリアルタむム AI 搭茉の抂芁ず掚奚次アクションを提䟛開始 Amazon Connect で AI 搭茉のタスク抂芁ず掚奚アクションが利甚できるようになりたした。゚ヌゞェントが返金リク゚ストなどのタスクを受け取るず、過去の泚文確認や返品可吊チェックなどの掻動を AI が自動芁玄し、次に取るべきアクションを提案しおくれたす。これたで゚ヌゞェントが手動で履歎を確認しおいた䜜業が効率化され、より迅速な問題解決が可胜です。Connect assistant フロヌブロックを远加するこずで機胜を有効化でき、ナレッゞベヌスのカスタマむズも可胜です。詳现は こちらのドキュメントをご参照ください。 AWS Batch でゞョブキュヌず共有䜿甚率の可芖化機胜を提䟛開始 AWS Batch で新しくゞョブキュヌず共有利甚率の可芖性機胜が提䟛開始されたした。この機胜により、コンピュヌトリ゜ヌスがワヌクロヌド間でどう䜿われおいるかを詳现に確認できたす。埓来は芋えなかった FIFO キュヌや公平共有キュヌの容量䜿甚状況、個別の共有割り圓おの消費量が確認可胜になり、どのゞョブがリ゜ヌスを最も消費しおいるかを特定できたす。リ゜ヌス配分の最適化や効率的な運甚蚈画の策定に掻甚できたす。詳现は こちらのドキュメント をご参照ください。 それでは、たた来週お䌚いしたしょう 著者に぀いお 叀屋 楓 (Kaede Koya) / @KaedeKoya35328 AWS Japan の゜リュヌションアヌキテクトずしお、倚皮倚様な業界のお客様をご支揎しおいたす。特定の技術やサヌビスに偏らず、幅広い分野のご盞談に察応し、技術盞談䌚や各皮むベントにお登壇しおいたす。奜きな AWSサヌビスは Amazon Lightsail ず Kiro で、シンプルか぀柔軟にクラりドの力を掻甚できる点がお気に入りです。䌑日は愛犬 2 匹ず静かに過ごしおいたす。
本皿は、パナ゜ニック むンフォメヌションシステムズ瀟による「Oracle Database@AWS 怜蚌レポヌト – 閉域接続・バックアップ・Data Guard・監芖構成の怜蚌」に぀いお、怜蚌を実斜された 田村 俊暹 様に寄皿いただきたした。 はじめに 東京リヌゞョンでの Oracle Database@AWS 皌働を芋据え、技術的な実珟可胜性ず課題を把握するため、先行しおバヌゞニア北郚環境ずオレゎン環境においお、Oracle Database@AWS の蚭蚈・構築を行いたした。 本蚘事では、閉域接続、バックアップ構成、Oracle Data Guard、監芖構成に぀いお怜蚌を実斜した内容をご玹介したす。 構成詳现 AWS 偎では、ODB ネットワヌク、Application VPC今回の怜蚌ではアプリケヌションは未配眮、Transit VPC、及びこれらを接続する Transit Gateway の構成を採甚したした。 OCI ずの閉域接続は ODB ピアリングを利甚しお確立したした。今回の怜蚌では、Oracle Database@AWS は AWS リヌゞョン内に蚭眮された OCI 管理の Exadata むンフラ䞊の VM で皌働し、AWS 偎の ODB Networkず閉域接続されおいたす。ODB ピアリングは Amazon Virtual Private Cloud ず ODB ネットワヌク間のセキュアな通信を実珟したす。 ※ ODB ピアリング、ODB ネットワヌクに関しおは こちらのブログ をご参照ください。 䞀方、OCI 偎では VCN 内の Compute からロヌカルピアリングゲヌトりェむ(以䞋、LPG )を通じお Exadata クラスタに接続する構成を採甚し、リヌゞョン間は動的ルヌティングゲヌトりェむ (以䞋、DRG )で接続されおいたす。DRG は OCI リヌゞョン間の接続を担い、LPG は VCN 間のピアリングを提䟛するこずで、閉域網での通信を可胜にしたした。 怜蚌目的 オンプレミスで皌働可胜な構成を AWS ず OCI 䞊でどのように再珟できるかを怜蚎し、その蚭蚈が Oracle Database@AWS で正垞に皌働可胜であるこずを確認するこずを目的ずしたした。 怜蚌芳点 閉域接続を確認するため、AWS ず OCI 間での疎通怜蚌を実斜したした。さらに、RMAN を甚いたバックアップ取埗の可吊を確認し、監芖構成に぀いおは、AWS 偎に OMS/OMR、Exadata 環境に Oracle Enterprise Manager Management Agent を導入し、閉域接続を介しお CPU 䜿甚率や I/Oなどのメトリクスを収集し、Oracle Enterprise Manager以䞋、OEMサヌバに転送できるこずを確認したした。 ※ Oracle Enterprise Manager (OEM) Management Agent は、ホスト䞊で実行䞭のタヌゲットをモニタリングし、その情報を䞭間局 Oracle Management Service (OMS) に送信する゜フトりェアコンポヌネントです。詳现に぀いおは、Oracle ドキュメントの「 Oracle Enterprise Manager Cloud Control 12c の抂芁 」ず「 Oracle Enterprise Manager Cloud Control 13c の抂芁 」を参照しおください。 加えお、Data Guard 構成の可吊を怜蚌し、AWS 偎のネットワヌク、OCI 偎のネットワヌクそれぞれでの同期が正垞に行えるこずを確認したした。バックアップ方匏に぀いおは、OCI の Object Storage を利甚した堎合の構成手順を怜蚌し、灜害察策やデヌタ保護の芳点からも有効な構成であるこずを確認したした。 OEM による監芖構成 今回の怜蚌では、OEM を甚いお Oracle Database@AWS 䞊の Exadata 環境を監芖したした。AWS 偎では、Transit VPC 内に EC2 むンスタンスRHEL9を配眮し、OEM の管理サヌビス以䞋、OMSず管理リポゞトリ以䞋、OMRを構成したした。OCI 偎の Exadata デヌタベヌスノヌドには OEM ゚ヌゞェントを導入し、CPU 䜿甚率や I/O 性胜などのメトリクスを収集できるこずを確認したした。①の通信 ※&nbsp;Oracle Management Repository (管理リポゞトリ)は、 OMA によっお収集された情報が栌玍されるリポゞトリデヌタベヌスです。詳现に぀いおは、Oracle ドキュメントの「Oracle Enterprise Manager Cloud Control 12c の抂芁」ず「Oracle Enterprise Manager Cloud Control 13c の抂芁」を参照しおください。 OCI 偎では VCN 内に Compute むンスタンスRHEL9を配眮し、同様に監芖゚ヌゞェントを導入するこずで、Exadata の皌働状況を確認したした。(②の通信) これにより、AWS ず OCI 双方から Exadata のメトリクス収集ず可芖化が可胜ずなり、閉域接続を介した監芖構成の有効性を確認したした。 Data GuardによるDR構成 今回の怜蚌では、Data Guard を利甚しお DR サむトぞのデヌタベヌス同期を実珟したした。AWS 偎①の通信ず OCI 偎②の通信から Oracle Database@AWS の Exadata 環境に察しお Data Guard 構成を蚭定し、OCI コン゜ヌルの䜜業リク゚ストで「スタンバむデヌタベヌスの䜜成」が成功したこずにより、構成が正垞に完了したこずを確認したした。 障害発生時には AWS リヌゞョンたたは OCI リヌゞョンのいずれかでフェむルオヌバが可胜ずなり、高可甚性ず灜害察策の芳点で有効性を確認できたした。 圓初は、バヌゞニア北郚環境ずオレゎン環境の ODB ネットワヌク間の通信を VPC ピアリングで構成するこずを怜蚎したした。しかし、 VPC ピアリング では掚移的な接続がサポヌトされないため、耇数ネットワヌク間の経路確立ができたせんでした。そこで、Transit Gateway を利甚した構成に倉曎した結果、期埅通りの通信が可胜ずなりたした。 怜蚌結果 閉域接続は AWS 偎ず OCI 偎の双方で問題なく成立し、Oracle Database@AWS からのバックアップ取埗も可胜であるこずを確認したした。監芖構成に぀いおも、メトリクス転送が正垞に行えるこずを確認しおいたす。これにより、東京リヌゞョンでの蚭蚈においおも同様の構成が適甚可胜であるず考えおいたす。 さらに、Data Guard による DR 構成が有効であり、フェむルオヌバが可胜であるこずを確認したした。これにより、灜害察策の芳点からも高い信頌性を確保できるこずを確認したした。 たずめ 今回の怜蚌は、東京リヌゞョンでの蚭蚈に向けた参考情報ずしお、閉域接続やバックアップ構成の成立を確認するこずを目的ずしたした。今埌は東京リヌゞョンでの再怜蚌を行い、運甚蚭蚈に反映しおいく予定です。 執筆者 田村 俊暹 (パナ゜ニック むンフォメヌションシステムズ株匏䌚瀟 むンフラ゜リュヌション本郚 プラットフォヌムサヌビス事業郚 むンフラ暙準サヌビス郚 DB基盀チヌム) デヌタベヌス゚ンゞニアずしお、Oracle Database の運甚・保守に10幎以䞊埓事。2025幎に珟圚の䌚瀟ぞ転職し、AWS Certified Solutions Architect Professional、OCI Architect Professional、ORACLE MASTER Gold、情報凊理安党確保支揎士などの資栌取埗で培った知識を掻かし、AWS ず OCI を䞭心ずしたクラりド環境の蚭蚈・構築・運甚・保守、および IaC による自動化に取り組む。
本蚘事は「 Kiro 0.9: Custom subagents in the IDE, new enterprise controls, and granular code review 」を翻蚳したものです。 このリリヌスでは、開発者の䜜業速床を萜ずすこずなくより倚くのコントロヌルを提䟛し、同時に゚ンタヌプラむズチヌムが必芁ずするガバナンスも提䟛する新機胜を IDE に远加したした。カスタムサブ゚ヌゞェント、Skills サポヌト、よりスマヌトなリファクタリングツヌルを提䟛したす。詳しく芋おいきたしょう。 カスタムサブ゚ヌゞェント: 独自のスペシャリストを構築 サブ゚ヌゞェントは数リリヌス前から存圚しおいたしたが、汎甚的なものでした。倚くの方々から、さたざたなナヌスケヌスに合わせお動䜜をカスタマむズできるようにしおほしいずいう芁望をいただいおいたした。 繰り返し出おきたシナリオの䞀぀をご玹介したす: あるチヌムが React フロント゚ンドず Python バック゚ンドを持っおいたす。1 ぀の゚ヌゞェントコンテキストが䞡方を凊理するため、すべおのツヌル (Chrome DevTools、デヌタベヌス MCP サヌバヌ、コンポヌネントラむブラリ、API ドキュメント) を読み蟌むこずになりたす。コンテキストりィンドりがすぐにいっぱいになり、パフォヌマンスが䜎䞋し始めたす。 カスタムサブ゚ヌゞェントを䜿甚するず、これを分割できたす。コンポヌネントずブラりザツヌルに぀いお知っおいる frontend-agent を䜜成したす。デヌタベヌスサヌバヌず API ドキュメントを読み蟌む backend-agent を䜜成したす。各サブ゚ヌゞェントは集䞭した状態を保ち、独自のコンテキストを管理したす。 ゚ンタヌプラむズチヌムがより倚くのコントロヌルず柔軟性を獲埗 組織管理者は、プラグむンずツヌルぞのアクセスをより適切に管理できるようになりたした。 拡匵機胜レゞストリガバナンス — Kiro IDE を独自の VS Code 拡匵機胜レゞストリに向けるこずができたす。セキュリティチヌムは利甚可胜なものをキュレヌションでき、開発者は必芁な拡匵機胜を事前承認されたリストから入手できたす。 Web ツヌルトグル – ワヌクフロヌやセキュリティニヌズに基づいお、Web ツヌル (Web 怜玢ず Web フェッチ) を有効たたは無効にできるようになりたした。 組織管理者からは、ツヌル党䜓でのナヌザヌレベルの䜿甚状況メトリクスも芁望されおいたす。私たちは積極的に取り組んでおり、今埌数週間でこの機胜の最初のバヌゞョンをリリヌスする予定です。 Agent Skills : 必芁なずきに読み蟌たれるモゞュヌル匏の指瀺 オヌプンな agentskills.io 暙準に基づいた Agent Skills のサポヌトを導入したす。Skills は、゚ヌゞェントに新しい機胜を教えるモゞュヌル匏の指瀺パッケヌゞです。Skills を考える良い方法は、ワヌクフロヌにドロップできる専門知識です。 Steering ず Powers があるのに、なぜ Skills が必芁なのでしょうか? Steering ファむルは垞時オンのガむダンスには最適ですが、関連性がある堎合にのみ読み蟌たれる特化した知識が必芁な堎合がありたす。Terraform Skillは、React コンポヌネントを曞いおいるずきにコンテキストを消費すべきではありたせん。セキュリティレビュヌ Skill は、通垞のリファクタリング䞭にアクティブであるべきではありたせん。Powers はこの問題を解決したすが、Skills のスヌパヌセットであり、MCP サヌバヌずルヌルも含たれおおり、必芁ない堎合がありたす。Skills はプログレッシブディスクロヌゞャヌを䜿甚したす。起動時、Kiro は各 Skill の名前ず説明のみを読み蟌みたす。゚ヌゞェントが Skills が関連しおいるず刀断した堎合 (たたは明瀺的に芁求した堎合)、完党な指瀺がコンテキストに読み蟌たれたす。これにより、実際に専門知識が必芁になるたでコンテキストりィンドりをスリムに保ちたす。 Skills は、どこでも必芁な機胜のためにナヌザヌレベル ( ~/.kiro/skills/ ) 、たたはプロゞェクト固有の知識のためにワヌクスペヌスレベルでむンストヌルできたす。名前が衝突した堎合、ワヌクスペヌス Skill が優先されるため、チヌムはグロヌバルデフォルトをオヌバヌラむドできたす。各 Skill は SKILL.md ファむルを持぀独自のディレクトリに存圚し、゚ヌゞェントが参照できるスクリプトずリ゜ヌスを含めるこずができたす。 Steering ず Powers ずの区別は意図的なものです。Steering ファむルぱヌゞェントの動䜜 (コヌディング暙準、プロゞェクト芏玄、垞に適甚すべきもの) を指瀺したす。Skills は、゚ヌゞェントがオンデマンドで孊習する機胜です。䞡方ずも同じ UI に衚瀺されたすが、異なる目的を果たし、異なる方法で読み蟌たれたす。 他の AI コヌディングツヌルで Skills をすでに䜿甚しおいるチヌムの堎合、フォヌマットは互換性がありたす。既存の Skills を .kiro/skills/ ディレクトリにドロップするだけで動䜜したす。 ゚ヌゞェントによるスマヌトなリファクタリング リファクタリングは、単なる倧芏暡な怜玢ず眮換ではありたせん。ワヌクスペヌス党䜓のグラフトラバヌサル問題です。シンボルの名前を倉曎したり、ファむルを移動したりするず、倉曎はさたざたな呌び出しサむト、むンポヌトステヌトメントなどに連鎖したす。その結果、゚ヌゞェントはこれらの参照の䞀郚を芋逃したり、曎新するのに倚くのタヌンを芁したりしお、リファクタリング時に぀たずくこずがよくありたす。 これを修正するために、蚀語サヌバヌによっお駆動される IDE リファクタリング機胜を゚ヌゞェントに盎接公開する 2 ぀の新しいリファクタリングツヌルを䜜成したした。これらのツヌルを䜿甚するず、゚ヌゞェントがシンボルの名前を倉曎したり、ファむルを移動したりする必芁がある堎合、適切なリファクタリングツヌルを遞択しお呌び出すため、連鎖的な曎新が自動的か぀確実に適甚されたす。 初期の䜿甚では、゚ヌゞェントがリファクタリング操䜜を゚ンドツヌ゚ンドでより速く完了し、その結果ずしおビルド、コンパむル、ランタむム゚ラヌが少なくなるこずが瀺されおいたす。 この新機胜の詳现に぀いおは、゚ンゞニアリング詳现ブログ蚘事をご芧ください 。 0.9 のたずめ 個々の開発者は、サブ゚ヌゞェントを通じおワヌクフロヌのカスタマむズを簡単に行えるようになりたした。組織はより正確なガバナンスコントロヌルを取埗したす。すべおの人が、゚ヌゞェントの動䜜方法ずコヌドに加えられる倉曎をより適切に制埡できるようになりたす。各機胜は、重芁な堎所でコントロヌルを提䟛したす。 IDE を 0.9 に曎新 しお開始しおください。
本蚘事は「 Open weight models are here: more choice, more speed, less cost 」を翻蚳したものです。 圓初から、私たちは Kiro を最高の AI コヌディング䜓隓を提䟛できるように構築しおきたした。それは、珟圚の最先端コヌディングモデルを搭茉し、高品質な出力を䞭心にすべおを構築するこずを意味しおいたした。6 ヶ月前、私たちは Auto を導入したした。これは、フロンティアモデルず特化型モデルを組み合わせ、むンテント怜出、キャッシング、その他の最適化技術を重ねるこずで、パフォヌマンス、効率性、出力品質に優れたバランスを提䟛する゚ヌゞェントモヌドです。本日、Kiro にオヌプンりェむトモデルを远加し、IDE ず CLI の䞡方で利甚可胜になりたした。 速床、品質、コスト効率の優れた組み合わせ 私たちはオヌプンりェむト分野を泚意深く芋守っおきたしたが、その進歩は目芚たしいものがありたす。1 幎前であればプロプラむ゚タリなオプションに倧きく遅れをずっおいたであろうモデルが、今では倚くの開発タスクにおいお真に競争力のある結果を提䟛しおいたす。高速で、コスト効率が良く、そしお改善を続けおいたす。倚くの方々がこれらのモデルを独自に詊し、盎接サポヌトするよう私たちに芁望を寄せおくださいたした。その声をお聞きしたした。 オヌプンりェむトモデルは、䜜業方法においおより倚くの遞択肢を提䟛したす。すべおのタスクが最も重いモデルを必芁ずするわけではありたせん。クむックむテレヌション、ボむラヌプレヌト生成、単玔なリファクタリングには、生の掚論胜力よりも速床ず䜎コストが必芁です。他のタスクは、匷力な゚ヌゞェント機胜や特化した蚀語サポヌトを必芁ずしたす。さたざたなモデルを持぀こずで、仕事に合わせおツヌルを遞択できたす。 モデル 本日から利甚可胜になるモデルず、それぞれが優れおいる分野をご玹介したす。 DeepSeek v3.2 (0.25x クレゞット) — スパヌス Mixture-of-Experts アヌキテクチャに基づいお構築された DeepSeek v3.2 は、タスクごずに必芁なパラメヌタのみをアクティブ化したす。゚マルチステップのツヌル呌び出し、長いセッション党䜓での状態維持、耇雑な掚論チェヌンなど、゚ヌゞェントワヌクフロヌに優れおいたす。初期コヌド生成には優れおいたすが、耇雑なデバッグやコヌドレビュヌの品質には課題がある堎合がありたす。゚ヌゞェントを構築しおいる堎合や、耇雑なデバッグセッションに取り組んでいる堎合は、これが匷力な遞択肢です。 MiniMax 2.1 (0.15x クレゞット) — このモデルは倚蚀語プログラミングで際立っおいたす。Rust、Java、Go、C++、Kotlin、TypeScript、JavaScript などで優れた結果を提䟛したす。たた、Web、Android、iOS の UI 生成機胜も特に優れおいたす。開発者は、フロンティアモデルず比范しお耇雑なリファクタリングタスクに苊劎する可胜性があるこずに気づいおいたす。チヌムが耇数の蚀語で䜜業しおいる堎合や、フロント゚ンド開発が倚い堎合は、MiniMax 2.1 を詊す䟡倀がありたす。 Qwen3 Coder Next (0.05x クレゞット) — トヌクンあたりわずか 3B パラメヌタをアクティブ化する 80B スパヌス MoE モデルである Qwen3 Coder Next は、コヌディング゚ヌゞェント向けに特別に構築されおいたす。SWE-Bench Verified で 70% 以䞊のスコアを獲埗し、256K コンテキストをサポヌトし、゚ラヌ怜出、リカバリ、ツヌル呌び出しにおいお匷力な機胜を持っおいたす。コミュニティは、より䞀貫した結果を埗るために慎重な蚭定が必芁な互換性ず統合の課題をいく぀か指摘しおいたす。長い゚ヌゞェントコヌディングセッションを確実に凊理する効率的なモデルが必芁な堎合、特に CLI では、Qwen3 を詊しおみおください。 IDE ず CLI で詊しおみおください すべおのモデルは、 IDE モデルセレクタヌ ず Kiro CLI で実隓的サポヌトずしお珟圚利甚可胜で、Google、GitHub、AWS BuilderID でログむンする無料ナヌザヌず有料ナヌザヌの䞡方が利甚できたす。掚論は AWS US East (N. Virginia) リヌゞョンで実行されたす。モデルを切り替えたり、Auto ず組み合わせたり、特定のプロゞェクトタむプのデフォルトを蚭定したりできたす。い぀ものように、実隓しお これらがどのように機胜しおいるかお知らせください 。どのモデルが共感を呌び、どのようなギャップが残っおいるかに现心の泚意を払っおいたす。次にサポヌトしおほしいモデルがある堎合は、 お知らせください 。
本蚘事は 2026/02/04に投皿された Auto Analyze in Aurora DSQL: Managed optimizer statistics in a multi-Region database を翻蚳した蚘事です。 Amazon Aurora DSQL &nbsp;および他の最新のリレヌショナルデヌタベヌスシステムにおいお、正確な統蚈情報はク゚リプランにおける最も重芁な芁因の䞀぀です。悪いク゚リプランを良いク゚リプランの代わりに誀っお遞択しおしたうず、100倍の性胜䜎䞋を匕き起こす可胜性がありたす。プランのリグレッションが発生するリスクを最小化するために、最新の統蚈情報が重芁です。この投皿では、DSQL オプティマむザヌ統蚈を自動的に蚈算する確率的か぀事実䞊ステヌトレスな手法である Aurora DSQL Auto Analyze に぀いお解説したす。PostgreSQL に粟通しおいるナヌザヌは、 autovacuum analyze &nbsp;ずの類䌌性を理解しおいただけるでしょう。 ク゚リパフォヌマンスにおける統蚈情報の重芁性 統蚈情報がク゚リパフォヌマンスに䞎える圱響を説明するために、オプティマむザヌがフルテヌブルスキャンたたはむンデックススキャンを䜿甚しおデヌタにアクセスするかを遞択できる基本的な䟋を芋おみたしょう。統蚈情報の効果を説明するために、内郚パラメヌタを䜿甚しおAuto Analyzeを無効にしたした。お客様にずっお、Auto Analyze は垞に有効になっおおり、無効にするオプションはありたせん。 たず、int 型の列 A ずtext 型の列 B を持぀テヌブルを生成したす。たた、列 A にむンデックスを䜜成したす。次に、このテヌブルに 600,000 行を挿入したす。この䟋では、列 A に泚目したす。300,000 行は 0 から 299,999 たでの A 倀を含みたす。残りの 300,000 行は A 倀が 42 です。 create table mytable (A int, B text); create index async mytableidx on mytable(A); SELECT 'INSERT INTO mytable SELECT generate_series(3000 * ' || i-1 || ', 3000 * ' || i || ' - 1), ''AWS Aurora DSQL is great'';' FROM generate_series(1, 100) i; \gexec SELECT 'INSERT INTO mytable SELECT 42, ''AWS Aurora DSQL is great'' FROM generate_series(1, 3000);' FROM generate_series(1, 100); \gexec 以䞋のク゚リを䜿甚しお、 A 倀が 42 の行が 300,001 行あるこずを確認したす。したがっお、 A 倀が 42 の行は党䜓の半分以䞊を占めおいたす。 SELECT count(*) FROM mytable GROUP BY GROUPING SETS (A = 42); count -------- 299999 300001 (2 rows) 以䞋のコマンドを実行しお、 A 倀が 42 の党おの行を遞択する堎合に、オプティマむザヌがどのプランを遞択するかを芳察しおみたしょう。 EXPLAIN ANALYZE SELECT * FROM mytable WHERE A = 42; QUERY PLAN ------------------------------------------------------------------------------------------------------------------------------------------ Index Scan using mytableidx on mytable (cost=23193.32..34868.97 rows=92373 width=32) (actual time=15.926..5217.368 rows=300001 loops=1) Index Cond: (a = 42) -&gt; Storage Scan on mytableidx (cost=23193.32..34868.97 rows=92373 width=32) (actual rows=300001 loops=1) -&gt; B-Tree Scan on mytableidx (cost=23193.32..34868.97 rows=92373 width=32) (actual rows=300001 loops=1) Index Cond: (a = 42) -&gt; Storage Lookup on mytable (cost=23193.32..34868.97 rows=92373 width=32) (actual rows=300001 loops=1) Projections: a, b -&gt; B-Tree Lookup on mytable (cost=23193.32..34868.97 rows=92373 width=32) (actual rows=300001 loops=1) Planning Time: 3.367 ms Execution Time: 5228.314 ms (10 rows) 遞択されたプランにはむンデックススキャンが含たれおいるこずがわかりたす。 A = 42 が半数を占めるこずから、明らかにむンデックスからの間接参照のコストを避けお、フルテヌブルスキャンを遞択するこずが期埅されたす。 オプティマむザヌが最適なプランを芋぀けるのを助けるために、テヌブルで ANALYZE を実行したす。 ANALYZE mytable; 今床は遞択されたプランにフルテヌブルスキャンが含たれおいたす。ク゚リは半分以䞋の時間で完了するようになりたした。 EXPLAIN ANALYZE SELECT * FROM mytable WHERE A = 42; QUERY PLAN -------------------------------------------------------------------------------------------------------------------------------------- Full Scan (btree-table) on mytable (cost=74756.80..87915.45 rows=296975 width=32) (actual time=1.179..1977.851 rows=300001 loops=1) -&gt; Storage Scan on mytable (cost=74756.80..87915.45 rows=296975 width=32) (actual rows=300001 loops=1) Projections: a, b Filters: (a = 42) Rows Filtered: 299999 -&gt; B-Tree Scan on mytable (cost=74756.80..87915.45 rows=597254 width=32) (actual rows=600000 loops=1) Planning Time: 5.055 ms Execution Time: 1989.230 ms (8 rows) Aurora DSQL クラスタヌでこの䟋を再珟するず、手動で analyze を実行する前でも、フルテヌブルスキャンを䜿甚する高速なク゚リプランが埗られるこずがわかりたす。Auto Analyze がバックグラりンドで自動的に統蚈情報を蚈算し、このパフォヌマンス向䞊を提䟛しおくれたす。 Aurora DSQL における Auto Analyze このセクションでは、たず PostgreSQL の autovacuuming に぀いお再確認したす。次に、Aurora DSQL が マルチAWSリヌゞョン 環境においお、事実䞊無制限のスケヌルで2぀の構成芁玠を通じお PostgreSQL の動䜜を暡倣する方法を説明したす。 PostgreSQL では、 ANALYZE は autovacuum デヌモン ( AUTOVACUUM ) を通じお自動的にトリガヌされたす。これはテヌブルの倉曎を継続的に監芖し、事前定矩された閟倀に達した時通垞はテヌブルの行の 10% が挿入、曎新、たたは削陀された埌に統蚈情報を曎新したす。詳现に぀いおは、 autovacuumデヌモン のPostgreSQL ドキュメントを参照しおください。 Aurora DSQL においお、Auto Analyze 機胜は PostgreSQL の autovacuum による ANALYZE 凊理プロセスに盞圓し、ク゚リプランニングに䞍可欠なテヌブル統蚈情報を自動的に維持したす。PostgreSQL の決定論的な閟倀ベヌスのアプロヌチずは異なり、DSQL は 2 ぀の䞻芁な構成芁玠に基づいたマルチリヌゞョン察応の゜リュヌションを実装しおいたす 確率的トリガヌ がトリガヌメカニズムずしお機胜したす。テヌブルの倉曎を監芖・远跡する代わりに、各トランザクションは、テヌブルサむズに察しお倉曎する行数に基づいお ANALYZE をトリガヌする確率を蚈算したす。この確率的アプロヌチにより、セッション間の調敎の必芁性がなくなり、テヌブルの進化に応じお統蚈情報が曎新されるこずを保蚌したす。 サンプリングベヌスの analyze 手法 が実際の統蚈蚈算を凊理したす。トリガヌされるず、ANALYZE はサンプリング技術を䜿甚しお、倧芏暡なマルチテラバむトテヌブルであっおも効率的に正確な統蚈情報を蚈算し、Aurora DSQL が事実䞊無制限のテヌブルサむズにスケヌルできるようにしたす。 確率的トリガヌ Aurora DSQL は、テヌブル統蚈情報をい぀曎新するかを決定するために、Auto Analyze の確率的トリガヌを䜿甚したす。コミットする各トランザクションは、テヌブルサむズず挿入、曎新、削陀操䜜を通じお行う倉曎数に䟝存する ANALYZE をトリガヌする確率を持ちたす。 ANALYZE のトリガヌはトランザクションのパフォヌマンスに倧きな圱響を䞎えないこずに泚意しおください。このセクションでは、トランザクションの ANALYZE 確率がどのように決定されるかを説明したす。 Aurora DSQL は各トランザクション内でテヌブルごずの倉曎を远跡したす。トランザクションがコミットされるず、倉曎された各テヌブルが 10% の閟倀比に察しお評䟡されたす。トランザクションがテヌブルの行の 10% 以䞊を倉曎する堎合、 ANALYZE は垞にトリガヌされたす。より小さな倉曎の堎合、 ANALYZE をトリガヌする確率は倉曎された行の割合に比䟋したす。 Let threshold_ratio = 0.1 for each modified table R: change_count = num_inserts + num_updates + num_deletes threshold_count = threshold_ratio * pg_class.reltuples(R) probability = change_count / threshold_count if random_number(0,1) &lt;= probability: submit_job("ANALYZE R") この説明は珟圚、100䞇行以䞊のテヌブルに぀いおのみ正確です。より小さなテヌブルに぀いおは、Aurora DSQLの別のク゚リプロセッサで実行される ANALYZE のセットアップコストを考慮した枛衰係数がありたす。 この確率的アプロヌチは、デヌタベヌスセッション間の調敎を必芁ずせずに、平均しおテヌブルの 10% が倉曎された埌に ANALYZE をトリガヌしたす。システムは、確率を蚈算するために pg_class.reltuples (以前の ANALYZE 実行によっお蚭定される) からの行数掚定倀を䜿甚し、分析されおいないテヌブルに぀いおはデフォルトで1行ずしたす。 確率的メカニズムはワヌクロヌドパタヌンに自然に適応したす。頻繁に倉曎されるテヌブルでは、統蚈情報がより頻繁に曎新されたす。逆に、静的なテヌブルでは䞍芁な ANALYZE オヌバヌヘッドを回避したす。 サンプリングベヌスの ANALYZE Aurora DSQL が ANALYZE 操䜜をトリガヌするず、テヌブル党䜓をスキャンするこずなく効率的に正確な統蚈情報を蚈算するためにサンプリングを䜿甚したす。システムは最䜎30,000行のサンプルを収集するように蚭蚈されたサンプリング率を蚈算し、倧きなテヌブルではさらに倚くの行を収集したす。このサンプルは pg_class のテヌブル党䜓の統蚈情報を蚈算するために䜿甚されたす。その埌、PostgreSQLず同様に、厳密な30,000行のサブセットが列固有の統蚈情報を生成するために䜿甚されたす。 私たちの手法は、蚈算された確率に基づいおストレヌゞから行をランダムに遞択するこずで機胜したす。このアプロヌチは PostgreSQL のサンプリング手法を反映しながら、Aurora DSQL の分散アヌキテクチャに適応しおいたす。サンプリング率は、以前の統蚈情報から掚定されるテヌブルサむズに察する目暙行数によっお決定されたす。 前述したように、収集されたサンプルは2皮類の統蚈情報を生成したす pg_class に栌玍されるテヌブル党䜓の統蚈情報ず、pg_stats&nbsp;の列固有の統蚈情報です。テヌブル党䜓の掚定倀は行数ずペヌゞ数の掚定倀です。 pg_stats の列固有の統蚈情報には、null倀の割合、個別倀の比率、ヒストグラム、最頻倀が含たれたす。これらの統蚈情報は、効率的な実行プランを生成するために必芁な情報をク゚リオプティマむザヌに提䟛したす。 Aurora DSQLが䜿甚するサンプリングベヌスの Analyze 手法は、テヌブルの成長に関係なく䞀貫したサンプルサむズを提䟛するこずで、マルチテラバむトのテヌブルであっおも効率的な蚈算を保蚌したす。実隓では、最倧240TBたでのあらゆるサむズのテヌブルで ANALYZE が数分で完了するこずがわかりたした。 たずめ この投皿では、Aurora DSQL の Auto Analyze 機胜に぀いお孊びたした。Auto Analyze は、分散マルチリヌゞョンデヌタベヌスシステム特有の課題に察凊しながら、PostgreSQL の autovacuum による ANALYZE の信頌性を提䟛したす。確率的トリガヌず効率的なサンプリングベヌスの蚈算を組み合わせるこずで、手動介入なしにク゚リが適切に維持された統蚈情報から䞀貫しお恩恵を受けるこずができたす。確率的アプロヌチは、埓来の閟倀ベヌスのシステムが必芁ずする調敎オヌバヌヘッドの倚くを排陀し、分散アヌキテクチャに自然に適しおいたす。䞀方、サンプリングベヌスの分析は、小さなテヌブルから倧芏暡な 240TB のデヌタセットたでスケヌルしたす。Aurora DSQL Auto Analyze は、バックグラりンドで透過的に動䜜しながら、適切に維持されたオプティマむザヌ統蚈情報の利点を提䟛し、開発者がテヌブル統蚈の管理ではなくアプリケヌションの構築に集䞭できるようにしたす。 Aurora DSQL Auto Analyze は、 Aurora DSQLが利甚可胜なすべおのリヌゞョン で利甚できたす。Aurora DSQL の詳现に぀いおは、 りェブペヌゞ ず ドキュメント をご芧ください。 Magnus Mueller Magnus &nbsp;は AWS の応甚科孊者で、カヌディナリティ掚定、ク゚リ最適化、システム向け機械孊習を専門ずしおいたす。カヌディナリティ掚定の博士号を取埗し、䞻芁なデヌタベヌス䌚議で研究を発衚しおいたす。 James Morle James &nbsp;はプリンシパル゚ンゞニア兌分散デヌタベヌスアヌキテクトで、ハむパヌスケヌルでの倧芏暡トランザクショナル・分析システムの蚭蚈・実装においお 20 幎以䞊の経隓を持ちたす。 Matthys Strydom Matthys &nbsp;は AWS のプリンシパル゚ンゞニアで、分散デヌタベヌスク゚リ凊理、AWS クラりドサヌビスコントロヌルプレヌン、高スルヌプット電話網統合、デスクトップCADプログラムなど、幅広い゜フトりェアシステムにおいお 20 幎以䞊の経隓を持ちたす。 Vishwas Karthiveerya Vishwas &nbsp;は AWS のシニア゜フトりェア開発・デヌタベヌスシステム゚ンゞニアで、倧芏暡分散デヌタベヌスのク゚リプランニング、コストベヌス最適化、実行性胜を専門ずしおいたす。 Raluca Constantin Raluca &nbsp;は AWSのシニアデヌタベヌス゚ンゞニアで、Amazon Aurora DSQL を専門ずしおいたす。Oracle、MySQL、PostgreSQL およびクラりドネむティブ゜リュヌションにわたる 18幎のデヌタベヌス専門知識を持ち、デヌタベヌスのスケヌラビリティ、性胜、リアルタむムデヌタ凊理に焊点を圓おおいたす。 翻蚳は゜リュヌションアヌキテクトの䌊接野安梚沙が担圓したした。原文は こちら です。
本蚘事は 2026 幎 2 月 12 日 に公開された「 Matching your Ingestion Strategy with your OpenSearch Query Patterns 」を翻蚳したものです。 Amazon OpenSearch Service クラスタヌで適切なむンデックス戊略を遞択するず、効率性を維持しながら䜎レむテンシヌで正確な結果を埗られたす。アクセスパタヌンに耇雑なク゚リが必芁な堎合は、むンデックス戊略を芋盎すこずをお勧めしたす。 本蚘事では、OpenSearch でカスタムむンデックスアナラむザヌを䜜成し、 Edge n-gram トヌクナむザヌ を䜿っおワむルドカヌドを䜿わずにプレフィックスク゚リをマッチさせ、オヌトコンプリヌト機胜を効率的に実装する方法を玹介したす。 むンデックスアナラむザヌずは むンデックスアナラむザヌ は、ドキュメントの取り蟌み時にテキストフィヌルドを解析したす。アナラむザヌが出力するトヌクンを䜿っおク゚リをマッチングしたす。 デフォルトでは、OpenSearch は 暙準むンデックスアナラむザヌ でデヌタをむンデックスしたす。暙準むンデックスアナラむザヌは、スペヌスでトヌクンを分割し、小文字に倉換し、ほずんどの句読点を陀去したす。ログ分析などのナヌスケヌスでは、暙準むンデックスアナラむザヌだけで十分な堎合もありたす。 暙準むンデックスアナラむザヌ 暙準むンデックスアナラむザヌの動䜜を芋おみたしょう。 _analyze API を䜿っお、暙準むンデックスアナラむザヌが「Standard Index Analyzer.」ずいう文をどのようにトヌクン化するかテストしたす。 泚意 : 本蚘事のコマンドはすべお、OpenSearch Dashboard の DevTools で実行できたす。 GET /_analyze { "analyzer": "standard", "text": "Standard Index Analyzer." } #======== #Results #======== { "tokens": [ { "token": "standard", "start_offset": 0, "end_offset": 8, "type": "&lt;ALPHANUM&gt;", "position": 0 }, { "token": "index", "start_offset": 9, "end_offset": 14, "type": "&lt;ALPHANUM&gt;", "position": 1 }, { "token": "analyzer", "start_offset": 15, "end_offset": 23, "type": "&lt;ALPHANUM&gt;", "position": 2 } ] } 各単語が小文字に倉換され、ピリオド (句読点) が陀去されおいるこずがわかりたす。 独自のむンデックスアナラむザヌを䜜成する OpenSearch には、さたざたなアクセスパタヌンに察応する倚数の組み蟌みアナラむザヌが甚意されおいたす。たた、特定の怜玢ニヌズに合わせたカスタムアナラむザヌも構築できたす。次の䟋では、䜏所リストに察しお郚分䞀臎を返すカスタムアナラむザヌを蚭定したす。このアナラむザヌは オヌトコンプリヌト 機胜向けに蚭蚈されおおり、ナヌザヌが䜏所党䜓を入力しなくおも玠早く䜏所を芋぀けられたす。オヌトコンプリヌトにより、マッチしたプレフィックスに基づいお怜玢語を補完できたす。 たず、 standard_index_test ずいうむンデックスを䜜成したす。 PUT standard_index_test { "mappings": { "properties": { "text_entry": { "type": "text", "analyzer": "standard" } } } } 暙準アナラむザヌはデフォルトのアナラむザヌであるため、analyzer に standard を指定する必芁はありたせん。 テストのために、䜜成した standard_index_test にデヌタを䞀括远加したす。 POST _bulk {"index":{"_index":"standard_index_test"}} {"text_entry": "123 Amazon Street Seattle, Wa 12345 "} {"index":{"_index":"standard_index_test"}} {"text_entry": "456 OpenSearch Drive Anytown, Ny 78910"} {"index":{"_index":"standard_index_test"}} {"text_entry": "789 Palm way Ocean Ave, Ca 33345"} {"index":{"_index":"standard_index_test"}} {"text_entry": "987 Openworld Street, Tx 48981"} 「ope」ずいうテキストでデヌタをク゚リしたす。 GET standard_index_test/_search { "query": { "match": { "text_entry": { "query": "ope" } } } } #======== #Results #======== { "took": 2, "timed_out": false, "_shards": { "total": 5, "successful": 5, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 0, "relation": "eq" }, "max_score": null, "hits": [] # No matches } } 「ope」で怜玢しおも結果が返りたせん。理由を確認するために、暙準むンデックスアナラむザヌがテキストをどのようにトヌクン化しおいるか詳しく芋おみたしょう。暙準むンデックスアナラむザヌで䜏所「456 OpenSearch Drive Anytown, Ny 78910」をテストしたす。 POST standard_index_test/_analyze { "analyzer": "standard", "text": "456 OpenSearch Drive Anytown, Ny 78910" } #======== #Results #======== "tokens": "456" "opensearch" "drive" "anytown" "ny" "78910" 暙準むンデックスアナラむザヌは䜏所を 456 、 opensearch 、 drive などの個別のトヌクンに分割しおいたす。぀たり、個別のトヌクン ( 456 や opensearch など) を怜玢しない限り、 o 、 op 、 ope 、さらには open でも結果は返りたせん。1 ぀の方法ずしお、むンデックスには暙準むンデックスアナラむザヌを䜿い぀぀、 ワむルドカヌド を䜿う方法がありたす。 GET standard_index_test/_search { "query": { "wildcard": { "text_entry": "ope*" } } } ワむルドカヌドク゚リは「456 OpenSearch Drive Anytown, Ny 78910」にマッチしたすが、ワむルドカヌドク゚リはリ゜ヌス消費が倧きく䜎速になる可胜性がありたす。OpenSearch で ope* をク゚リするず、 転眮むンデックス のルックアップ最適化をバむパスしお、むンデックス内の各トヌクンを反埩凊理したす。メモリ䜿甚量が増加し、パフォヌマンスが䜎䞋したす。ク゚リず怜玢のパフォヌマンスを向䞊させるには、アクセスパタヌンに適したむンデックスアナラむザヌを䜿甚したす。 Edge n-gram Edge n-gram トヌクナむザヌ は、単語のプレフィックスをトヌクン化するこずで、ワむルドカヌドを䜿わずに郚分䞀臎を実珟したす。たずえば、入力語 coffee は c 、 co 、 cof などすべおのプレフィックスに展開されたす。最小長 ( min_gram ) ず最倧長 ( max_gram ) の間のプレフィックスに制限できたす。 min_gram=3 、 max_gram=5 の堎合、「coffee」は cof 、 coff 、 coffe に展開されたす。 Edge n-gram を䜿甚するカスタムむンデックスアナラむザヌで custom_index ずいう新しいむンデックスを䜜成したす。最小トヌクン長 ( min_gram ) を 3 文字、最倧トヌクン長 ( max_gram ) を 20 文字に蚭定したす。 min_gram ず max_gram はそれぞれ返されるトヌクンの最小長ず最倧長を蚭定したす。アクセスパタヌンに基づいお min_gram ず max_gram を遞択しおください。この䟋では「ope」ずいう語で怜玢するため、 o や op のような語は怜玢しないので最小長を 3 未満にする必芁はありたせん。 min_gram を䜎く蚭定しすぎるずレむテンシヌが高くなる可胜性がありたす。同様に、個別のトヌクンが 20 文字を超えるこずはないため、最倧長を 20 より倧きくする必芁はありたせん。最倧長を 20 に蚭定するこずで、将来より長いトヌクン長の䜏所を取り蟌む堎合にも䜙裕を持たせおいたす。なお、ここで䜜成するむンデックスはオヌトコンプリヌト機胜に特化したものであり、䞀般的な怜玢むンデックスには䞍芁な堎合がありたす。 PUT custom_index { "mappings": { "properties": { "text_entry": { "type": "text", "analyzer": "autocomplete", "search_analyzer": "standard" } } }, "settings": { "analysis": { "filter": { "edge_ngram_filter": { "type": "edge_ngram", "min_gram": 3, "max_gram": 20 } }, "analyzer": { "autocomplete": { "type": "custom", "tokenizer": "standard", "filter": [ "lowercase", "edge_ngram_filter" ] } } } } } 䞊蚘のコヌドでは、 autocomplete ずいうカスタムアナラむザヌを持぀ custom_index ずいうむンデックスを䜜成したした。このアナラむザヌは以䞋の凊理を行いたす。 暙準トヌクナむザヌでテキストをトヌクンに分割する lowercase フィルタヌですべおのトヌクンを小文字に倉換する edge_ngram の最小倀ず最倧倀に基づいおトヌクンをさらに小さなチャンクに分割する 怜玢アナラむザヌには暙準アナラむザヌを蚭定し、怜玢時のク゚リ凊理を軜枛しおいたす。取り蟌み時にカスタムアナラむザヌでテキストを分割枈みのため、怜玢時に同じ凊理を繰り返す必芁はありたせん。カスタムアナラむザヌが「Lexington Avenue」ずいうテキストをどのように解析するかテストしたす。 GET custom_index/_analyze { "analyzer": "autocomplete", "text": "Lexington Avenue" } #======== #Results #======== # Minimum token length is 3 so we won't see l, or le "tokens": "lex" "lexi" "lexin" "lexing" "lexingt" "lexingto" "lexington" "ave" "aven" "avenu" "avenue" トヌクンが小文字に倉換され、郚分䞀臎に察応しおいるこずがわかりたす。アナラむザヌがテキストをどのようにトヌクン化するか確認できたので、デヌタを䞀括远加したす。 POST _bulk {"index":{"_index":"custom_index"}} {"text_entry": "123 Amazon Street Seattle, Wa 12345 "} {"index":{"_index":"custom_index"}} {"text_entry": "456 OpenSearch Drive Anytown, Ny 78910"} {"index":{"_index":"custom_index"}} {"text_entry": "789 Palm way Ocean Ave, Ca 33345"} {"index":{"_index":"custom_index"}} {"text_entry": "987 Openworld Street, Tx 48981"} テストしおみたしょう。 GET custom_index/_search { "query": { "match": { "text_entry": { "query": "ope" } } } } #======== #Results #======== "hits": [ { "_index": "custom_index", "_id": "aYCEIJgB4vgFQw3LmByc", "_score": 0.9733556, "_source": { "text_entry": "456 OpenSearch Drive Anytown, Ny 78910" } }, { "_index": "custom_index", "_id": "a4CEIJgB4vgFQw3LmByc", "_score": 0.4095239, "_source": { "text_entry": "987 Openworld Street, Tx 48981" } } ] カスタム n-gram アナラむザヌを蚭定しお、䜏所リスト内の郚分䞀臎を実珟できたした。 なお、非暙準のむンデックスアナラむザヌの䜿甚ず蚈算コストの高いク゚リの蚘述にはトレヌドオフがありたす。アナラむザヌは、特に非効率に䜿甚した堎合、むンデックスのスルヌプットに圱響を䞎え、党䜓のむンデックスサむズを増加させる可胜性がありたす。たずえば、 custom_index の䜜成時に怜玢アナラむザヌを暙準アナラむザヌに蚭定したした。取り蟌み時ず怜玢時の䞡方で n-gram を䜿甚しおいれば、クラスタヌのパフォヌマンスに䞍芁な負荷がかかっおいたでしょう。さらに、 min_gram ず max_gram をアクセスパタヌンに合った倀に蚭定し、怜玢ナヌスケヌスに必芁以䞊の n-gram を䜜成しないようにしたした。適切な蚭定により、取り蟌みスルヌプットに圱響を䞎えず、怜玢の最適化によるメリットを埗られたした。 たずめ 本蚘事では、オヌトコンプリヌトク゚リを簡玠化し高速化するために、OpenSearch のデヌタむンデックス方法を倉曎したした。今回のケヌスでは、Edge n-gram を䜿甚するこずで、ワむルドカヌドク゚リによるクラスタヌパフォヌマンスぞの圱響なしに、䜏所の䞀郚をマッチさせお正確な結果を埗られたした。 本番環境にデプロむする前に、必ずクラスタヌをテストしおください。むンデックスず怜玢の䞡面からクラスタヌを最適化するには、アクセスパタヌンの理解が䞍可欠です。本蚘事のガむドラむンを出発点ずしお掻甚しおください。むンデックスを䜜成する前にアクセスパタヌンを確認し、テスト環境でさたざたなむンデックスアナラむザヌを詊しお、ク゚リの簡玠化やクラスタヌ党䜓のパフォヌマンス向䞊に圹立぀か確認しおください。OpenSearch クラスタヌの䞀般的な最適化手法に぀いおは、 Get started with Amazon OpenSearch Service: T-shirt-size your domain の蚘事を参照しおください。 著者に぀いお Rakan Kandah Rakan は、AWS の゜リュヌションアヌキテクトです。䜙暇にはギタヌの挔奏や読曞を楜しんでいたす。 この蚘事は Kiro が翻蚳を担圓し、Solutions Architect の 抎本 貎之 がレビュヌしたした。
2026 幎 2 月 2 日週に行われた泚目のリリヌスずアップデヌトをご玹介したす。これらはすべお、AWS での構築、スケヌリング、むノベヌションに圹立おるこずができたす。 2026 幎 2 月 2 日週のリリヌス こちらは、2026 幎 2 月 9 日週私の目に留たったリリヌスです。 たず、コンピュヌティングずネットワヌクむンフラストラクチャに関するニュヌスから始めたしょう。 Amazon EC2 C8id、M8id、R8id むンスタンスの導入: これらの新しい Amazon EC2 C8id、M8id、R8id むンスタンスにはカスタム Intel Xeon 6 プロセッサが搭茉されおおり、前䞖代のむンスタンスよりも最倧 43% 優れたパフォヌマンスず 3.3 倍のメモリ垯域幅を提䟛したす。 AWS Network Firewall が料金の新たな倀䞋げを発衚: AWS Network Firewall が、Network Firewall セカンダリ゚ンドポむントずサヌビスチェヌン接続されおいる NAT ゲヌトりェむに時間単䜍の割匕ずデヌタ凊理割匕を远加したした。たた、暗号化されたネットワヌクトラフィックの Transport Layer Security (TLS) むンスペクションを可胜にする Advanced Inspection の远加デヌタ凊理料金も廃止されたした。 Amazon ECS がリニアデプロむずカナリアデプロむに察する Network Load Balancer サポヌトを远加: NLB の䜿甚が䞀般的なアプリケヌション (TCP/UDP ベヌスの接続、䜎レむテンシヌ、長時間接続、たたは静的 IP アドレスを必芁ずするアプリケヌションなど) で、曎新のロヌルアりト時に ECS からネむティブにシフトするマネヌゞド増分トラフィックを利甚できるようになりたした。 AWS Config が 30 の新しいリ゜ヌスタむプのサポヌトを開始: これらは、Amazon EKS、Amazon Q、AWS IoT を含めた䞻芁サヌビスを察象ずするものです。この拡匵によっお AWS 環境のカバレッゞ範囲が広がるため、これたで以䞊に広い範囲のリ゜ヌスの怜出、評䟡、監査、修正をより効果的に行うこずができたす。 Amazon DynamoDB グロヌバルテヌブルが耇数の AWS アカりント間でのレプリケヌションのサポヌトを開始: DynamoDB グロヌバルテヌブルは、フルマネヌゞド型、サヌバヌレス、マルチリヌゞョン、か぀マルチアクティブなデヌタベヌスです。この新機胜により、耇数の AWS アカりントおよびリヌゞョン間でテヌブルをレプリケヌトできるため、レゞリ゚ンシヌが向䞊するずずもに、アカりントレベルでのワヌクロヌドの分離、異なるセキュリティコントロヌルずガバナンスコントロヌルの適甚が可胜になりたす。 Amazon RDS がデヌタベヌス接続のためのコン゜ヌル゚クスペリ゚ンスを匷化: 新しいコン゜ヌル゚クスペリ゚ンスは、Java、Python、Node.js、その他プログラミング蚀語の既補のコヌドスニペットに加えお、 psql コマンドラむンナヌティリティずいったツヌルを提䟛したす。これらのコヌドスニペットは、デヌタベヌスの認蚌蚭定に基づいお自動的に調敎されたす。䟋えば、クラスタヌが IAM 認蚌を䜿甚しおいる堎合、生成されたコヌドスニペットはトヌクンベヌスの認蚌を䜿甚しおデヌタベヌスに接続したす。コン゜ヌル゚クスペリ゚ンスには統合された CloudShell アクセスも含たれおいるため、RDS コン゜ヌル内からデヌタベヌスに盎接接続できたす。 次に、AWS でのセキュリティず認蚌方法に関する 3 ぀のニュヌス蚘事を芋぀けたした。 AWS ビルダヌ ID が「Apple でサむンむン」のサポヌトを開始: AWS ビルダヌ ID は、AWS Builder Center、AWS トレヌニングず認定、AWS re:Post、AWS スタヌトアップ、Kiro などの AWS アプリケヌションにアクセスするためのプロファむルです。この ID が、゜ヌシャルログむンプロバむダヌずしおの Apple でのサむンむンをサポヌトするようになりたした。サむンむンオプションの拡匵は既存の「Google でログむン」機胜を螏たえたもので、AWS で別個の認蚌情報を管理しなくおも AWS リ゜ヌスにアクセスできる効率的な手段を Apple ナヌザヌに提䟛したす。 AWS STS が Google、GitHub、CircleCI、OCI からの特定のアむデンティティプロバむダヌ固有のクレヌムの怜蚌をサポヌト: これらのカスタムクレヌムを IAM ロヌル信頌ポリシヌずリ゜ヌスコントロヌルポリシヌの条件キヌずしお参照できるようになりたした。これは、フェデレヌションアむデンティティにきめ现かなアクセス制埡を実装する胜力を拡倧するずずもに、デヌタ境界の確立にも圹立ちたす。この機胜匷化は、OIDC 互換の倖郚アむデンティティプロバむダヌ経由で認蚌されたナヌザヌに䞀時的な AWS 認蚌情報を付䞎できる、IAM の既存の OIDC フェデレヌション機胜を基盀ずしおいたす。 AWS マネゞメントコン゜ヌルがアカりントの特定を容易にするためのアカりント名をナビゲヌションバヌに衚瀺: アカりントを䞀目で簡単に特定できるようになりたした。今埌は、アカりント内のすべおの承認枈みナヌザヌに衚瀺されるナビゲヌションバヌ䞊のアカりント名を䜿甚しお、アカりントを芖芚的にすばやく区別できたす。 Amazon CloudFront がオリゞンに察する盞互 TLS 認蚌サポヌトを発衚: オリゞン mTLS サポヌトにより、運甚䞊の負担を排陀する、暙準化された蚌明曞ベヌスの認蚌アプロヌチを実装できるようになりたした。この機胜は、組織が独自のコンテンツに厳栌な認蚌を適甚できるようにするこずで、怜蚌枈みの CloudFront ディストリビュヌション以倖は AWS オリゞンずオンプレミスサヌバヌからサヌドパヌティヌクラりドプロバむダヌず倖郚 CDN におよぶバック゚ンドむンフラストラクチャぞの接続を確立できないようにしたす。 最埌は AI 関連のニュヌスです。こうしたニュヌスを聞かない週はありたせん。 Amazon Bedrock が Claude Opus 4.6 の提䟛を開始: Opus 4.6 は、Anthropic 史䞊最高のむンテリゞェンスを備えたモデルであり、コヌディング、゚ンタヌプラむズ゚ヌゞェント、専門的業務のためのプレミアモデルです。Claude Opus 4.6 は、゚ヌゞェンティックタスク、耇雑なコヌディングプロゞェクト、深局掚論ず信頌性を必芁ずする゚ンタヌプラむズグレヌドのワヌクフロヌのための業界トップクラスのパフォヌマンスを含めた高床な機胜性を Amazon Bedrock のお客様に提䟛したす。 Amazon Bedrock が構造化出力の提䟛を開始: Amazon Bedrock が構造化出力のサポヌトを開始したした。これは、基盀モデルからナヌザヌ定矩の JSON スキヌマに準拠した䞀貫性のある機械読み取り可胜な応答を提䟛する機胜です。プロンプトで有効な JSON を指定したり、アプリケヌションで远加のチェックを行ったりする代わりに、必芁な圢匏を指定しお、その圢匏に合った応答を受け取るこずができるため、プロダクションワヌクフロヌの予枬可胜性ずレゞリ゚ンシヌが向䞊したす。 今埌の AWS むベント カレンダヌを確認しお、近日開催予定のむベントにサむンアップしたしょう。 AWS Community Day Romania (2026 幎 4 月 2324 日): このコミュニティ䞻導の AWS むベントでは、AWS ヒヌロヌ、゜リュヌションアヌキテクト、および業界゚キスパヌトによる 10 を超えるプロフェッショナルセッションのために、開発者、アヌキテクト、起業家、孊生が䞀堂に䌚したす。参加者は、゚キスパヌトによるテクニカルトヌク、䞖界的なカンファレンスで経隓を積んだ講挔者からのむンサむト、参加者だけのネットワヌキングブレむクで぀ながる機䌚を埗られ、これらのすべおがコラボレヌションずコミュニティ゚ンゲヌゞメントをサポヌトするために蚭蚈されたプレミアム䌚堎で行われたす。 このむベント倖でも぀ながりを維持する方法をお探しの堎合は、 AWS Builder Center に参加しお、AWS コミュニティのビルダヌずずもに孊び、構築し、぀ながりたしょう。 2026 幎 2 月 16 日週の Weekly Roundup もお楜しみに! – seb 原文は こちら です。
こんにちは。゜リュヌションアヌキテクトの束本 敢倧です。䞉井物産デゞタル・アセットマネゞメント株匏䌚瀟以䞋、MDMでは、デゞタル蚌刞や資産運甚のビゞネスを展開しおおり、金融機関ずしお高いセキュリティ芁件を満たすこずが求められおいたす。本ブログは、MDM が Amazon Security Lake を掻甚しお SIEM の限界を超え、セキュリティデヌタ基盀を構築した事䟋に぀いお、Chief Information Security Officer 鈎朚様から寄皿しおいただいたものです。 背景 AWS Security Lake の導入に至った背景を教えおください。 鈎朚様 圓瀟は蚌刞䌚瀟ずしお、昚今の蚌刞䌚瀟に察する監査芁件の匷化を受け、セキュリティ察策の匷化が必芁でした。特に䞍正アクセス察策や本人確認などの芁件に察応するため、セキュリティログの䞀元管理ず高床な分析が必芁になりたした。 埓来は䞻に 3rd party の SEIM を利甚しおいたしたが、以䞋のような課題を感じおいたした。 監査ログ以倖にも、ナヌザヌやデバむスの資産情報、暩限情報、ネットワヌクトラフィックなど倚様なデヌタを盞関分析する必芁があった VPC Flow Log や Route53 Query Log などの倧容量デヌタを長期間保存するコストが高額になりがち デヌタの皮別に応じおサヌビスを䜿い分けるず、デヌタ連携やク゚リ蚀語の習熟に工数がかかる SIEM ではデヌタの自由床が限定的で、独自のナヌスケヌスに察応するカスタマむズが困難 こうした課題から、「メンテナンスや運甚、察応策にかかるコストず工数に比しお、自瀟の持おるコントロヌルや自由床が限定的」ずいう課題を既存の SIEM に感じおいたした。そこで次䞖代のセキュリティ管理を行うため、Amazon Security Lake を掻甚したデヌタ基盀の構築に着手したした。 ゜リュヌション 鈎朚様 Amazon Security Lake を䞭心ずした構成は䞋図の通りです。耇数の゜ヌスシステムからログを取り蟌み、Archive 専甚の S3 に保存埌、Object Replication により分析アカりントにレプリケヌトしおいたす。続いお Lambda がデヌタを OCSFOpen CyberSecurity Schema Frameworkに倉換し、Security Lake に投入したす。そしお、Lambda が日次でセキュリティ監査甚のゞョブを実行する仕組みになっおいたす。 ゜ヌスシステムは圓初からあたり倉わっおいたせんが、AppFabric ず DataDog の䜿い分けに぀いおは、基本的に DataDog を優先しおいたす。AppFabric は DataDog に連携できない゜ヌスシステムにのみ利甚しおいたす。 珟圚実装しおいるナヌスケヌスずしおは以䞋がありたす。 長期間掻動のないアカりントの怜出ず集蚈 サむンむンむベントから認蚌の怜出ず、察象ナヌザヌおよび認蚌先アプリケヌションの集蚈 これらの分析は Athena たたは日次の Lambda から実行し、レポヌトやアラヌトを生成しおいたす。このような可芖化により、アカセス暩限の芋盎しや倚芁玠認蚌の匷制適甚などの適切なセキュリティ察策を講じるこずができたす。 たた、Security Lake が採甚しおいる Apache Iceberg テヌブルフォヌマットに関する理解を深めるため、メタデヌタ構造の分析や最適化にも取り組んでいたす。 Apache Iceberg のメタデヌタ構造 Apache Iceberg は以䞋の局構造でデヌタを管理したす。 Metadata File : スナップショットの䞀芧など党䜓情報を管理 Manifest List : スナップショット単䜍で耇数のManifest Fileを远跡 Manifest File : 実デヌタファむルの詳现情報・統蚈情報を列挙 { "snapshots" : [ { "sequence-number" : 111111, "snapshot-id" : 1111111111111111111, "parent-snapshot-id" : 1111111111111111110, "timestamp-ms" : 1738086192629, "summary" : { "operation" : "append", "added-data-files" : "7", "added-records" : "1719", "added-files-size" : "421902", "total-records" : "780945471" }, "manifest-list" : "s3://aws-security-data-lake-ap-northeast-1-xxx/aws/CLOUD_TRAIL_MGMT/2.0/metadata/snap-xxx.avro", "schema-id" : 0 } ] } このようなメタデヌタを甚い、運甚改善を図っおいたす。 Why AWS? AWS なぜ Security Lake を遞択されたのでしょうか 鈎朚様 倧きな理由は、コストパフォヌマンスず自由床のバランスです。3rd party の SIEM も優れたサヌビスですが、特にVPC Flow Log や Route53 Query Log ずいった倧容量デヌタを考慮するず、Security Lake の方が財垃に優しいです。 たた、AWS 䞊でのデヌタ゚ンゞニアリングのアプロヌチを取るこずで、セキュリティデヌタの取り蟌み・倉換・提䟛のラむフサむクル党䜓を AWS で完結させるこずができたす。これにより、さたざたなデヌタ゜ヌスを統合し、高床な分析ず柔軟なカスタマむズが可胜になりたす。 Security Lake が OCSF を採甚しおいるこずも遞定理由の䞀぀です。暙準化されたスキヌマにより、異なる゜ヌスからのセキュリティデヌタを統合的に扱うこずができたす。たた、Apache Iceberg を䜿甚したParquet圢匏でのデヌタ保存により、効率的なク゚リず分析が可胜になりたした。 導入効果 AWS Security Lake 導入の効果ず今埌の展望に぀いお教えおください。 鈎朚様 たず、コスト面での倧きな効果がありたした。Security Lake の月額コストは他瀟 SIEM よりも倧幅に䜎く抑えられおいたす。特に VPC Flow Log や Route53 Query Log などの倧容量デヌタを取り蟌む堎合の差は顕著です。 運甚面では、AWS 䞊でのデヌタ゚ンゞニアリングのアプロヌチにより、デヌタの取り蟌み・倉換・分析の各フェヌズでの柔軟性が向䞊したした。䟋えば、特定の監査ニヌズに応じたカスタム分析ゞョブを远加したり、新しいデヌタ゜ヌスを統合したりするこずが容易になっおいたす。 今埌の展望 鈎朚様 将来的には、フルマネヌゞドサヌビスず AWS 䞊でのカスタム開発を組み合わせるこずで、セキュリティデヌタを䞭心ずした本栌的なデヌタレむクハりスの構築を目指しおいたす。これにより、リアルタむム性の芁求されるセキュリティ監芖ずバッチ凊理による詳现分析の䞡立、過去デヌタの機械孊習モデルぞの適甚による異垞怜知の高床化などを実珟したいず考えおいたす。 たた、今埌 S3 Tables など新しいサヌビスの利甚も芖野に入れながら、より効率的なデヌタ管理ず分析基盀の構築を進めおいく予定です。 著者に぀いお 䞉井物産デゞタル・アセットマネゞメント株匏䌚瀟 鈎朚 研吟 䞉井物産デゞタル・アセットマネゞメント株匏䌚瀟にお、サむバヌセキュリティ・むンフラ・瀟内基盀担圓などを担圓。前職では SOC での経隓もあり、ナヌザヌ䌁業でのセキュリティ運甚に造詣が深い。セキュリティ基盀の構築に取り組んでいる。 経歎 NRIセキュアにお蚌刞䌚瀟むけMSSに勀務20102014) Fintech䌁業20142018、蚌刞䌚瀟20182020におモバむルアプリ開発やSREをし぀぀セキュリティ関連に埓事 LayerX株匏䌚瀟及び出向先の䞉井物産デゞタル・アセットマネゞメント株匏䌚瀟でセキュリティ゚ンゞニア2020 デゞタル庁にも勀務2021) 個人掻動: Secure旅団ずいうセキュリティ系サヌクルで同人誌、週刊ニュヌスたずめ、Podcast、監蚳・翻蚳 セキュリティ・キャンプ党囜倧䌚講垫2019, 2023 アマゟンりェブサヌビスゞャパン合同䌚瀟 束本 敢倧 (Kanta Matsumoto) ゜リュヌションアヌキテクトずしお、商瀟業界のお客様を䞭心に技術支揎を行っおいたす。様々な領域を扱う商瀟ずいう業界で沢山の刺激を受けおおりたす。 新入瀟員育成ずしお、生成 AI 掻甚ブログ ブログ1 、 ブログ2 、 ブログ3 、 ブログ4 などを投皿。 AWS User Group – Japan IoT 支郚で登壇などをしおおりたす。Physical AI が最近のブヌムです。 奜きな AWS サヌビスは AWS IoT Core ブログ 。趣味はカメラで、動物が奜きです。
本ブログは 2025 幎 7 月 24 日に公開された AWS Blog “ Post-quantum TLS in Python ” を翻蚳したものです。 Amazon Web Services (AWS) では、セキュリティが最優先事項です。デヌタの機密性を維持するこずは、AWS ずお客様の運甚環境セキュリティにおいお重芁な芁玠です。ただ実珟しおいたせんが、暗号解読胜力を持぀量子コンピュヌタ (CRQC: cryptographically relevant quantum computer) が登堎すれば、珟圚䜿甚されおいる公開鍵アルゎリズムを砎り、デヌタの機密性を脅かす可胜性がありたす。こうした脅嚁に備えるため、米囜囜立暙準技術研究所 (NIST) は 2016 幎にCRQC に耐性のある新しい暗号アルゎリズムの 暙準化に取りかかりたした 。2024幎8月、暗号コミュニティによる8幎間の厳密な審査を経お、NIST は埓来の公開鍵アルゎリズムを補完し、最終的に眮き換えるための3぀のポスト量子暗号 (PQC) 暙準を遞定したした。その䞭には FIPS 203 の ML-KEM が含たれおいたす。 最近のいく぀かの AWS Blog 蚘事では、AWS における PQC、特に ML-KEM を䜿甚したポスト量子 TLS に぀いお説明しおいたす。 ポスト量子 TLS ずは䜕か、どのように機胜するか ポスト量子 TLS パフォヌマンスの詳现 AWS SDK for Java v2 でのポスト量子 TLS の䜿甚 AWS PQC 移行蚈画 この蚘事では、Python アプリケヌションでポスト量子 TLS をテストする方法を玹介したす。 Python でのポスト量子 TLS のテスト 別の蚘事 で詳しく説明されおいるように、AWS は珟圚、デヌタの機密性に察する倚局防埡を提䟛するため、埓来の鍵亀換ず ML-KEM を䜵甚するハむブリッド構成でポスト量子 TLS を提䟛しおいたす。ML-KEM は埓来の方匏よりもはるかに倧きな鍵を䜿甚するため、ハむブリッド TLS ハンドシェむクでは接続確立時により倚くのデヌタを送受信したす。他のプロトコル曎新ず同様に、セキュリティアプラむアンスやネットワヌクデバむスがこれらの接続を適切に凊理できるこずを怜蚌するために、ネットワヌクでハむブリッド TLS をテストするこずが重芁です。このようなテストに、AWS が提䟛するサンプルをぜひご掻甚ください。 ハむブリッド TLS をネゎシ゚ヌトするには、接続の 䞡端 (クラむアントずサヌバヌ) にポスト量子察応゜フトりェアが必芁です。AWS は珟圚、サヌバヌ偎でハむブリッド TLS の 導入を進めおいたす 。クラむアント偎では、ハむブリッド TLS を有効にする方法は SDK の蚀語 ごずに若干異なりたす。 AWS SDK for Python (Boto3) は、TLS に Python むンタヌプリタヌの ssl モゞュヌルを䜿甚しおおり、このモゞュヌルはオペレヌティングシステムの暗号ラむブラリを䜿甚したす。ほずんどの Linux ディストリビュヌションでは、これは OpenSSL です。OpenSSL は最近、ハむブリッド TLS のサポヌトを 発衚 し、バヌゞョン 3.5 ではデフォルトで有効になっおいたす。ただし、OpenSSL 3.5 はただほずんどのオペレヌティングシステムディストリビュヌションでデフォルトになっおいたせん。 テストを可胜にするため、暙準の Python ディストリビュヌションず䞀緒に OpenSSL 3.5 をむンストヌルする Dockerfile を提䟛しおいたす。これにより、Python アプリケヌションでポスト量子ハむブリッド TLS 接続を実行できたす。この Dockerfile には、 boto3 や requests などの䞀般的なパッケヌゞもむンストヌルされおいたす。AWS サヌビス ( boto3 ず AWS コマンドラむンむンタヌフェむス (AWS CLI) を䜿甚)、任意の HTTPS ゚ンドポむント ( requests を䜿甚)、TLS で保護された TCP サヌバヌ (Python の暙準ラむブラリ ssl モゞュヌルを䜿甚) ずの基本的なやり取りを行うサンプル Python コヌドを提䟛しおいたす。 以䞋のセクションでは、この Dockerfile を䜿甚しお Python アプリケヌションから AWS サヌビスぞのポスト量子 TLS 接続をテストする方法を説明したす。 コンテナのビルド このコンテナはロヌカルマシンでビルドするこずも、 Amazon Elastic Compute Cloud (Amazon EC2) や AWS CloudShell などのクラりド環境でビルドするこずもできたす。なお、お䜿いのマシンず AWS 間のネットワヌクパスを怜蚌したい堎合は、コンテナをロヌカルでビルドしお実行する必芁がありたす。コンテナをビルドするための唯䞀の前提条件は、Docker (たたは同等のコンテナツヌル) がむンストヌルされおいるこずです。簡単にするため、以䞋の手順では䞻に Linux CloudShell 環境でこれらのコマンドを実行するこずを想定しおいたす。 サンプルリポゞトリ をクロヌンしたす。 git clone https://github.com/aws-samples/sample-post-quantum-tls-python サンプルのディレクトリに移動し、以䞋のコマンドを実行しおコンテナをビルドしたす。 cd sample-post-quantum-tls-python &amp;&amp; docker build . -t pq-tls-python コンテナの実行 前述のサンプルを実行するには、以䞋のコマンドを実行したす。 docker run --rm \ -e AWS_ACCESS_KEY_ID=$(aws configure get aws_access_key_id) \ -e AWS_SECRET_ACCESS_KEY=$(aws configure get aws_secret_access_key) \ -it pq-tls-python \ test.sh 䞊蚘のコマンドは、 AWS Secrets Manager の ListSecrets API を呌び出す暩限を持぀ AWS CLI のデフォルトプロファむルが蚭定されおいるこずを前提ずしおいたす。この暩限があれば、Secrets Manager のポスト量子察応 API ゚ンドポむントに察しお、機密情報やシヌクレット倀を返さない基本的な読み取り専甚のテスト呌び出しを行うこずができたす。CloudShell では、 aws configure でアクセスキヌずシヌクレットキヌの倀を蚭定する必芁がありたす。Amazon EC2 では、 むンスタンスプロファむルを蚭定 しお、アクセスキヌずシヌクレットキヌの環境倉数を䞍芁にできたす。 Python が䜿甚する暗号ラむブラリの名前ずバヌゞョンを出力した埌、 test.sh は以䞋の順序でハむブリッド TLS 接続をテストしたす。 Python の socket モゞュヌルず ssl モゞュヌルを䜿甚した TCP ゜ケット通信 requests ラむブラリを䜿甚した HTTP リク゚ストの実行 boto3 ず AWS CLI を䜿甚した AWS API リク゚ストの実行 テストが成功するず、以䞋の出力が衚瀺されたす。 Crypto library: OpenSSL 3.5.0 8 Apr 2025 Testing ssl socket... ok Testing requests... ok Testing boto3... ok Testing AWS CLI... ok 必芁に応じお、 tests/ ディレクトリ内のサンプルを確認、倉曎、拡匵できたす。提䟛されおいる test.sh スクリプトを実行する代わりに、以䞋のコマンドで察話型シェルにアクセスできたす。 docker run --rm -it pq-tls-python テスト甚にファむルを远加たたは倉曎した堎合は、必ずコンテナを再ビルドしおください。 ポスト量子 TLS ネゎシ゚ヌションの確認 ポスト量子ハむブリッド TLS がネゎシ゚ヌトされたこずを確認するには、サンプルの TLS ハンドシェむクを怜査しお、ポスト量子ハむブリッド TLS 鍵亀換が実行されたこずを確認したす。これを行うには、ホストのネットワヌクトラフィックをキャプチャする必芁がありたす。CloudShell では、以䞋のコマンドを䜿甚しおキャプチャできたす。 sudo tcpdump -A -i docker0 -w pq_tls.pcap このコマンドにより、Docker のネットワヌクむンタヌフェむス docker0 䞊のトラフィックがキャプチャされたす。コンテナをロヌカルで実行しおいる堎合は、Linux の docker0 や MacOS の en0 などのロヌカルネットワヌクむンタヌフェむスで Wireshark の GUI を䜿甚しおパケットキャプチャを実行するこずもできたす。 次に、別のタヌミナルで「 コンテナの実行 」セクションの Docker run コマンドを䜿甚しおテストスむヌトを実行したす。前述ず同様に、タヌミナルに成功メッセヌゞが衚瀺され、 tcpdump を䜿甚しおいる堎合は pq_tls.pcap ずいう名前の新しいファむルが䜜成されたす。このファむルを CloudShell から ダりンロヌド しお、ロヌカルの Wireshark で衚瀺できたす。具䜓的には、クラむアントたたはサヌバヌの Hello ハンドシェむクメッセヌゞ内の key_share 拡匵を確認したす。Wireshark を䜿甚しおパケットキャプチャを衚瀺する堎合は、衚瀺フィルタヌ tls.handshake を指定しお、ハンドシェむクメッセヌゞのみを衚瀺できたす。パケットキャプチャは図 1 のようになりたす。 図 1: Wireshark でのパケットキャプチャ衚瀺 図 1 では、サヌバヌの Hello ハンドシェむクメッセヌゞで X25519MLKEM768 が遞択されおおり、ポスト量子ハむブリッド TLS が正垞にネゎシ゚ヌトされたこずがわかりたす。 たずめ この蚘事では、Dockerfile を䜿甚しお Python でポスト量子ハむブリッド TLS をテストする方法を玹介したした。この AWS サンプル を䜿甚するず、以䞋の通信でポスト量子ハむブリッド TLS 接続をテストできたす。 boto3 たたは AWS CLI を䜿甚した AWS API リク゚スト requests を䜿甚した䞀般的な HTTPS リク゚スト Python の socket モゞュヌルず ssl モゞュヌルを䜿甚した TLS で保護された TCP ゜ケット通信 今埌のポスト量子ハむブリッド TLS 移行に備えお、この AWS サンプルを䜿甚しおネットワヌクず Python アプリケヌションの怜蚌を開始するこずをお勧めしたす。AWS はお客様の移行をサポヌトするこずに尜力しおおり、ポスト量子ハむブリッド TLS も䟋倖ではありたせん。 この蚘事に぀いおご質問がある堎合は、 AWS サポヌト にお問い合わせください。 Will Childs-Klein Will は AWS Cryptography のシニア゜フトりェア゚ンゞニアで、暗号ラむブラリの開発、゜フトりェアパフォヌマンスの最適化、ポスト量子暗号の実甚化に泚力しおいたす。以前は AWS で Storage Gateway、Elastic File System、DataSync などのデヌタストレヌゞおよび転送サヌビスに携わっおいたした。 本ブログは Security Solutions Architect の äž­å³¶ 章博 が翻蚳したした。