TECH PLAY

AWS

AWS の技術ブログ

2959

コンタクトセンター、特にビジネスプロセスアウトソーシング (BPO) 企業では、複数の事業部門 (LOB) を運営しており、それぞれが通話録音の保持に関して異なる規制要件や契約要件を持っています。 業界規制や契約義務を遵守できなければ、罰金、法的紛争、評判を損なう可能性があります。それだけでなく、必要な期間を超えて通話録音を保持することは、不要なストレージコストや潜在的なデータプライバシーの懸念につながる可能性があります。つまり、組織は、運用コストを最適化しながら、コンプライアンス義務を満たす必要があります。 このブログ投稿では、単一の Amazon Connect インスタンス内で、事業部門全体にわたって通話録音に複数の保持ポリシーを適用する方法について解説します。 ソリューション概要 Amazon Connect は、エージェントと顧客間の会話を安全に録音するネイティブな通話録音機能を提供しています。これらの録音は、お客様のインスタンス専用に作成された Amazon S3 バケットに保存されます。 Amazon S3 ライフサイクルを設定することで 、これらの録音のライフサイクルを管理できます。つまり、この設定により、Amazon S3 内の期限切れの録音を自動的に削除するオブジェクトの有効期限ルールを定義できます。 このソリューションでは、Amazon Connect の フロー 内のカスタム 問い合わせ属性 で、各問い合わせの希望する保持期間を指定します。この問い合わせ属性は、 問い合わせレコード の残りの部分と共に Amazon Kinesis にストリーミングされ、 AWS Lambda 関数を呼び出します。Lambda 関数は Amazon S3 の オブジェクトへのタグ付け機能 を使用して、指定された問い合わせ属性値に基づいて録音オブジェクトにタグを付けます。その結果、録音オブジェクトは、バケットに設定された事前定義済みの S3 ライフサイクルルールに従って、それぞれのタグに応じて有効期限が設定されます。 この方法で、データ保持規制への準拠、ストレージコストの最小化、リソース使用率の最適化を実現する、通話録音のカスタマイズされた保持ポリシーを実装できます。 アーキテクチャの全体概要 画像 1 – アーキテクチャ図 詳細な処理の流れ 特定の事業部門 (LOB) に対応した問い合わせが Amazon Connect に到着します 問い合わせ属性の保持期間がフロー内で問い合わせに添付され、LOB に応じて属性値 (短期、長期) が割り当てられます Amazon Kinesis が問い合わせレコードを Amazon S3 にストリーミングします Amazon S3 への転送と合わせて AWS Lambda 関数が呼び出されます。この関数は、問い合わせレコードの保持期間属性 (短期、長期) に基づいて、オブジェクトの Amazon S3 ライフサイクルポリシー (オブジェクトタグ付けを使用) を更新します Amazon S3 内の各録音が、それぞれのライフサイクルポリシーに基づいて期限切れになるよう設定されます このブログでは、以下をデプロイします: 以下を提供する CloudFormation テンプレート: ソリューションのデモンストレーションとテスト用の Amazon Connect フロー Amazon Connect から 問い合わせレコード (CTR) データを運ぶコンポーネントとして機能する Amazon Kinesis Data Streams Amazon S3 ライフサイクルポリシー の設定と、関連する保持期間に応じた新しい録音のタグ付けを担当する 2 つの AWS Lambda 関数 このアーキテクチャは、既存の Amazon Connect インスタンスと、それに対応する Amazon S3 問い合わせ録音バケットに適用できます。 前提条件 このガイドのタスクを実行するために必要な権限があることを確認してください。アクセス権の問題が発生した場合は、AWS アカウントの管理者に連絡して、必要な権限をあなたの役割に合わせて調整してもらってください。 Amazon Connect インスタンスがデプロイされている AWS アカウント内で、大まかには 以下のアクションが利用可能である必要があります: CloudFormation: スタックの起動と削除 Amazon Connect: コンタクトフローの作成と設定、およびインスタンスへのアクセス IAM: IAM ロールの作成と表示 Lambda: 関数の作成、編集、イベントソースの設定、およびデプロイ Kinesis: Kinesis Data Streams の作成 手順 Amazon Connect インスタンスを既に作成済みかどうか、または初めて開始するかどうかに関係なく、このガイドを活用できます。 以下の手順では、AWS アカウントと既存の Amazon Connect インスタンスをお持ちであることを前提としています。新しい Amazon Connect インスタンスを作成するには、 Getting Started with Amazon Connect Workshop の「 Lab 1 」 や、 Amazon Connect Basic Hands-on Workshop (日本語) の 「 2. インスタンスの作成 」の手順に従ってください。AWS アカウントが必要な場合は、 前提条件の手順 に従ってください。 CloudFormation テンプレートの実行 CloudFormation テンプレートは JSON または YAML 形式で記述できる、AWS における Infrastructure as Code (IaC) のコードです。このガイド用の CloudFormation テンプレートは、以下のボタンをクリックしてダウンロードできます。 このテンプレートを使うと、 CloudFormation に以下のようなフォームが表示されます。 Stack name には分かりやすい名前を入力、その他のパラメータは、テンプレートを設定する Amazon Connect インスタンスと録音バケットに合わせて入力します。これらの情報の確認方法は次に説明します。 ステップ 1: 特定 次のステップに必要な情報を確認して書き留めます。 a) BasicQueueId 管理者、またはキューとコンタクトフローを表示するための適切なセキュリティプロファイル設定を持つユーザーとして Amazon Connect コンソールにアクセスします ルーティング から キュー を選択します 表示されるキューのリストから BasicQueue を選択します 追加のキュー情報を表示 をクリックします 表示されるARNの最後に表示されているキュー ID をコピーします キュー ID は後ほど利用するので記録しておきます b) ConnectInstanceID 同じ ARN から、Connect インスタンス ID を推測できます。先ほどの画面の ARN のinstance/ の後の部分に注目します。AWS Management Console の Amazon Connect インスタンスページの概要ページから Connect インスタンス ARN をキャプチャすることもできます これを記録するか、CloudFormation テンプレートパラメータ入力フォームの ConnectInstanceId フィールドに入力します c) KinesisDataStreamName これは事前に入力された「multiple-retention-ctr」という名前のままにするか、任意の名前に変更できます。 d) RecordingBucketName AWS Management Console の Amazon Connect サービスページから対象の Amazon Connect インスタンスを選択します インスタンスエイリアスをクリックします AWS Management Console の Amazon Connect サービスページのナビゲーションからデータストレージのセクションにアクセスします。ここで S3 バケットの名前を確認できます。完全なパスが提供されますが、必要なのはバケット名だけです これを記録するか、CloudFormation テンプレートパラメータ入力フォームを含む他のタブの RecordingBucketName フィールドに入力します ステップ 2: ソリューションのデプロイ 前のステップですべての項目を収集したら、CloudFormation テンプレートのパラメータフォームに入力します。 CloudFormation コンソールで、ダウンロードしたテンプレートを読み込み、フォームに入力します 次へ をクリックして続行します 続いて表示されるスタックオプションの設定ページでは、(変更したい設定がなければ)ページ末尾の確認事項を除く、すべての設定をデフォルトのままにして、 次へ を選択します 確認して作成 ページで最終的な詳細とパラメータを確認します。すべての設定をデフォルト値のままにしておくことができます 送信 をクリックし、作成を開始します これによりテンプレートの起動が開始されます。スタックの下に CREATE_COMPLETE ステータスメッセージが表示されます。さらにイベントタブとリソースタブにアクセスして、テンプレートによって起動されたリソースを確認することもできます ステップ 3: Amazon Connect からのデータストリーミングの有効化 注意 : Amazon Connect は CTR データを単一の Kinesis Stream にのみ送信することをサポートしています。 既に CTR データを Kinesis Stream に送信している場合は、TagS3Object Lambda 関数内のイベントトリガー設定を更新して、既存の Kinesis Stream にストリーミングレコードが到着したときに呼び出されるようにすることができます。これにより、テンプレートで指定した「multiple-retention-ctr」という名前のストリームを使用しないことができます。そのように設定することで、Lambda 関数は既存のストリームの別のコンシューマーとなり、Kinesis ストリームに依存する既存のワークロードを中断することなく動作します。この後、使用状況の検証セクションに直接進んでください。 インスタンスから CTR ストリーミングを設定していない場合は、このセクションに沿って設定を続行してください。 Amazon Connect インスタンスは、CTR データを「multiple-retention-ctr」Kinesis Data Stream に送信するように設定する必要があります。これは、AWS Management Console の Amazon Connect インスタンス設定画面の「データストリーミング」セクションにアクセスすることで実現できます。 このストリーミング動作を発生させるために、フローやキューレベルでの追加設定は必要ありません。これはインスタンスレベルの設定です。 AWS Management Console の Amazon Connect サービスページのナビゲーションからデータストリーミングのセクションにアクセスします。データストリーミングが有効になっているかどうかを確認してください チェックボックスを選択して有効にし、適切な Kinesis Stream を選択します 保存 をクリックします フロー (すでに変更済みですので、この解説は説明目的です。追加の操作は不要です) 以下の画像は、コンタクトのコンタクト属性の割り当てを示しています(以下の例では、オプション 1 を押した発信者には短期保持が割り当てられます) Lambda のコード 保持値に応じて有効期限を 30 日または 90 日に設定する Lambda 関数の一部 このコードは ‘retention’ 属性の値を抽出し、キー ‘retention’ と ‘retentionvalue’ から取得した値を持つタグを作成し、’PutObjectTagging’ API を使用してタグを Amazon S3 オブジェクトに適用します。 ここまでの手順で、ソリューションは使用準備が整いました。フローの実装において必要な箇所でコンタクト属性 retention を設定することで、適用できるようになります。 動作確認 デプロイメントが確認でき、各コンポーネントを理解したので、通話をテストすることができます。 ステップ 1:「Configure multiple retention policies」フローに電話番号を割り当てる このステップでは、CloudFormation テンプレートによってデプロイされた Contact Flow にテスト用の電話番号を関連付けます。 管理者として、またはキューとコンタクトフローの表示および電話番号の設定に適切なセキュリティプロファイル設定を持つユーザーとして Amazon Connect コンソールに移動します サイドバーセクションのチャネル下にある電話番号に移動します テストに使いたい電話番号を選択します。利用可能な電話番号がない場合は、電話番号の取得ボタンから進めてください 作成された Configure multiple retention policies から始まる名前のフローを選択します 保存をクリックして変更します ステップ 2: 電話番号に架電する さて試してみましょう。発信したら、 1 または 2 を押して保持期間の長さを設定できます。このシナリオでは、電話をかけた後、 1 を押して、保持期間ポリシーを短く設定します。保持期間ポリシーの選択の後、問い合わせは Amazon Connect 内の BasicQueue に送られます。 紐づけた電話番号にダイヤルし、希望する保持期間のオプションを選択します 問い合わせコントロールパネル (CCP) またはエージェントワークスペースから、着信した問い合わせに数秒間応答します 通話を切断します ステップ 3: Amazon S3 に保存された録音のオブジェクトタグを確認 問い合わせを切断したら、Amazon S3 オブジェクトを確認して、期待通りのタグが表示されていることを確認しましょう。タグが反映されるまで数分かかる場合があることにご注意ください。 録音が保存されている S3 バケットに移動し、オブジェクトツリーを辿って最新の録音を特定します Amazon S3 内から録音ファイルを選択します。プロパティタブ内を下にスクロールすると、retention タグが表示され、その値はテスト問い合わせ中に選択されたオプション(および設定された問い合わせ属性)に応じて「long」または「short」のいずれかを確認できます これでテストの成功が確認できました。問い合わせ属性が正しく設定され、CTR レコードが Lambda 関数にストリーミングされ、問い合わせの録音が適切にタグ付けされました。設定された S3 ライフサイクルポリシーにより、ユーザーの介入なしに適切なタイミングで録音が削除されます。S3 ライフサイクルポリシーの詳細については、 こちら をクリックしてください。 注:実際のユースケースでは、 IVR を介して録音保持ポリシーを選択する必要はありません。 各フローのコンタクト属性の設定 ブロックを使用して、バックグラウンドで適切な問い合わせ属性を自動的に設定するようにコンタクトフローデザイナーで構成できます。 クリーンアップ CloudFormation テンプレートのデプロイメントをロールバックするには、2つの手順があります。これにより、このガイドで作成されたリソースをクリーンアップできます。 ステップ 1: CloudFormation スタックの削除 このブログの中でデプロイした CloudFormation テンプレートに移動し、スタックを削除します。このステップで、IAM、Lambda、および Kinesis Data Streams リソースを正常に削除できます。唯一の例外は、サンプルのフローで、これについては次のステップで対処します。 ステップ 2: デモンストレーション用の Amazon Connect フローをアーカイブする 偶発的なコンタクトセンターの中断リスクを最小限に抑えるため、CloudFormation でコンタクトフローを削除することはできません。これを削除するには、適切なセキュリティプロファイルを持つユーザーで Amazon Connect インスタンスにアクセスし、フローをアーカイブします。 前のステップで Kinesis Stream が削除されると、Amazon Connect インスタンスのデータストリーミング設定から該当の Kinesis Stream の割り当てが自動的に解除されます。 コンタクトフローの保存に関連する料金はないため、アーカイブしても削除による残存コストは発生しません。 これらの手順で、前述の活動に関わる(通話録音を除く)すべてのリソースがクリーンアップされます。 まとめ 単一の Amazon Connect インスタンス内に複数の通話コンタクト録音保持ポリシーを実装することは、重要なビジネス上の利益をもたらします。Amazon Connect と他の AWS サービスを一緒に活用することで、組織はコンプライアンスとコスト効率性のバランスを実現できます。 このアプローチで運用を合理化し、データプライバシーを確保し、進化するビジネス要件に適応する柔軟性を提供できます。結果として、コストを最適化し、規制コンプライアンスを維持する、シームレスでカスタマイズされたソリューションが、単一のスケーラブルなプラットフォーム内で実現できます。 より詳しく知るには Amazon Connect を初めてお使いですか? Amazon Connect ユーザーガイドの開始方法 をご覧ください 最新の Amazon Connect 機能について詳しく知りたいですか? Amazon Connect Enablement YouTube チャンネル でオンデマンドウェビナー、ハウツー、デモをご覧ください Amazon Connect のハンズオンワークショップをお試しになりたいですか?厳選された Amazon Connect ワークショップ をご利用ください 今後の Amazon Connect イベントについて知りたいですか? カスタマーエクスペリエンスワークショップ & イベント をご確認いただき、今後のイベントにご登録ください 筆者紹介 Mo Miah Mo Miah は Amazon Connect を専門とするシニアソリューションアーキテクトです。コンタクトセンターテクノロジーの分野で 19 年以上の経験を持っています。イギリスのロンドンを拠点とし、Amazon Connect の強力な AI/ML 機能を使用してお客様がビジネス成果を達成できるよう支援することを楽しんでいます。仕事以外では、アクティブに過ごすことを楽しんでおり、2 人の幼い娘がいて忙しい日々を送っています。 Jack Tilson Jack は、様々な AWS テクノロジーを活用して公共部門のお客様と協働するソリューションアーキテクトです。特に、優れたクラウドサービスによるセキュリティ、レジリエンス、市民体験に関心を持っています。戦略的なクラウド変革の経験を持つ彼は、旅行、写真、音楽の熱心なファンでもあります。 翻訳はテクニカルアカウントマネージャー高橋が担当しました。原文は こちら です。
アバター
本投稿は、2025年 10 月 6 日に公開、11 月 3 日に更新された Your Ultimate Guide to Cloud Financial Management sessions at re:Invent 2025: Know Before You Go を翻訳したものです。 Cloud Financial Management (CFM) の学習とネットワーキングの時間を re:Invent 2025 で最大限に活用する準備はできていますか?例年通り、今年の CFM セッションを最大限に活用し、スケジュールを計画するための包括的なガイドを作成しました。今年のカタログには、ブレイクアウト、チョークトーク、ワークショップ、ビルダーズセッション、コードトークなど、さまざまな形式のコンテンツがエキサイティングに組み合わされています。 最新情報のキャッチアップ (ブレイクアウトセッション) COP203: What’s New with AWS Cost Management 12 月 3 日(水)| 10:30 – 11:30 PST Mandalay Bay | Level 3 South | South Seas E 特別ゲスト: Corey Quinn ( Duckbill )と Matt Cowsert ( FinOps Foundation ) COP202: What’s New with AWS Cost Optimization 12 月 4 日(木)| 14:30 – 15:30 PST MGM | Level 3 | Chairman’s 360 特別ゲスト: Delta Airlines から Bonnie Firnstahl エキスパートや仲間と学ぶ (チョークトーク) COP301: Applying AI for FinOps and FinOps for AI 12 月 1 日 (月) | 午後 2:30 – 3:30 PST Wynn | Convention Promenade | La Tache 2 12 月 3 日 (水) | 午前 8:30 – 9:30 PST Wynn | Convention Promenade | Montrachet 1 COP309: Establishing effective cost governance 12 月 3 日 (水) | 午後 3:00 – 4:00 PST Wynn | Convention Promenade | Latour 5 12 月 4 日 (木) | 午後 12:30 – 1:30 PST Wynn | Convention Promenade | Lafite 1 COP201: Estimating workload costs using AWS Pricing Calculator 12 月 1 日 (月) | 午後 5:30 – 6:30 PST Wynn | Convention Promenade | La Tache 2 COP338:Optimizing resources with AWS Compute Optimizer   12 月 3 日 (水) | 午後 4:30 – 5:30 PST MGM | Level 3 | Premier 309 COP339: Developing a cost allocation strategy 12 月 3 日 (水) | 午前 11:30 – 午後 12:30 PST Wynn | Convention Promenade | Lafite 1 HMC319: Achieve multicloud FinOps visibility 12 月 1 日 (月) | 午後 1:00 – 2:00 PST MGM | Level 1 | Boulevard 167 12 月 2 日 (火) | 午後 5:30 – 6:30 PST Caesars Forum | Level 1 | Summit 231 特別ゲスト: FinOps Foundation から J.R. Storment ハンズオンで学ぶ (ワークショップ、Builder セッション、Code トーク) ワークショップ: Exploring Multi-tenant Cost Allocation for Container Workloads 12 月 4 日木曜日 | 12:00 PM – 2:00 PM PST MGM | Level 3 | Premier 318 *ノートPCが必要です ビルダーセッション: COP306: Developing Unit Cost Metrics with Cloud Intelligence Dashboards 12 月 1 日月曜日 | 5:30 PM – 6:30 PM PST Mandalay Bay | Lower Level North | Islander H 12 月 2 日火曜日 | 11:30 AM – 12:30 PM PST Mandalay Bay | Level 2 South | Oceanside C *ノートPCが必要です コードトーク COP401: Advanced analytics with AWS Cost and Usage Reports 12 月 1 日月曜日 | 8:30 AM – 9:30 AM PST MGM | Chairman’s 356 12 月 2 日火曜日 | 2:30 PM – 3:30 PM PST Wynn | Convention Promenade | Margaux 1 コードトーク COP419: Advanced multi-cloud cost reporting with FOCUS 12 月 1 日月曜日 | 4:00 PM – 5:00 PM PST MGM | Level 3 | Chairman’s 370 12 月 2 日火曜日 | 2:30 PM – 3:30 PM PST MGM | Level 3 | Chairman’s 370 ワークショップ ARC309: The Frugal Architect GameDay 12 月 1 日月曜日 | 8:00 AM – 10:00 AM PST MGM | Level 3 | Premier 318 FinOps エキスパートや AWS プロダクトリーダーとの交流 FinOps Foundation は re:Invent 2025 で複数のアクティビティを開催するという伝統を継続します。12 月 2 日火曜日、Venetian Hotel 内の RockHouse レストランで開催される 1 日の学習とネットワーキングにご参加ください。 基調講演のウォッチパーティーから始まり、ネットワーキングランチを挟んで、午後のコンテンツとピアコネクトイベントで締めくくられます。 これは、ファンデーションと AWS CFM チームの両方からエキスパートやプロダクトリーダーと直接交流できる機会です。 参加を希望される方は こちら からお申し込みください。 計画のTips: 早めに登録してください – セッションには定員があります 会場間の移動のため、セッション間に余裕を持たせてください セッションレベルを考慮して計画を立ててください – セッション ID で判断できます。例えば、COP202 は 200 レベルのセッション、COP419 は 400 レベルのセッションです。 推奨事項 – 注目すべき主要テーマ すべてのセッションは、最大限の価値を提供できるように慎重に選定され、設計されています。ぜひ、あなたの興味や技術的な専門性に合ったセッションを選択してください。以下に、私からのおすすめをご紹介します: COP202 と COP203 を通じて、新しい CFM 製品のリリース情報を把握しましょう COP339 でコスト配分戦略を深く掘り下げ、COP410 でコンテナ固有のインサイトを学びましょう COP401 と COP419 を通じて、高度なコスト分析とマルチクラウドの可視化戦略・戦術を学びましょう AI とコスト管理の交差点を探求する COP301 をお見逃しなく 重要な注意事項 : 投稿に記載されているセッションの日時と場所は、セッションの人気度と会場の収容人数に基づいてスケジュールを最適化し続けているため、変更される可能性があります。登録済みのセッションや新規追加されたアクティビティに関する最新情報については、このブログ投稿と re:Invent セッションカタログを定期的にご確認ください。 人気のセッションはすぐに満席になりますので、早めに席の予約をお願いします。re:Invent 2025 でお会いできることを楽しみにしています! Bowen Wang Bowenは、AWS請求およびコスト管理サービスのプリンシパルプロダクトマーケティングマネージャーです。彼女は、財務およびビジネスリーダーがクラウドの価値とクラウド財務管理を最適化する方法をより良く理解できるよう支援することに注力しています。以前のキャリアでは、テクノロジースタートアップの中国市場参入を支援していました。 本記事の翻訳はスペシャリストソリューションアーキテクト 加藤が担当しました。
アバター
本記事は 2025 年 11 月 17 日に公開された Jonathan Vogel と Dan Kiuna による “Never lose your way: Introducing checkpointing in Kiro” を翻訳したものです。 開発者なら誰もが経験したことがあるでしょう。AI コーディングアシスタントと一緒に作業していて、機能開発が順調に進んでいる。エージェントが一連の変更を行い、ファイルを更新し、コードをリファクタリングし、新しい機能を追加する。そして突然、何かがうまくいかなくなる。エージェントが要件を誤解したのかもしれない。あなたのアーキテクチャに合わない前提を置いたのかもしれない。あるいは、単に別のアプローチを試したくなったのかもしれない。 課題はコードの変更を元に戻すことだけではありません。会話のコンテキストを失うことが問題なのです。ファイルを元に戻すことはできても、AI との対話のどこにいたのかを再構築しようとすることになります。フローが途切れ、軌道に戻るには時間と精神的なエネルギーが必要になります。 恐れることなく実験できたらどうでしょうか? AI アシスタントに大胆なリファクタリングに取り組ませても、計画通りに進まなければ即座に巻き戻せることがわかっていたらどうでしょうか?それが、チェックポイント機能が AI 支援開発にもたらす確信です。 チェックポイント機能とは? チェックポイント機能は、開発セッション中の任意の時点まで Kiro の変更を巻き戻す機能を提供します。 Kiro がコードベースを変更すると、チャット履歴に自動的にチェックポイントマーカーが作成されます。ビデオゲームのオートセーブポイントのようなものだと考えてください。物事がうまくいかず、想定以上のダメージを受けた場合、以前のチェックポイントに戻って別のアプローチを試すことができます。 各チェックポイントは、そのセッション中に Kiro が行った特定の変更を記録します。 ワンクリックで、エージェントがそのチェックポイント以降に行ったファイルの変更を元に戻すことができ、その復元ポイントまでの会話履歴は保持されます。コンテキストを保ち、不要な変更を元に戻し、構築作業に戻ることができます。 重要: チェックポイント機能は、現在のセッション中に Kiro が行った変更のみを元に戻します。 コードベース全体を保存するわけではなく、この特定のセッションで AI エージェントが変更したファイルのみを復元できます。 注意: チェックポイントを復元すると、Kiro の変更だけでなく、Kiro が触れたファイルの 完全な状態 が元に戻ります。チェックポイント後にあなたや他のツールがそれらの同じファイルに編集を加えた場合、それらの編集も失われます。Kiro で構築しながら手動でコードを編集したり、他のシステムがファイルを変更したりしている場合は、必ずバージョン管理を使用してください。 チェックポイント機能が重要な理由 AI 支援開発は強力ですが、完璧ではありません。大規模言語モデルは本質的に確率論的です。正しい判断をすることもあれば、そうでないこともあります。重要なのは、開発者であるあなたにプロセスのコントロールを与えることです。 チェックポイント機能がなければ、AI が生成するすべての変更にはリスクが伴います。何かがうまくいかなかった場合のクリーンアップを心配して、Kiro に複雑なリファクタリングに取り組ませることをためらうかもしれません。各変更をレビューするのに、自分でコードを書くよりも多くの時間を費やすかもしれません。進捗を失うことへの恐れが、実際にあなたの作業を遅くする可能性があります。 チェックポイント機能はその状況を変えます。Kiro により大きな挑戦をさせる自信を与えます。別のアーキテクチャアプローチを試したいですか?やってみましょう。うまくいかなければ、開始地点からワンクリックで戻れます。新しいライブラリを試したいですか?問題ありません。必要なときにチェックポイントがあります。 仕組み Kiro のチェックポイント機能は、必要になるまで見えないように設計されています。チェックポイントを作成したり、手動で管理したりする必要はありません。Kiro がそれを処理します。 Kiro と作業すると、チャットインターフェースにチェックポイントラインが自動的に表示されます。タスクを開始する前にチェックポイントが作成されます。これらの視覚的なマーカーにより、開発セッションの構造を一目で簡単に確認できます。 元に戻したいときは、任意のチェックポイントラインの「復元」ボタンをクリックするだけです。Kiro はすべてを巻き戻します。エージェントが行ったすべてのファイル変更と会話履歴を元に戻し、その正確な瞬間に戻します。メッセージを入力したがまだ送信していなかった場合、それはチャットウィンドウにあり、編集または送信する準備ができています。開発セッションのタイムトラベルのようなものです。コードの状態だけでなく、どこにいて何を考えていたかの完全なコンテキストを取り戻すことができます。 チェックポイント機能と仕様駆動開発 チェックポイント機能は、Kiro の仕様駆動開発ワークフローと自然に連携します。仕様を進めているとき、特定の要件を実装するために異なるアプローチを試したいことがあるかもしれません。チェックポイント機能は、その探索をリスクフリーにします。また、チェックポイントを使用して、仕様の主要なマイルストーンの完了をマークすることもできます。認証システムの実装が完了しましたか?それがチェックポイントです。データレイヤーが完成しましたか?これもまたチェックポイントです。これらのマーカーは、進捗の明確なマップを提供し、変更を加える必要がある場合に以前の段階を簡単に戻れるようにします。 実際のシナリオ チェックポイント機能が輝くいくつかのシナリオを見てみましょう。 安全な実験 : 特定のリファクタリングがコードのパフォーマンスを向上させるかどうか気になっています。Kiro に変更を加えさせ、ベンチマークを実行します。結果が期待通りでなければ、チェックポイントに戻ります。問題ありません。リスクなしに実験できる能力は非常に解放感があります。 反復的な改善 : 適切なソリューションを見つける前に、いくつかのバリエーションを試す必要がある場合があります。チェックポイント機能を使えば、迅速に反復作業が可能です。手法を試行し、評価し、必要なら元に戻して再挑戦できます。各反復は前回の教訓を基に構築されますが、失敗した試行の残骸でコードベースが散らかることはありません。 異なる実装の探索 : 新しい API エンドポイントを構築していて、REST と GraphQL のどちらを使用するか確信が持てません。まず Kiro に REST として実装するよう依頼します。コードをレビューし、テストし、感触を確かめます。しっくりこない?チェックポイントに戻り、代わりに GraphQL を試すよう Kiro に依頼します。同じ会話、異なるアプローチ、手動クリーンアップはゼロです。 誤解からの回復 : Kiro に「ユーザーサービスに認証を追加して」と依頼します。Kiro は OAuth2 を実装しますが、実際には単純な API キーが必要でした。数十のファイル変更を手動で元に戻す代わりに、Kiro が開始する前のチェックポイントに戻り、要件を明確にします。Kiro は今度は正しいアプローチで再度試みます。 AI 支援開発における信頼の構築 チェックポイント機能の真の力は、変更を元に戻す能力だけではありません。それは、異なる働き方をする自信を与えることです。 チェックポイント機能があれば、AI 支援開発をトランザクションではなく会話のように扱うことができます。アイデアを探求し、仮説をテストし、間違っていることのコストを心配することなく迅速に反復できます。セーフティネットがあることがわかっているので、Kiro により複雑なタスクを処理させることができます。 この考え方の変化は微細ながら重要です。Kiro のあらゆる動作を細かく制御する代わりに、構築しようとしているものとその理由という大局に集中できます。「これが失敗したら」という不安に精神を消耗する代わりに、「これが成功したら」という可能性にエネルギーを注げるのです。 チェックポイント機能とバージョン管理 明確にしておきましょう: チェックポイント機能はバージョン管理の代替ではありません。開発ワークフローの一部として、Git (または好みのバージョン管理システム) を引き続き使用する必要があります。バージョン管理を長期的なプロジェクト履歴とコラボレーションツールと考え、チェックポイント機能を短期的な実験と反復ツールと考えてください。 チェックポイント機能は、Kiro とアイデアを探求し、迅速に反復しているアクティブな開発セッション中に輝きます。満足のいくアプローチに落ち着いたら、通常どおりバージョン管理にコミットします。2 つのツールは異なる目的を果たし、一緒に使うのが最適です。 自分で試してみましょう チェックポイント機能は現在 Kiro で利用可能です。何も設定したり、作業方法を変更したりする必要はありません。Kiro との会話を開始し、いくつかの変更を加えると、チェックポイントラインが表示されます。元に戻す必要があるときは、それらがあなたを待っています。 私たちは、AI 支援開発のコントロールを減らすのではなく、強化するために Kiro を構築しました。チェックポイント機能は、そのビジョンの中核をなす部分です。それは、AI を開発プロセスの真のパートナーにすることです。恐れることなく探求し、実験し、反復する自由を与えるパートナーです。 自信を持ってコーディングする準備はできましたか? Kiro をダウンロード して、チェックポイント機能が AI との作業方法をどのように変えるかを確認してください。 チェックポイント機能について質問がありますか、または使用方法を共有したいですか? Discord コミュニティ で会話に参加するか、 X 、 LinkedIn 、 Bluesky でフォローしてください。
アバター
こんにちは。ソリューションアーキテクトの吉村です。 本ブログは Kiroweeeeeek (X: #kiroweeeeeeek ) の第 3 日目です。昨日のブログは菅原さんの「 Amazon Q Developer の IDE プラグインから Kiro に乗り換える準備 」という内容でした。 本ブログでは、Kiro を組織で利用するにあたって気になるセキュリティとガバナンス機能についてご紹介します。Kiro の一般提供に関しての総合的な情報は「 Kiro が一般提供開始: IDE とターミナルでチームと共に開発 」をご確認ください。 Kiro の組織利用を開始 Kiro では、一般提供開始に伴い AWS IAM Identity Center を用いた認証方式を利用できる、 Kiro for enterprise の提供を開始しました。IAM Identity Center を利用することで、プレビュー時の個別にクレジットカードを登録する方法とは違い、AWS に組織として請求を 1 本化し、請求を可視化することが可能です。 マネジメントコンソールからアクセスできる Kiro コンソールを利用することで、以下のようなことが行えます。 リージョン管理 :IAM Identity Center インスタンスを管理するリージョンとは別に、Kiro プロファイルを作成するリージョンをマネジメントコンソールで選択することができます。サポートリージョンについては後述します。 サブスクリプション管理 :Kiro コンソールを利用して、IAM Identity Center で管理しているユーザーに対するサブスクリプションの作成・管理・設定を行うことができます。 グループ管理 :グループは IAM Identity Center で管理しているユーザーの集合です。グループに対して Kiro をサブスクライブすると、グループに所属するユーザー全てに対してワンアクションで個別のサブスクリプションを開始することが出来、サブスクリプションの管理を簡素化することができます。 Kiro コンソールからサブスクリプションが開始された、IAM Identity Center ユーザーは、「Sign in with your organization identity」から IDE にログイン、もしくはコマンドラインで kiro-cli login コマンドを利用して IAM Identity Center の認証情報を用いて Kiro CLI にログインし、Kiro の利用を開始することができます。 IDE のログイン Kiro CLI のログイン 詳細については、「 Concepts – IDE – Docs – Kiro 」をご確認ください。 ここまで、IAM Identity Center を利用した Kiro for enterprise について説明しました。ここからは、Kiro for enterprise で気になるセキュリティとガバナンスに焦点を当てていきます。 Kiro プロファイル Kiro for enterprise を利用する場合、IAM Identity Center インスタンスの作成されたリージョンとは別に、Kiro プロファイルを作成するリージョンを選択します。現在(2025 年 11 月 21 日)では、バージニア北部とフランクフルトリージョンをご選択いただけます。Kiro による推論の実行、データの保存は Kiro プロファイルを作成したリージョンにて行われます。 IAM Identity Center インスタンスのリージョンと、Kiro プロファイルのリージョンは異なっていても問題ありません。例えば、IAM Identity Center は東京リージョンを利用しつつ、Kiro プロファイルをバージニア北部リージョンで作成いただくことも可能です。そのため、既に IAM Identity Center をご利用中のお客様も、すぐに Kiro for enterprise を開始いただけます。 Kiro プロファイルとサポートリージョンの詳細は「 Supported regions – IDE – Docs – Kiro 」をご確認ください。 プライバシーとセキュリティ このセクションでは、テレメトリやユーザーによって入力されるデータ、Kiro が生成するコンテンツ等の取り扱いについて概説します。本セクションの内容は、記事執筆当時 (2025 年 11月 21 日) の情報に基づいており、最新の情報は「 Data protection – IDE – Docs – Kiro 」よりご確認ください。 データの保存と処理 Kiro の Free Tier ユーザーと個人サブスクライバー(Google, GitHub, AWS Builder ID でログイン)の場合、プロンプトや Kiro が生成する返答などのコンテンツは、バージニア北部リージョンに保存されます。Kiro for enterprise ユーザーの場合、Kiro プロファイルが作成されたリージョンにコンテンツが保存されます。 Kiro は Amazon Bedrock を利用しています。クロスリージョン推論を利用して、高需要時にトラフィックを複数のリージョン分散し、パフォーマンスと信頼性を向上させます。そのため、推論時にクロスリージョン推論がサポートされているリージョンでデータが処理される可能性があります。ただし、データが保存されるリージョンについて影響はありません。 データの暗号化 Kiro では、データの転送中、保存時にそのデータを暗号化します。データの転送中は、TLS 1.2 以上の接続を使用して通信が保護されます。また、データの保存時は、AWS 所有の AWS Key Management Service (KMS) 暗号化キーによってデータは暗号化されます。Kiro for enterprise をご利用のお客様は、KMS のお客様管理キーを作成して利用するオプションもございます。この暗号化キーは対称鍵のみサポートしております。 サービス改善 Kiro の Free Tier ユーザーと個人サブスクライバー(Google, GitHub, AWS Builder ID でログイン)の場合、デフォルトで、特定のコンテンツやテレメトリをサービス改善のために使用する場合があります。Kiro への質問、提供されるその他の入力、Kiro が生成する応答やコードなどのコンテンツを、サービス改善のために使用する可能性があります。また、使用状況データ、エラー、レイテンシー、クラッシュレポート、その他のメトリクスといったテレメトリをサービスの改善のために収集します。これらのデータ共有をオプトアウトすることができ、お客様のコンテンツをサービスの改善を使用されないように設定することが可能です。 Kiro for enterprise をご利用のお客様は、AWS によってテレメトリとコンテンツ収集から自動的にオプトアウトされ、サービスの改善に利用されません。ユーザーアクティビティレポートのテレメトリ収集設定は、Kiro コンソールで管理者によって制御され、ユーザーが直接設定、修正することはできません。 コードリファレンス Kiro は、一部オープンソースプロジェクトから学習を行っています。時折 Kiro が提案するコードが、公開されたコードに似ている場合があります。コードリファレンスログを使用することで、公開されているコードに似たコード推奨事項への参照を表示することができます。コードリファレンスは設定から ON/OFF を切り替えることができます。 Kiro for enterprise の管理者は、すべてのユーザーに対してリファレンス付きのコード提案を受け取らないようにオプトアウトすることができます。この設定は管理者によって制御され、ユーザーが直接設定、修正することはできません。 コードリファレンスの詳細は「 Code references – IDE – Docs – Kiro 」をご確認ください。また、コードリファレンスに伴う補償については、 サービス規約の 50.10 をご確認ください。 利用状況と統制 利用状況の確認 Kiro コンソールのセッティングにて、Kiro usage dashboard を有効化することができます。 この設定を有効にすることで、Tier ごとの総サブスクリプション数、アクティブなサブスクリプション数、保留中のサブスクリプション数、アクティブなユーザー数、クレジットの消費量を Kiro コンソールのダッシュボードで可視化できます。 Kiro のダッシュボードとメトリクスの詳細は「 Viewing Kiro usage on the dashboard – CLI – Docs – Kiro 」をご確認ください。 Overage と MCP の統制 Kiro では、月のクレジット制限を超えて Kiro を利用可能にする Overage(超過料金)がサポートされています。Kiro の月の制限に達した場合、Overage が有効化されていると、0.04 USD/クレジットで制限を超えて Kiro の機能を引き続き利用することができます。デフォルトで Overage は無効化されています。 Kiro for enterprise をご利用の場合、管理者は Kiro コンソールを利用して、Kiro プロファイルに対して Overage 機能をオプトインすることができます。また、MCP(Model Context Protocol)の利用可否もこちらの設定画面で ON/OFF を切り替えることが可能です。 ネットワーク設定 ファイアウォールとプロキシ 組織のネットワークセキュリティによって、ファイアウォールやプロキシ経由で Kiro へ接続を行う必要が生じる場合があります。このような場合に、ホワイトリストに登録していただく必要のあるエンドポイントを以下の表にまとめます。 URL 目的 <idc-directory-id-or-alias>.awsapps.com 認証 oidc.<sso-region>.amazonaws.com 認証 *.sso.<sso-region>.amazonaws.com 認証 *.sso-portal.<sso-region>.amazonaws.com 認証 *.aws.dev 認証 *.awsstatic.com 認証 *.console.aws.a2z.com 認証 *.sso.amazonaws.com 認証 https://aws-toolkit-language-servers.amazonaws.com/* Kiro, 言語処理 https://aws-language-servers.us-east-1.amazonaws.com/* Kiro, 言語処理 https://client-telemetry.us-east-1.amazonaws.com Kiro, テレメトリ cognito-identity.us-east-1.amazonaws.com Kiro, テレメトリ ここで、 idc-directory-id-or-alias は、IAM Identity Center のディレクトリ ID もしくはエイリアス、 sso-region は、IAM Identity Center インスタンスが作成されているリージョンに読み替えます。 詳細は「 Configuring a firewall, proxy server, or data perimeter for Kiro – IDE – Docs – Kiro 」をご確認ください。 プライベートネットワークアクセス Kiro では、インターフェース型 VPC エンドポイントを提供しているため、PrivateLink を利用して Kiro へプライベート接続できます。マネジメントコンソールや AWS CLI を利用して、以下のサービス名で VPC エンドポイントを作成することができます。 com.amazonaws.us-east-1.q com.amazonaws.eu-central-1.q com.amazonaws.us-east-1.codewhisperer これにより、インターネット経由でデータを送受信できないような制約下でも、プライベートネットワークを介して、Kiro をご利用頂くことが可能です。 詳細は「 Kiro and interface endpoints (AWS PrivateLink) – IDE – Docs – Kiro 」をご確認ください。 まとめ このブログでは、Kiro を組織で利用するために利用可能な Kiro for enterprise とそれを取り巻くセキュリティとガバナンスに関する内容について触れてきました。皆様の組織全体で Kiro を利用して、新しいものを生み出すための一助になれば幸いです! 引き続き X で #kiroweeeeeeek をつけて様々な角度からの投稿をお待ちしています! 著者 Hiroaki Yoshimura AWS Japan のパブリックセクターのソリューションアーキテクトです。主に医療機関をはじめとしたヘルスケア業界のお客様のソリューション構築の支援を行なっています。Go や TypeScript などの静的型付け言語が好きです。
アバター
本ブログは三遠ネオフェニックス様と Amazon Web Services Japan が共同で執筆いたしました。 みなさん、こんにちは。バスケ大好き AWS ソリューションアーキテクトの鈴木です。 休日は推しのチーム(ニューヨークの NBA チームが好きです)の直近の負け試合を何度も見て、敗因の仮説を考えてはそれを裏付けるデータを探すことに奔走しています。最近のバスケットボールに関するデータは多種多様でとても興味深いです。単純な 2 点、3 点シュートの成功率に留まらず、どれだけ難しいシュートを決め切ったか、逆にどれだけ難しいシュートを打たせたか、などかなり多くの定量的指標が収集され試合の分析に役立っています。 しかし、多くの指標が取られれば取られるほど扱うデータ量が大きくなり、分析が複雑化してしまうこともまた事実です。私のような個人の趣味で扱っている人間でも大変だと感じるので、さらに多くのデータを扱っているプロのアナリストの皆さんはもっと苦労しているのではないでしょうか? 三遠ネオフェニックス 様は、 AWS Step Functions と Amazon Bedrock を組み合わせることで、膨大なデータから客観的かつ網羅的な分析を生成するシステムを構築されました。生成 AI が自動的に重要な指標を抽出してレポートを生成することで、新たな戦術的インサイトを発見できるようになりました。 お客様の状況と検証に至る経緯 三遠ネオフェニックス様は、B リーグに所属し、豊橋市をホームタウンに、三遠地域(東三河・遠州)をホームエリアに活動するプロバスケットボールクラブです。チームのアナリストは、対戦相手の分析や自チームのパフォーマンス評価のため、膨大な試合データを処理し、コーチ陣に向けたスカウティングレポートを作成する重要な役割を担っています。 しかし、以下のような課題に直面していました。 Bリーグ全体でのビッグデータ化への対応:Bリーグ発足から 10 年が経過する中で、シーズンごとに蓄積されるデータ量が年々増加すると同時に、取得できるデータの種類も拡張され、人力で全データを確認・解釈することが困難に 分析の属人化:アナリストの経験や視点に依存する部分が大きく、重要な情報を見逃すリスク 過密スケジュールでのレポート作成が困難:試合スケジュールが過密な中、毎回の詳細なレポート提供が大きな負担に そこで、AWS Step Functions と Amazon Bedrock を中心としたサーバーレスアーキテクチャを採用し、AI を用いて分析からスカウティングレポート作成までを自動化する仕組みを開発しました。 お客様が開発された生成 AI を活用した AI Analyst 機能 三遠ネオフェニックス様が開発された AI Analyst 機能の全体像は以下の画像が示すようになっています。まず、Synergy Sports Technology 社の提供するバスケットボール専用の分析ツール「 Synergy 」からスタッツデータをAPIで取得します。そのデータを三遠ネオフェニックス様のローカル環境の機械学習プログラムで処理し、AWS 上で構成されたサーバーレスアーキテクチャで分析、レポート作成を行い、その出力結果を Slack に通知する仕組みを構築されています。 図1. AI アナリスト機能の全体図 AWS Step Functions での処理は、図1 が示すとおり、3 つのステップで構成されています。 ステップ 1 :主要な分析切り口の抽出 このステップではローカル環境の機械学習プログラムから出力されたスタッツごとの重要度のデータを Amazon S3 に配置し、その後 Step Functions から Amazon Bedrock を呼び出して、分析の切り口を 3 つ抽出しています。スタッツごとの重要度のデータは対戦相手ごとに動的に変わるため、アナリストごとの分析の属人化がなく客観的に分析の切り口を選定できることが工夫点となっています。 ステップ 2 :各切り口で生成AIを活用した深掘り分析 このステップではステップ 1 で作成した切り口を元に、3 つの切り口での深掘り分析を Amazon Bedrock を用いて行っています。各切り口ではその切り口に関連する詳細なスタッツデータを Amazon S3 から取得し、そのデータを元に Amazon Bedrock で深掘り分析を行っています。このように3つの切り口に分けることで、まとめて分析するのに比べて、切り口ごとに扱うデータ量が絞られ、回答精度の向上を図っています。 ステップ 3 :生成 AI を活用した各分析のサマリ生成 最後のステップではステップ 2 までの深掘り分析結果をまとめてサマリを生成します。サマリには Amazon Bedrock を活用しており、各切り口の分析結果をわかりやすい形式でまとめています。レポートには分析の根拠となるような定量的な数値も示すことで、データに基づいた報告を実現しています。生成されたレポートは、 AWS Lambda を用いて Slack にレポートとして送信されます。 Slack に通知されるレポートの例が図 2 のようになっています。 レポート内では次の対戦相手に対しての主要なプラン、その分析の根拠、主要なプレイタイプなどを定量的な数値と共にレポートしています。このレポートによって対戦相手の分析を行うことができ、次戦のチーム戦略立案に役立っています。 図 2. 図2.Slackに通知されるレポートの例 導入効果 AI Analyst 機能を導入した結果、以下の効果が得られました。 膨大なデータ全体の活用:生成 AI の活用により、人間では扱うのが難しい幅広いデータを元にした分析が可能に AI による属人化の脱却: AI が機械学習の結果から 3 つの重要な指標を抽出し、それを元にレポートを作成するために分析の観点の属人化から脱却し、客観的な分析が可能に 新たな気づきとアイデアの創出:新たな観点やアイデアを提示してくれるため、まるでもう一人のアナリストがそばにいて、新しい発見をもたらしてくれるような価値を実感できた 機械学習結果の即時解釈が可能に:生成 AI が機械学習の結果を自動で要約・深掘りすることで、人では難しかった複雑な結果の理解が容易になり、実務レベルで活用できるようになった 従来までのスポーツアナリティクスは、アナリストの経験や独自のフレームワークに基づく分析が中心であり、扱えるデータ量や観点に限界がありました。 これに対して今回のシステムは、生成 AI を用いて膨大なデータを高速かつ客観的に分析し、レポート作成までを自動化できる点 で非常に特徴的な取り組みとなっています。 さらに、生成 AI を活用することで、これまで難しかった機械学習結果の解釈が実務レベルで可能となり、プロスポーツの現場における生成 AI の実用性を明確に示すことができました。 まとめ 今回は、三遠ネオフェニックス様が開発されたAI Analyst 機能をご紹介いたしました。本検証を通じて、お客様から以下のコメントを頂いております。 今後は、プロンプトの更なる最適化、他のデータソースとの連携、機械学習モデルの精度向上など、継続的な改善を予定されています。また、今シーズンの成果を踏まえ、より高度な分析機能の追加も検討されています。 本事例は、データ量の増大に悩むスポーツチームだけでなく、大量のデータからインサイトを抽出する必要がある様々な業界の皆様にとって、参考になるのではないでしょうか。AWS の生成 AI サービスを活用した業務効率化にご興味をお持ちの方は、ぜひお気軽にご相談ください。 三遠ネオフェニックス:代表取締役社長 岡村 秀一郎様(右から 2 番目)、ゼネラルマネージャー 北郷 謙二郎様(右端)、ビデオアナリスト 木村 和希様(中央) Amazon Web Services Japan : アカウントマネージャー 木下 美智子(左から 2 番目)、ソリューションアーキテクト 山澤 良介(左端) 著者について
アバター
AWS re:Invent まであと数週間、私のチームはカンファレンスのコンテンツの準備を全力で進めています。私が行う「 CMP346 : Supercharge AI/ML on Apple Silicon with EC2 Mac」、「 CMP344 : Speed up Apple application builds with CI/CD on EC2 Mac」、「 DEV416 : Develop your AI Agents and MCP Tools in Swift」の 3 つの講演のいずれかで皆さんにお会いできるのを楽しみにしています。 11 月 10 日週、 AWSは 3 人の新しい AWS ヒーローを発表しました。 AWS ヒーロープログラム は、知識を共有したいという熱意によってコミュニティ内に真の影響をもたらしている、活気に満ちた世界中の AWS エキスパートグループを表彰するプログラムです。Dimple、Rola、Vivek、コミュニティへようこそ。 また、 イスラエル、テルアビブでの GenAi Loft も始まりました。 AWS GenAI Loft は、スタートアップや開発者にコラボレーションスペースと没入型の体験を提供します。Loft のコンテンツは、スタートアップ、エンタープライズ、公共部門など、地域のさまざまなお客様のニーズに対応するようにカスタマイズされており、開発者、投資家、業界エキスパートが一堂に会します。 テルアビブの Loft は、11 月 19 日 (水) まで開催されています。この地域にお住まいならば、 セッション、ワークショップ、ハッカソンのリストを今すぐご覧ください。 11 月 10 日週は、サーバーレス開発者の皆さんにとってすばらしいニュースが盛りだくさんの 1 週間でした。これらのニュースから始めましょう。 11 月 10 日週のリリース 私が 11 月 17 日週に注目したリリースをご紹介します。 AWS Lambda が Rust を正式にサポート 、 AWS Lambda が Java 25 をサポート 、 AWS Lambda が Swift 向けの実験的なランタイムインターフェイスクライアントを追加 – Lambda サービスチームは大忙しだったと思います! Rust プログラミング言語のサポートが一般提供されました。ランタイムインターフェイスクライアントは何年も前から存在していましたが、今回ようやくバージョン 1.0.0 に移行しました。私の同僚である Julian と Darko が、 Lambda 関数に Rust を使用するメリットを紹介するブログ記事を書きました 。Java 25 にも、Java で記述される Lambda 関数をより効率的にするための変更点があります。私の同僚である Lefteris が、 これらのメリットを説明するブログ記事 を書きました。 AWS Lambda が SQS イベントソースマッピングのためのプロビジョンドモードを発表 – このモードは、イベントポーリングリソースをプロビジョニングすることで、スループットを最適化し、トラフィックの急増に対処するというメリットを提供します。 Amazon EventBridge が強化されたビジュアルルールビルダーを導入 – Amazon EventBridge の強化されたビジュアルルールビルダーは、直感的なインターフェイス、包括的なイベントカタログ、 EventBridge Schema Registry との統合を通じてイベント駆動型アプリケーションの開発を簡素化します。 AWS サービスリファレンス情報が SDK オペレーションからアクションへのマッピングのサポートを開始 – 私に言わせれば、このニュースはサーバーレスニュース以外での今週最大のニュースです。サービスリファレンス情報に、AWS サービスでサポートされているオペレーションと、所定のオペレーションを呼び出すために必要な IAM 許可が含まれるようになりました。これは、「特定の AWS サービスオペレーションを呼び出したいが、どの IAM 許可が必要なのか」といった質問の回答を得るために役立ちます。 サービスリファレンス情報の取得は、シンプルな JSON ベースの API を使用することで自動化できます 。 AWS Network Load Balancer (NLB) がパススルーモードでの QUIC プロトコルのサポートを開始 – このサポートにより、QUIC 接続 ID を使用してセッションスティッキネスを維持する超低レイテンシーのトラフィック転送が可能になります。この機能は、最小限のハンドシェイクと接続レジリエンスを通じて、モバイルファーストアプリケーションのアプリケーションレイテンシーを 25~30% 削減します。NLB はパススルーモードで動作し、TLS 証明書とエンドツーエンドの暗号化に対するお客様の制御能力を維持しながら、QUIC トラフィックをターゲットに直接転送します。 ブログ記事で詳細をご覧ください 。 Application Load Balancer (ALB) が JWT 検証によるクライアント認証情報フローをサポート – このニュースも、API 開発者にとって重要なニュースです。このサポートにより、セキュアな M2M (マシンツーマシン) 通信と S2S (サービスツーサービス) 通信のデプロイが簡素化されます。これは、JWT を検証する機能を ALB に提供することで、アーキテクチャ面の複雑性を軽減し、セキュリティ実装を簡素化します。 AWS KMS が エドワーズ曲線デジタル署名アルゴリズム (EdDSA) のサポートを開始 – NIST P-256 と同等の 128 ビットセキュリティを提供するこの機能は、より高速な署名パフォーマンスを備え、サイズがコンパクトになっています (64 バイトの署名、32 バイトのパブリックキー)。Ed25519 は、小規模サイズのキーと署名を必要とする IoT デバイスやブロックチェーンアプリケーションに最適です。 Amazon DCV が Amazon EC2 Mac インスタンスのサポートを開始 – このサポートは、4K 解像度と 60 FPS パフォーマンスによる高性能リモートデスクトップアクセスを実現します。Windows、Linux、macOS、またはウェブクライアントから接続でき、タイムゾーンリダイレクトや音声出力などの特徴量を備えています。 Amazon Linux 2023 バージョン 2025110 のリリース – Mountpoint for Amazon S3 、 Swift 6.2.1 ツールチェーン 、および Node.js 24 向けのパッケージが含まれるようになりました。Amazon Linux 2023 仮想マシンやコンテナでの Swift のインストールが、 sudo dnf install-y swiftlang と同じくらい簡単になりました。 その他のアップデート その他の興味深いプロジェクト、ブログ記事、ニュースをいくつかご紹介します。 Amazon Elastic Kubernetes Service gets independent affirmation of its zero operator access design – Amazon EKS はゼロオペレーターアクセス体制を提供します。AWS の従業員はお客様のコンテンツにアクセスできません。この体制は、 AWS Nitro System ベースのインスタンス、制限された管理 API、エンドツーエンドの暗号化の組み合わせによって実現されます。NCC グループによる独立評価により、これらのセキュリティ対策の有効性が確認されました。 Make your web apps hands-free with Amazon Nova Sonic – Amazon Bedrock からの基盤モデルである Amazon Nova Sonic は、アプリケーションのために自然で低レイテンシーの双方向スピーチ会話を作成する機能を提供します。この機能は、音声や埋め込みインテリジェンスを通じてアプリケーションと連携する能力をユーザーに提供することで、新たなインタラクションパターンを可能にし、使いやすさを向上させます。このブログ記事では、リファレンスアプリである Smart Todo アプリのデモを紹介し、タスク管理用のハンズフリーエクスペリエンスを提供するために音声をどのように統合できるかを説明しています。 AWS X-Ray SDKs & Daemon migration to OpenTelemetry – AWS X-Ray は、アプリケーショントレーシングのためのプライマリ計装標準として、OpenTelemetry に移行しています。OpenTelemetry ベースの計装ソリューションは、アプリケーションからのトレースの生成と、それらの AWS X-Ray への送信に推奨されます。X-Ray の既存のコンソールエクスペリエンスと機能性も引き続き完全にサポートされ、今回の移行によって変更されることはありません。 Powering the world’s largest events: How Amazon CloudFront delivers at scale – 2025 年 11 月 1 日、Amazon CloudFront は大規模なゲーム配信ワークロードで 1 秒あたり 268 テラバイトの記録的なピークを達成しました。これは、ライブスポーツを HD で約 4,500 万人の視聴者に同時配信するために十分な帯域幅です。このマイルストーンは、世界中 440 以上の都市にある 750 以上のエッジロケーションと、100 以上の ISP 内にある 1,140 以上の埋め込み PoP を活用する CloudFront の巨大な規模を実証するもので、最新世代は以前のバージョンの 3 倍のパフォーマンスを実現しています。 今後の AWS イベント カレンダーを確認して、近日開催予定の AWS イベントにサインアップしましょう。 AWS Builder Loft – エキスパートセッションから学び、ハンズオンワークショップに参加して、AI や新興テクノロジーを検証するとともに、他のビルダーとのコラボレーションを通じてアイデアを加速させることができる、米国サンフランシスコのコミュニティテクノロジースペースです。 開催予定のセッション を閲覧して、関心のあるイベントにぜひご参加ください。 AWS Community Days – 世界中のエキスパート AWS ユーザーと業界リーダーによるテクニカルディスカッション、ワークショップ、ハンズオンラボが提供されるコミュニティ主導のカンファレンスに参加しましょう。 コンゴ民主共和国のキンシャサ で 11 月 22 日に開催される今年最後の Community Day では、私がオープニング基調講演を行います。次回の Community Day は、2026 年 4 月に ルーマニアのティミショアラ で開催される予定です。 Call for Papers (CFP) 募集が始まっています 。 AWS Skills Center Seattle 4 周年記念イベント – 11 月 20 日に開催される、基調講演、専門家パネル、採用担当者によるインサイト、抽選会、仮想参加オプションなどが盛りだくさんの無料公開イベントです。 AWS Builder Center に参加して、AWS コミュニティのビルダーを学び、構築し、交流しましょう。こちらで 近日開催予定の対面イベント 、 開発者に焦点を当てたイベント 、 スタートアップ向けのイベント をご覧ください。 11 月 17 日週のニュースは以上です。11 月 24 日週にお届けする次回の Weekly Roundup もお楽しみに! – seb この記事は、Weekly Roundup シリーズの一部です。AWS からの興味深いニュースやお知らせを簡単にまとめた記事を毎週ご紹介します! 原文は こちら です。
アバター
2025 年 11 月 14 日、 Amazon Simple Queue Service (Amazon SQS) の イベントソースマッピング (ESM) を使用した AWS Lambda のプロビジョニングモードの一般提供についてお知らせいたします。これは、お客様が専用のポーリングリソースを設定して、イベント駆動型アプリケーションのスループットを最適化するために使用できる新特徴量です。3 倍速いスケーリングと、16 倍の同時実行数を実現するこの新機能を使用すると、より低いレイテンシーでイベントを処理し、突然のトラフィックの急増をより効果的に処理して、イベント処理リソースを正確に制御できます。 現代のアプリケーションでは、サービスがイベントやメッセージを通じて通信するイベント駆動型アーキテクチャへの依存度が高まっています。Amazon SQS は Lambda 関数のイベントソースとして一般的に使用されるため、開発者は疎結合でスケーラブルなアプリケーションを構築できます。SQS ESM はキューのポーリングと関数呼び出しを自動的に処理しますが、パフォーマンス要件が厳しいお客様からは、急増するトラフィックパターンに対処し、低い処理レイテンシーを維持するために、ポーリング動作をより細かく制御したいというご要望をいただいていました。 SQS ESM のプロビジョニングモードは、イベントポーラーを導入することでこうしたニーズに応えます。イベントポーラーとは、予想されるトラフィックパターンを処理できる専用リソースです。これらのイベントポーラーは、1 分あたりの同時実行回数につき最大 1,000 件まで自動でスケールアップできます。つまり、以前と比較してイベントトラフィックの急増への対応を 3 倍以上高速化し、最大 20,000 回の同時実行を可能にします。これにより、Lambda 関数を使用して数百万のイベントを処理する処理能力が 16 倍に向上しました。この拡張されたスケーリング動作により、トラフィックが急増しているときでも、お客様は予測可能な低レイテンシーを維持できます。 金融サービス会社からゲーム会社まで、さまざまな業界の企業が AWS Lambda と Amazon SQS を併用して、ミッションクリティカルなアプリケーションのリアルタイムイベントを処理しています。大規模なオンラインゲームプラットフォームや金融機関を含むこれらの組織では、特に使用量がピークの時期には、イベント駆動型のワークロードに対して 1 秒未満の処理時間を一貫して維持する必要があります。SQS ESM のプロビジョニングモードは、コスト管理を維持しながら厳しいパフォーマンス要件を満たすために使用できる機能です。 制御とパフォーマンスの強化 プロビジョニングモードでは、SQS ESM のイベントポーラーの最小数と最大数の両方を設定できます。各イベントポーラーは、Lambda 関数を呼び出す前にキューのポーリング、イベントのバッチ処理、フィルタリングを処理するコンピューティングユニットを表します。各イベントポーラーは、1 秒あたり最大 1 MB/秒のスループット、最大 10 回の同時呼び出し、または 1 秒あたり最大 10 回の SQS ポーリング API コールを処理できます。イベントポーラーの数を最小限に設定することで、アプリケーションがベースラインの処理能力を維持し、トラフィックの急増に即座に対応できるようになります。既知のピーク時のワークロード要件を処理するのに必要となる最小限のイベントポーラーを設定することをお勧めします。オプションの最大値設定は、全体の処理スループットを制限することで、ダウンストリームシステムの過負荷を防ぐのに役立ちます。 この新しいモードでは、イベント駆動型アプリケーションがさまざまなワークロードを処理する方法が大幅に改善されています。トラフィックが増加すると、ESM は増加するバックログを数秒以内に検出し、設定した最小値と最大値の間でイベントポーラーを以前の 3 倍の速さで動的にスケーリングします。このスケーリング機能の強化は、処理能力の大幅な向上によって補完され、合計トラフィックは最大 2 GBps、同時リクエスト数は最大 2,000 件までサポートします。これは以前の 16 倍にあたります。すぐに使用できるイベントポーラーの数を最小限に抑えることで、アプリケーションは予測可能なパフォーマンスを実現し、リソースのスケールアップに通常伴う遅延なしで、突然のトラフィックの急増を処理できます。トラフィックが少ない時期には、ESM は設定されたイベントポーラーの最小数に自動的にスケールダウンします。つまり、応答性を維持しながらコストを最適化することができます。 試してみましょう プロビジョニングモードの有効化は、 AWS マネジメントコンソール で簡単に行えます。SQS キューと Lambda 関数があらかじめ設定されている必要があります。まず、Lambda 関数の [設定] タブで [トリガー] を選択してから [トリガーを追加] を選択します。これにより、トリガーを設定できるユーザーインターフェイスが表示されます。ソースのドロップダウンメニューから [SQS] を選択し、使用する SQS キュー を選択します。 [イベントポーラー設定] に、 [プロビジョニングモード] という新しいオプションが表示されるようになりました。 [設定] を選択すると、 [最小イベントポーラー] と [最大イベントポーラー] の設定が表示されます。それぞれにデフォルト値と最小値および最大値が表示されます。 プロビジョニングモード を設定したら、トリガーを保存できます。後で変更を加える必要がある場合は、AWS Lambda 設定セクションの [トリガー] タブで現在の設定を表示し、そこで現在の設定を変更できます。 モニタリングとオブザーバビリティ Amazon CloudWatch メトリクスを通じてプロビジョニングモードの使用状況をモニタリングできます。ProvisionedPollers メトリクスは、イベントを処理しているアクティブなイベントポーラーの数を 1 分単位で表示します。 今すぐご利用いただけます Lambda SQS ESM のプロビジョニングモードは、現在すべての商用 AWS リージョン でご利用いただけます。この特徴量は、AWS マネジメントコンソール、 AWS コマンドラインインターフェイス (AWS CLI) 、または AWS SDK 経由で使用を開始できます。料金は、プロビジョニングされたイベントポーラーの数とプロビジョニング期間に基づいており、イベントポーラーユニット (EPU) で測定されます。各 EPU は、ESM あたり最低 2 つのイベントポーラーを使用して、イベントポーラーあたり 1 秒につき最大 1 MB のスループットキャパシティをサポートします。EPU 料金の詳細については、 AWS 料金ページ をご覧ください。 SQS ESM のプロビジョニングモードの詳細については、AWS Lambda ドキュメント をご覧ください。イベント処理リソースの制御を強化して、応答性が高いイベント駆動型アプリケーションの構築を今すぐ始めましょう。 原文は こちら です。
アバター
2025 年 11 月 13 日、 AWS IoT Core Device Location サービス を使用して Amazon Sidewalk 対応デバイスの位置データを解決する新機能を発表いたしました。この特徴量により、GPS モジュールを Sidewalk デバイスにインストールする必要がなくなると同時に、開発者は位置データを簡単に解決できるようになります。スマートホームのセンサートラッカーなど、小型のコイン電池で駆動するデバイスは、Sidewalk を使用して接続します。動き回る製品での内蔵 GPS モジュールのサポートは、高価なだけでなく、最適なバッテリー性能と寿命を確保する上で課題となる可能性があります。 今回のリリースにより、モノのインターネット (IoT) デバイスメーカーとソリューション開発者は、Bluetooth Low Energy (BLE)、Wi-Fi、または全球測位衛星システム (GNSS) の情報を AWS IoT に送信して位置を解決することで、Sidewalk 対応デバイスを使用してアセット追跡および位置監視ソリューションを構築できます。その後、解決された位置データを MQTT トピック または AWS IoT ルール に送信し、そのデータを他の Amazon Web Services (AWS) サービスにルーティングできるため、AWS IoT Core を通じて AWS クラウドのさまざまな機能を使用できます。これにより、ソフトウェア開発が簡素化され、最適なロケーションソースを選択するためのオプションが増え、製品のパフォーマンスが向上します。 このリリースによって、 これまでの課題とアーキテクチャの複雑性 が解消されます。Sidewalk ネットワークインフラストラクチャ自体を使用してデバイスの位置を特定する場合、ネットワークベースのデバイスで位置を検知する必要はありません。そのため、電力を大量に消費する高価な GPS ハードウェアをデバイスに搭載する必要がなくなります。また、デバイスはこの特徴量を使用して GNSS や Wi-Fi からの位置データを効率的に測定し、報告できるため、製品のバッテリー寿命が延びます。したがって、これらの機能強化により、アセット追跡および位置認識型 IoT アプリケーション向けのより魅力的なソリューションを構築できます。 Amazon Sidewalk と AWS IoT Core Device Location サービスについて詳しくご存知ない方のために、その歴史と背景について簡単にご説明します。既にご存知の方は、開始方法のセクションまでスキップしてください。 AWS IoT Core と Amazon Sidewalk の統合 Amazon Sidewalk は、接続オプションを改善することでデバイスの動作を向上させる共有ネットワークです。ペットや貴重品の位置確認から、スマートホームのセキュリティや照明制御、電化製品やツールのリモート診断まで、多様な機能を備えており、お客様のさまざまなデバイスをサポートするように設計されています。 Amazon Sidewalk は、互換性のある Amazon Echo デバイスや Ring デバイスなどの Amazon Sidewalk Gateway (Sidewalk Bridge とも呼ばれます) を使用して IoT エンドポイントデバイスにクラウド接続を提供する安全なコミュニティネットワークです。Amazon Sidewalk では、短距離通信には BLE を使用し、長距離通信には LoRa および周波数偏移変調 (FSK) 無線プロトコルを使用して、長距離での通信に対応する 900 MHz 周波数での低帯域幅および長距離接続を可能にします。 Sidewalk は現在、 米国人口の 90% 以上にサービスを提供 しており、コミュニティや企業向けの長距離接続ソリューショーンをサポートしています。Sidewalk Bridge として機能する Ring カメラまたは Alexa デバイスを所有しているユーザーは、インターネット帯域幅のごく一部を寄付することを選択できます。帯域幅はプールされ、コミュニティ内のすべての Sidewalk 対応デバイスに利益をもたらす共有ネットワークが構築されます。 2023 年 3 月、 AWS IoT Core は Amazon Sidewalk との統合を強化 し、認定済みの Hardware Development Kit (HDK)、SDK、サンプルアプリケーションを使用して Sidewalk デバイスのプロビジョニング、オンボーディング、モニタリングをシームレスに行えるようになりました。この記事の執筆時点では、AWS IoT Core はお客様が Sidewalk ネットワークに接続する唯一の方法です。 AWS IoT Core コンソール では、Sidewalk デバイスの追加、デバイスのプロビジョニングおよび登録、Sidewalk エンドポイントのクラウドへの接続を行うことができます。Sidewalk デバイスのオンボーディングの詳細については、AWS IoT Wireless デベロッパーガイドの「 AWS IoT Core for Amazon Sidewalk の開始方法 」をご覧ください。 2022 年 11 月、当社は AWS IoT Core Device Location サービス を発表しました。これは、デバイスに GPS モジュールが搭載されていない場合でも、IoT デバイスの地理座標を取得できる新特徴量です。Device Location サービスは、単純なリクエストおよびレスポンス HTTP API として使用することも、MQTT、LoRaWAN などの IoT 接続パスウェイで使用することもできます。そしてこの度、Amazon Sidewalk でも使用できるようになりました。 AWS IoT Core コンソール では、デバイスペイロードデータをインポートすることで Device Location サービスをテストして、デバイスの位置を解決できます。リソースの場所は GeoJSON ペイロードとして報告されます。詳細については、AWS IoT Core デベロッパーガイドの「 AWS IoT Core Device Location 」をご覧ください。 自動車、サプライチェーン、産業用ツールなど、複数の業界のお客様から、Sidewalk 製品から位置データを抽出するための Device Location サービスのようなシンプルなソリューションがほしいというご要望をいただいてきました。今回のリリースにより、お客様のソフトウェア開発が合理化され、最適なロケーションソースを選択するためのオプションが増え、製品の改善につながります。 Device Location と Amazon Sidewalk の統合を開始する Sidewalk デバイスの Device Location を有効にするには、 AWS IoT Core コンソール の [LPWAN デバイス] で [AWS IoT Core for Amazon Sidewalk] セクションに移動します。 プロビジョニングデバイス または既存のデバイスを選択して設定を編集し、Sidewalk デバイスの作成および更新時に [位置情報] オプションで [位置情報を有効にする] を選択します。 位置情報を有効にする際に、位置データの送信先を指定する必要があります。送信先は AWS IoT ルールでも MQTT トピックのどちらかを指定できます。 新しい Sidewalk デバイスのプロビジョニング中に位置情報を有効にする AWS コマンドラインインターフェイス (AWS CLI) コマンドの例を次に示します。 $ aws iotwireless createwireless device --type Sidewalk \ --name "demo-1" --destination-name "New-1" \ --positioning Enabled Sidewalk デバイスが Amazon Sidewalk ネットワークへの接続を確立すると、デバイス SDK は GNSS、Wi-Fi、または BLE ベースの情報を AWS IoT Core for Amazon Sidewalk に送信します。お客様が位置情報を有効にしている場合、AWS IoT Core Device Location は位置データを解決し、位置データを指定された送信先に送信します。Sidewalk デバイスが位置計測データを送信すると、選択したデバイスの [位置] セクションに、解決された地理座標とマップピンも表示されます。 また、次の例に示すように、位置情報が GeoJSON 形式で送信先に送信されます。 { "coordinates": [ 13.376076698303223, 52.51823043823242 ], "type": "Point", "properties": { "verticalAccuracy": 45, "verticalConfidenceLevel": 0.68, "horizontalAccuracy": 303, "horizontalConfidenceLevel": 0.68, "country": "USA", "state": "CA", "city": "Sunnyvale", "postalCode": "91234", "timestamp": "2025-11-18T12:23:58.189Z" } } Amazon CloudWatch Logs for AWS IoT Core を有効にすることで、Sidewalk デバイスと AWS クラウド間の Device Location データをモニタリングできます。詳細については、AWS IoT Wireless デベロッパーガイドの「 AWS IoT Core for Amazon Sidewalk 」をご覧ください。 今すぐご利用いただけます AWS IoT Core Device Locationと Amazon Sidewalk の統合は、米国東部 (バージニア北部) リージョンで一般提供を開始しました。ユースケース、ドキュメント、サンプルコード、パートナーデバイスの詳細については、 AWS IoT Core for Amazon Sidewalk 製品ページ をご覧ください。 AWS IoT Core コンソール でお試しいただいた後、 AWS re:Post for AWS IoT Core または通常の AWS サポート窓口までフィードバックをお寄せください。 – Channy 原文は こちら です。
アバター
本ブログは、NTT西日本グループ 吉田 健哉氏、同 中井 智絵氏、アマゾン ウェブ サービス ジャパン合同会社 ソリューションアーキテクト 川岸 が共同で執筆しました。 はじめに NTT西日本株式会社 (以下、NTT西日本)では、 ビジネスチャット『elgana』(エルガナ) をサービス提供しています。 2022 年 7 月にアマゾン ウェブ サービス (AWS) へプラットフォーム を移行し、生成 AI による新機能開発も加速しています。 elgana Project 「AI Lab.チーム」では、生成 AI を実際の業務にどう活かせるかをテーマにトライアル開発を進めています。本記事では、営業担当者支援を目的として Amazon Bedrock Knowledge Bases を活用した RAG を構築し、そのトライアルを実施した取り組みについて紹介します。 取り組み背景 elgana は一般の企業様を中心にご利用いただいているサービスですが、生成 AI による新機能開発は社内向けに検証を開始しました。NTT西日本グループにおいて営業担当者は日々多様な商材を扱い、膨大なマニュアルや資料を参照しています。しかし実際には、情報が複数のシステムに散在しており、必要な情報を探し出すのに時間がかかる・属人化してしまうといった課題がありました。加えて、商材の問い合わせ窓口である社内ヘルプデスクは限られた対応時間の中で運用されており、すべての問い合わせに即時対応することは難しい状況でした。そこで、生成 AI に社内ナレッジを組み合わせる RAG を活用し、効率的に「聞ける・探せる・使える」仕組みを提供できないか検証することにしました。AWS サービスとの親和性、日本語対応、セキュリティ設計の容易さから、Amazon Bedrock Knowledge Bases を採用しました。 営業支援 AI ボット 営業支援 AI ボットは elgana 上に構築しました。トークルーム上で営業支援 AI ボットに対して商材に関する質問を入力すると、AI ボットが即時に回答を提示する仕組みです。また、AI ボットからの回答には、補足情報として関連するマニュアルページへのリンクを設けることで、裏付けとなる情報を容易に確認できる設計としました。 さらに、回答後には「解決した/解決していない」の簡易アンケートを設け、解決率を収集するとともに、未解決のユーザーをヘルプデスクに誘導する流れを設けています。これにより、AI の強みと有人対応を組み合わせた実用的なサポート体験を実現しています。 アーキテクチャ 本システムでは、AWS のマネージドサービスをフル活用して構成し、最新技術の活用、インフラ運用の負担軽減とアプリレイヤの改善への集中を実現しています。elgana 上で営業支援 AI ボットに質問すると、Amazon API Gateway と AWS Lambda で実装したアプリケーションがメッセージを受信し、Amazon Bedrock Knowledge Bases を呼び出して質問に回答します。ナレッジのドキュメントの保存先のベクトルストアとして Amazon OpenSearch Serverless を利用しています。 営業支援 AI ボットでは、利用者体験を向上させるため、回答生成に利用したマニュアルのページ番号まで案内すること、関連するサービスマニュアルのナレッジだけを参照するよう メタデータフィルタリング を活用して検索対象を絞り込むことで回答精度を向上させる工夫をしています。 具体的な処理内容としては、運用者が Amazon S3 にアップロードしたマニュアルの pdf ファイルは AWS Lambda (pre-processing) を通じて、(A) ページ分割した上で、Markdown 形式に変換、(B) マニュアルに付与するメタデータを作成、の 2 つの処理が行われた後、Amazon S3 に格納されます。(A) の処理では、ページ分割することで RAG 回答で参照したマニュアルのページ番号をファイル名から特定できるようにしています。また、マニュアルに含まれる表データの抽出精度向上のため、pdf 文書をテキスト化するための python ライブラリである pdfminer を用いて HTML 化し、その後 Claude 3.5 Sonnet で Markdown 形式に変換しています。なお、Claude 3.5 Sonnet はマルチモーダル対応 LLM であるため、画像認識による情報抽出も可能ですが、検証時点では pdfminer を介す方法の方が優れていると判断しました。(B) の処理では、S3 のオブジェクトキー情報からカテゴリ情報等を抽出して、 .metadata.json メタデータファイルを作成しています。 以下はメタデータファイルの中身の例です。 { "metadataAttributes": { "original-s3-key": "docs/商材A/pdf/manualA.pdf", "file-type": "pdf", "category": "商材A" } } このメタデータは、ベクトルストアからドキュメント検索する際に、メタデータに基づき事前にフィルタリングした上で、関連するドキュメントを検索できます。上記の例では、単一の Knowledge Base に複数の商材のマニュアルを格納していた場合にも、 category = 商材A でフィルタリングすることで関連する情報を取得できるため、検索精度向上に寄与します。 トライアル結果 今回の取り組みでは、実際の営業担当者に数週間トライアル利用していただき、その後、ユーザーアンケートを実施し様々な評価を得ました。利用者からは「知りたい情報に素早くアクセスできる」「マニュアルを探す時間が減った」といった声が多く寄せられ、業務効率化につながる手応えを実感していただいており、現場での実用性を確認する結果となりました。一方で、「回答速度を上げてほしい」や「回答の幅(サービスの種類)を広げてほしい」などの改善意見もポイントも挙げられました。こうした声を踏まえ、今後も更なる機能改善を繰り返し利用者がさらに安心して業務に取り入れられるよう、進化させていく予定です。 今後の展望 今回のトライアルで得られた成果をもとに機能改善を重ねて実運用を目指していく予定です。 また、開発した RAG 基盤は Amazon S3 にナレッジドキュメントを格納するだけで対象商材に特化した検索基盤を自動的に構築できる仕組みであり、幅広い業務で活用できる柔軟な基盤へ発展させることも視野に入れています。将来的には Amazon Bedrock AgentCore 等を活用することで、単なる検索や回答にとどまらずタスク実行まで支援できる「Agentic RAG」へ時代に即した価値創出を目指します。 まとめ 本ブログでは、NTT西日本グループによる、 Amazon Bedrock Knowledge Bases を活用した営業支援 AI ボットによる情報検索効率化の取り組み事例をご紹介しました。生成 AI の業務利用にあたっては、ハルシネーションのような不確実性を課題視されるお客様もいらっしゃると思います。本事例では、関連マニュアルのページ番号まで明示することで情報の正確性を迅速に確認できる仕組みを構築するとともに未解決の場合にはヘルプデスクに誘導する仕組みを設け、AI の強みと有人対応を組み合わせた実用的なサポート体験を実現しています。皆様の生成 AI 活用の参考になれば幸いです。 著者 吉田 健哉 NTTビジネスソリューションズ株式会社 バリューデザイン部 システム開発部門 中井 智絵 NTT西日本株式会社 ビジネス営業本部 バリューデザイン部 DXプラットフォーム部門 川岸 基成 アマゾン ウェブ サービス ジャパン合同会社 技術統括本部 ストラテジックインダストリー技術本部 通信グループ ソリューションアーキテクト
アバター
本ブログは 2025 年 1 月 9 日に公開された AWS Blog “ Securing a city-sized event: How Amazon integrates physical and logical security at re:Invent ” を翻訳したものです。 Amazon Web Services の年次カンファレンスである AWS re:Invent のような大規模イベントのセキュリティ確保は、決して簡単なことではありません。2024 年 12 月に開催された AWS re:Invent 2024 は、ラスベガス・ストリップ (ラスベガス中心部の大通り) にわたって 12 マイル (約 19 km)、約 700 万平方フィート (約 65 万平方メートル、東京ドームのグラウンド約 50 個分) に及び、7 つの会場で展開され、小さな都市に匹敵する規模で運営されました。 6 万人の現地参加者、40 万人のオンライン参加者、そしてそのデータすべてを安全に保つには、物理セキュリティと論理セキュリティの高度な組み合わせが必要です。Amazon は、両者を統合したセキュリティ戦略により、この課題に対処してきました。ドローン、K9 ユニット (警備犬)、ネットワークセキュリティチームなど、あらゆるリソースを活用して、イベントに参加するすべての人々とそのデータを保護しています。 図 1: re:Invent のコマンドポスト (統制本部) セキュリティはチームスポーツ Amazon では、物理セキュリティチームと情報セキュリティ (論理セキュリティ) チームが協力して、多様なビジネス全体で、お客様、従業員、インフラストラクチャを幅広い脅威から大規模に保護しています。re:Invent のような大規模イベントでは、この統合アプローチにより、参加者から現地のコンピュータやサーバー、Wi-Fi ネットワークとそのユーザーまで、イベントの多くの側面を可能な限り包括的に保護できます。 Amazon は単独で活動しているわけではありません。イベントセキュリティチームは、Las Vegas Metropolitan Police や、テロ対策、爆発物処理班、救急隊員を含む 40 以上の異なる機関と連携しています。 図 2: K9 ユニット – 現地セキュリティチームの重要なメンバー これらのチームは、セキュリティオペレーションの中枢であるコマンドポスト (統制本部) に配置されています。ここでは、物理セキュリティと論理セキュリティが融合し、セキュリティ体制のほぼすべての要素が集まり、リアルタイムでイベントの脅威を監視しています。これには、イベントセキュリティ管理チーム、インテリジェンスチーム、監視カメラオペレーターが含まれ、地元の警察や緊急対応機関と連携しています。さらなる保護層として、メインのコマンドポストと緊密に連携して、ワイヤレスセキュリティオペレーションセンター (WiSOC) も運営しており、これはワイヤレスおよびサイバーセキュリティチームの主要なハブとして機能しています。 re:Invent を効果的に保護するためには、オープンな対話と情報共有を促進することが重要です。脅威の状況が進化し続ける中、組織は物理セキュリティと論理セキュリティの間のギャップを埋めることを優先する必要があります。この統合アプローチは、re:Invent のような都市規模のイベントを効果的に保護する鍵であるだけでなく、毎日お客様、従業員、会社を保護するのにも役立っています。 都市規模のセキュリティ Amazon は re:Invent で、物理的資産とデジタル資産を保護するために、多数の統合セキュリティ対策を展開しています。物理セキュリティに関しての最優先事項はもちろん人命です。re:Invent では、警備員、K9 ユニット、救急隊員を含む数千人のセキュリティ要員を配置し、急病やけが、火災、盗難、混雑などの問題に対応し、支援しています。混雑エリアに監視カメラを設置し、入口でのゲート型金属探知機や堅牢な認証システムを含む厳格な入場管理を実施して、参加者にとって安全で安心な環境を作り出しています。 ドローンの支援もあります。自動化された高高度飛行体は、Las Vegas Festival Grounds で開催される最終コンサート re:Play で鳥瞰図を提供し、問題への対応を調整するのに役立ちます。AWS クラウドソリューションを使用して、ライブ映像が現地のセキュリティチームに直接ストリーミングされ、人の流れを監視しています。 図 3: re:Play の保護に使用されるドローンを紹介するセキュリティチームメンバー Amazon はネットワークのセキュリティにも注力しており、それによってユーザー、つまり参加者を保護しています。ワイヤレスおよびサイバーセキュリティチームは、ネットワーク全体で異常なアクティビティを特定するために活動しています。これには、 スプーフィング (なりすまし) の兆候も含まれます。スプーフィングとは、攻撃者が似たような Wi-Fi ネットワークを設定し、参加者を自分たちのネットワークに接続させようとする手法です。 Amazon は、 re:Invent のクラウドコンピューティングと AI の専門家、エグゼクティブ、エンジニア によるプレゼンテーションのセキュリティも確保しています。講演者が自信を持って知見を共有するには、世界中の数十万人の視聴者に安全で中断のないチャネルでストリーミングされることを知る必要があります。re:Invent モバイルアプリもセキュリティを念頭に置いて構築されているため、参加者はイベントやカンファレンス内のニーズを安全に管理できます。 統合されたセキュリティアプローチは、AWS クラウドによって実現されています。AWS クラウドは、セキュリティオペレーションのさまざまなコンポーネントをサポートし、重要な情報を迅速に共有するのに役立ちます。論理セキュリティの脅威、物理セキュリティの懸念、医療的な緊急事態のいずれに直面している場合でも、成功の鍵は対応時間にあります。AWS クラウドでオペレーションを実行することで、迅速に行動できます。 Amazon は、脅威の種類に関係なく、チームが一貫した統一された対応を取れるように、統合アプローチへの投資と強化を続けていきます。Amazon はこの分野のリーダーであることを誇りに思っており、私たちの知見が、大規模イベントの運営時においても日常業務においても、他の企業や組織のセキュリティレジリエンス強化に役立つことを願っています。 Steve Schmidt Steve は Amazon の最高セキュリティ責任者であり、2008 年 2 月から同社に在籍しています。情報セキュリティ、物理セキュリティ、セキュリティエンジニアリング、規制プログラムチームを統括しています。2010 年から 2022 年まで、Steve は AWS の最高情報セキュリティ責任者を務めました。Amazon に入社する前は、FBI で長いキャリアを積み、上級幹部として勤務していました。 本ブログは Security Solutions Architect の 中島 章博 が翻訳しました。
アバター
本ブログは 2025 年 11 月 14 日に公開された AWS Blog “ AWS re:Invent 2025: Your guide to security sessions across four transformative themes ” を翻訳したものです。 AWS re:Invent 2025 は、 Amazon Web Services (AWS) が主催する最高峰のクラウドコンピューティングカンファレンスで、2025 年 12 月 1 日から 5 日にかけて、ネバダ州ラスベガスで開催されます。AWS では、セキュリティを最優先事項としており、re:Invent 2025 はこのコミットメントを反映した、これまでで最も包括的なセキュリティトラックを提供します。ブレイクアウト、ワークショップ、チョークトーク、ハンズオンのビルダーズセッションなど、80 以上のセキュリティ関連セッションを通じて、優秀な人材が集まり、インサイト、ベストプラクティス、革新的なソリューションを共有します。セキュリティのプロフェッショナル、開発者、クラウドアーキテクトにとって、このイベントは AWS の最新セキュリティイノベーション、高度な脅威保護機能、スケールする防御戦略に関する貴重なインサイトを提供します。re:Invent では、展示ホールのセキュリティキオスクと AI セキュリティキオスクを訪れて、AWS セキュリティエキスパートと直接、お客様固有のニーズについて相談することができます。 セキュリティトラックのセッション選定プロセスは、お客様のニーズと実際の実装課題に関する広範な分析に基づいて行われました。特に、お客様が最も多くのガイダンスを求めているセキュリティ分野に焦点を当て、4 つの主要テーマを中心にセッションをまとめました。 AI のセキュリティ確保と活用 、 大規模なセキュリティとアイデンティティのアーキテクチャ設計 、 セキュリティ文化の構築とスケーリング 、 AWS セキュリティのイノベーション です。これらのセッションの目標は、目前のセキュリティ課題に対処し、より広範なビジネス成果の達成を支援することです。以下のセクションでは、4 つのテーマそれぞれの主要なセッションをいくつか紹介します。すべてのセッションについては、 re:Invent カタログ をご覧ください。 AI のセキュリティ確保と活用 AI のセキュリティ確保と活用は、セキュリティとアイデンティティトラックの主要テーマとして浮上しており、AI がもたらす機会と課題の両方を反映しています。AI ワークロードの保護から、セキュリティオペレーションの強化のための AI 活用まで、セッションは複数の AI トピックにわたり、組織がこの変革的なテクノロジーを安全かつ効果的に活用できるよう支援します。以下は、各 AI トピックに関する主要なセッションです。 AI ワークロードのセキュリティ確保 ブレイクアウト SEC410 – Advanced AI Security: Architecting Defense-in-Depth for AI Workloads (高度な AI セキュリティ: AI ワークロードのための多層防御アーキテクチャ設計) : AI ワークロードのための高度なセキュリティアーキテクチャを深く掘り下げ、高度な攻撃ベクトルからワークロードを保護する方法を探ります。技術的な例を通じて、アイデンティティ、きめ細かいアクセスポリシー、安全な基盤モデルのデプロイパターンをカバーしながら、AI ワークロードのための安全なアーキテクチャを実装します。AWS のセキュリティ機能を使用して生成 AI とエージェンティック AI アプリケーションを強化し、最小権限コントロールを実装し、大規模な安全なアーキテクチャを構築する方法を学びます ワークショップ SEC406 – Red teaming your generative AI and MCP applications at scale (生成 AI と MCP アプリケーションの大規模なレッドチーム演習) : GenAI Red Team Challenge で、AI を活用したレッドチーム攻撃者の立場に立ってみましょう。この集中的なワークショップでは、AI セキュリティエージェントをデプロイして、Model Context Protocol (MCP) アプリケーションに対する高度な脅威チェーンを組織的に実行し、脆弱性を体系的に発見します。プロンプトテンプレートとガードレールから、不正アクセスを防ぐ OAuth 強化 MCP セキュリティ設定まで、対策をマスターします。このハンズオンのゲーム化された体験は、脅威アクターのように考えることを支援し、LLM ベースのアプリケーションに対する一般的な MITRE と OWASP の脆弱性に対する自動化された脆弱性テストとリスク軽減の実践的なスキルを身につけます。参加にはノートパソコンが必要です エージェンティック AI のセキュリティ チョークトーク SEC408 – Securing Agentic AI: OWASP, MAESTRO, and Real-World Defense Strategies (エージェンティック AI のセキュリティ確保: OWASP、MAESTRO、実世界の防御戦略) : OWASP の更新された脅威と軽減ガイドおよびエージェンティックセキュリティイニシアチブを使用して、エージェンティック AI セキュリティの最新情報を探ります。また、AI システムに特化した脅威モデリングアプローチである MAESTRO についても探求します。これは、AI ライフサイクル全体にわたってリスクを特定し軽減するための階層化された方法論を提供します。実世界のケーススタディを通じて、堅牢なガバナンス、継続的なモニタリング、最小権限アクセスを含む、エージェンティック AI のセキュリティベストプラクティスを実証します。リスクを最小限に抑えながら、自律的な AI エージェントを自信を持ってデプロイする方法を学びます。産業を安全に変革できる、安全で信頼性が高く、レジリエントなエージェンティック AI アプリケーションを構築するための実践的なインサイトを得られます ワークショップ SEC307 – Design authentication, authorization, and logging logic in Agentic AI apps (エージェンティック AI アプリにおける認証、認可、ログ記録ロジックの設計) : このハンズオンワークショップでは、生成 AI エージェントのアイデンティティと権限を管理するという重要な課題に取り組みます。AI エージェント、ツール、LLM に合わせた、ユーザーとマシンの認証、およびきめ細かい認可メカニズムを実装する方法を学びます。AI コンテキストにおける同意管理と権限委譲を探ります。参加者は、Strands SDK、Amazon Bedrock AgentCore Identity、アイデンティティ管理のための Amazon Cognito、認可決定のための Amazon Verified Permissions など、AWS の最新サービスを使用した実践的な経験を得られます。最後には、AWS の最先端のアイデンティティおよびアクセス管理ソリューションを使用して、AI オペレーションのセキュリティとコンプライアンスを強化するスキルを習得できます セキュリティのための AI 活用 ビルダーズ SEC318 – Strengthen your network security with generative AI (生成 AI でネットワークセキュリティを強化する) : 生成 AI の力を使用して、ネットワークセキュリティの管理方法を変革します。Amazon Q Developer が自然言語での会話を通じて AWS Shield Network Security Director の検出結果を探索する方法をご覧ください。設定ミスのあるリソースを迅速に特定し、セキュリティ問題を理解し、AWS 環境全体でガイド付きの修正を実装する方法を学びます チョークトーク SEC304 – Building an AI-Powered security guardian for your Cognito applications (Cognito アプリケーションのための AI を活用したセキュリティガーディアンの構築) : Amazon Cognito で認証されたアプリケーションを保護するインテリジェントな AI を活用したセキュリティガーディアンで、アプリケーションセキュリティを向上させます。このインタラクティブなセッションでは、アイデンティティのベストプラクティスと、Amazon Bedrock AgentCore を使用した AI エージェントの構築について探ります。このエージェントは、ベストプラクティスの検証、検出分析の実行、リスクを軽減するための自動化された予防措置を支援します。AI エージェントが動的な WAF ルール調整、認証フローの変更、セキュリティオペレーションセンター (SOC) アクションをどのように実行できるかについて説明します。Cognito で保護されたアプリケーションに AI 駆動のセキュリティコントロールを実装する方法を深く掘り下げる際に、質問やシナリオをお持ちください セキュリティ文化の構築とスケーリング このテーマは re:Invent 2025 のセキュリティトラック全体に織り込まれており、テクノロジーソリューションだけでは堅牢なセキュリティ成果を確保できないという信念を反映しています。 セキュリティ文化 を持つ企業は、セキュリティファーストの組織となり、その後、安全なデジタルトランスフォーメーションを加速できます。このテーマを示すセッションには、以下のようなものがあります。 ブレイクアウト SEC319 – Climbing the AI Mountain With Your Security Team (セキュリティチームと共に AI の山を登る) : この実践的なセッションでは、AI とセキュリティ文化の交差点をナビゲートします。セキュリティチームが段階的なステップと検証技術を通じて、AI イノベーションを効果的に受け入れる方法を学びます。実世界の例を使用して、セキュリティ実務者が専門知識のレベルに関係なく、AI の課題にスキルを適応させる方法を実証し、セキュリティを意識した AI プラクティスを構築するための戦略を共有します。生成 AI とエージェンティック AI 特有のセキュリティリスクの理解から、魅力的なチーム演習の作成まで、セキュリティを潜在的なボトルネックから責任ある AI イノベーションの実現者に変革する方法を発見します。参加者は、AI 導入に対するセキュリティファーストのアプローチを構築するための実践的なインサイトを得られます チョークトーク SEC343 – Fostering a Resilient Incident Response Culture (レジリエントなインシデント対応文化の醸成) : セキュリティインシデント対応において、人間の専門知識とインテリジェントオートメーションを組み合わせる方法を発見します。AWS Security Incident Response、自動トリアージ機能、生成 AI がどのように連携して、チームの意思決定を置き換えるのではなく強化するかを学びます。AWS Security Incident Response と生成 AI をワークフローに統合することで、アラート疲労を軽減し、正確なインシデント分類を加速し、対応者が重要な分析に集中できるようにする方法を探ります。主要な組織が自動化と人間の監視をどのようにバランスさせ、人間の判断と組織的知識の重要な要素を維持しながら、より効率的でレジリエントなインシデント対応プロセスを作成しているかをご覧ください。インシデント対応文化において、AI 駆動のインサイトと人間の専門知識を統合するための実践的な戦略を明らかにします チョークトーク SEC227 – Translating Security Metrics into Business Outcomes (セキュリティメトリクスをビジネス成果に変換する) : 今日、CISO は複雑なセキュリティデータをビジネス価値に変換するという課題に直面しています。このセッションでは、セキュリティメトリクスを、取締役会の意思決定を推進する戦略的インサイトに変換するための実証済みのフレームワークを明らかにします。主要な組織が AWS Security Hub、OpenSearch、Security Analytics、自動化をどのように活用して、セキュリティのビジネスへの影響を示すリアルタイムのリスクダッシュボードを構築しているかを学びます。セキュリティプログラムを運用メトリクスからビジネス成果へと進化させ、データ駆動型の投資決定と、経営幹部に響く測定可能なリスク削減を可能にする実践的な戦略を持ち帰ります 大規模なセキュリティとアイデンティティのアーキテクチャ設計 このテーマでは、AWS が提供する包括的なツールセットと実証済みのパターンを使用して、個々のワークロードからグローバル組織まで拡張できるエンタープライズグレードのセキュリティコントロールを実装する方法を探ります。このテーマに関する主要なセッションには、以下のようなものがあります。 チョークトーク SEC333 – From Static to Dynamic: Modernizing AWS Access Management (静的から動的へ: AWS アクセス管理のモダナイゼーション) : 堅牢な AWS アイデンティティ基盤の構築には、静的な認証情報を超えた取り組みが必要です。このセッションでは、AWS 組織全体で動的で一時的なアクセスを実装するための実証済みのパターンを深く掘り下げます。アクセスキーの依存関係に関する実世界の課題を探り、IAM ロールと SAML フェデレーションを使用して一時的な認証情報への移行を行うための実践的なアプローチを共有します。実践的な例と学んだ教訓を通じて、運用オーバーヘッドを削減しながら拡張できる安全な認証パターンを実装する方法を発見します。アイデンティティ境界を強化し、アクセス管理アプローチをモダナイズするための実践的な戦略を持ち帰ります ワークショップ SEC401 – Active defense strategies using AWS Al/ML services (AWS AI/ML サービスを使用したアクティブディフェンス戦略) : このワークショップでは、Amazon Bedrock と Amazon SageMaker を使用して、デセプション (欺瞞技術) などのアクティブディフェンス戦略を開発およびデプロイする方法を学びます。セキュリティオペレーションのための AI 駆動の対応を開発する実践的な経験を得られます。攻撃者があなたに対して使用しようとする可能性のあるものを模倣する適応的な対応を開発する方法を学びます。プロンプトエンジニアリング、デプロイ戦略、モニタリング手法の実装パターンを発見します。参加にはノートパソコンが必要です ワークショップ SEC303 – Advanced AWS Network Security: Building Scalable Production Defenses (高度な AWS ネットワークセキュリティ: スケーラブルな本番環境の防御構築) : このハンズオンワークショップでは、今日の最も重要な脅威から防御するための AWS ネットワークセキュリティ技術をマスターします。AWS Network Firewall と Route 53 Resolver DNS Firewall を使用して、レイヤー 7 機能とディープパケットインスペクションを実装し、インターネット向けトラフィックと内部トラフィックフローの両方を保護する方法を学びます。ゼロデイ攻撃とランサムウェアに対抗するためのスケーラブルで信頼性の高いフィルタリングの設定、および洗練された東西トラフィックコントロールを実装してラテラルムーブメント (横展開) を防ぐ実践的な経験を得られます。実世界のシナリオを通じて、フルマネージド AWS サービスを使用して、IDS/IPS フィルタリング、ドメインベースのコントロール、最小権限の原則を活用する方法を学びます。現代のサイバー脅威に対するレジリエントなネットワーク防御を構築するための準備を整えて帰ります AWS セキュリティのイノベーション AWS のセキュリティ機能におけるイノベーションは、組織が進化する脅威に先んじることを支援するように設計されています。機械学習を活用した高度な脅威検出から革新的なデータ保護メカニズムまで、これらのイノベーションは、進化する環境においてお客様を安全に保つという AWS のコミットメントを示しています。イノベーションに焦点を当てたセッションには、以下のようなものがあります。 ブレイクアウト SEC203 – State of the Art: AWS data protection in 2025 (ft. Vanguard) (最先端技術: 2025 年の AWS データ保護 (Vanguard 社の事例)): AWS Cryptography のリーダーと共に、2025 年の画期的なセキュリティイノベーションの包括的なツアーに参加しましょう。CloudFront、KMS、Private CA、Secrets Manager における最新のリリースを発見し、NIST 標準化されたポスト量子暗号の AWS 実装をご覧ください。量子耐性アルゴリズム、高度な証明書管理、自動化されたシークレット処理を通じて、クラウドセキュリティをどのように革新しているかを学びます。Vanguard 社のエンタープライズ全体にわたる PQC 移行と、それを戦略的なビジネス優先事項にした方法について、内部の視点を得られます。最も機密性の高いワークロードに対するデータ保護の基準を、AWS がどのように引き上げ続けているかを直接ご覧ください ブレイクアウト SEC323 – AWS detection and response innovations that drive security outcomes (セキュリティ成果を推進する AWS の検出と対応のイノベーション): 最新の AWS 検出および対応機能が、クラウド環境をより効果的に保護する方法を発見します。強化された脅威検出、自動化された脆弱性管理、合理化された対応を通じて、統合されたセキュリティ成果を大規模に達成する実践的な方法を学びます。AWS セキュリティサービスを使用して、ワークロードとデータを保護し、セキュリティモニタリングを一元化し、セキュリティポスチャを継続的に管理し、セキュリティデータを統合しながら、セキュリティオペレーションのために生成 AI を活用する方法をお見せします。AWS 環境全体でセキュリティを強化し簡素化するために、AWS 検出および対応サービスを統合するための実践的なインサイトを持ち帰ります ブレイクアウト SEC310 – Innovations in Infrastructure Protection to strengthen your network (ネットワークを強化するインフラストラクチャ保護のイノベーション): このセッションでは、AWS Network Firewall、Amazon Route 53 DNS Firewall、AWS WAF、AWS Shield などのインフラストラクチャ保護サービスの新機能について学び、アプリケーション保護を簡素化し、堅牢なエグレス保護を合理化し、ネットワークへのインサイトを得る方法を探ります。新しい可視性への投資が、設定ミス、潜在的な脅威、ネットワーク設定問題の事前特定についてのインサイトをどのように提供できるかを深く掘り下げます まとめ クラウドセキュリティの知識を向上させ、AWS セキュリティエキスパートや業界の仲間とつながるこの機会をお見逃しなく。セキュリティとアイデンティティのセッションの全体像については、 AWS re:Invent カタログ をご覧ください。トピック、関心分野、役割などでセッションをフィルタリングできます。 セッション予約システムにアクセスして登録すると、セッションへの参加予約ができます。特にハンズオンセッションなど、人気のあるセキュリティセッションは、定員が限られているため早く埋まりますので、スケジュールが公開されたらすぐに希望のセッションを予約することをお勧めします。re:Invent でお会いしましょう! Rahul Sahni Rahul は AWS Security のシニアプロダクトマーケティングマネージャーです。熱心な Amazonian として、Rahul は仕事でもプライベートでも、会社の「Learn and Be Curious (学び、好奇心を持つ)」という原則を体現しています。継続的な学習への情熱を持ち、新しい経験と冒険を楽しんでいます。仕事以外では、世界中の新しい料理を試すことを楽しんでいます。 Justin Criswell Justin は AWS のセキュリティソリューションアーキテクチャのシニアマネージャーです。21 年間のテクノロジー専門知識を持ち、そのうち 13 年間はクラウドセキュリティとカスタマーサクセスを専門としています。スペシャリストのチームと AWS セキュリティフィールドコミュニティを率いて、お客様がセキュリティサービスを採用し運用し、可視性を高め、リスクを軽減し、AWS クラウドでのセキュリティポスチャを強化することを支援しています。 本ブログは Security Solutions Architect の 中島 章博 が翻訳しました。
アバター
皆さんこんにちは、ソリューションアーキテクトの金杉と石見です。 AWS では、生成 AI を活用したお客様のビジネス変革を支援するため、多くのAWSパートナーとの連携を行っています。先日 2025 年 10 月 29 日には、AWS ソフトウェアパスのパートナーであるAnthropic が Tokyo Office を開設され、日本のお客様をより密に支援する体制が強化されました。今後日本国内でも AWS で利用できる Anthropic ソリューションのニーズが増すことが予想されるため、この記事では AWS で利用できる Anthropic ソリューションについてご紹介します。 AWS が提供する Anthropic のソリューション AWS で利用できる Anthropic のソリューションとして、 Amazon Bedrock 経由での Claude モデルの提供と Claude for Enterprise の AWS Marketplace 上での販売についてご紹介します。 Amazon Bedrock 経由での Claude モデルの提供 Amazon Bedrock は、生成 AI アプリケーションやエージェントの構築に適した包括的でセキュアかつ柔軟なプラットフォームです。Amazon Bedrock の一機能として、Anthropic の Claude を含む基盤モデルをセキュアで簡単に利用できる API を提供しており、 国内でも多数の本番利用における公開事例 があります。 Anthropic 社の Claude API で利用する際と同じ料金で提供しており(2025年11月19日時点)、お客様の要件に応じてAmazon BedrockでもClaude モデルをご利用いただけます。Amazon Bedrock 経由で Claude モデルを利用するメリットとしては主に以下のようなお声をいただいています。 データコントロールの観点で、全てのデータが AWS に留まる上、必要に応じて日本国内や閉域に閉じた利用が可能 利用や支払いを AWS の他サービスとまとめられるため、モデルプロバイダーと追加の契約手続きや、それに付随するセキュリティ申請、予算獲得等の社内プロセスが省略できる AWS の包括契約のコミットメントに合算できる AWS のエンタープライズグレードの可用性と SLA (Service Level Agreement) が適用される AWS サポート、ML スペシャリスト、生成 AI イノベーションセンターなど様々なメンバーからの密なサポートを受けられる 特に、最新モデル Claude Sonnet 4.5 / Claude Haiku 4.5 は 日本国内クロスリージョン推論 (Japan Cross Region Inference) に対応しました。このマネージドな機能により、多くのお客様のデータレジデンシー要件を満たしながら、推論リクエストを日本国内の 2 リージョンに自動的にルーティングできるようになり、トラフィックバーストをシームレスに処理できるようになります。 詳しくは、AWS ブログ「 Amazon Bedrock で日本国内に閉じた Anthropic Claude 4.5 の推論が可能に!日本国内クロスリージョン推論のご紹介 」も参照してください。 AWS Marketplace 上での Claude for Enterprise の提供  AWS Marketplace は、サードパーティのソフトウェア、データ、サービスを売り買いできる厳選されたデジタルカタログであり、購入者としてはソフトウェア調達やライセンス管理を簡素化することができます。例えば、サードパーティが提供する SaaS を AWS Marketplace からサブスクライブし、AWS インフラの支払いと SaaS 製品の支払いを集約できる機能も提供しています。現在では、Anthropic の Enterprise プランである “Claude for Enterprise“ を AWS Marketplace 上で購入する ことができるようになっており、Claude のウェブやデスクトップ版が利用できる Standard seat だけでなく、Claude Code を合わせて利用できる Premium seat も取り扱っています。 Anthropic がネイティブに提供する Enterprise プランとは一部機能差異はありますが、AWS Marketplace 経由で Claude for Enterprise を契約する際のメリットとして、主に以下のような声をいただいています。 購入プロセスや支払いを AWS にまとめることができる AWS の包括契約のコミットメントに合算できる 特に Anthropic が提供するエージェンティックコーディングツールである Claude Code の社内展開を目的とした Claude for Enterprise への注目は日本でも大きく、 Team プラン 以上で提供されているチーム管理機能、一元請求管理や SSO (Single Sign On)/JITP に加え、監査ログ、ロールベースの権限管理などのエンタープライズグレードなセキュリティ機能や業務に十分なクオータなどを理由に導入が進んでいます。     AWS と組み合わせて Claude Code を利用する場合について 昨今は、特に Claude Code に関するお問い合わせが増えているため、Claude Code に絞って AWS と組み合わせて利用できる方法を整理すると、上記で説明した Amazon Bedrock と Claude for Enterprise に対応する形で二種類の方法があります。一つ目は Claude Code と Amazon Bedrock API 経由の Claude モデルを組み合わせる方法であり、従量課金でデータをAWSに留めて利用できる方法になります。もう一方は AWS Marketplace 上で Claude for Enterprise の Premium seat を購入する方法であり、これは予測可能な予算管理が好ましい場合や、ウェブ・デスクトップ版の Claude も合わせて活用したい場合、必要な機能をビルトインですぐ使い始めたい場合に適しています。 Claude Code を AWS 上で利用する方法に関してより詳しく知りたい方は、ブログ「 Claude Code on AWS パターン解説 – Amazon Bedrock / AWS Marketplace 」を参照してください。   AWS と Anthropic で生成 AI による変革をサポート ここまで、Amazon Bedrock 経由での Claude モデルの提供や、Claude for Enterprise の AWS Marketplace 上での販売といった具体的なソリューションについてご説明してきました。AWS からの支援体制については、ソリューションの提供を超えて、コスト面では各種クレジットプログラム、技術支援リソースの面では生成 AI イノベーションセンターや プロトタイピングチーム、そして定期的な生成 AI 関連イベントを介した知見共有に至るまで、幅広い観点でのご支援を続けています。また、Anthropic ソリューションについてのスペシャリスト組織も社内で拡大しているため、AWS からも深く Anthropic ソリューションについての技術支援ができる体制が強化されてきています。 今後も AWS は生成 AI テクノロジーを活用してビジネスの変革を進めるお客様を包括的に支援してまいりますので、ぜひお気軽にご相談ください。   Anthropic Tokyo Office Launch Event なお、10 月 29 日に開催されたAnthropic Tokyo Office Launch Eventでは、Anthropic Japan 代表執行役社長 東條英俊氏によるオープニング、共同創業者 ベン・マン氏 による最新情報の発表、CEO ダリオ・アモデイ氏のインタビューに加えて、アマゾン ウェブ サービス ジャパン 代表執行役員社長 白幡も登壇しました。白幡のスピーチでは、お客様に代わってイノベーションを継続するAWSのマインドセットと、Anthropic が信条とする AI Safety へのコミットメントの親和性について紹介しました。Anthropic の持つモデルやソリューションを、AWS の安全でスケールするインフラストラクチャが支えることで、スタートアップからエンタープライズ企業までが安心してご利用いただけるようなサービスをお届けしています。  
アバター
本記事は 2025 年 11 月 17 日に公開された Aaron Eline(Researcher) による “ Does your code match your spec? ” を翻訳したものです。 仕様の重要性 Kiro は 7 月にローンチした際に仕様駆動開発(Spec Driven Development、以下、SDD)を導入したエージェント型 IDE です。SDD では、Kiro のエージェントがコードを書く前にソフトウェアの完全な仕様を作成します。これにより、開発前にエージェントと繰り返しやり取りしながら、アプリケーションの要件を完全に捉えられているか確認できます。Kiro はその要件ドキュメントを実行して Spec (仕様)に変換し、生成されたコードが仕様に準拠しているかをチェックします。Kiro はこの実行可能な仕様を使ってプログラムをテストしますが、その際にプロパティベーステストと呼ばれる手法を使用します。私たちはこの手法は、バグ発見により効果的であると考えています。 要件からプロパティへ Kiro を使うと、仕様からコードが生成されます。しかし、そのコードが本当に仕様通りに動作するかをどうやって確認すればよいのでしょうか?Kiro や他の生成 AI コード生成ツールは、この問いに答えるために自動生成されたユニットテストを使ってきました。Kiro はコードと一緒にユニットテストを生成し、コードがそれらをパスすることを確認します。しかし、ここには鶏と卵の問題があります。ユニットテストが仕様で示された動作を捉えているかをどうやって確認するのでしょうか?各テストを見て、1/ そのテストがどの仕様要件に適用されるのか、2/ テストで規定された動作が仕様と一致しているかを判断する必要があります。どちらのステップも面倒でエラーが起きやすい作業です。 実際のところ、ユニットテストの代わりにプロパティベーステストを使用することで、より優れた結果を得られる場合があります。ユニットテストは本質的に「例ベース」のテストで、単一の入力と出力のペアで構成されています。各テストは特定の例において、システムが特定の方法で動作することを主張します。対照的に、プロパティベーステスト(または単にプロパティテスト)は、システムの動作についてプロパティが真であることをテストします。つまり、広範囲の(場合によっては無限の)入力に対してそれが成り立つことを確認します。この普遍性こそが、プロパティテストに力を与えるものです。プロパティテストでは、多くの入力をランダムに生成してテストします。プロパティテストが false を返した場合、そのプロパティを破る反例を見つけたことになります。これはテスト対象のプログラムのバグを表している可能性が高いです(ただし、プロパティ定義のバグや元の仕様のバグである可能性もあり、それを見つけることも有用です)。Kiro はこの例を使って、正しくなるまでコードを修正できます。 プロパティベーステストは 20 年以上前に Haskell プログラミング言語向けに QuickCheck というフレームワークで発明されました。それ以来、成長し成熟してきました。プロパティテストは、Kiro が行うような仕様駆動開発と非常に相性が良いです。なぜなら、仕様要件は多くの場合、直接的にプロパティを表現しており、これらのプロパティはプロパティベーステストを使ってテストできるからです。ある意味で、プロパティは仕様の(一部の)別の表現です。プロパティベーステストを使えば、動かして確認できる仕様表現が手に入ります。プロパティベーステストで構成される実行可能な仕様は、テキストの要件と簡単に結びつけられるため、プロパティテストがパスする限り、コードが要件通りに動作しているという確信が得られます。 例 例として、Python で小さな信号機シミュレーターを書いているとしましょう。Kiro は受け入れ基準で構成される要件ドキュメントを含む仕様を作成します。受け入れ基準の 1 つは次のようになるかもしれません。 要件 2.3: 安全性の不変条件 システムは、矛盾する交通の流れを防ぐために、任意の時点で最大 1 つの方向のみが緑信号を持つことを保証しなければならない。 この基準は、信号機の重要な条件を表現しています。2 つの方向が同時に緑になることは決してないということです。この受け入れ基準をテキストのプロパティに変換すると次のようになります。 プロパティ: 安全性の不変条件 - 最大1つの緑信号 *任意の*操作シーケンス(状態遷移、緊急モードの有効化、タイミング更新)に対して、 任意の時点で、最大1つの方向のみが緑信号を持つべきである **検証対象: 要件 2.3** このプロパティが「任意の」という言葉で始まっていることに注目してください。これがプロパティである理由は、単一の例の入力がどう処理されるべきかの説明ではなく、入力と動作の範囲について語っているからです。Kiro はこのプロパティテキストをもとに、実行可能なテストコードへ変換します。Kiro は、テキストの仕様からこのプロパティをチェックするテストへ直接ナビゲートできるようにすることで、両者を結びつけます。 Kiro はテキストのプロパティを、 Hypothesis というフレームワークを使って書かれたプロパティベーステストに変換します。これについては後ほど詳しく見ていきます。信号機のプロパティのコードは以下の通りです。このコードを読めば、実際に私たちが気にしているプロパティをチェックしていることがわかります。まず、正常な状態から始まっていることを確認します。次に、操作スケジュールの各操作を反復処理し、それらを適用して、常に 1 つの緑信号しか見られないことを確認します。 def test_safety_invariant_at_most_one_green( timing_config: TimingConfig, operations: list ): """機能: 信号制御システム、プロパティ 2: 安全性の不変条件 - 最大1つの緑信号 検証対象: 要件 2.3 """ # 状態マネージャーと制御モジュールを作成 state_manager = SignalStateManager(timing_config) control_module = ControlModule(state_manager) # 初期状態(すべて赤)が安全性を満たすことを確認 assert control_module.validate_safety(), "初期状態は安全であるべき" # 各操作を実行し、操作後に毎回安全性を確認 for operation in operations: op_type = operation[0] if op_type == 'transition': _, direction, state = operation control_module.request_transition(direction, state) elif op_type == 'emergency_activate': _, direction = operation control_module.activate_emergency_mode(direction) elif op_type == 'emergency_deactivate': control_module.deactivate_emergency_mode() # すべての操作後に安全性の不変条件を確認 all_states = state_manager.get_all_states() green_count = sum(1 for state in all_states.values() if state == SignalState.GREEN) assert green_count <= 1, ( f"安全性違反: 操作 {operation} の後に {green_count} 個の緑信号。" f"状態: {all_states}" ) このプロパティテストの素晴らしい点は、最初に定義した要件を直接テストしていることです。つまり、多くの入力でテストすれば、その要件を満たしていることに高い確信が持てます。さらに重要なのは、その逆も成り立つことです。この関数を失敗させる入力が存在する場合、プログラムは正しくないのです。Kiro はこの特性を積極的に利用します。 プロパティテストの重要な部分は、プロパティテストを実行するための多様な入力をランダムに生成することです。この例では、重要な入力は test_safety_invariant_at_most_one_green に渡される操作の list です。次のセクションでは、この例の文脈で入力生成について説明します。自動入力生成は、ユニットテストに対する重要な利点を提供します。誰かがユニットテストを書くとき(モデルであれ人間であれ)、エッジケースを考慮しようとしますが、 自分自身の内部バイアスによって制限されます。 ランダム生成を利用することで、見落とされがちなエッジケースやコンポーネント間の相互作用を発見できることがよくあります。Kiro はこの事実を最大限に活用します。 プロパティの典型パターン プログラムの正しさに関する文献では、よく現れるプロパティの典型的なパターンがあることがわかっています。Kiro はこれらのパターンを認識しており、プロパティを生成する際にそれらを探します。たとえば、二分探索木のようなデータ構造の一般的なプロパティは、実行時の不変条件を維持することです。個々の操作が不変条件を維持することを検証するプロパティを書けます。 # 挿入操作は二分探索木の性質を維持すべき def bst_insert(tree, input): if is_bst(tree): tree.insert(input) assert is_bst(tree), "木は依然として二分探索木であるべき" assert tree.contains(input), "木は入力値を含むべき" 別の一般的なプロパティのパターンは「ラウンドトリップ」で、一連の操作によって開始時の値に戻るというものです。このプロパティは特にパーサーやシリアライザーに有用です。 # パーサーでほぼ常に成り立つべきプロパティ # 整形してから再度パースすると、同じ式が得られるべき def parser_correctness(expression): assert parse(pretty_print(expression)) == expression Web API では、削除操作が「冪等」であることを望むことがよくあります。つまり、アクションを 2 回繰り返しても 1 回実行したのと同じ効果になるということです。 def delete_idempotence(orders_list, order_id): if order_id in orders_list: assert orders_list.delete(order_id) == orders_list.delete(order_id).delete(order_id) プロパティの設計についてさらに詳しく知りたい場合は、次のブログ記事をお勧めします。 Choosing Properties for Property-Based Testing 、および How To Specify it [PDF] の論文です。 入力ジェネレーターを使ったプロパティのテスト プロパティをテストするには、具体的な入力値が必要です。多数の(数百の)多様な値を取得し、バイアスの影響を減らすために、PBT フレームワークは「ジェネレーター」を使用します。これは何らかのランダム性を受け取り、特定の型の入力値を生成する関数です。プロパティベーステストフレームワークのユーザーは、特定のプロパティテストを実行する際にどの入力ジェネレーターを使用するかを指定します。Kiro は生成するプロパティテストに対してこれを自動的に行います。 Hypothesis などの PBT フレームワークには、一般的な型用のジェネレーターが多数付属しており、これらを構成要素として使ってより複雑なジェネレーターを作成できます。Hypothesis フレームワークはジェネレーターをストラテジーと呼び、多くの場合、ストラテジーを変数 st に格納します。整数を生成するストラテジーの例をいくつか示します。 >>> from hypothesis import strategies as st >>> st.integers().example() -43489276822011488813107857396380363774 >>> st.integers().example() 1944533851 >>> st.integers().example() 3 >>> st.integers().example() -6029 >>> st.integers().example() -3157022535735084108 >>> st.integers(1,500).example() 271 >>> st.integers(1,500).example() 18 >>> st.integers(1,500).example() 20 >>> st.integers(1,500).example() 350 >>> st.integers(1,500).example() 89 Hypothesis には、カスタムデータ型用のより複雑なストラテジーも付属しています。 >>> st.emails().example() '^3l@s.K.sM' >>> st.emails().example() '~g0}XGSf|m$6wOgvEI`e~8h@Z.roDeO' >>> st.uuids().example() UUID('ff1fe0e9-c9a7-324d-f04d-c6f7c3fa4059') >>> st.uuids().example() UUID('156c8e91-0ad7-24b0-6e59-0e6b6a114e74') >>> st.complex_numbers() complex_numbers() >>> st.complex_numbers().example() (-inf-infj) >>> st.complex_numbers().example() (nan+352724254975j) >>> st.complex_numbers().example() 0j 小さなストラテジーから複雑なストラテジーを構築することもできます。たとえば、 lists ストラテジーは別のストラテジーを引数として受け取り、その引数によって生成されたもののリストを構築します。 >>> st.lists(st.integers()).example() [297324786, 38] >>> st.lists(st.integers()).example() [13158, 3] >>> st.lists(st.integers()).example() [17, 27825, -25292, 30419, -8472, -30306, 6151414495842486117, 1264487630263387308, -10877, 1076876455, -10851] >>> st.lists(st.booleans()).example() [False, False, False, False, True, False, False, False, True, False] >>> st.lists(st.booleans()).example() [False, False, True, True] >>> st.lists(st.booleans()).example() Kiro でのプロパティベーステスト 現在、Kiro は要件をテストするために、プロパティチェックコードとジェネレーターの両方を含むプロパティベーステストを自動的に作成します。先ほどの信号機の例に戻ると、Kiro は先ほど見たプロパティチェックコードを生成するだけでなく、メソッドの上に @given アノテーションを追加し、使用したい 2 つの Hypothesis ストラテジーをリストします。 @given( timing_config=timing_config_strategy(), operations=operation_sequence_strategy() ) def test_safety_invariant_at_most_one_green( timing_config: TimingConfig, operations: list ): 以下は、Kiro がこのプロパティのために書いたストラテジーです。このコードは Hypothesis ストラテジーフレームワークを使用して、信号機の遷移シーケンスに対するストラテジーを構築します。このストラテジーが、Kiro が書いた signal_state_strategy などの他のストラテジーを参照していることがわかります。これにより、複数のプロパティテスト間でコードを共有できます。 # 操作シーケンスを生成するストラテジー @st.composite def operation_sequence_strategy(draw): """制御モジュールに対して実行する操作シーケンスを生成する""" operations = [] num_operations = draw(st.integers(min_value=1, max_value=20)) for _ in range(num_operations): op_type = draw(st.sampled_from(['transition', 'emergency_activate', 'emergency_deactivate'])) if op_type == 'transition': direction = draw(direction_strategy) state = draw(signal_state_strategy) operations.append(('transition', direction, state)) elif op_type == 'emergency_activate': direction = draw(direction_strategy) operations.append(('emergency_activate', direction)) else: # emergency_deactivate operations.append(('emergency_deactivate',)) return operations このテストは、標準的な Python テストフレームワークである pytest とすぐに統合できます。 pytest が実行されると、Hypothesis は 100 個のテストケースを生成し、それらすべてがプロパティをパスすることを確認します。 テストの品質にとって、入力生成ストラテジーが実際に多様な入力を生成することが重要です。 Tyche というツールを使って、それらの入力と実行時にカバーされるコードを調べることで、どれだけうまくいっているかを評価できます。以下は、ジェネレーターが生成した入力のサンプルで、Tyche が表示してくれるものです。 以下は、プロパティベーステストによって実行されるコードを示す Tyche が生成した視覚化です。50 回の試行後でも、まだ新しいコードパスを探索していることがわかります。 コードカバレッジについて注意点があります。テストスイートの効果を測定する非常に一般的な指標ですが、テスト品質の最終的な判断基準ではありません。コードの行をカバーする(つまり実行する)ことは、その行のすべての動作を網羅したことを意味しません。プロパティテストは網羅的な手法ではないため、プログラムにバグがないことを保証できません。プロパティベーステストが見つけられない反例が常に存在する可能性があります。しかし、私たちは、プロパティベーステストが従来の例ベーステストよりもバグの発見において効果的なツールであり、仕様とテストをより良く結びつけ、プログラムの正しさの問題を具体的で実行可能な仕様の観点から表現するという重要なステップを踏んでいると考えています。 反例と縮小 この記事を終える前に、プロパティベーステストの本当に役立つ最後の機能について話したいと思います。それは縮小です。プロパティテストが失敗すると、プロパティを失敗させる入力、つまり反例が得られます。理想的には、最小限の入力、つまりテストを失敗させた問題の核心を示す小さな例が欲しいところです。巨大な反例には問題とは関係のない余分なデータが含まれている可能性が高いのに対し、最小限の例は、あなた(そしておそらく Kiro エージェント)がプログラムの実際の欠陥を特定し、修復するのに役立ちます。ほとんどのプロパティベーステストフレームワークは、「縮小」と呼ばれるプロセスを通じて最小限の例を提供しようとします。これがどのように機能するか見てみましょう。 探索木に基づく集合を実装しているとしましょう。おそらく次のようなプロパティがあるでしょう。 # プロパティ: 任意の2つの二分探索木を結合すると、 # 適切な二分探索木になるべき @given(left = trees(), right = trees()) def test_union_maintains_invariant(left, right): assert left.union(right).is_bst() このテストを実行すると、次のような出力が得られるかもしれません。 Falsifying example: left = Node(lhs=Empty(), rhs=Empty(), value=0) right = Node(lhs=Empty(), rhs=Empty(), value=0) しかし、これは実際には Hypothesis が見つけた最初の反証例ではありませんでした。Hypothesis のログを見ると、最初に失敗した反例は実際には次のようなものでした。 Trying example: test_union( lhs=Node(lhs=Empty(), rhs=Node(lhs=Empty(), rhs=Node(lhs=Empty(), rhs=Empty(), value=30), value=-111), value=-25482), rhs=Node(lhs=Node(lhs=Empty(), rhs=Empty(), value=-26344), rhs=Node(lhs=Empty(), rhs=Node(lhs=Node(lhs=Empty(), rhs=Empty(), value=42), rhs=Node(lhs=Node(lhs=Node(lhs=Empty(), rhs=Empty(), value=6076), rhs=Empty(), value=10768), rhs=Empty(), value=27223), value=121), value=-89), value=-20602), ) これはデバッグがより困難なケースです。 縮小は、失敗を引き起こし続けることを確認しながら、失敗した入力を体系的に単純化します。 この例では、Hypothesis は不要なノードを削除し、整数値を減らし、木構造を単純化して、最小限のケースを見つけました。それは、両方とも値 0 を含む 2 つの単一ノード木です。これにより、複雑な木構造のノイズなしに、核心となる問題、つまり union 操作が重複値を適切に処理していないことが明らかになります。 Kiro がプロパティテストを生成する際、基盤となる PBT フレームワークの縮小機能を活用します。つまり、開発中にプロパティテストが失敗すると、デバッグを大幅に容易にする実用的で最小限の反例が得られます。エージェントはこの最小限の例を使って根本原因をより簡単に理解し、修正を提案でき、仕様、テスト、実装の間に緊密なフィードバックループを作り出します。Kiro が実装は正しいかもしれないが仕様と一致しないことを発見した場合、または AI が生成したコードが自明でない方法で根本的に間違っているように見える場合、Kiro はこれを開発者に提示して選択を求めます。コードを修正するか、仕様を修正するか、PBT を修正するかです。そうすることで、人間の判断と AI および PBT を組み合わせて、実装を開発者の意図により明確に合わせます。 まとめ Kiro がプロパティベーステストを採用したことで、AI コーディングタスクにおける正しさの考え方が大きく変わります。個々の例をチェックすることから、入力空間全体にわたる普遍的なプロパティを検証することへと移行しています。自然言語の仕様を実行可能なプロパティに自動的に変換し、包括的なテストケースを生成することで、Kiro は AI エージェントと人間の開発者の両方がより信頼性の高いソフトウェアを構築するのに役立つ強力なフィードバックループを作り出します。このアプローチは、従来のテストが見逃すバグを見つけるだけでなく、要件とそれらを検証するテストの間に明確で追跡可能なリンクを維持します。PBT はすべてのバグの不在を保証できませんが、例ベーステストだけよりも大幅に強力な正しさの証拠を提供し、仕様駆動開発にとって不可欠なツールとなっています。 LLM とプロパティベーステストに関する詳細については、以下の研究論文を参照してください。 QuickCheck Can LLMs write good PBTs Agentic PBT Use Property-Based Testing to Bridge LLM Code Generation and Validation Tyche Kiro をダウンロード して、 仕様 で プロパティベーステスト を試してみてください。 翻訳は AppDev Consultant の宇賀神が担当しました。
アバター
AI 駆動開発ツールの導入を検討している方、または現在 Claude Code を利用しているがガバナンスやコスト管理に課題を感じている方に向けて、AWS 上で Claude Code を活用する 2 つの主要なパターンについて解説します。 本記事は、AI 駆動開発ツールを組織内に導入したい管理者や意思決定者、Claude Code Max プランを利用中でガバナンス面に課題を感じている方、AWS の支払いとソフトウェアライセンスの支払いを一元化したい方を対象としています。Claude Code 自体の使い方や Tips ではなく、エンタープライズ環境での導入パターンと選定基準に焦点を当てて解説していきます。 AWS と Anthropic の戦略的協業 AWS と Anthropic は 深い戦略的協業 を結んでいます。2024 年 11 月時点で、Amazon は Anthropic に総額 80 億ドル、日本円にして 1 兆円以上という大規模な投資を実施しています。ただ単に投資するだけでなく、実際の製品・サービスレベルでの統合も着実に進んでいます。 AWS の生成 AI サービスである Amazon Bedrock では、Anthropic の Claude モデルを提供しており、ファインチューニング、ナレッジベース、エージェント、ガードレールといった Amazon Bedrock の各機能との統合されています。Claude は 3rd party モデルでありながら、セキュアに利用できる仕組みが整っています。お客様の推論データや学習データは、明示的に設定しない限り AWS に保管されませんし、Claude モデルは AWS にホストされているため、Anthropic 側から顧客データを閲覧することはできません。通信は AWS バックボーンを経由し、セキュアな環境で処理されます。 さらに、AWS のグローバルインフラに Claude モデルがデプロイされており、東京・大阪リージョンを含む世界中のリージョンで利用可能です。リアルタイム推論だけでなくバッチ推論にも対応しており、前払い制でスループットを予約することも可能です。Claude 自体は AWS 謹製のアクセラレータである AWS Trainium に最適化されており、高いキャパシティと低いレイテンシーで利用できます。 Anthropic のモデルを AWS 上で利用する際の参考となるコードサンプルやノートブックを集めた  anthropic-on-aws  というリポジトリも公開されています。例えば、「 Claude Code on Amazon Bedrock AgentCore 」というサンプルというサンプルが含まれています。 これは、Claude Code を Amazon Bedrock AgentCore Runtime にデプロイし、ヘッドレスモードで動作させる仕組みです。リクエストを投げると裏側で Amazon Bedrock の Claude モデルが呼び出され、作業結果を Amazon Simple Storage Service (Amazon S3) に保存するという、サーバーレス Claude Code のような構成を実現できます。 他にも、「 Claude Code Advanced Patterns – Complete Implementation Package 」では、Claude Code で利用できるサブエージェントや、スラッシュコマンドのサンプルなどが含まれていたり、「 Claude Sonnet 4.5 Memory Features Demo 」には Claude 4.5 のメモリ機能と AgentCore Memory と連携する方法などが紹介されています。このように、Anthropic Claude を AWS 上で効果的に連携するための方法についても積極的に発信しています。 Claude Code とは さて、本題である Claude Code は、Anthropic が開発している Agentic coding のコマンドラインツールです。最近では VS Code 拡張機能として UI も提供 していたり、 Claude Code on the web というウェブブラウザ上で動作するバージョンもリリースされています。 Claude Code は処理過程で何が行われているかという透明性があり、どのようなアクションを許可するか細かく制御できるという特徴を持っています。また、Anthropic が開発しているだけあって、Claude モデルの能力を最大限に引き出せるように最適化されているのが最大の強みです。 Claude Code は、Anthropic が提唱する MCP (Model Context Protocol) や エージェントスキル といった仕組みを活用できます。MCP は外部データソースやツールとの連携を標準化するプロトコルで、スキルは特定のタスク、例えばドキュメント操作やデータ処理などに特化した機能拡張を提供します。これらを組み合わせることで、幅広いコーディングタスクを処理し、開発タスクを大幅に加速できます。 Claude Code on AWS パターン 1: Amazon Bedrock との連携 基本的な連携方法 Claude Code は、裏側で呼び出す Claude モデルのプロバイダーを切り替えられる柔軟な設計になっています。AWS のクレデンシャルと Amazon Bedrock のモデルアクセス権限を持った状態で、環境変数を指定すると Claude Code が Amazon Bedrock のモデルを利用するように設定できます。 環境変数による設定 # Amazon Bedrock を有効化 export CLAUDE_CODE_USE_BEDROCK=1 # AWS リージョンを指定 export AWS_REGION=ap-northeast-1 # 使用するモデル ID を指定 export ANTHROPIC_MODEL=global.anthropic.claude-sonnet-4-5-20250929-v1:0 チーム全体での設定共有 (.claude/settings.json) チームで同じ設定を使いたい場合は、 .claude  ディレクトリ配下の  settings.json  に記述することで、チーム全体で設定を共有できます。 { "env": { "CLAUDE_CODE_USE_BEDROCK": "1", "AWS_REGION": "ap-northeast-1", "ANTHROPIC_MODEL": "global.anthropic.claude-sonnet-4-5-20250929-v1:0" } } この設定により、Claude Code 起動時に API provider の部分が自動的に AWS Bedrock に切り替わります。 利用可能なモデル Amazon Bedrock 上では、最新の Claude モデルが利用可能になっています。それぞれ特性が異なるため、ユースケースに応じた使い分けが重要です。 画像出典: Introducing Claude Haiku 4.5 Claude Sonnet 4.5 (複雑なエージェントとコーディングに最適) 複雑な推論、高度なコーディングタスク、エージェント型アプリケーションに最適 200K トークンのコンテキストウィンドウ (100 万トークンのベータ版も利用可能) 料金: $3/M Tokens (入力)、$15/M Tokens (出力) ソフトウェア開発ベンチマークの SWE-bench Verified で最高精度を達成 Claude Haiku 4.5 (ほぼ最先端の知能を備えた高速モデル) 前世代の Sonnet 4 より高性能でありながら、2 倍以上の速度で実行可能 200K トークンのコンテキストウィンドウ 料金: $1/M Tokens (入力)、$5/M Tokens (出力) コスト効率を重視しつつ高品質な出力が必要なケースに適している いずれのモデルも、テキストと画像入力、ビジョン機能、多言語対応、Extended thinking 機能をサポートしています。 日本国内クロスリージョン推論 Claude Sonnet/Haiku 4.5 は、日本国内に閉じた東京・大阪リージョン間のクロスリージョン推論にも対応しています。グローバル分散推論オプションに比べて 10% のプレミアム料金が乗るのですが、特に規制産業においては非常に求められていた機能です。 動作イメージとしては、例えば東京リージョンに対して Claude Sonnet 4.5 モデルを呼び出すと、基本は東京リージョンで処理されます。もしリージョンが混んでいた場合は自動的に大阪リージョンにルーティングしてくれます。この時通信は常に AWS バックボーンを経由し、セキュアかつ日本国外に出ないので安心です。この機能を用いて Claude Code 自体も日本国内に閉じた形で利用いただくことができます。 組織導入のための参照アーキテクチャー Claude Code を Amazon Bedrock と連携して利用いただく形式を組織で導入しやすいようにするための参照アーキテクチャーも提供されています。具体的には、社内の Okta、Microsoft Entra ID (旧 Azure AD)、Auth0 といった OIDC プロバイダーと連携して、社内のシングルサインオンの仕組みと統合された形で一時的な認証情報を払い出すためのソリューションとなっています。 ユーザーが Claude Code を使おうとなった時に、まず Entra ID 等の OIDC provider で認証し、ID トークンを Amazon Cognito に渡します。Cognito から一時的な AWS クレデンシャルをもらって、それで Amazon Bedrock の Claude モデルを呼び出すという仕組みです。 Guidance for Claude Code with Amazon Bedrock というページから詳細を確認でき、CloudFormation テンプレートを使ってすぐにデプロイ可能です。 IT 管理者側では、AWS アカウントチームと連携してチームサイズに基づいた必要なクォータ (TPM/RPM) を確保し、ドキュメント化されたガイダンスに従って既存のエンタープライズ ID プロバイダーを使用した安全で一元化されたアクセスを提供します。エンドユーザー向けインストールパッケージを検証・テストして配布するという流れです。 開発者側としては、配布されたパッケージをローカルマシンに展開するだけで利用可能です。macOS、Linux、Windows に対応しており、AWS アカウントへのアクセスは不要です。組織の ID プロバイダーで認証し、一時的なクレデンシャルを受け取って Claude Code にアクセスします。 利用状況監視ダッシュボード シングルサインオンの仕組みだけでなく、利用状況を監視するためのダッシュボードも用意することができます。ここで Claude Code on AWS の導入効果やクォータ管理に関するインサイトを一覧で確認できます。 ダッシュボードでは、トークン利用量やアクティブユーザー数、API コール数、キャッシュ効率といったメトリクスが見れます。時系列データとしてアクティブユーザー数の推移、編集行数の推移、トークン利用量のトータルやモデルごとの値を見て、いつ何がどれくらい使われているかを確認できます。 また、誰がヘビーユーザーで、どのモデルが使われていて、どんなコードが生成されているかを見る項目もあります。開発生産性向上の度合いを測るための指標として、生成行数やコミット数、アクセプト数 (Claude Code の提案を受け入れた回数)、利用時間を確認できます。さらに、API エラーやスロットリング発生回数も見て、そろそろ Amazon Bedrock のクォータの上限緩和をしないといけないな、といった判断材料に使っていただけます。 Claude Code with Amazon Bedrock パターンのメリット Claude Code と Amazon Bedrock を組み合わせるメリットは多岐にわたります。 コスト面 トークン使用量に基づいた従量課金で、スモールスタートが可能 利用状況に応じて段階的にクォータ上限を緩和してスケール可能 使った分だけの支払いで、利用頻度にばらつきがあるチームに最適 セキュリティ・コンプライアンス面 通信が AWS 内に閉じており、データが外部に出ない 日本国内クロスリージョン推論により、データレジデンシー要件を満たせる 高いキャパシティと低レイテンシーを実現 ガバナンス・管理面 社内 SSO との統合ソリューションが提供されている 利用状況の監視ダッシュボードを簡単に構築可能 IAM や VPC など既存の AWS セキュリティ機能を活用できる AWS のサービスレベルのもとで利用可能 導入・運用面 既に Amazon Bedrock を利用している場合、追加設定のみで導入可能 Anthropic との新規契約が不要で、既存の AWS 契約の範囲内で利用可能 CloudFormation テンプレートによる迅速なデプロイが可能 パターン2: AWS Marketplace での購入 Claude for Enterprise プラン Anthropic の SaaS としての Claude を利用するとき、個人プランとして Free、Pro、Max というプランがあり、チームや企業向けのプランとして Team プランと Enterprise プランがあります。この Enterprise プランで各ユーザーにプレミアムシートを購入いただけると Claude Code も利用可能になります。Claude for Enterprise は AWS Marketplace というソフトウェアの売り買いを行えるプラットフォーム上でサブスクライブすることもできるようになっています。 Enterprise プランでは、個人向けプランで使える機能にプラスして、ユーザーの集中管理や請求の一元化といったチーム向けの機能が提供されます。さらに、会社のシングルサインオンとの統合、SCIM (System for Cross-domain Identity Management) を使ったアカウント管理の簡素化、権限管理、監査ログ機能なども利用できます。 Enterprise プラン内では、各ユーザーにスタンダードシートとプレミアムシートを割り当てられます。プレミアムシートのユーザーは Claude Code を定額で利用することが可能です。この Enterprise プランを AWS Marketplace 経由でサブスクライブできるというわけです。 GUI アプリケーションとしての Claude Claude の SaaS 版やデスクトップ版 (claude.ai) ではリッチなチャット UI を提供しています。Claude Code でコード開発やテスト周辺を効率化するだけでなく、GUIアプリケーションを利用してソフトウェア開発ライフサイクル全体を効率化することができます。 例えば、ライブラリやフレームワークについて調査したり、インタラクティブな相談相手として機能してくれます。技術的な質問に即座に答えてもらえるのは、日々の開発で大きな助けになります。上図右側の Artifact という機能を利用すると、データの可視化や UI のモック作成なども行えます。リアルタイムでプレビューを見ながらインタラクティブなプロトタイプを生成できるのは非常に便利です。また、Notion や Google Docs といったナレッジソースと繋いでプロジェクト状況を読み込んだり、Asana にタスクとして登録してカンバンボードで進捗管理するといったこともできます。 開発ライフサイクル全体を見ると、要件定義では外部ドキュメントを参照しながら要件を整理し、設計では Artifact で設計図やモックを作成し、実装では Claude Code でコーディングし、レビューではチャット UI で実装の妥当性を相談し、テストではテストコードの生成と実行を行い、ドキュメントでは技術ドキュメントの作成支援を受け、デプロイではデプロイスクリプトの生成と実行を行うという一連の流れを効率化できます。 Claude Code via AWS Marketplace パターンのメリット AWS Marketplace で Claude for Enterprise を購入するメリットは多数あります。 コスト・予算管理面 ユーザー数課金で予算管理がしやすい定額制 各ユーザーの支払いを一本化できる AWSインフラコストと支払いを一元化可能 機能・利便性面 GUI アプリケーションとしての Claude も利用可能 (チャット UI、Artifact 機能など) SSO、SCIM、監査ログ、ロールベースアクセスがビルトイン Notion や Google Docs などの外部ツール連携 拡張コンテキストウィンドウ 調達・管理面 AWS Marketplace 上で購入プロセスやライセンス管理が完結 ソフトウェア調達プロセスが簡素化される 追加の統合作業が最小限で済む 大規模利用時はプライベートオファーで個別相談可能 注意点 一部直販との細かい機能差がある場合があります シート数の最小数や年間契約のみといった制限があります 詳細な契約内容については AWS / Anthropic の営業にご相談ください 選定基準 Claude Code を AWS 上で利用するには大きく分けて二つのパターンがあるというお話をしてきました。それぞれどのようなケースに適しているのか整理していきます。 Amazon Bedrock パターンが適しているケース Amazon Bedrock と連携するパターンは、従量課金なのでスモールスタートできます。初期投資を抑えて小規模から始めたい場合や、まずは試験的に導入して利用状況を見ながら拡大したい場合に最適です。チーム内での Claude Code 利用頻度にばらつきがあり、ヘビーユーザーばかりではないケースでも、使った分だけ支払うという形式は合理的です。全社展開を見越すなど、ユーザー数が多くなる場合はトークン数ベースで従量課金となるこちらのパターンが適しているでしょう。 セキュリティやデータコントロールの制限がある場合でも、AWS にデータを留めることができます。特にデータを日本国内に留める必要がある規制産業などでは、日本国内クロスリージョン推論が大きな価値を持ちます。VPC や IAM など既存の AWS セキュリティ機能を活用したい場合にも向いています。 また、すでにお使いの Amazon Bedrock 環境を活用したい場合や、Anthropic との新規契約の手続きにハードルがあるケースでは、Amazon Bedrock の連携を検討いただければと思います。既存の AWS 契約の範囲内で利用できるというのは、調達プロセスの簡素化という点で大きなメリットです。 AWS Marketplace パターンが適しているケース 一方、エンタープライズ版を AWS Marketplace でサブスクライブすると、GUI アプリケーションとしての Claude がついてきます。コーディングだけでなく、設計、レビュー、ドキュメント作成なども効率化したい場合、このパターンが適しています。チャット UI、Artifact、外部ツール連携なども活用できるため、開発ライフサイクル全体をカバーできます。 また、定額プランとなるので、一定人数の利用が見込まれていて予算管理を楽にしたい場合はこちらを選んでいただければと思います。チーム全体で頻繁に利用する見込みがあり、ヘビーユーザーが多い場合は、従量課金による変動を避けられる定額制の方が予算計画を立てやすくなります。 必要な機能がビルトインで用意されているのでセットアップの手間を減らすことができます。複雑な統合作業なしに、すぐに使い始めたい場合や、運用負荷を軽減したい場合に向いています。また、AWS インフラコストと同じ請求書で管理したい場合や、社内の調達プロセスが AWS Marketplace 経由を推奨している場合にも最適です。 コスト試算例 実際の導入を検討する際、コストの見積もりは重要な判断材料となります。ここでは典型的なユースケースでの試算例をご紹介します。 Amazon Bedrockパターンでの試算 (10 名チームの月間利用) 前提条件: チームメンバー 10 名 1 人あたり月間平均利用: 20 日、1 日あたり 4 時間 1 日あたりセッション数: 8 セッション (30 分に 1 回程度のやり取り) 平均セッションあたりトークン消費: 入力: 500K トークン (プロジェクトコンテキスト + 会話履歴) 出力: 100K トークン プロンプトキャッシュヒット率: 70% 使用モデル: Claude Sonnet 4.5 月間総トークン数: - 総セッション数: 10 名 × 20 日 × 8 セッション = 1,600 セッション - 入力トークン総量: 1,600 × 500K = 800M トークン - 出力トークン総量: 1,600 × 100K = 160M トークン 入力トークンの内訳(キャッシュ考慮): - Cache write (30%): 800M × 30% = 240M トークン コスト: 240M × $3.75/MTok = $900 - Cache read (70%): 800M × 70% = 560M トークン コスト: 560M × $0.3/MTok = $168 出力トークンのコスト: - コスト: 160M × $15/MTok = $2,400 合計コスト: - 入力: $900 + $168 = $1,068 - 出力: $2,400 - 合計: $3,468/月(約 520,200 円/月、1 ドル = 150 円換算) Claude Haiku 4.5 を使用する場合は約 1/3 のコスト (約 173,000 円/月) となります。利用頻度にばらつきがある場合、使わない月は安くなる点にも考慮が必要です。 AWS Marketplace パターンでの試算 (10 名チーム) 前提条件: チームメンバー 10 名 全員にプレミアムシート (Claude Code利用可能) を割り当て プレミアムシート単価: $200/月/ユーザー 月間コスト: - 10 名分: $200 × 10 名 = $2,000/月 (約 300,000 円/月、1 ドル = 150 円換算) 定額制のため、使用量にかかわらず予算が確定します。GUI アプリケーションも含めたフル活用が前提であれば、この価格設定が妥当なコストとなります。 参考リソース Claude Code on AWS の導入を検討される際に役立つリソースをご紹介します。 まずは Claude Code の 公式ドキュメント に Getting Started の記事があるので、そこから始めるのが良いかと思います。AWS が用意しているコードサンプルとして  aws-samples/anthropic-on-aws  があり、Anthropic のモデルを AWS 上で利用するための各種サンプルコードが公開されています。 ハンズオンワークショップもそれぞれ利用者向けと管理者向けのものがあります。利用者向けには Claude Code in Action on AWS があり、Claude Code の基本的な使い方を学べる実践ワークショップとなっています。管理者向けには Supercharge your development with Claude Code on Amazon Bedrock があり、OpenTelemetry の設定や管理ダッシュボードの作成、ガバナンス設定、クォータ管理などを取り扱っています。 参照アーキテクチャーと CloudFormation テンプレートは  Guidance for Claude Code with Amazon Bedrock  から入手できます。具体的な導入計画や見積もりについては、AWS の営業担当にご相談ください。 おわりに 本記事では、Claude Code on AWS の 2 つの主要な利用パターンについて解説しました。 Amazon Bedrock との連携パターンは、従量課金によるスモールスタートや、厳格なセキュリティ・データレジデンシー要件がある場合に適しています。既存の AWS 環境との統合が容易で、詳細な利用状況の監視も可能です。 AWS Marketplace での購入パターンは、GUI アプリケーションを含めた総合的な活用や、定額制による予算管理の簡素化を求める場合に適しています。エンタープライズ向け機能がビルトインで提供されるため、セットアップの手間を大幅に削減できます。 どちらのパターンも、AWS と Anthropic の戦略的協業により、セキュアで高品質な AI 駆動開発環境を実現できます。AWS 側も Claude のサポートに力を入れており、豊富なドキュメントやワークショップが用意されています。Claude Code 導入を検討される際は、ぜひ AWS の営業担当にご相談ください。両パターンのメリット・デメリットを踏まえて、皆様のニーズに最適な選択をすることが、AI 駆動開発の成功への第一歩となります。
アバター
金融機関では近年、デジタル化の進展に伴いリスク環境が急速に変化しています。障害への未然防止策に重点を置いた従来的なリスク管理や事業継続計画(BCP)だけでは、重要な業務を提供し続けられない可能性が出てきており、障害の早期復旧や影響範囲の軽減確保を重視する、オペレーショナル・レジリエンスという考え方が近年注目されています。 AWS では、オペレーショナル・レジリエンスに関心の高いお客様向けに、AWS の取り組みを紹介するオペレーショナル・レジリエンス ワークショップを提供しております。この度、アフラック生命保険株式会社様(以下、アフラック様)と共に、本ワークショップを2025年9月中に2回開催しました。本稿ではこちらのワークショップの開催報告をお届けします。 オペレーショナル・レジリエンスとは オペレーショナル・レジリエンスという考え方は、金融機関を取り巻くリスク環境の複雑化を背景に国際的に注目されるようになりました。ITシステムへの依存の高まり、大規模システム障害の発生、サイバーセキュリティ上の脅威の増大、クラウドサービスの利用拡大など、従来のリスク管理やBCPだけでは対応しきれない新たな課題が顕在化したためと言われています。 既存のリスク管理では障害への未然防止策に重点が置かれ、想定外の事象が発生した際に金融システムにとって重要な業務を継続できない可能性があり、利用者目線での早期復旧という視点も十分ではありませんでした。 金融庁のホワイトペーパー では、オペレーショナル・レジリエンスについて「未然防止策を尽くしてもなお、業務中断は必ず起こることを前提に、利用者目線に立ち、代替手段等を通じた早期復旧や影響範囲の軽減を担保する枠組みを確保すること」と記載しています。さらには、ゼロリスク志向からリスク管理文化を醸成することや、経営陣のコミットメントが必要であるとも記載しています。 AWS は以前からオペレーショナル・レジリエンスの実現に積極的に取り組んでいます。過去にも AWS のレジリエンシーを全体的に解説したセミナーを開催しておりますので、こちらも併せてご参照ください。 参考資料:金融インダストリー向け クラウドを活用したレジリエンシーの最新動向 https://aws.amazon.com/jp/blogs/news/20230615-fin-resilience-webiner-post/ ワークショップの内容 今回のワークショップにご協力いただいたアフラック様は、以前 AWS Summit Japan 2024 にもご登壇いただきました。その際に、「2027年までにクラウド化による効果が大きい全システムの移行を目標とし、全社を挙げて推進中」であるとご説明いただきました。クラウドを積極的にご利用されているアフラック様においても、オペレーショナル・レジリエンスへの関心が高く、今回のワークショップ開催につながりました。ここからは、アフラック様と2回開催したワークショップの内容についてご説明します。 1回目(9月26日)は東京のアマゾン ウェブ サービス ジャパン合同会社 本社で開催し、アフラック様の ITインフライノベーション部から 7 名の皆様にご参加いただきました。同部門は AWS 環境を含めた IT インフラの企画・運用という重要な役割を担っています。 2回目(9月30日)はアフラック様の BCP 拠点である札幌システム開発オフィスで開催し、ITインフライノベーション部、ITインフラ運用管理部、営業システム開発部、顧客・代理店システム開発部、勘定系システム開発部、契約管理システム開発部、その他セキュリティ部門の方々から 18 名の皆様にご参加いただきました。同オフィスは、首都圏での災害リスクに備えた戦略的拠点として、東京拠点と同水準の環境を整備されています。 ワークショップは以下の 2 パートに分かれています。 前半パートでは、AWS 側が国内外の金融機関のお客様や規制当局との会話で培った知識として、オペレーショナル・レジリエンスに関する規制動向と、各金融機関の対応状況、これまでのリスク管理や BCP との違いについて、プリンシパルコンプライアンススペシャリストの高野からご説明しました。また、オペレーショナル・レジリエンスのメンタルモデルや、オンプレミスとクラウドにおける障害対応の違いについても紹介し、AWS のレジリエンスが規制当局からも評価されていることを紹介しました。 後半パートでは、AWS のサービス、インフラストラクチャ、運用体制について、ソリューションアーキテクトの松本から、ホワイトボーディングによるレクチャーとディスカッションを実施しました。具体的には、リージョン・アベイラビリティーゾーン内の各構成要素が全て冗長化されていることや、AWSの各サービスにおけるレジリエンシー強化のためにセルベースアーキテクチャを採用していること、AmazonのTwo-pizza teamという考え方を中心にしたAWSサービスの開発と運用モデルといった観点をご紹介しました。さらに、アフラック様から AWS のレジリエンスに対する疑問や懸念を挙げていただき、最新の AWS の取り組みを踏まえてご回答しました。 ワークショップのフィードバック 第1回のフィードバック 参加されたITインフライノベーション部の皆様からは、経営層をはじめとする方々からの懸念として、「クラウドが長時間止まるリスク」「東京リージョンから大阪リージョンへの切り替え後のレイテンシへの影響」「クラウドのサービスアップデートに追従できないリスク」といった課題をご共有いただきました。これらの課題に対し、AWSの取り組みや考え方もお伝えしながら、建設的な議論が展開されました。 ITインフライノベーション部部長の藤田昌孝様からは、以下のようなコメントをいただきました。 今回のワークショップを通じて、AWSのオペレーショナル・レジリエンスに対する考え方や、実際のインフラストラクチャ、運用体制について、非常に具体的かつ分かりやすいご説明をいただきました。特に、単なる技術的な側面だけでなく、経営戦略や顧客価値向上の観点からもレジリエンスを捉える重要性を再認識することができました。 また、クラウドサービスの可用性や障害対応、リージョン切り替え時の課題など、我々が日頃抱えている懸念点についても率直に議論できたことは大きな収穫でした。AWSの内部でどのような工夫や仕組みがあるのか、普段はなかなか知ることのできない情報にも触れることができ、透明性が高まったと感じています。 AWSとのディスカッションによって、世界の金融機関のAWS利用状況や利用方法、金融庁をはじめとした官公庁の関心事など、多様な視点を学ぶことができました。今後は、今回得られた知見を社内に展開し、上位層や若手社員にも積極的に参加を促していきたいと考えています。 アフラックとしても、AWSとの連携をさらに深めることで、単なるコスト削減にとどまらず、ビジネス拡大やイノベーション創出、そして事業継続性の強化につなげていきたいと思います。今後も継続的な改善活動や新たな技術へのチャレンジを通じて、お客様本位のシステム提供を目指してまいります。 第2回のフィードバック 札幌での開催では、AWSの運用体制や障害対応方法、セキュリティ、地政学的リスクなどについて、実際の運用現場での課題解決に向けた具体的な知見と事例等の相談をいただき、これらの課題に対し議論を展開、参加者の皆様から以下のような高い評価をいただきました。 「普段は社内に閉じた議論になりがちなところ、世界的な潮流や、官公庁のスタンスなど、幅広い考え方を聞けて大変参考になりました」 「基礎の部分からわかりやすく、多方面の視点にて説明いただき、理解がとても進みました。上位層や若手にも参加を促したい内容でした」 「具体的なAWSのサービス紹介ではなく、思想や大まかな仕組み、AWS内部の工夫や進め方について解説いただき、公開されてはいると思いますが、調べても簡単には辿り着けない話が聞けて、透明度があがりました」 「非常にわかりやすいご説明で、AWSの可用性がなぜここまで高いのかをよく理解できました。会社としてもこのようなメンタルモデルを採用できると、よりお客様本位のシステムを提供できると感じました」 スピーカーからのコメント 今回のワークショップのスピーカーを務めたプリンシパルコンプライアンススペシャリストの高野 敦史は、アフラック様の取り組みについて次のように述べています。 「アフラック様のように 、AWS をご活用いただくことで、単なるランニングコストの削減にとどまらず、ビジネス拡大やイノベーションの創出、オペレーショナル・レジリエンスの強化による事業継続性の向上にも寄与します。今後も AWS としてもアフラック様のレジリエンシー強化をご支援し、アフラック様のデジタル変革戦略の成功に貢献してまいります。」 今後のアクションプラン 今回のワークショップの成果を踏まえ、両社で今後のアクションプランを整理しました。 AWS Countdown Premium や AWS Incident Detection and Response といったAWSの支援プログラムを検討いただくとともに、クラウド障害対応訓練の実施といった継続的な改善活動を行う予定です。また、ワークショップ中に話題になった PQC(耐量子計算機暗号)の対応推進も予定しています。 まとめ アフラック様との今回のワークショップは、金融機関におけるオペレーショナル・レジリエンス強化の重要性と、AWS の活用がオペレーショナル・レジリエンスにも貢献することを示す貴重な機会となりました。東京・札幌両会場での参加者の皆様には積極的に議論いただくことができ、アフラック様におけるレジリエンスへの熱量を感じることができました。札幌会場では「会社としてもこのようなメンタルモデルを採用できると、よりお客様本位のシステムを提供できると感じました」というコメントもいただき、オペレーショナル・レジリエンスが単なる技術課題ではなく、顧客価値向上のための経営戦略の一部であることを理解いただくことができました。 2027年までにクラウド化による効果が大きい全システムの移行という野心的な目標を掲げるアフラック様の戦略的取り組みが、金融業界全体のデジタル変革をリードし、お客様により安心・安全な金融サービスを提供する礎となることを確信しております。 運営チーム / ブログ著者 スピーカー: 高野 敦史 (Atsushi Takano) アマゾン ウェブ サービス ジャパン合同会社 プリンシパルコンプライアンススペシャリスト メガバンク、米系監査法人およびコンサルティングファームにおいて、長年にわたり一貫して金融分野のIT、リスク、セキュリティ領域に従事。現在はAWSにて、お客様のクラウドコンプライアンスを支援しています。 松本 耕一朗 (Koichiro Matsumoto) アマゾン ウェブ サービス ジャパン合同会社 ファイナンシャルサービスインダストリー技術本部 ソリューションアーキテクト AWSを活用することでお客様がご自身のレジリエンスを向上させていくための支援を行っています。普段は銀行業界のお客様を担当しています。 著者 : 広恵 幸輝 (Kohki Hiroe) アマゾン ウェブ サービス ジャパン合同会社 金融事業統括本部 保険営業本部 アカウントエグゼクティブ 金融機関・保険グループを担当するアカウントエグゼクティブとして、クラウドを通じたビジネス革新から、Amazon.comとの戦略的協業まで、お客様のデジタルジャーニーを包括的に支援しています。 遠藤 亘 (Wataru Endo) アマゾン ウェブ サービス ジャパン合同会社 ファイナンシャルサービスインダストリー技術本部 ソリューションアーキテクト 保険業界のお客様を担当しているソリューションアーキテクトです。AWS全般を活用いただく際の技術的な課題解決に加えて、コンタクトセンターソリューションである Amazon Connect の利用も支援しています。 今井 勇太 (Yuta Imai) アマゾン ウェブ サービス ジャパン合同会社 シニアカスタマーソリューションマネージャー システム開発やコンサルティングに従事した経験に基づき、金融業界のお客様のクラウド活用の企画からプロジェクトの立ち上げ・推進まで、幅広いフェーズで様々な課題の解決をご支援しています。
アバター
はじめに AWS 上の SAP 運用を最適化するには、効率的な監視、トラブルシューティング、およびメンテナンス機能が必要です。 part 1 での Amazon CloudWatch Application Insight に関する以前の議論、 part 2 での CloudWatch Application Insight を使用して SAP 高可用性を監視する方法、および part 3 での Amazon CloudWatch Model Context Protocol (MCP) Server と Amazon Q for command line (Q CLI) に基づき、この第4回では、これらのツールの高度な実世界のアプリケーションを実演します。実用的なユースケースを通じて、この統合が SAP メンテナンス計画をどのように効率化し、根本原因分析を加速するかを探ります。 詳細な例を通じて、CloudWatch MCP Server と Q CLI がどのように連携して以下を実現するかを示します: 最小限の中断で計画的なメンテナンスイベントを調整 インテリジェントなログ分析を通じて問題診断を高速化 SAP 運用のためのコンテキストに応じた推奨事項を提供 SAP インシデントの平均解決時間を短縮 ユースケース 3: SAP の計画的メンテナンスイベント このユースケースでは、SAP アプリケーションクラスターで計画的メンテナンスイベントを実行します。ワークフロー統合により、チームは IDE で CloudWatch メトリクスを直接表示しながら、Q CLI を使用して正確な修復コマンドを生成することで、破壊的なコンテキスト切り替えなしに問題を診断できます。このシナリオでは、Q CLI は次のようにタスクリストを作成しました: App Server のステータスを確認するプロンプト aws ec2 describe-instances を実行して SAP クラスターステータスを確認 ssm コマンド crm_mon を実行して ASCS と ERS クラスターを確認 ssm コマンド ps を実行して ASCS と ERS プロセスステータスを取得 ssm コマンド sapcontrol を実行してプロセスリストを取得 ssm コマンドを実行して pacemaker.log を確認 ssm コマンド crm を実行してクラスターリソースステータス、制約、構成を確認 誤ったクラスター構成のため ERS が無効になっていることを要約 CloudWatch ログを確認するプロンプトの後 describe_log_groups を実行 analyze_log_groups を実行 ASCS と ERS に関連する execute_log_insights_query を検索実行 手元の ERS 問題に関連する execute_log_insights_query を検索実行 ERS 問題に関連するすべてのログエントリを要約 SAP ERS サービスを起動するプロンプトの後 ssm コマンド crm を実行してクラスターリソースステータスを確認 ssm コマンド crm を実行して ERS リソースを有効化(予想通り失敗) ssm コマンドを実行してリソース構成を更新 ssm コマンド crm を実行して ERS リソースを有効化(構成修正後) ssm コマンド sapcontrol を実行して ASCS と ERS のプロセスリストを取得 ERS サービスが正常に起動したことを要約 重要な注意事項: 以下のプロンプトと応答は短縮されています。完全なプロンプトと Q CLI からの応答を確認するには、この ユースケース 3 – SAP の計画的メンテナンスイベント をダウンロードしてください。 プロンプト: サービスを再起動せずに、SAPDemo SAP アプリケーションの SAP ASCS/ERS クラスターのステータスを確認します。 > I'll check the status of the SAP ASCS/ERS cluster for the SAPDemo SAP application without restarting any services. 🛠 Using tool: execute_bash (trusted) ⋮ ● I will run the following shell command: aws ec2 describe-instances --filters "Name=tag:Name,Values=*SAP-FIS-CS*" --query "Reservations[*].Instances[*].[InstanceId,Tags[?Key=='Name'].Value|[0],State.Name,InstanceType,PrivateIpAddress]" --output table ⋮ ↳ Purpose: Checking EC2 instances that are part of the SAP cluster ------------------------------------------------------------------------------------------- | DescribeInstances | +----------------------+-------------------------+----------+-------------+---------------+ | i-064751ba1b4c8340f | SAP-FIS-CS-sapclnode2 | running | c5a.xlarge | 10.0.155.180 | | i-0e08f883d5c3b3747 | SAP-FIS-CS-sapclnode1 | running | c5a.xlarge | 10.0.134.80 | +----------------------+-------------------------+----------+-------------+---------------+ ⋮ ● Completed in 1.666s …… ## Conclusion The SAP ASCS/ERS cluster for the SAPDemo application is partially operational: • The ASCS instance is running correctly on sapclnode2 • The ERS instance is intentionally disabled (target-role=Stopped in the configuration) • The virtual IP for ERS is still active on sapclnode1 • Both cluster nodes are online and the cluster has quorum This configuration appears to be intentional based on the cluster configuration, but it means that enqueue replication is not currently active. In a normal high-availability setup, both ASCS and ERS would be running to ensure enqueue table replication in case of a failover. 次のシナリオでは、CloudWatch MCP Server を使用して pacemaker クラスターログを調査し、SAP ASCS のステータスを判断します。CloudWatch MCP サーバーは、describe_log_groups、analyze_log_groups、execute_log_insights_query などのツールを呼び出して分析を行います。 プロンプト: SAPDemo アプリケーションの SAP ASCS ERS Pacemaker クラスターイベント、アラーム、問題に関連する CloudWatch ログを確認します。 > Check CloudWatch logs related to SAPDemo application for SAP ASCS ERS Pacemaker cluster events, alarms and issues. only use cloudwatch mcp server for this analysis. > I'll analyze the CloudWatch logs related to the SAPDemo application for SAP ASCS ERS Pacemaker cluster events, alarms, and issues using only the CloudWatch MCP server. Let's start by identifying the relevant log groups for the SAPDemo application: 🛠 Using tool: describe_log_groups (trusted) from mcp server awslabscloudwatch_mcp_server ⋮ ● Running describe_log_groups with the param: ⋮ { ⋮ "arguments": { ⋮ "log_group_name_prefix": "PACEMAKER", ⋮ "region": "us-east-1" ⋮ }, ⋮ "name": "describe_log_groups" ⋮ } ⋮ ● Completed in 0.760s …… ### Analysis: This log data shows that the ERS component (rsc_sap_ECD_ERS11) has been successfully started on sapclnode1. The cluster first cleared previous failure records, then migrated the IP resource (rsc_ip_ECD_ERS11) from node 2 to node 1, and finally started the ERS service on node 1. The successful start is confirmed by the @rc-code=0 in the logs, indicating no errors. The monitoring operation is also successful, showing that the service is running properly. This aligns with our previous findings where we had identified issues with the ERS component and cleared CloudWatch alarms for it. The logs now confirm that the ERS service has been successfully started and is being monitored by the cluster, which explains why the service is now running despite previous alarms. Would you like me to analyze any specific aspect of these logs in more detail or provide recommendations for ongoing monitoring of the ERS component? プロンプト: ノード sapclnode1 で SAP ERS サービスを起動します。 > start SAP ERS services on node sapclnode1 > I'll start the SAP ERS services on node sapclnode1. 🛠 Using tool: execute_bash (trusted) ⋮ ● I will run the following shell command: aws ssm send-command --instance-ids i-0e08f883d5c3b3747 --document-name "AWS-RunShellScript" --parameters 'commands=["sudo crm resource status rsc_sap_ECD_ERS11"]' --output json ⋮ ↳ Purpose: Checking the current status of the ERS resource .. …… ## Conclusion The SAP ERS services have been successfully started on node sapclnode1. The enqueue replication is now active and functioning correctly, providing high availability for the SAP enqueue service. The cluster is now in a fully operational state with all resources running as expected. ユースケース 4: SAP の根本原因分析を加速 このシナリオでは、構成エラーにより ERS が障害に遭遇した SAP アプリケーションクラスターがあります。Q CLI と CloudWatch MCP Server の統合により、複雑な SAP ランドスケープにおける従来の診断上の課題が解消されます。問題は多くの場合、複数のシステムレイヤーにわたってカスケードします。Q CLI は次のようにタスクリストを作成しました: App Server のステータスを確認するプロンプト aws ec2 describe-instances を実行して SAP クラスターステータスを確認 ssm コマンド crm_mon を実行して ASCS と ERS クラスターを確認 ssm コマンド sapcontrol を実行してノード 1 と 2 のプロセスリストを取得 ssm コマンド crm を実行してクラスターリソースステータスとログを確認 ssm コマンドを実行して pacemaker.log を確認 ssm コマンド crm を実行してリソースをクリーンアップ ssm コマンド crm_mon を実行してクラスターステータスを確認 ssm コマンド sapcontrol を実行してノード 2 のプロセスリストを取得 構成問題による分析結果を要約 この問題をトラブルシューティングするプロンプトの後 ssm コマンドを実行してノード 2 の ASCS と ERS の SAP システムログを確認 ssm コマンドを実行して ASCS と ERS の SAP プロファイルを確認 ssm コマンドを実行してノード 2 の hosts ファイルのホスト名構成を確認 ssm コマンドを実行してノード 1 と 2 の IP アドレスを確認 ssm コマンドを実行してノード 1 と 2 の hosts ファイルを更新 ssm コマンド crm_mon を実行してリソースをクリーンアップ ssm コマンド sapcontrol を実行してノード 2 のプロセスリストを取得 ssm コマンド sapcontrol を実行して ERS サービスを起動し、ログを確認 ssm コマンド sapcontrol を実行して ASCS を起動し、ログを確認 ssm コマンド crm_mon を実行してクラスターを停止し、ステータスを確認 ssm コマンド crm_mon を実行してクラスターリソースをクリーンアップ ssm コマンド crm_mon を実行してクラスターを起動し、待機して確認 ssm コマンド sapcontrol を実行してノード 1 の ASCS プロセスリストを取得 ssm コマンド sapcontrol を実行して ASCS サービスを起動し、確認 問題を修復するための推奨事項を要約 SAP ERS サービスを起動するプロンプトの後 ssm コマンド crm を実行して ASCS と ERS クラスターリソースを停止 ssm コマンドを実行してノード 1 と 2 の hosts ファイルを検証および更新 ssm コマンドを実行してノード 1 と 2 のホスト名解決をテスト(最初は更新に失敗したが、別のアプローチで再試行) ssm コマンドを実行して ASCS と ERS の SAP プロファイルを確認 ssm コマンド crm_mon を実行してクラスターリソースをクリーンアップ ssm コマンド sapcontrol を実行して SAP ASCS と ERS リソースを起動し、検証 ASCS と ERS サービスが正常に起動したことを要約 重要な注意事項: 以下のプロンプトと応答は短縮されています。完全なプロンプトと Q CLI からの応答を確認するには、この ユースケース 4 – SAP のRoor Cause Analytics を加速 をダウンロードしてください。 図5. SAP Central Services (ASCS/ERS) エラーステータス プロンプト: SAP アプリケーション SAPDemo の SAP ASCS ERS クラスターノードの現在のステータスは何ですか。 > what is the current status of SAP ASCS ERS cluster nodes for sap application SAPDemo. > I'll check the current status of the SAP ASCS/ERS cluster nodes for the SAPDemo SAP application. 🛠 Using tool: execute_bash (trusted) ⋮ ● I will run the following shell command: aws ec2 describe-instances --filters "Name=tag:Name,Values=*SAP-FIS-CS*" --query "Reservations[*].Instances[*].[InstanceId,Tags[?Key=='Name'].Value|[0],State.Name,InstanceType,PrivateIpAddress]" --output table ⋮ ↳ Purpose: Checking EC2 instances that are part of the SAP cluster ------------------------------------------------------------------------------------------- | DescribeInstances | +----------------------+-------------------------+----------+-------------+---------------+ | i-064751ba1b4c8340f | SAP-FIS-CS-sapclnode2 | running | c5a.xlarge | 10.0.155.180 | | i-0e08f883d5c3b3747 | SAP-FIS-CS-sapclnode1 | running | c5a.xlarge | 10.0.134.80 | +----------------------+-------------------------+----------+-------------+---------------+ ⋮ ● Completed in 1.815s …….. ## Current State Summary The SAP ASCS/ERS cluster for SAPDemo is currently in a degraded state: • The cluster infrastructure (corosync/pacemaker) is functioning correctly with quorum • Both nodes are online and communicating • The virtual IP addresses for both ASCS and ERS are properly assigned • However, the actual SAP services (ASCS and ERS) are failing to start • The application servers are showing YELLOW status, likely due to their dependency on the central services This indicates a problem with the SAP services themselves rather than with the cluster infrastructure. The services may be failing to start due to configuration issues, file system problems, or other SAP-specific issues that need to be investigated further. プロンプト: この問題のトラブルシューティングを手伝ってください。 > help me troubleshoot this problem > I'll help you troubleshoot the issues with the SAP ASCS/ERS cluster for the SAPDemo application. Based on the current state, both the ASCS and ERS services are failing to start properly, even though the cluster infrastructure itself is functioning correctly. Let's take a systematic approach to troubleshooting: ## Step 1: Check SAP-specific error logs First, let's check the SAP system logs to understand why the services are failing to start: 🛠 Using tool: execute_bash (trusted) ⋮ ● I will run the following shell command: aws ssm send-command --instance-ids i-064751ba1b4c8340f --document-name "AWS-RunShellScript" --parameters 'commands=["sudo su - ecdadm -c \"tail -50 /usr/sap/ECD/ASCS10/work/dev_ms\""]' --output json ⋮ ↳ Purpose: Checking SAP system logs for ASCS on node 2 .. > Now let's check the ERS logs: …….. > Based on my troubleshooting, I've identified the root cause of the issues with your SAP ASCS/ERS cluster and can provide you with a comprehensive solution: # SAP ASCS/ERS Cluster Troubleshooting Report ## Root Cause Analysis After thorough investigation, I've identified that the primary issue is related to hostname resolution. The error message MsSInit: NihostToAddr rc=(NIEHOST_UNKNOWN) in the ASCS logs clearly indicates that the Message Server cannot resolve its hostname. ### Specific Issues Identified: 1. Hostname Resolution Problems: • The SAP profiles are configured to use the hostnames ecdascsnode and ecdersnode, but these hostnames were not properly defined in the /etc/hosts files on both nodes. • We've updated the hosts files, but the SAP services are still failing to start properly. 2. IP Address Configuration: • The virtual IPs (192.168.48.201 for ASCS and 192.168.48.202 for ERS) are not being properly managed by the cluster. • Both virtual IPs are currently assigned to node 1 (sapclnode1), which is causing conflicts. 3. SAP Profile Configuration: • The SAP profiles are using hostnames that don't match the actual hostnames of the cluster nodes. • The ERS service is trying to connect to the ASCS service but failing with "Connection refused" errors. プロンプト: 上記のソリューションを適用して問題を修正します。 > apply the above solution to fix the problem > I'll apply the solution to fix the SAP ASCS/ERS cluster issues. Let's follow the step-by-step plan: ## Step 1: Stop the cluster resources > I need to use SSM to execute these commands on the cluster nodes: 🛠 Using tool: execute_bash (trusted) ⋮ ● I will run the following shell command: aws ssm send-command --instance-ids i-0e08f883d5c3b3747 --document-name "AWS-RunShellScript" --parameters 'commands=["sudo crm resource stop rsc_sap_ECD_ASCS10 && sudo crm resource stop rsc_sap_ECD_ERS11"]' --output json ⋮ ↳ Purpose: Stopping the cluster resources using SSM .. > ## Step 2: Verify the hosts file configuration on both nodes …… > Great! The solution has been successfully applied and the SAP ASCS/ERS cluster is now working correctly. Here's a summary of what we did: ## Summary of the Fix 1. Fixed Hostname Resolution: • Updated the /etc/hosts files on both nodes with the correct mappings for all hostnames. • Verified that hostname resolution was working correctly by pinging the virtual hostnames. 2. Cleaned Up and Restarted Cluster Resources: • Stopped the cluster resources to ensure a clean state. • Cleaned up any failed resource actions. • Started the resources in the correct order: ASCS first, then ERS. 3. Verified the Services: • Confirmed that both the ASCS and ERS services are now running correctly. • The system instance list shows all components are GREEN (running). ## Current Status • **Cluster Status**: All resources are running correctly. • **ASCS Status**: The Message Server and Enqueue Server are both running on node 2 (sapclnode2). • **ERS Status**: The Enqueue Replication Server is running on node 1 (sapclnode1). • **Virtual IPs**: The virtual IPs are correctly assigned to the appropriate nodes. ## Recommendations for Long-term Stability 1. Regular Monitoring: Set up monitoring for the cluster to detect any issues early. 2. Failover Testing: Regularly test failover scenarios to ensure the cluster works correctly. 3. Documentation: Document the cluster configuration and troubleshooting steps for future reference. 4. DNS Resolution: Consider implementing proper DNS resolution instead of relying on /etc/hosts files. The SAP ASCS/ERS cluster for the SAPDemo application is now functioning correctly. The issue was primarily related to hostname resolution, which we've fixed by properly configuring the hosts files on both nodes. 図6. 正常な状態の SAP Central Services (ASCS/ERS) クラスターの最終ステータス コスト考慮事項 このソリューションを実装するには、以下を考慮する必要があります: Amazon Q CLI の価格は このリンク に反映されています。月あたり 1,000 のエージェントリクエストを含む Pro バージョン(ユーザーあたり月額 $19)を少なくとも推奨します。 Amazon CloudWatch の価格は このリンク に反映されています。このテストでは、無料利用枠で十分であると想定しています。 AWS Systems Manager の価格は このリンク に反映されています。HA テストでは、最低 6 ノードを管理すると想定でき、$0.01137 * 6 * 8 時間 = $3.27456 となります。 Amazon CloudWatch MCP Server の使用に追加コストはありません。 us-east-1 で SAP Netweaver の HA をセットアップするコストは以下のように見積もられます: 2 x m5.large = $148.16(ASCS と ERS) 2 x m5.xlarge = $280.32(2 つのアプリケーションサーバー) 2 x r5.2xlarge = $756.32(SAP HANA プライマリとセカンダリ) 推定総コスト = $19 + $3.27456 + $39.4933 = $61.76786(1 日のテスト) まとめ CloudWatch MCP Server は、クライアント環境で SAP ランドスケープ全体にわたる統一された可視性を提供します。SAP アプリケーションログ、SAP HANA メトリクス、AWS EC2 パフォーマンスデータを統合します。システムは SAP コンポーネント全体でメトリクスを自動的に相関させます。Q CLI は、この豊富なデータセットとの自然言語インタラクションを可能にすることでこれを補完し、チームがダイアログ応答時間を簡単に調査したり、HANA メモリ消費パターンを比較したり、パフォーマンス問題中に待機状態の SAP ワークプロセスを特定したりできるようにします。 CloudWatch MCP Server は、システムログとトランザクション障害のパターンを分析して異常を特定することで、複雑な SAP インシデントのトラブルシューティングに役立ちます。インフラストラクチャアラートとアプリケーション動作を相関させます。さらに、過去の類似インシデントからの履歴コンテキストを提供します。Q CLI は、SAP エラーコードを解釈し、観察されたパターンに基づいて診断コマンドを生成し、根本原因を提案し、より深い調査のための関連する SAP トランザクションコードを推奨することで、この機能を強化します。 この統合は、SAP システムの共有運用ビューを作成し、SAP 用語と AWS 概念の間を翻訳することで、SAP BASIS 管理者と AWS インフラストラクチャチーム間の知識ギャップを埋めます。この組み合わせにより、コンテキストの切り替えを排除し、SAP 固有のパターンのインテリジェントな分析を提供し、監視データとの自然言語インタラクションを可能にすることで、平均解決時間が短縮され、インシデント解決の高速化、信頼性の向上、AWS 上のミッションクリティカルな SAP ワークロードのより効率的な運用が実現されます。 次のステップとして、このソリューションを試してみてください。このソリューションにより、少なくとも 6 倍の生産性を達成できます。 Amazon CloudWatch 、 AWS Model Context Protocol Servers 、 Amazon Q for command line に関する今後のイノベーションにご期待ください。 SAP on AWS ディスカッションに参加 お客様のアカウントチームと AWS サポートチャネルに加えて、最近 re:Post – AWS コミュニティのための再構想された Q&A エクスペリエンスを開始しました。AWS for SAP ソリューションアーキテクチャチームは、お客様とパートナーを支援するために回答できるディスカッションや質問について、AWS for SAP トピックを定期的に監視しています。サポート関連でない質問がある場合は、re:Post でのディスカッションに参加し、コミュニティナレッジベースに追加することを検討してください。 謝辞 次のチームメンバーの貢献に感謝します:Sreenath Middhi、および Adam Hill。 タグ #SAP Netweaver , AWS Systems Manager , CloudWatch , SAP , SAP High Availability 本ブログは Amazon Q Developer CLI による機械翻訳を行い、パートナー SA 松本がレビューしました。原文は こちら です。
アバター
はじめに 今日の複雑な SAP 環境において、効率的な運用と迅速なトラブルシューティングは、ビジネス継続性にとって極めて重要です。SAP オブザーバビリティ( part-1 英語 )と Amazon CloudWatch Application Insights の機能( part-2 英語 )に関する以前の議論に基づき、この第3回では、チームが SAP ランドスケープを管理する方法を革新する強力なツールの組み合わせを紹介します:Amazon CloudWatch Model Context Protocol (MCP) Server と Amazon Q for command line (Q CLI) です。 この革新的なソリューションは、SAP 運用における3つの主要な課題に対処します: 運用タスクを遅らせる複雑なコマンド構文 複数のツールとコンテキストを必要とする時間のかかる根本原因分析 効率化されたヘルスモニタリングとレポーティングの必要性 このブログでは、以下について説明します: CloudWatch MCP Server と Q CLI がどのように連携して SAP 運用を簡素化するか 自動化されたヘルスレポート作成の実用的なユースケースを実演 自然言語コマンドが日常的なメンテナンスタスクをどのように効率化できるか このソリューションが SAP 向けにAWS Well-Architected Framework とどのように整合しているか シリーズの 第4回 では、メンテナンス計画、高度な根本原因分析、およびこのソリューションを実装するための詳細なコスト考慮事項に焦点を当てます。 図1. Amazon CloudWatch MCP Server と Amazon Q for CLI のアーキテクチャ図 Amazon Q for CLI (Q CLI) とは? Amazon Q CLI は、AI アシスタンスをコマンドラインワークフローに直接統合することで、AWS のお客様に変革的な価値を提供します。ユーザーは自然言語でコマンドを表現でき、Q がそれを適切な CLI 構文に変換するため、学習曲線が短縮されます。このツールは、ユーザーの意図に基づいてコンテキストに応じたコマンド提案を提供し、時間のかかるドキュメント検索を不要にします。エラーが発生した場合、Q は明確な説明と修復手順を提供し、トラブルシューティングを加速します。 コマンドを理解しやすいコンポーネントに分解し、理解とスキル開発を強化します。ユーザーをターミナル環境内に留めることで、Q は外部リソースへの破壊的なコンテキスト切り替えを排除し、ワークフローを最適化します。 この生産性の向上により、構文例の検索やトラブルシューティングの問題に費やす時間が削減され、開発者はコマンド構造に時間を費やすのではなく、構築に集中できます。Q のインタラクティブな性質により、学習プロセスが加速され、ユーザーは AWS CLI により迅速に習熟できます。最終的に、Amazon Q CLI は、コマンドライン体験を潜在的な障壁から直感的なインターフェースに変換し、あらゆる専門知識レベルのお客様にとって AWS サービスをより利用しやすく効率的にします。 図2. Amazon Q CLI プロンプト Amazon CloudWatch Model Context Protocol (MCP) Server とは? Model Context Protocol (MCP) は、開発者ツールが AI モデルとどのように通信するかを革新するオープンソース標準です。コード、ファイル、プロジェクトに関する構造化されたコンテキストを提供することで、MCP は AI アシスタントが正確に調整された提案を提供できるようにします。このプロトコルには、CloudWatch MCP サーバーのような実用的な実装が含まれており、CloudWatch メトリクスとログを開発環境に直接統合します。この統合により、開発者は統合開発環境 (IDE) を離れることなくアプリケーションのトラブルシューティングと監視を行うことができ、運用ワークフローが効率化されます。 AWS Labs CloudWatch MCP Server は、AI トラブルシューティングエージェントと運用データの間のギャップを埋めます。この統合により、AI を活用した根本原因分析と推奨事項が可能になります。カスタム API 統合を必要とせずに CloudWatch テレメトリを使用します。 このサーバーは、運用ニーズに対応する4つの専門ツールを備えています: アラームベースのトラブルシューティング :アクティブなアラームを特定し、履歴パターンを分析して、コンテキストに応じた修復推奨事項とともに根本原因を判断 ログアナライザー :指定された時間枠内で CloudWatch ログ グループの異常とエラーパターンを調査 メトリクス定義アナライザー :計算方法や推奨される統計を含むメトリクスの説明を提供 アラーム推奨事項 :適切なしきい値と評価期間を持つ最適なアラーム構成を提案 CloudWatch MCP Server のツールとは? ユーザーが Q CLI で自然言語を使用してプロンプトを入力すると、CloudWatch MCP サーバーツールが呼び出され、AWS サービスと対話して作業を実行します。このブログでは、SAP ユースケースで呼び出されるこれらのツールと AWS サービスを強調します。クライアントから ‘q’ と入力して Q を起動し、 /tools と /mcp を使用して、環境で利用可能なツールのリストと読み込まれた MCP サーバーを表示できます。 図3. クライアントセッションに読み込まれた CLI サーバーツール 図4. クライアントセッションに読み込まれた CloudWatch MCP サーバー このソリューションは Well-Architected Framework for SAP Lensとどのように整合していますか? 効率化された SAP 運用: Q CLI は、SAP ワークロードをサポートする AWS 運用にエンジニアが自然言語を使用できるようにすることで、SAP 運用手順を変革します。これは、 SAP Lens が強調する、ミッションクリティカルなビジネスシステムの管理における自動化と手動作業の削減と整合しています。SAP インフラストラクチャの CLI コマンドは、シンプルな会話リクエストを通じて生成できます。 加速された SAP トラブルシューティング: この組み合わせにより、SAP コンポーネントのコンテキストに応じた監視データと AI 支援分析を提供することで、SAP インシデントの平均解決時間が短縮され、運用に影響を与えるビジネスクリティカルな障害からの迅速な復旧をサポートします。 統合された SAP オブザーバビリティ: SAP 固有のメトリクス、ログ、アラームをクライアント環境に直接統合することで、コンテキストの切り替えを排除し、複雑な SAP ランドスケープ全体でのエンドツーエンドの監視をサポートします。この統合により、チームはワークフローの中断なしに SAP システムの動作を観察できます。 SAP 変更影響分析: SAP テクノロジースタック全体の運用メトリクスに関する即座のフィードバックを提供することで、チームが変更が SAP システムの安定性にどのように影響するかを理解するのに役立ちます。 SAP レジリエンス検証: このツールは、分散 SAP ランドスケープ全体での SAP 回復メカニズムと障害分離境界の監視、およびビジネスクリティカルなプロセスとトランザクションの信頼性のテストを簡素化します。 SAP アーキテクチャインサイト: Q CLI は、CloudWatch データに基づいて AWS サービスと SAP アプリケーション間の関係を説明でき、チームが SAP アーキテクチャの信頼性に関する洞察を得るのに役立ちます。 SAP ナレッジの民主化: 組織が「コードを使用して SAP を運用する」のに役立ちます。Q CLI のコマンドラインを説明する能力により、チームは適切な情報を持って SAP ランドスケープを効果的に運用し、データ駆動型の意思決定を行うことができます。 前提条件 AWS Launch Wizard for SAP を使用して HA を備えた SAP S/4 HANA システムをデプロイ Amazon CloudWatch Application Insights for SAP に従って SAP フルスタックオブザーバビリティを有効化 Installing Amazon Q for command line の手順に従って Amazon Q CLI をインストール AWS Labs CloudWatch MCP repository の手順に従って PC に CloudWatch MCP Server を構成 configuration settings for the AWS CLI の手順に従って PC に AWS CLI を構成 このソリューションへのアクセスは AWS Identity and Access Management (IAM) で保護されています。また、 Q CLI のセキュリティに関する考慮事項とベストプラクティス 、および Systems Manager のセキュリティベストプラクティス も考慮してください。SAP Basis および AWS インフラストラクチャエンジニアには、最小権限アクセスモデルに従ってください。 ユースケース 1: SAP のヘルスレポートを作成 このユースケースでは、SAP HANA データベースと ABAP SAP Central Services (SAP ASCS) クラスターのヘルスレポートを生成します。Q CLI は、Amazon EC2 インスタンスを検出してヘルスレポートを作成するためのコンテキストに応じたコマンドラインを作成します。このシナリオでは、Q CLI は SAP Central Services のステータスをチェックし、完全なヘルスレポートを作成するために複数のコマンドを実行します: SAP クラスターのヘルスステータスを生成するプロンプト クラスターの一部である aws ec2 describe-instances を実行 ssm コマンド crm_mon を実行してクラスターノードのステータスを確認 ssm コマンドを実行して pacemaker.log を確認 ssm コマンドを実行して corosync.log を確認 ssm コマンドを実行して corosync.log を確認 重要な注意事項: 以下のプロンプトと応答は短縮されています。完全なプロンプトと Q CLI からの応答を確認するには、この ユースケース 1 – SAP のヘルスレポートを作成 をダウンロードしてください。 プロンプト: SAP HANA データベース、データベースクラスタ、および HSR のヘルスレポートを生成します。 > generate a health report for SAP Hana database, database cluster and HSR > # SAP HANA Health Report ## Executive Summary Based on the analysis of CloudWatch logs for the SAP HANA system in the SAPDemo environment, the overall health status is GOOD. The SAP HANA database, cluster infrastructure, and HANA System Replication (HSR) are all functioning properly after recovering from replication issues that occurred on July 11-12, 2025. …… ## Conclusion The SAP HANA database, cluster infrastructure, and HSR are currently healthy and functioning as expected. The system has demonstrated resilience by recovering from previous replication issues. Regular monitoring and proactive maintenance are recommended to maintain system stability and performance. プロンプト: SAP アプリケーション SAPDemo の SAP ASCS ERS クラスタノードの現在のステータスは何ですか。 > what is the current status of SAP ASCS ERS cluster nodes for sap application SAPDemo. > I'll check the current status of the SAP ASCS and ERS cluster nodes for the SAPDemo SAP application. 🛠 Using tool: execute_bash (trusted) ⋮ ● I will run the following shell command: aws ec2 describe-instances --filters "Name=tag:Name,Values=*SAP-FIS-CS*" --query "Reservations[*].Instances[*].[InstanceId,Tags[?Key=='Name'].Value|[0],State.Name,InstanceType,PrivateIpAddress]" --output table ⋮ ↳ Purpose: Checking EC2 instances that are part of the SAP *SAPDemocluster ------------------------------------------------------------------------------------------- | DescribeInstances | +----------------------+-------------------------+----------+-------------+---------------+ | i-064751ba1b4c8340f | SAP-FIS-CS-sapclnode2 | running | c5a.xlarge | 10.0.155.180 | | i-0e08f883d5c3b3747 | SAP-FIS-CS-sapclnode1 | running | c5a.xlarge | 10.0.134.80 | +----------------------+-------------------------+----------+-------------+---------------+ ⋮ ● Completed in 1.737s …… ## Conclusion The SAP ASCS/ERS cluster for the *SAPDemo application is functioning properly with the expected resource distribution: • ASCS (Central Services) is active on sapclnode2 • ERS (Enqueue Replication Server) is active on sapclnode1 • Both nodes are online and healthy • The cluster has quorum and is properly configured for high availability This is the expected configuration for an SAP high-availability setup, where ASCS and ERS run on separate nodes to ensure enqueue replication functionality in case of a node failure. The cluster is operating normally and no immediate action is required. 複雑な運用の場合、Q CLI は複数ステップの手順をガイドし、MCP はシステム状態に関するリアルタイムのフィードバックを提供します。 ユースケース 2: SAP 運用を簡素化 次のユースケースは、SAP アプリケーションサーバーのメンテナンスです。Q CLI は、日常的なメンテナンスタスクのランブックを生成することで、日々の SAP 管理を効率化します。SAP BASIS 管理者は、Q CLI を使用して管理タスクを管理しながら、メンテナンスウィンドウ中に CloudWatch MCP サーバーを通じてシステムステータスをリアルタイムで監視できます。このシナリオでは、Q CLI は次のようにタスクリストを作成しました: App Server のステータスを確認するプロンプト aws ec2 describe-instances を実行して SAP アプリケーションサーバーを確認 ssm コマンド ps を実行して SAP ディスパッチャーとダイアログプロセスを確認 ssm コマンド sapcontrol を実行してシステムステータスを取得 SAP アプリケーションサーバーが停止していることを要約 SAP アプリケーションサーバーを起動するプロンプトの後 ssm コマンド sapcontrol を実行して SAP アプリケーションサーバーを起動 ssm コマンド sapcontrol を実行してプロセスのステータスを確認 ssm コマンド ps を実行して SAP ダイアログプロセスを確認 ssm コマンド sapcontrol を実行してシステムステータスを取得 SAP アプリケーションサーバーが起動したことを要約 重要な注意事項: 以下のプロンプトと応答は短縮されています。完全なプロンプトと Q CLI からの応答を確認するには、この ユースケース 2 – SAP 運用を簡素化 をダウンロードしてください。 プロンプト: アプリケーションサーバー sapbaseaas1 の SAP のステータスを取得します。サーバーを起動せず、SAP プロセスの現在のステータスのみを報告してください。 > get status of sap in application server sapbaseaas1. Do not start the server, Only report on current status of SAP process. > I'll check the current status of SAP processes on the application server sapbaseaas1 without starting the server. 🛠 Using tool: execute_bash (trusted) ⋮ ● I will run the following shell command: aws ec2 describe-instances --filters "Name=tag:Name,Values=*sapbaseaas1*" --query "Reservations[*].Instances[*].[InstanceId,Tags[?Key=='Name'].Value|[0],State.Name,PrivateIpAddress]" --output table ⋮ ↳ Purpose: Finding the instance ID for sapbaseaas1 .. > Now I'll check the current status of the SAP processes on the running sapbaseaas1 server: …….. ## Conclusion The SAP application server sapbaseaas1 is currently stopped. While the EC2 instance itself is running and the SAP support processes are active, the actual SAP application instance (dialog instance) is not running. No work processes are active, and the instance is showing as GRAY in the system status. The instance would need to be started to become operational and process SAP transactions. 次のシナリオでは、SAP BASIS 管理者は CLI から Amazon Q に SAP アプリケーションサーバー、関連する SAP サービスを起動し、SAP アプリケーションのステータスを報告するよう依頼します。Q CLI の execute_bash ツールは、リクエストを満たすために 8 つの SSM コマンドを実行します。 プロンプト: SAP アプリケーションサーバー sapbaseaas1 で SAP を起動します。 > start SAP on the SAP application server sapbaseaas1 > I'll start the SAP application on the sapbaseaas1 server. 🛠 Using tool: execute_bash (trusted) ⋮ ● I will run the following shell command: aws ssm send-command --instance-ids i-0539ecbaf407c4886 --document-name "AWS-RunShellScript" --parameters 'commands=["sudo su - ecdadm -c \"sapcontrol -nr 00 -function Start\""]' --output json ⋮ ↳ Purpose: Starting SAP instance on sapbaseaas1 .. > Now let's check if the SAP instance has started successfully: …….. ## Conclusion The SAP application server sapbaseaas1 is now fully operational. All required processes are running, and the instance is properly integrated with the SAP system. The instance is ready to handle user workloads and process SAP transactions. まとめ CloudWatch MCP Server は、クライアント環境で SAP ランドスケープ全体にわたる統一された可視性を提供します。SAP アプリケーションログ、SAP HANA メトリクス、AWS EC2 パフォーマンスデータを統合します。システムは SAP コンポーネント全体でメトリクスを自動的に相関させます。Q CLI は、この豊富なデータセットとの自然言語インタラクションを可能にすることでこれを補完し、チームがシステムログを簡単に生成し、SAP システム運用を簡素化できるようにします。これは、SAP システムランドスケープの実行と保守の生産性を向上させるために、AWS Well-Architected Framework とよく整合しています。 次のブログ では、CloudWatch MCP Server と Q CLI を活用してメンテナンスイベントを計画し、SAP の根本原因分析を加速する方法、およびソリューションのコスト考慮事項について詳しく説明します。 次のステップとして、このソリューションを試してみてください。このソリューションにより、少なくとも 6 倍の生産性を達成できます。 Amazon CloudWatch 、 AWS Model Context Protocol Servers 、 Amazon Q for command line に関する今後のイノベーションにご期待ください。 SAP on AWS ディスカッションに参加 お客様のアカウントチームと AWS サポートチャネルに加えて、最近 re:Post – AWS コミュニティのための再構想された Q&A エクスペリエンスを開始しました。AWS for SAP ソリューションアーキテクチャチームは、お客様とパートナーを支援するために回答できるディスカッションや質問について、AWS for SAP トピックを定期的に監視しています。サポート関連でない質問がある場合は、re:Post でのディスカッションに参加し、コミュニティナレッジベースに追加することを検討してください。 謝辞 次のチームメンバーの貢献に感謝します:Sreenath Middhi、および Adam Hill。 タグ #saponaws , AWS Systems Manager , CloudWatch , SAP 本ブログは Amazon Q Developer CLI による機械翻訳を行い、パートナー SA 松本がレビューしました。原文は こちら です。
アバター
はじめに SAPシステムの適切な負荷テストを実施することは、ピーク使用時にシステムがビジネスのパフォーマンスと信頼性の期待に応えられることを保証する主要な要因です。負荷テストが必要となる典型的なシナリオには、新しい会社/国の展開、ECCからS/4HANAへのソフトウェアリリースアップグレード、アプリケーションパッチ(例:サポートパッケージ)、S/4HANA変革プロジェクト、またはSAP RISEへの移行があります。このような大規模な変更後の安定した運用を確保するため、潜在的なパフォーマンス関連の問題を回避するために、本番カットオーバー前に負荷テストを実行することが推奨されます。このブログでは、オンプレミスまたはRISEにデプロイされたSAP ERPシステムに異なるタイプの負荷を注入するために、AWS上で負荷テストプラットフォームを実装し使用する方法を学びます。 SAP負荷テストとは? SAPにおける負荷テストは、重負荷条件下でのシステムの動作を測定するために、システムに様々なタイプの負荷を体系的に注入することです。このプロセスは、複数の同時ユーザーがシステムに同時にアクセスし、様々なSAPトランザクションを実行し、大量のデータを処理し、ビジネスクリティカルなプロセスをテストしながら、適切なパフォーマンス評価のためにレスポンス時間とリソース使用率を測定することをシミュレートします。 負荷テストの重要性 SAP負荷テストの重要性は、いくつかの重要な理由から過小評価することはできません。ビジネス継続性の観点から、ピークビジネス時間中のシステムクラッシュを防ぎ、月末締めプロセスなどの重要なビジネスがスムーズに実行されることを保証し、ユーザーの生産性と満足度を維持します。 リスク軽減の観点では、負荷テストは運用に影響を与える前にパフォーマンスのボトルネックを特定し、コストのかかるシステムダウンタイムを防ぎ、データ処理エラーのリスクを軽減します。リソース最適化については、最適なハードウェア要件を決定し、容量計画を支援し、パフォーマンスチューニングの領域を特定します。コスト削減に関しては、適切な負荷テストはリソースのオーバープロビジョニングを防ぎ、予期しないメンテナンスコストを削減し、ビジネスの中断を最小限に抑えます。適切な負荷テストなしでは、組織は重要なビジネス期間中のシステム障害、システムダウンタイムによる収益損失、ユーザー生産性の低下、ビジネス評判の損傷、メンテナンスコストの増加のリスクを負います。 従来の負荷テストの課題 負荷テストの状況は近年大きな変革を遂げています。確立されたツール(例:Tricentisが提供するLoadRunnerを含むテスト自動化スイート)は長い間SAPエコシステムの定番ソリューションでしたが、その従来のアプローチには、多くの組織が正当化することがますます困難になっている相当な要因が伴います。従来の負荷テストツールは、ライセンス、インフラストラクチャ、専門スキルの観点から調達と運用が高価であることが多いです。 AWSによるサーバーレス負荷テスト 現代の負荷テストアプローチは、特にAWSネイティブサービスを使用して、サーバーレスアーキテクチャを採用するように進化しています。 AWS Lambda 、 Amazon EventBridge 、 AWS Batch 、 AWS Fargate 、 AWS Step Functions 、 AWS Systems Manager 、 Amazon CloudWatch などのサービスを活用することで、組織はSAPシステム向けのスケーラブルでコスト効率的な負荷テストソリューションを作成できます。このサーバーレスアプローチにより、専用のテストインフラストラクチャを維持する必要がなくなり、オンデマンドでのテスト実行が可能になります。AWS Step Functionsによるテストシナリオのオーケストレーションと、テスト結果を保存する Amazon S3 または Amazon DynamoDB の組み合わせにより、詳細なパフォーマンスメトリクスと洞察を提供しながら数千の同時ユーザーをシミュレートできる堅牢で自動化されたテストフレームワークが作成されます。 サーバーレス負荷テストの利点は大きく、従量課金制の価格モデル(以下で詳述するように、多くのサービスがAWS無料利用枠に含まれます)、インフラストラクチャメンテナンスゼロ、 自動スケーリング機能 、テストのセットアップと実行の複雑さの大幅な軽減があります。 負荷テストを実行するタイミング SAP負荷テストは、SAPのお客様が考慮すべき全体的な非機能テストの重要な部分です。負荷テストは、新しいSAP実装の本稼働前、主要なシステムアップグレードやパッチ適用後、新しいビジネスプロセスの追加時、年末締めなどのピークビジネス期間前、ビジネス成長の計画時に実行すべきです。 月末や年末の財務締めなど、例外的なシステム負荷を生成する計画されたビジネスイベントは、スムーズな運用を確保するために事前のパフォーマンス評価が必要です。さらに、組織が新しいビジネスエンティティを統合したり、新しい複雑なプロセスを実装したりする計画がある場合、負荷テストは増加した複雑さと量を処理するシステムの能力を検証するために不可欠になります。 一貫したシステムパフォーマンスを維持するために、組織は変更管理戦略内に負荷テストを組み込むべきです。この体系的なアプローチは、アプリケーションの変更が本番環境に影響を与える前に、潜在的なパフォーマンスへの影響を特定するのに役立ちます。自動化されたテスト機能を統合することで、組織は将来のアップグレードと統合を通じて品質を維持するための基盤を確立しながら、システムパフォーマンスをより効率的に検証できます。パフォーマンステストに対するこの積極的な姿勢は、最終的にシステムの信頼性とSAPランドスケープ全体での最適なユーザーエクスペリエンスを確保するのに役立ちます。 ソリューションアーキテクチャ SAP on AWS Native 図1:SAP on AWS Nativeアーキテクチャ RISE with SAP 図2:RISEアーキテクチャ 注:RISE内で実行されているSAPシステムからOSメトリクスを抽出するために、いくつかのコード調整が必要な場合があります テストシナリオ RISE環境 アプリケーションテスト 図3:RISE負荷テストタイプ HANAデータベース負荷テスト この オープンソースソリューション は、SAP HANAシステム向けの現実的なデータベースワークロードを生成し、k6-sqlモジュールとk6スクリプト機能を使用して大規模なデータベース挿入/更新/削除SQL操作を注入します。以下は例です: import sql from "k6/x/sql"; import driver from "k6/x/sql/driver/hdb"; import secrets from 'k6/secrets'; const db = sql.open(driver, `hdb://${username}:${password}@${hanaHost}:${hanaPort}`); export function setup() { db.exec(` CREATE COLUMN TABLE test_table ( A INT GENERATED BY DEFAULT AS IDENTITY, B TEXT, C TEXT, D TEXT ); `); } export default function () { // first insert let insert_result = db.exec(` INSERT INTO test_table (B, C, D) VALUES ('test', 'test', 'test'); `); console.log("Row inserted"); // then select let selectResult = db.query(` SELECT * FROM test_table LIMIT 10; `); console.log(`Read ${selectResult.length} rows`); } export function teardown() { db.exec(`DROP TABLE test_table;`); db.close(); } HANAネイティブとAmazon CloudWatchに基づく監視コンポーネントは、トランザクションスループットとレスポンス時間に焦点を当て、システム全体の詳細なリソース使用パターンを取得します。エラー率とパフォーマンスボトルネックを分析しながら、メモリとCPUへの影響に関する洞察を提供します。 SAP FioriとIDoc負荷テスト 高ボリュームのIDoc処理をテストするために設計された k6ベース のフレームワークで、堅牢なビジネス文書交換機能を確保します。システムは、販売注文などの様々な文書タイプ(idocの例については コードリポジトリ を参照)の動的IDocペイロード生成をサポートし、ランプアップ、持続、ピークテストフェーズを含む設定可能な負荷パターンを提供します。AWS CloudWatchとの深い統合により、メトリクス収集と閾値ベースのパフォーマンス検証が可能になります。 同様に、SAP Fioriフロントエンド経由の複数の並列エンドユーザーインタラクションを同じアプローチを使用してシミュレートし、システムが重負荷状態に入ったときのエンドユーザーエクスペリエンスをテストできます。 パフォーマンス監視は2つの主要な領域に焦点を当てています。第一に、FioriアクセスまたはIDoc処理パフォーマンスは、スループット率、処理時間、負荷下でのキューの動作、エラーパターンを追跡しながら、エンドツーエンドの処理を検証します。第二に、システム影響分析は、SAPレスポンス時間、データベースパフォーマンス、ネットワーク使用率、全体的なリソース消費パターンを調査します。k6データベースシナリオと同様に、JavaScriptスクリプトを使用してSAPシステムに販売注文idocを注入したり、SAP Fioriユーザーインタラクションをシミュレートしたりできます: import http from 'k6/http'; import { check, sleep } from 'k6'; import { Rate } from 'k6/metrics'; import encoding from 'k6/encoding'; import secrets from 'k6/secrets'; //get information from secret const username = await secrets.get('username'); const password = await secrets.get('password'); const sapClient = await secrets.get('sapClient'); //get baseUrl from environment variable const sapBaseUrl = __ENV.SAP_BASE_URL //set the sap client in url parameter let sapClientStringParameter="" if (sapClient.match(/^[0-9]{3}$/)) { sapClientStringParameter=`?sap-client=${sapClient}` } // define your url path const urlPath="/sap/bc/idoc_xml" //build the final url const url = `${sapBaseUrl}${urlPath}${sapClientStringParameter}`; //start your load test logic const xmlfile = open('./sample_idoc_ID1.xml'); const todayDate = new Date().toISOString().slice(0, 10); const newDate = todayDate.replace("-","") export const successRate = new Rate('success'); export const options = { vus: 5, duration: '60s', insecureSkipTLSVerify: true, }; export default function () { const data = getAndConvertIdocXml(); const credentials = `${username}:${password}`; const encodedCredentials = encoding.b64encode(credentials); const httpOptions = { headers: { Authorization: `Basic ${encodedCredentials}`, "Content-Type": 'text/xml' }, }; check(http.post(url, data, httpOptions), { 'status is 200': (r) => r.status == 200, }) || successRate.add(1); sleep(5); } function getAndConvertIdocXml() { let result = xmlfile.replace("{{GENERATED_IDOC_NUMBER}}", Math.floor(Math.random() * 100000000000000)) result = result.replace("{{GENERATED_MESSAGE_ID}}", Math.floor(Math.random() * 100000000000000)) return result } サンプルxml idoc構造は、トランザクションWE19(idocテストツール)を介して生成できます。idocが生成されたら、xmlは負荷テストスクリプトの実行時にランタイムで埋められる文字列プレースホルダーGENERATED_IDOC_NUMBER、GENERATED_MESSAGE_IDを持つテンプレートに変換する必要があります。 注: ステータス53 (アプリケーション文書が投稿済み)でのインバウンドIDoc処理を成功させるために、SAPシステムに応じて送信者/受信者とパートナー番号/ポートが正しい値で設定されるなど、適切な ALE設定 を実行することを確認してください。 両方のテストアプローチは、現実的なビジネスプロセスシミュレーションとスケーラブルなテストシナリオを通じて大きな利点を提供します。包括的な監視フレームワークは、コスト効率的なオープンソースツールと組み合わされ、可視性と制御の向上のためのAWSサービスとの深い統合を提供します。 SAP on AWS Native環境 RISE環境オプションに加えて、SAPをAWS上でネイティブに実行する場合、以下のテストを実行できます。 インフラストラクチャテスト 図4:インフラストラクチャ負荷テストタイプ この図は、異なるインフラストラクチャ側面に焦点を当てた、AWS上のSAPシステムの3つの主要なテストシナリオを示しています: コンピュートテストシナリオ: このシナリオは、オペレーティングシステムツールを使用した体系的なストレステストを通じて、SAPシステムのコンピューティング能力を評価します。CPU負荷シミュレーションでは、 AWS Fault Injection Simulator (FIS)と同様に、’ stress-ng ‘などのツールを使用して正確なCPU使用率パターンを生成します。例えば、stress-ngを使用してすべてのコアで75%のCPU負荷を維持したり、利用可能なRAMの80%を消費するメモリストレステストを行います。チュートリアルは こちら で見つけることができます。これらのツールは、SAP固有のパフォーマンスメトリクス(例:sapsocol / Workload Monitorによって収集される)と組み合わされ、IntelとAMDプロセッサ間のインスタンスタイプ比較に関する包括的な洞察を提供し、特定のSAPワークロードに最適なコンピュート設定の決定を支援します。テスト方法論には、段階的な負荷増加、持続的な高使用率期間、様々な計算ストレス条件下でのシステム動作の監視が含まれます。 ストレージテストシナリオ: このシナリオは、 Flexible I/O (FIO)テスターを使用した包括的なテストを通じて、ストレージパフォーマンスの最適化に焦点を当てています。FIOは、ランダム読み取り/書き込みテスト、シーケンシャル読み取りパフォーマンス、EBSボリュームのIOPSテストなど、様々なテストパターンを通じてストレージパフォーマンス特性の正確な測定を可能にします。AWS上でのFIOベンチマークの詳細については、この リンク を参照してください。FIOテストは、異なるEBSボリュームタイプ(例:gp3 vs io2)で実行され、以下を分析します: 最大スループット能力 様々なワークロード下でのIOPSパフォーマンス 異なるキュー深度でのレイテンシパターン 持続的負荷下でのストレージシステムの動作 ネットワークテストシナリオ: このシナリオは、SAPシステムのパフォーマンスに影響を与える重要なネットワークパラメータを測定することで、ネットワークパフォーマンスと接続性を調査します。主要な機能は、Linuxの’ tc ‘(トラフィック制御)などのオペレーティングシステムコマンドを使用したネットワーク遅延シミュレーションです。これにより、人工的なレイテンシ、パケット損失、帯域幅制限を導入することで、ネットワーク条件を正確に制御できます。例えば、’tc qdisc’などのコマンドを使用することで、以下を含む実世界のネットワーク条件のシミュレーションが可能になります: 特定のレイテンシ値の導入(例:300ms遅延) パケット損失シナリオのシミュレーション(例:5%パケット損失) 帯域幅スロットリング条件の作成 ネットワーク通信でのジッターの実装 これらのネットワーク障害シミュレーションは、様々なネットワーク条件下でのSAPシステムの動作に関する貴重な洞察を提供します。このアプローチは、組織がSAPシステムのネットワーク問題に対する回復力を理解し、それに応じてネットワーク設定を最適化するのに役立ちます。このシナリオは、SAP相互接続システム(例:ERP BW)間で追加のレイテンシを導入し、ERPがオンプレミスで実行され、BWがAWSに移行される移行プロジェクトをシミュレートすることで、データ抽出プロセスを測定するために使用できます。 負荷テスト監視 リアルタイム監視オプション CloudWatchダッシュボード カスタムAmazon CloudWatchダッシュボードは、インフラストラクチャメトリクス、アプリケーションパフォーマンスデータ、カスタムテストメトリクスを包括的な視覚化に組み合わせて、統一されたビューで重要なパフォーマンスメトリクスを表示します。主要パフォーマンス指標は論理グループに整理されています:SAP運用チーム向けのダイアログとデータベースレスポンス時間、システムダンプ数、アクティブユーザーなどのSAP技術メトリクス、およびインフラストラクチャ運用チーム向けのCPU、メモリ使用率、ストレージIOPSとスループットなどのOSメトリクス。ダッシュボードは、事前定義された閾値に基づく自動アラート機能を備えており、テスト実行中のパフォーマンス問題に対する積極的な対応を可能にします。履歴データ保持により、トレンド分析と異なるテスト実行間のパフォーマンス比較が可能になり、容量計画とシステム最適化のための貴重な洞察を提供します。 図5:負荷テスト中のCloudwatchダッシュボードメトリクス Amazon Managed Grafana(オプション) CloudWatchダッシュボードの代替または補完として、Amazon Managed Grafanaは強化された視覚化機能とより深い分析機能を提供します。このサービスは、高度なデータ相関とカスタムメトリクスを通じて監視エクスペリエンスを向上させ、事前構築されたパネルとカスタムパネルの両方で豊富な視覚化オプションを提供します。クロスアカウントとクロスリージョンのメトリクス集約をサポートし、複雑なSAPランドスケープの包括的な監視を可能にします。チームベースのアクセス制御とダッシュボード共有により、異なるステークホルダーグループ間でのコラボレーションが促進され、AWSサービス(このシナリオではAmazon CloudWatch)と外部データソースとのネイティブ統合により監視機能が拡張されます。リアルタイムメトリクス探索とアドホック分析機能は、パフォーマンス問題の即座の調査をサポートし、Infrastructure as Codeによる自動化されたダッシュボードプロビジョニングによって補完されます。組み込みのアラートと通知チャネルにより、パフォーマンス異常への適時な対応が保証されます。CloudWatchメトリクスとGrafana視覚化の組み合わせにより、リアルタイム運用監視と長期パフォーマンス分析の両方をサポートする強力な監視エコシステムが作成され、SAPシステム最適化のためのデータ駆動型意思決定が可能になります。 図6:負荷テスト中のGrafanaダッシュボードメトリクス どちらの場合も、SAP Netweaver固有のメトリクスは、このオープンソースソリューションを使用してCloudwatchで収集できます。 負荷テストワークフロー オーケストレーションと実行フロー ワークフローは、SAPシステム負荷テストを実行し監視するために、AWSサービス全体で構造化されたイベントシーケンスに従います: テスト開始: Step Functionが専用のWebアプリケーションUIでのエンドユーザー入力に基づいてテストワークフローを開始し、テスト実行と監視を制御するステートマシンを通じて全体のプロセスをオーケストレートします。入力ペイロードは、どのシナリオが実行されるか(SAP、HANA、またはインフラストラクチャ)を決定します。 テスト実行: AWS Secrets Managerを介して認証する特定のLambda関数が負荷テストシナリオを実行します。関数には特定のテストシナリオのロジックとパラメータが含まれています。 システムアクセス: AWS Systems ManagerとFargateがVPC内のSAPランドスケープへの安全なアクセスを提供し、以下でのテスト実行を可能にします: アプリケーションレベルテスト用のSAPアプリケーションサーバー データベースレベルテスト用のSAP HANAデータベース CPU、メモリ、ストレージ、ネットワークテスト用のオペレーティングシステムレベル 監視とデータ収集: Amazon CloudWatchがテスト実行からパフォーマンスメトリクスを収集・処理し、すべてのSAPコンポーネントとインフラストラクチャ要素からデータを収集します。 リアルタイム視覚化オプション: リアルタイム監視用の直接CloudWatchダッシュボード 高度な視覚化と分析用のAmazon Managed Grafana(オプション)、認証用のAWS IAM Identity Center(AWS Single Sign-Onの後継)とのオプション統合 長期データ処理と分析: パフォーマンスメトリクスはAmazon S3に保存されます AWS Glueがデータを処理・変換します Amazon AthenaがSQLベースの結果分析を可能にします Amazon QuickSight(オプション)がパフォーマンス洞察と視覚化を生成します エンドユーザーエクスペリエンスをさらに改善し合理化するために、 Amazon Cognito を介して安全に認証されたユーザーが負荷テストを直接開始し、ステータスを監視できるReactアプリケーションが開発されました。これは Amazon CloudFront でホストされ、 Amazon API Gateway を通じてStep Functionワークフローと相互作用します。 このワークフローは、VPC分離と適切なアクセス制御を通じてセキュリティを維持しながら、包括的なテスト実行、監視、分析を保証します。 実装 今日から始めましょう: GitHub リポジトリ をクローンする ステップバイステップのデプロイメントガイドに従う SAPシステムで最初の負荷テストを実行する – セットアップから結果まで – 60分以内に! コスト サービス コスト 説明 Step Functions 無料利用枠 月間4,000回の無料ステート遷移を含む Lambda 無料利用枠 月間100万回の無料リクエストと400,000 GB秒のコンピュート時間 Secrets Manager 月額$0.40 ユーザー認証情報とその他のパラメータを保存するために1つのシークレットが必要 Systems Manager 無料 実行コマンドに追加料金なし CloudWatch $3.00 基本監視メトリクス + 10カスタムメトリクス CloudFront 月額$0.12 Cognito 月額$6.22 5ユーザー、月間100トークンリクエスト、1アプリクライアント ECR 月額$0.07 2イメージ、月間合計750 MB Fargate 月額$6.32 16 vCPU 16 GBメモリ、月間ポッドあたり10タスク、60分間の実行時間 API Gateway 月額$0.35 月間10,000 REST APIリクエスト S3 無料利用枠 S3 Standardで5GBストレージ、20,000 GETリクエスト、2,000 PUT/COPY/POST/LISTリクエスト、月間100 GBデータ転送アウト Glue 無料利用枠 保存される最初の100万オブジェクトは無料 Athena 月額$0.29 1日20クエリ、クエリあたり100 MBスキャンデータ Managed Grafana 月額$9.00(オプション) 1エディター、5ユーザー QuickSight 月額$33(オプション) 5ユーザー 合計 Grafana / QuickSightなしで月額$16.77 QuickSightありで月額$25.77 GrafanaとQuickSightありで月額$58.77 レポートのみが必要な場合は、QuickSightを使用できます。Grafanaの代替として、CloudWatchダッシュボードも使用できます(いくつかの制限があります) コストの詳細については、 このリンク でご確認ください。 結論 この包括的なブログ投稿では、AWSサーバーレスサービスを活用してSAP負荷およびパフォーマンステストを実行する方法を探求しました。クラウドネイティブサービスを採用することで、深い実用的なメトリクスを収集しながらSAP環境の広範囲な負荷テストを実施する効率的でコスト効率的なアプローチを実証しました。私たちのアプローチは、現代のクラウド機能が従来のパフォーマンステストを、SAPデプロイメントのためのよりスケーラブルで、コスト効率的で、データ駆動型のプロセスに変革する方法を示しています。 AWS for SAPブログ を読んで、SAP投資からより多くを得る方法についてのインスピレーションを得てください。今日からAWS上でSAPを始めて、SAPランドスケープで負荷テスト戦略を開始しましょう! SAP on AWSディスカッションに参加 お客様のアカウントチームとAWSサポートチャネルに加えて、AWSは re:Postサイト で公開の質問回答フォーラムを提供しています。私たちの AWS for SAP ソリューションアーキテクチャチームは、お客様とパートナーを支援するために回答できるディスカッションと質問について、AWS for SAPトピックを定期的に監視しています。質問がサポート関連でない場合は、re:Postでのディスカッションに参加し、コミュニティナレッジベースに貢献することを検討してください。 本ブログはAmazon Q Developer CLIによる機械翻訳を行い、パートナー SA 松本がレビューしました。原文は こちら です。
アバター
フィールドサービス業務のデジタル変革により、資産の生成が指数関数的に増加し、それに伴いストレージ要件も増大しています。 SAP Field Service Management (SAP FSM)を使用する組織は、フィールドサービス技術者が取得するデジタル資産の管理において、ますます大きな課題に直面しています。これらの資産には、機器の写真、フォーム、顧客の署名、その他現場で管理される重要な資産が含まれます。この投稿では、 Amazon Web Services (AWS)を活用して、 SAP Clean Core Extensibility の原則に従いながら、SAP FSM向けのスケーラブルでコスト効率的な添付ファイルストレージソリューションを作成する方法を実証します。 概要 フィールドサービス業務では、日常的な活動を通じて大量の添付ファイルが生成されます。SAP FSMは ネイティブストレージ機能を提供 していますが、組織はしばしばより多くのストレージ容量と、コンプライアンス上の理由でデータ所有権を維持しながら他のビジネスプロセスとの統合を可能にする、より柔軟でコスト効率的なソリューションを必要とします。SAP FSMを組織のAWSインフラストラクチャと統合することで、このソリューションは企業がデータの制御を維持しながら、現場で作成された資産から最大の価値を抽出するための高度な処理と分析を可能にします。 このブログで提案する統合により、組織はSAP FSMで生成された添付ファイルを自社のAWSアカウント内の Amazon Simple Storage Service (S3)バケットに保存し、データ所有権を強化し、SAP FSMでのデータフットプリントを削減できます。さらに、組織は Amazon Textract によるテキスト抽出、 Amazon Rekognition による画像分析、 Amazon Comprehend による自然言語処理などのAWSサービスを活用して、保存された添付ファイルに対する追加のデータ処理と分析を実装できます。これらの資産を完全に制御することは、 Large Language Models (LLM)と Knowledge Base 統合を活用して、他のサービスやフィールドプロセスで価値のある文脈化された洞察を得るための、より複雑なソリューションを強化する出発点でもあります。 仕組み プロセスは現場から始まります。サービス技術者が顧客サイトでの作業を完了します。SAP FSMアプリケーションを搭載したモバイルデバイスを使用して、重要な文書を取得します。修理された機器の写真、顧客フォーム、または詳細なサービスレポートなどです。FSMアプリケーションで「アップロード」をタップすると、文書が組織内で安全にアクセス可能に保存されるよう設計された一連のイベントが開始されます。 (図1:仕組み) 添付ファイルがSAP FSMに到着すると、システムのビジネスルールエンジンが即座にこの新しいコンテンツを検出します。添付ファイル処理用の特定のルールで構成されたエンジンが動作を開始します。 ビジネスルールは添付ファイルに関する重要な情報を抽出します。 これには、一意の識別子、ファイル名、説明、タイムスタンプ、およびサービスコールとの関係が含まれます。その後、ビジネスルールは添付ファイルのメタデータを含むHTTPS要求を、顧客のAWS環境内の専用APIエンドポイントに送信します。このAPIは Amazon API Gateway 上に構築され、SAP FSMテナント用の一意のAPIキーで保護され、SAP FSM環境へのIP許可リストが設定されています。 メタデータを受信すると、APIはそれを Amazon EventBridge (EventBridge)に公開します。このイベントの処理は、 AWS Lambda (Lambda)関数である添付ファイルプロセッサによって非同期的に行われます。この関数は、いくつかの重要なタスクを順次実行します。まず、 AWS Secrets Manager に保存された OAuth2 認証情報を使用してSAP FSMで認証を行います。認証が完了すると、SAP FSMの添付ファイルAPIを使用して実際の添付ファイルコンテンツを取得します。その後、関数はこのコンテンツを処理し、元のメタデータで強化し、すべてを指定されたS3バケットに保存します。適切な暗号化とアクセス制御で構成されたS3バケットは、添付ファイルの安全で長期的な保存場所として機能します。 詳細なアーキテクチャ図は以下の通りです: (図2:リファレンスアーキテクチャ) このソリューションにより、FSMの顧客は添付ファイルのAmazon S3バックアップに関する運用メトリクスを表示でき、 SAP FSM拡張機能 としてインストールできます。 この拡張機能は、Reactで構築されたWebページで、Amazon CloudFrontとAmazon S3でホストされています。SAP FSM管理者は、CloudFrontディストリビューションのURL(各SAP FSMテナントには独自のものがあります)を使用して、SAP FSM拡張機能カタログから直接この拡張機能を簡単にインストールできます。この拡張機能は、S3ストレージメトリクスへのリアルタイムの可視性を提供します。この組み込みの Amazon CloudWatch ダッシュボードにより、管理者はS3バケット内の総オブジェクト数、現在のストレージ使用率、エラー率と失敗した操作、バックアップ完了ステータス、データ転送メトリクスなどの重要なメトリクスを監視できます。 拡張機能はユーザーのブラウザ内で実行されるため、対応するAPIメソッドはAPIキー認証やIP許可リストを使用できません。代わりに、拡張機能はSAP FSMとAWSを統合するために開発した新しい認証パターンを使用します。拡張機能は(すべてのSAP FSM拡張機能と同様に)SAP FSM内で HTML iframe として実行され、 SAP FSM SDK を使用して、拡張機能はユーザー用の 短期間トークン(JWT) を取得できます。このトークンには、ユーザーとテナントコンテキストに関する詳細が含まれ、SAP FSMによって暗号学的に署名されています。その後、トークンは拡張機能からAWS API Gatewayへの要求を承認するために使用されます。この目的のために、ソリューションには別のLambda関数であるカスタム認証機能が含まれています。このLambda関数は、 aws-jwt-verify ライブラリを使用してトークンを検証し、テナントの詳細(アカウントIDと会社ID)と暗号学的署名をチェックします。サンプル実装はすべての有効なトークンを受け入れ、例えばSAP FSMがトークンに設定する`permission_group_id`クレームに基づいて、きめ細かい認証を追加するように簡単に拡張できます。 はじめに このソリューションを開始するには、この GitHubリポジトリ で利用可能な手順を参照してください。実装の高レベルステップには以下が含まれます: 前提条件を確認し、必要なAWSとSAP FSMアクセスがあることを確認する お客様のリージョンで提供されたCloudFormationテンプレートを使用してソリューションをデプロイする SAP FSMでOAuth2認証情報を設定する SAP FSM拡張機能マーケットプレイスで拡張機能をインストールおよび設定する 提供されたCloudWatchダッシュボードを通じて実装を監視する コスト概要 ソリューションのデプロイと使用に関連するコストは、主にFSMで作成される添付ファイルの量に関連しています。テスト目的では、コストは最小限で、月額1ドル未満です。 実際の本番シナリオでは、以下の前提に基づく簡単な計算を示します: 前提 値 詳細 SAP FSMで作成される添付ファイル数(FSMエージェント) 100,000 月あたり 添付ファイルの容量(GB) 100 月あたり 拡張機能UIのHTTPリクエスト数(FSM管理者ユーザー) 10,000 月あたり AWSリージョン eu-central-1 (フランクフルト) 通貨 USD 米ドル (表1:コスト計算の前提) これにより以下の結果となります: 月額総コスト:6.81 USD 年額総コスト:81.72 USD コストの内訳は以下の通りです(完全な計算は こちら ): 説明 AWSサービス 月額(USD) 年額(USD) ディストリビューション Amazon CloudFront 0.23 2.76 S3バケット(Webアプリ) S3 Standard 0.07 0.84 S3バケット(Webアプリ) データ転送 0 0.00 S3バケット(添付ファイル) S3 Standard 3.04 36.48 S3バケット(添付ファイル) データ転送 0 0.00 JWT認証機能 AWS Lambda 0 0.00 JWT認証機能 AWS Lambda 0 0.00 FSM BR作成機能 AWS Lambda 0 0.00 イベントバス Amazon EventBridge 0.1 1.20 REST API Gateway Amazon API Gateway 0.37 4.44 添付ファイル保存機能 AWS Lambda 0 0.00 メトリクス Amazon CloudWatch 3.0103 36.12 (表2:コスト詳細) 結論 SAP Field Service ManagementとAWSの統合は、組織がクリーンコアアプローチを維持しながら、スケーラブルで安全、かつコスト効率的なソリューションを構築するためにクラウドネイティブサービスを活用する方法を実証しています。このソリューションは、即座のストレージ課題に対処するだけでなく、AWSサービスを通じた高度なデータ処理と分析機能の機会も創出します。 この統合の主な利点には以下が含まれます: SAP FSMでのデータフットプリントの削減 データ主権と制御の強化 S3によるコスト効率的でスケーラブルなストレージ 組み込みの監視と可観測性 高度な分析とAI/ML統合の可能性 フィールド技術者にとってのシームレスなユーザーエクスペリエンス フィールドサービス業務の最適化を目指す組織にとって、この統合はシステムの整合性とスケーラビリティを維持しながら、デジタル変革への戦略的なステップを表しています。ソリューションのサーバーレスアーキテクチャは、将来の機能強化に最大限の柔軟性を提供しながら、運用オーバーヘッドを最小限に抑えることを保証します。 SAP on AWSディスカッションに参加 お客様のアカウントチームとAWSサポートチャネルに加えて、AWSは re:Postサイト で公開の質問回答フォーラムを提供しています。私たちの AWS for SAP ソリューションアーキテクチャチームは、お客様とパートナーを支援するために回答できるディスカッションと質問について、AWS for SAPトピックを定期的に監視しています。質問がサポート関連でない場合は、re:Postでのディスカッションに参加し、コミュニティナレッジベースに貢献することを検討してください。さらに、サーバーレスとイベント駆動アーキテクチャパターンについて詳しく学ぶには、 AWSサーバーレスブログセクション を参照してください。 本ブログはAmazon Q Developer CLIによる機械翻訳を行い、パートナー SA 松本がレビューしました。原文は こちら です。
アバター
この記事は Deep Dive: Amazon ECS Managed Instances provisioning and optimization (記事公開日: 2025 年 11 月 4 日) を翻訳したものです。 Amazon Elastic Container Service (Amazon ECS) マネージドインスタンス は、完全マネージドのコンピューティングオプションで、インフラストラクチャ管理のオーバーヘッドを排除しながら、 Amazon Elastic Compute Cloud (Amazon EC2) の幅広い機能にアクセスできます。これには、インスタンスタイプの選択、リザーブドキャパシティへのアクセス、高度なセキュリティと監視設定の活用などの柔軟性が含まれます。ECS マネージドインスタンスは Amazon Web Service (AWS) にオペレーションを委託することでお客様の迅速な開始を支援します。総所有コストを削減し、チームがイノベーションをもたらすアプリケーションの構築に専念できるようします。 この記事では、ECS マネージドインスタンスが EC2 インスタンスを自動的にプロビジョニングして最適化し、ワークロードの高可用性とコスト効率のバランスを取る方法について詳しく説明します。 Amazon ECS マネージドインスタンスキャパシティープロバイダー Amazon ECS の「キャパシティープロバイダー」はワークロードのコンピューティング能力を定義するインターフェースです。ECS クラスターには、サーバーレスコンピューティングでワークロードを起動するための AWS マネージドの FARGATE と FARGATE_SPOT キャパシティプロバイダーが自動的に含まれています。また EC2 インスタンス上でワークロードを実行するための独自の EC2 Auto Scaling グループ (ASG) キャパシティプロバイダーも作成できます。Amazon ECS マネージドインスタンス は、AWS Fargate のフルマネージドの体験と Amazon EC2 の柔軟性を組み合わせた新しいキャパシティプロバイダーで、両者の長所を兼ね備えています。ECS は、ワークロードの要件に応じて、AWS アカウント内でフルマネージドの EC2 インスタンスを迅速にプロビジョニングおよびスケーリングします。ECS マネージドインスタンスキャパシティプロバイダーは、コスト最適化された汎用インスタンスを自動的に選択します。vCPU とメモリの最小/最大、希望のインスタンスタイプ、CPU メーカー、アクセラレータタイプ、その他のインスタンスの仕様を指定することで、インスタンスの要件をカスタマイズできます。インスタンスの選択の詳細については、 ドキュメント を参照してください。 プロビジョニングワークフロー ECS マネージドインスタンスは、ワークロードを継続的に監視し、ワークロードの要件に基づいてタイムリーに新しい EC2 インスタンスを起動します。構成済みのサブネット内の Availability Zone (AZ) 間でタスクを自動的に分散することで、アプリケーションの可用性を高めます。新しいインスタンスを起動する際、ECS は最初に適切な AZ 分散を確保してから、各インスタンス内でタスクをビンパッキングし、コストを最適化します。これにより、高可用性とコスト効率のバランスが実現されます。さらに、複数のタスクを同じインスタンス上に配置することで、ECS マネージドインスタンスはインフラストラクチャコストを最適化するだけでなく、後続のタスクがインスタンスプロビジョニングの待ち時間を回避し、インスタンス上のコンテナイメージキャッシュの恩恵を受けるため、タスクの起動が高速化されます。ここでは、まず、インスタンスプロビジョニングのワークフローを説明し、その後、可用性とインフラストラクチャの最適化の側面について詳しく説明します。 次の図は、インスタンスのプロビジョニングワークフローを示しています。マネージドインスタンスキャパシティプロバイダーを通して 4 つの新しいタスクが起動されると、ECS は既存の管理対象インスタンスを評価して、利用可能な容量を判断します。ECS はタスクサイズと利用可能なインスタンスリソースに基づいて、できるだけ多くのタスクを現在実行中のインスタンスに配置します。この場合、2 つのタスクが他のタスクをホストしている既存の EC2 インスタンスに正常に配置されています。既存のインスタンスで収容できない残り 2 つのタスクについては、ECS が自動的に新しい EC2 インスタンスを起動します。この新しいインスタンスは、残りのタスクに十分な CPU とメモリを確保するためにタスクのリソース要件に基づいてプロビジョニングされ、タスクを AZ 間で均等に配置します。このビンパッキングアプローチは、タスクを効率的に共存させながら可用性を高めるために複数の AZ に分散させることで、リソースの利用を最大化し、インフラストラクチャコストを最小限に抑えます。 図 1: ECS マネージドインスタンスキャパシティプロバイダーにおける新規 ECS タスクの Run Task フロー 既存インスタンスの選択 ECS はインスタンスごとに正確なリソース管理を行い、CPU、メモリ、その他のリソースをリアルタイムに追跡します。インスタンスが ECS に登録されると、利用可能な容量は EC2 インスタンスのリソース合計から ECS エージェントに予約されたメモリを差し引いた値になります。ECS はインスタンスの登録時に、インスタンスタイプごとの実績データに基づいてエージェントが消費するリソース量を推定し、複数の並行タスクに十分なリソースを確保します。タスクの起動と終了に伴い、ECS はインスタンスの利用可能なリソース容量を動的に更新します。新しいタスクの配置では、ECS は既存のインスタンスにリソースが十分にあるかどうかを最初にチェックします。複数の適切なインスタンスが存在する場合、ECS はマネージドインスタンスキャパシティプロバイダーで構成されたサブネットによって AZ 分散を制御しながら、最大の回復力を得るために AZ 間でタスクを分散させることを優先します。既存のインスタンスでは最適な AZ 分散ができなくても、現在の AZ に容量がある場合、ECS は新しいインスタンスをプロビジョニングするのではなく、サービスの目標タスク数に早く到達するために既存の容量を使用することを優先し、可用性を高めます。その後、ECS は継続的な AZ 間での ECS サービスの調整 によってワークロードを調整し、可用性をさらに高めるための最適な AZ 分散を実現します。 新規インスタンスの登録 ECS マネージドインスタンスが新しいタスクを既存のインスタンスに配置できない場合、そのタスクは新しいキャパシティを待つ間 PROVISIONING 状態になります。ECS は個々のインスタンスをプロビジョニングするのではなく、複数のアプリケーションから起動要求されたタスクをインテリジェントにバッチ処理します。これにより、レスポンス性と最適化の機会のバランスを取ることができます。ECS はリソース要件を全体的に分析し、最適なインスタンスタイプを選択しながら、タスクを AZ 間に分散させます。CPU、メモリ、ストレージの要件が異なるタスクを数百種類の利用可能なインスタンスタイプに配置することは、NP 完全な多次元ビンパッキング問題となります。ECS は First Fit Decreasing(FFD)アルゴリズムを採用しており、効率的なリソース使用率を維持しながら、数学的な完全性よりもシステムの応答性を優先し、多項式時間で最適に近い結果を提供ます。 インフラストラクチャの最適化 ECS マネージドインスタンスは、キャパシティプロバイダーの構成とワークロード要件に基づいて適切なサイズの EC2 インスタンスを起動します。時間の経過とともに、トラフィックパターンの変化や動的スケーリングにより、EC2 インスタンスがワークロード要件から外れる可能性があります。ECS マネージドインスタンスは、インフラストラクチャを継続的に最適化し、利用率の低いインスタンスをドレインし、タスクを既存の利用可能なリソースを持つインスタンスか、新たに適切なサイズでプロビジョニングされたインスタンスに再配置します。次の図は、利用率の低いインスタンスの最適化の動作を示しています。2 つのタスクが停止すると、ECS はリソースの非効率性を認識し、利用率の低いインスタンスを DRAINING としてマークします。これにより、インフラストラクチャが 3 つのインスタンスから 2 つに減り、サービスの可用性を維持しながら、不要なコンピュートコストを排除します。 図 2: ECS マネージドインスタンスキャパシティプロバイダーが、リソース活用率を向上させるために、利用率の低いインスタンスをドレインする ECS マネージドインスタンスは、実行中のタスクがないアイドル状態のインスタンスを自動的に削除するため、アクティブなリソースのみの支払いで済みます。次の図は、2 つのタスクがインスタンス上で停止した際の動作を示しています。ECS はアイドル状態のインスタンスを特定し、登録を解除します。これによりインスタンスの終了が開始され、2 つのインスタンスから 1 つのインスタンスにスケールダウンされます。同じメカニズムにより、以前ドレイン (タスクの移行) されたインスタンスも、空になった時点で自動的に登録解除と終了が行われます。 図 3: ECS マネージドインスタンスキャパシティプロバイダーが、リソース活用率を向上させるためにアイドル状態のインスタンスをドレインする 可用性 ECS マネージドインスタンスは、事前に設定されたサブネットに対して ECS サービスのタスクを AZ 間で自動的に分散させることで、アプリケーションの可用性を向上させます。ECS は新しいインスタンスを起動する際、まずインスタンスを事前に設定された全ての AZ に分散させ、その後それらのインスタンス上にタスクを配置して可用性を最大化します。複数のスケーリング操作を経て、ECS サービスがタスクが完全に AZ 間でバランスされていない状態に達した場合、 AZ 間での ECS サービスの調整 機能がインスタンス間でタスクを再分散するのに役立ちます。これには、インスタンスのスケールイン・アウトが必要になる場合があります。最終的な利点は、ECS がサービスタスクを主に AZ 間でバランスされた状態に保ち、次にインスタンス上で効率的にビンパッキングを行うことで、可用性とコスト最適化のバランスを最適化することです。 デモのウォークスルー このウォークスルーでは、マネージドインスタンスキャパシティプロバイダーで構成された Amazon ECS クラスターをデプロイすることで、ECS マネージドインスタンスの実践的なデモを作成します。このセットアップには、CPU とメモリの要件が異なる 2 つの個別の ECS サービスが含まれています。ECS リソースをプロビジョニングするために、 Amazon Virtual Private Cloud (Amazon VPC) 、IAM、EC2 リソースもプロビジョニングします。AWS CLI を使用し、AWS CloudFormation 経由で初期リソースセットをプロビジョニングします。次に、ECS API に対する AWS CLI コマンドを使用してサービス内の ECS タスクの数を更新し、ECS が内部で EC2 インスタンスを管理する様子を観察します。このデモ全体を完了するのに約 40 分かかります。 前提条件 CloudFormation、ECS、EC2 の操作権限を持つユーザー AWS CLI 手順 この GitHub リポジトリから CloudFormation テンプレートをダウンロードします。  - vpc-stack.json、ecs-stack.json、nested-stack-coordinator.json git clone https://github.com/aws-samples/sample-amazon-ecs-managed-instances cd sample-amazon-ecs-managed-instances/cfn-templates CloudFormation テンプレートを配置する S3 バケットを作成し、テンプレートを S3 バケットに配置します。 export AWS_REGION=us-west-2 export BUCKET_NAME=ecs-managed-instances-templates-$(date +%s%N | sha256sum | head -c 6) aws s3 mb s3://$BUCKET_NAME --region $AWS_REGION CloudFormation テンプレートを上記の S3 バケットに配置します。 aws s3 cp vpc-stack.json s3://$BUCKET_NAME aws s3 cp ecs-stack.json s3://$BUCKET_NAME aws s3 cp nested-stack-coordinator.json s3://$BUCKET_NAME nested-stack-coordinator.json テンプレートで CloudFormation スタックを作成します。これにより、アカウントに 3 つの CloudFormation スタック (Coodinator Stack, VPC Stack and ECS stack) が作成されます。Coodinator Stack が VPC Stack と ECS stack を作成します。VPC Stack には VPC リソースが含まれ、ECS stack には ECS リソースが含まれます。 aws cloudformation create-stack --stack-name managed-instances-coordinator --template-body file://nested-stack-coordinator.json --parameters ParameterKey=VpcStackTemplateUrl,ParameterValue=https://$BUCKET_NAME.s3.amazonaws.com/vpc-stack.json ParameterKey=EcsStackTemplateUrl,ParameterValue=https://$BUCKET_NAME.s3.amazonaws.com/ecs-stack.json --capabilities CAPABILITY_NAMED_IAM --region $AWS_REGION CloudFormation によって作成されるリソースは以下の通りです。 マネージドインスタンスキャパシティプロバイダーを持つ 1 つの ECS クラスター 2 つの ECS サービス: ManagedInstancesService1 : タスクあたり 1 vCPU、5.5GB メモリ ManagedInstancesService2 : タスクあたり 1 vCPU、9.5GB メモリ AZ 間で分散された合計 4 つのタスク (サービスごとに 2 つ) マネージドインスタンスキャパシティプロバイダー内の 2 つの マネージドインスタンス ECS クラスターと ECS サービス 図 4: 1 つのクラスターで、サービスごとに 2 つのタスクが実行されている 2 つの ECS サービス ECS タスク アプリケーションは、高可用性を実現するために 2 つの AZ (us-west-2a と us-west-2b) に分散して 4 つの ECS タスクを実行しています。1 つの AZ で問題が発生した場合でも、アプリケーションは他の AZ から実行を継続するため、単一障害点がなくなり、サービスの可用性が一貫して確保されます。 図 5: サービスごとにタスクのリソース設定が異なる 2 つの ECS サービスに対する 4 つの ECS タスク Amazon ECS マネージドインスタンス キャパシティプロバイダー 図 6: 2 つの AZ にまたがる 2 つのインスタンスで実行されているマネージドインスタンスキャパシティプロバイダー。リソースの利用が最適化される マネージドインスタンスキャパシティプロバイダーは、正確なリソース要件を分析しました。インスタンスごとに合計 15GB のメモリ (9.5GB + 5.5GB) と 2 つの vCPU が必要でした。ECS は、2 つの AZ で最適な r5a.large インスタンス (2 vCPU、16GB メモリ) をプロビジョニングし、高可用性を確保しつつリソース効率を最大化しました。各インスタンスでは、両方のサービスタスクが効率的に実行されています。16GB のメモリのうち 15GB が使用され、両方の vCPU も積極的に使用されています。この結果、手動による推測作業を排除し、効率的なリソース割り当てによってコストを削減しながら、アプリケーションに必要なパフォーマンスを維持する、インテリジェントな容量管理が実現されました。 次に、ManagedInstancesService1 の希望タスク数を 0 に設定して、ECS マネージドインスタンスのインテリジェントなリソース管理を実演します。この操作により、現在 2 つの r5a.large インスタンス上で実行中の 2 つのタスク (それぞれ 9.5GB のメモリ、1 vCPU) が停止します。ManagedInstancesService1 のタスクが削除されると、各インスタンスでは残りの ManagedInstancesService2 のタスク (それぞれ 5.5GB のメモリ、1 vCPU) のみが実行されます。これにより、r5a.large インスタンス (16GB、2 vCPU) で単一の 5.5GB タスクが実行され、未使用の容量が生じるリソース利用状況が作られます。 aws ecs update-service --cluster $(aws cloudformation describe-stacks --stack-name managed-instances-coordinator --query 'Stacks[0].Outputs[?OutputKey==`EcsClusterId`].OutputValue' --output text) --service ManagedInstancesService1 --desired-count 0 --region $AWS_REGION 図 7: ECS タスクを停止すると、マネージドインスタンスキャパシティプロバイダーのインスタンスが過小利用になる ECS マネージドインスタンスキャパシティプロバイダー は、このようなリソースの非効率を素早く検出し、利用率の低いインスタンスの 1 つをドレインすることで対処します。現在のワークロードに対して両方のインスタンスが最適ではなくなりますが、システムはサービスの可用性を損なうリスクがあるため、同時にドレインすることはありません。代わりに、ECS は可用性を最優先するアプローチを取り、インスタンスを段階的にドレインします。最適化プロセス中に十分なアクティブ容量を維持することで、新しいタスクの配置や予期しないスケーリングイベントに対して常に容量を確保できます。 図 8: マネージドインスタンスキャパシティプロバイダーが利用率の低いインスタンスをドレインする ドレイン処理が完了すると、排除されたタスクは残りの us-west-2a のインスタンスに移動します。このインスタンスには十分なリソースが残っています。ECSマネージドインスタンスは、サービスの安定化を早めるため、新規プロビジョニングよりも既存の容量を優先します。両方の ManagedInstancesService2 タスクは、リソース活用を最大化するため、単一のインスタンス上で実行されます。一方で、ドレインされたインスタンスは空になります。ECS は自動的にこの空のインスタンスを登録解除し、終了させます。これにより、インフラストラクチャは 2 つのインスタンスから 1 つに縮小されます。これは、実際の需要に基づく継続的な適正化を示しています。ECS は、後の最適化ステップで AZ の分散を処理し、効率性と高可用性のバランスを取ります。 図 9: マネージドインスタンスキャパシティプロバイダーが、タスクのないアイドル状態のインスタンスを登録解除する ECS クラスターが安定した後、ECS は新しい AZ でタスクの置換を開始しながら、既存のタスクを停止することで、AZ 間でワークロードを自動的に再分散します。これにより、5.5GB のタスクに対して、2 番目の AZ に適切なサイズの r7a.medium インスタンス (1 vCPU、8GB) がプロビジョニングされ、一方で元の r5a.large インスタンスは 1 つのタスクを実行するには過剰なリソースとなります。ECS マネージドインスタンスキャパシティプロバイダーはこの非効率性を検出し、過小利用のインスタンスをドレインすることで、AZ 間の高可用性と費用対効果のバランスを取った継続的な最適化を実現します。 図 10: マネージドインスタンスキャパシティープロバイダーの AZ 再分散と継続的な最適化 最終的に、マネージドインスタンスキャパシティプロバイダーは、2 つの AZ にまたがって、それぞれ 1 つのタスク (1 vCPU、5.5 GB) を実行する 2 つの r7a.medium インスタンス (1 vCPU、8 GB) を実行する最適な状態になります。 図 11: インフラストラクチャの最適化後、最適な容量で実行されているマネージドインスタンスキャパシティプロバイダー 長時間実行のワークロード 図 12: ECS タスクの予測可能なスケーリングを伴う長時間実行テスト 図 13: 周期的なスケーリングパターンのキャパシティプロバイダーメトリクス ECS マネージドインスタンスキャパシティプロバイダーは、リソースを実際の需要に合わせてマッチングします。別のテストシナリオ (図 12) では、2 つの ECS サービスがワークロードの変更を 30 分ごとに繰り返し、合計 100 タスクから 70 タスクに、さらに 2 タスクにスケーリングしています。これは 2 時間にわたって行われ、1 分間隔でデータを取得することで、キャパシティプロバイダーがこれらのワークロード変更にどのように対応しているかを詳細に確認できます。 ここでの重要なインサイトは、ECS マネージドインスタンス が、リソース割り当てと実際の需要の間の強力な整合性を維持し、vCPU とメモリ使用率のメトリクスが正確に ECS タスクのサイクルパターンを反映していることです。 DrainingContainerInstances メトリクスは、バックグラウンドで継続的に最適化が行われていることを示しています。手動による介入を待つのではなく、ECS マネージドインスタンスはクラスター全体のリソース効率を継続的に監視し、タスクがスケールダウンすると、すぐに未活用のインスタンスをドレインし、残りのワークロードを適切に移動させて ECS クラスターの密度を最適化します。この自動化されたプロセスにより、リソースが必要以上に長くアイドル状態になることはありません。 クリーンアップ このウォークスルーを完了した後は、継続的な課金を防ぎ、きれいな AWS 環境を維持するために、デプロイしたすべてのリソースをクリーンアップする必要があります。このステップにより、予期しない課金を防ぎ、使用されていないリソースを削除することで AWS 環境を整頓できます。 CloudFormation スタックを削除します aws cloudformation delete-stack --stack-name managed-instances-coordinator --region $AWS_REGION CloudFormation テンプレートと S3 バケットを削除します aws s3 rb s3://$BUCKET_NAME --region $AWS_REGION --force まとめ この記事では、Amazon ECS マネージドインスタンスのインフラストラクチャプロビジョニングとワークフローの最適化について説明しました。初期リリースでは、可用性とコスト効率のバランスを取るために AWS の運用ベストプラクティスが実装されていますが、さまざまなワークロードではコスト、パフォーマンス、可用性の側面でそれぞれ異なるトレードオフが必要になることを理解しています。今後は、プロビジョニングと最適化ワークフローを強化し、最適化ワークフローの設定可能な期間、 capacity headroom やターゲット利用率レベル、カスタム配置戦略、Disruption Budgets など、お客様のコントロールを導入する予定です。 今後のアップデートについては、 GitHub の ECS ロードマップ を参照してください。Amazon ECS の未来を形作るのに役立つフィードバックをお待ちしています。はじめに、 ドキュメント を参照してください。 翻訳はソリューションアーキテクトの加治が担当しました。 原文 はこちらです。
アバター