Amazon Web Services ブログ
Amazon Bedrock で AWS Open Data Program のデータを使用する方法
本記事は、2025 年 4 月 24 日に公開された “How to use data from the AWS Open Data program in Amazon Bedrock” を翻訳したものです。翻訳はソリューションアーキテクトの秋山が担当しました。
AWS オープンデータスポンサーシッププログラムは、価値の高いデータセットをクラウド上でホストすることでデータ取得の障壁を排除し、研究者やアナリストがデータ管理ではなく、発見とイノベーションに集中できるようにします。データが Amazon Web Services (AWS) で共有されると、誰でも Amazon Elastic Compute Cloud (Amazon EC2)、Amazon Athena、AWS Lambda、Amazon EMR などの幅広いコンピューティングおよびデータ分析プロダクトを使用して、データを分析し、その上にサービスを構築することができます。AWS は Registry of Open Data on AWS を通じて、AWS 上で公開されているデータセットのカタログを提供しています。このレジストリには、政府データ、科学研究、ライフサイエンス、気候、衛星画像、地理空間、ゲノムデータなど、650 以上のデータセットが一般に公開されています。
米国海洋大気庁 (NOAA) をはじめとする多くの政府機関が、AWS オープンデータスポンサーシッププログラムに参加しています。NOAA は NOAA オープンデータ配信 (NODD) プログラムを通じてデータを一般に公開しています。AWS 上のすべての NODD データセットを閲覧することができます。このチュートリアルでは、NODD プログラムの NOAA データを使用して、お客様が Amazon Bedrock で AWS オープンデータを通じて利用可能なデータをどのように活用できるかをご紹介します。
この投稿では、Amazon Bedrock Knowledge Bases を使用して、AWS のオープンデータレジストリにある NOAA データセットを活用する方法について説明します。Amazon Bedrock Knowledge Bases を使用することで、プライベートおよびパブリックのデータソースからコンテキスト情報を 基盤モデル (FM) とエージェントに提供し、より関連性が高く、正確で、カスタマイズされた応答を実現できます。特に NOAA のグローバル歴史気候ネットワーク (GHCN) を使用することで、SQL コマンドや一般的なデータ検索ツールに慣れていないユーザーでも、降水量や積雪深などの情報にアクセスできるようになります。チャットベースのアシスタントを通じて、技術的な知識を持たない意思決定者でも、高度な技術データに理解しやすい形式でアクセスできるようになりました。
ソリューションの概要
この投稿は 2 つのパートに分かれています。パート 1 では、少数のファイルのみを使用するため、大きなコストをかけることなく機能を試すことができます。パート 2 では、データセット全体を使用して機能の全体像を把握できますが、コストも高くなります。追加コストの発生を防ぐため、作業が完了後はナレッジベースとベクトルストアを削除することをお勧めします。
NOAA Global Historical Climatology Network (GHCN) データセットをナレッジベースとして使用します。このデータセットには、米国全土の観測所からの気温と積雪深の測定値が含まれています。このデータセットは、AWS のオープンデータレジストリにある公開 Amazon Simple Storage Service (Amazon S3) バケット内の CSV ファイルとテキストファイルのセットとして提供されています。
前提条件
このソリューションを実行するには、以下の前提条件が必要です:
- 関連するサービスへのアクセス権限を持つ AWS アカウントへのアクセス
- AWS Management Console の基本的な知識
パート 1: ソリューションの概要
AWS のオープンデータレジストリから始めましょう:
- Registry of Open Data on AWS のウェブサイトで、以下のスクリーンショットに示すように、Search datasets バーに
GHCN
と入力します。 - NOAA Global Historical Climatology Network Daily (GHCN-D) データセットを選択してレジストリページを開きます。
- Browse Bucket リンクを右クリックして新しいウィンドウで開きます。このリンクをクリックすると、NOAA GHCN パブリックバケット内の現在のすべてのファイルとフォルダのリストが表示されます。
- csv/ フォルダを開き、次に by_year/ フォルダを開きます。GHCN のデータが 1750 年まで遡って用意されていることを確認できます。まず、利用可能なデータを確認するために、最も古いファイルのいくつかを見てみましょう。1763.csv と 1764.csv ファイルを選択してダウンロードします。
- ページの下部までスクロールし、Next を選択します。データの最後のページに到達するまで Next を選択し続けます。この記事の執筆時点では、ページ 6 に 2012 年から 2025 年までのデータがあります。2023.csv と 2024.csv もダウンロードします。
- 1763.csv と 1764.csv ファイルから始めて、それぞれのファイルをアプリケーションで開いてデータを確認します。
ファイルとデータ形式
データセットをナレッジベースとして検討する際には、ファイルのフォーマットとそのデータの内容が重要です。ナレッジベースに対して質問を投げかけ、適切な回答を得るためには、ファイルの内容とその参照方法を理解する必要があります。
例えば、1763.csv の GHCN データには、ID、DATE、ELEMENT、DATA_VALUE という列があります。この最初の 4 つの列が、この投稿の残りの部分の焦点となります。NOAA は open-data-docs リポジトリで各列のドキュメントを提供しています。NOAA のドキュメントによると、最初の列は観測所 ID (ID) です。DATE 列の日付は YYYYMMDD 形式で、例えば 17630127 は 1763 年 1 月 27 日を意味します。ELEMENT 列には、最高気温 (TMAX)、最低気温 (TMIN)、積雪深 (SNWD)、降水量 (PRCP) が含まれています。DATA_VALUE は ELEMENT の実際の値です。
ファイルをローカルで表示すると、観測所 (ID) ITE00100554 の 17630131 (1763 年 1 月 31 日) の最高気温が 9 であったことが、次のスクリーンショットのように確認できます。
プライベート S3 バケットの作成
1763.csv と 1764.csv を使用してナレッジベースを作成するには、以下の手順に従ってください:
- Amazon S3 コンソールで、バケットを作成を選択し、バケット名を
YOURNAME-ghcn-1763-1764
とします。YOURNAME
の部分は、バケット名を一意にするためにあなたの姓名などに置き換えてください。ページ内の他の設定はすべてデフォルトのままにして、ページ下部のバケットを作成を選択します。 - バケットが作成されたら、それを選択してバケットの内容を表示します(空の状態です)。
- 1763.csv と 1764.csv ファイルをバケットにドラッグ&ドロップし、アップロードを選択します。以下のスクリーンショットのように、両方のファイルがバケットにコピーされるまで待ちます。
- または、アップロードボタンを使用します。1763.csv と 1764.csv ファイルをドラッグ&ドロップするか、ファイルを追加を選択して追加できます。
- アップロードを選択し、以下のスクリーンショットのように両方のファイルがバケットにコピーされるまで待ちます。
1760 年代のナレッジベース
プライベートバケット内のデータを使用して、最初のナレッジベースを作成します。Amazon Bedrock の FM を使用するには、まずアクセス権限のリクエストが必要です。アクセス権限のリクエストとナレッジベースの作成には、以下の手順に従ってください:
- Amazon Bedrock コンソールの左側のナビゲーションペインで、Configure and learn の下にある モデルアクセス を選択します。
- モデルアクセス ページで、モデルアクセスを変更 を選択します。
- Titan Text G1 – Premier、Titan Embeddings G1 – Text、Titan Text Embeddings V2、Nova Pro、Nova Lite の横にあるチェックボックスを選択し、次へ を選択した後、送信 を選択してこれらのモデルへのアクセスをリクエストします。
- Build の下で、ナレッジベース を選択します。
- 作成 を選択し、ベクトルストアを含むナレッジベース を選択します。このウォークスルーでは、Amazon OpenSearch Serverless を使用するベクトルストアを使用しますが、Amazon Bedrock ユーザーガイドの Retrieve data and generate AI responses with Amazon Bedrock Knowledge Bases で他のオプションも確認できます。
- ナレッジベースに
YOURNAME-GHCN-1763-1764
という名前を付けます。YOURNAME
をあなたの名前に置き換えてください。ページの残りの部分はデフォルトのままにして、次へ を選択します。 - データソース で、以下を変更します:
- データソースの場所 は、この AWS アカウント のままにします。
- S3 URI で、S3 を参照 を選択し、先ほど作成した
YOURNAME-ghcn-1763-1764
バケットを選択します。
- ページの残りの部分はデフォルトのままにして、次へ をクリックします。
- ここで使用する Embeddings モデルを選択する必要があるので、モデルを選択 をクリックし、Titan Text Embeddings V2 を選択して、適用 をクリックします。
- ページの残りの部分はデフォルトのままにして、次へ を選択します。
- 選択内容を確認し、準備ができたら ナレッジベースを作成 を選択します。
Amazon OpenSearch Serverless でベクトルデータベースを準備するには数分かかります。このチュートリアルで使用する少量のデータであっても、Amazon OpenSearch Serverless コレクションにはコストが発生することに注意してください。コストを監視するために、Cost Explorer の予算やアラームを設定することをお勧めします。
ベクトルデータベースが作成されると、「Amazon OpenSearch Serverless ベクトルデータベースの準備が完了しました」という通知を受け取り、ナレッジベースが作成されます。この時点では空のベクトルストアができているので、データを投入する必要があります。そのためには、データを同期する必要があります:
- 以下のスクリーンショットに示すように、データソースで作成したデータソースを選択します。
- ベクトルストアにデータの追加を開始するには、同期を選択します。プライベートバケットには 2 つのファイルしかないため、数分で完了するはずです。
2 つのファイルの内容をいくつか把握しているため、ローカルでファイルを開いて、答えがわかっている質問をすることができます。これにより、ナレッジベースがファイル内のデータを使用していること、およびそのデータを正しく使用していることを確認できます。ナレッジベースをテストするには、以下の手順に従ってください:
-
- テストに使用するモデルを選択するには、ナレッジベースをテスト の下で モデルを選択 を選択します。Nova Lite を選択し、適用 を選択します。同様の回答を返す他のモデルも利用可能です。
- ナレッジベースに質問するには、プロンプトを記述 ボックスに以下をペーストし、Run を選択します。
What was the TMAX on 17630131?
先ほど示したように、ファイルから答えは 9 であることがわかっています。ナレッジベースは以下の回答を提供します:The TMAX on 17630131 was 9 degrees
- ナレッジベースがどのように回答を導き出したかを確認するには、詳細 > を選択します。メタデータには、Amazon Bedrock が回答を形成するために情報を見つけたファイル (source-uri) が表示されます。ソースチャンク には使用された実際のデータチャンクが表示され、以下のようになります:
, ITE00100554,17630124,TMIN,10,,,E,
ITE00100554,17630125,TMAX,24,,,E,
ITE00100554,17630125,TMIN,-2,,,E,
ITE00100554,17630126,TMAX,6,,,E,
ITE00100554,17630126,TMIN,-22,,,E,
ITE00100554,17630127,TMAX,1,,,E,
ITE00100554,17630127,TMIN,-27,,,E,
ITE00100554,17630128,TMAX,-5,,,E,
ITE00100554,17630128,TMIN,-33,,,E
ITE00100554,17630129,TMAX,-1,,,E,
ITE00100554,17630129,TMIN,-29,,,E,
ITE00100554,17630130,TMAX,4,,,E,
ITE00100554,17630130,TMIN,-16,,,E,
ITE00100554,17630131,TMAX,9,,,E,
ITE00100554,17630131,TMIN,-21,,,E,
ITE00100554,17630201,TMAX,19,,,E,
ITE00100554,17630201,TMIN,-11,,,E,
ITE00100554,17630202,TMAX,28,,,E,
ITE00100554,17630202,TMIN,-2,,,E,
- 上記でハイライトされているように、以下のチャンクが私たちの回答です。
ITE00100554, 17630131, TMAX,9,,,E,
ナレッジベースが情報をどのように解析し、回答を導き出すかを理解するために、いくつかの質問を試してみてください。
クリーンアップ
今後の料金の発生を防ぐため、作業が完了したらナレッジベースを削除する必要があります。ナレッジベースを削除するには:
- Amazon Bedrock コンソールの Build で、ナレッジベース を選択し、
YOURNAME-GHCN-1763-1764
ナレッジベースを選択します。 - ナレッジベース作成時の詳細設定でベクトルストアを保持することを選択した場合、ナレッジベースを削除する前に Amazon OpenSearch のインデックス名を確認する必要があります。
- ベクトルデータベース までスクロールし、コレクション ARN をメモしてください:
arn:aws:aoss:REGION:AWSACCOUNTID:collection/UUID
で、UUID
は ea50z3iuyaavwy8bymq4
のようなコレクションの一意の識別子になります
-
- 新しいタブまたはブラウザウィンドウで OpenSearch Service コンソールを開き、Serverless の下にある Collections を選択し、このチュートリアルで作成したコレクションを選択して開きます。
- コレクション ARN が、ベクトルデータベース用に受け取った Amazon Resource Name (ARN) と一致することを確認します。
arn:aws:aoss:REGION:AWSACCOUNTID:collection/UUID
-
- ベクトルデータベースを削除するには、コレクションを削除 を選択し、ダイアログボックスに
確認
と入力します。 - Amazon Bedrock タブに戻り、ナレッジベースの削除の最後のステップを完了します。
- ベクトルデータベースを削除するには、コレクションを削除 を選択し、ダイアログボックスに
- 削除 を選択し、ウィンドウに
削除
と入力します。
パート 2: ソリューションの詳細
このセクションでは、パート 1 で学んだ内容を活用して、Registry of Open Data のデータセットを使用したナレッジベースを直接利用することができます。ファイルをコピーする代わりに、Amazon Bedrock にパブリックバケットを直接指定します。以下の手順に従ってください:
- Registry of Open Data on AWS で、Search datasets バーに
GHCN
と入力します。 - レジストリページを開くために NOAA Global Historical Climatology Network Daily (GHCN-D) データセット を選択します。
- このページにある Amazon Simple Notification Service (Amazon SNS) トピックに注目してください:
arn:aws:sns:us-east-1:123901341784:NewGHCNObject
-
- アカウント ID の部分 (
123901341784
) を選択し、後でアカウント ID が必要になるため、このウィンドウを別のタブで開いたままにしておきます。
- アカウント ID の部分 (
- Browse Bucket リンクを右クリックして新しいウィンドウで開きます。このリンクをクリックすると、NOAA GHCN パブリックバケット内の現在のすべてのファイルとフォルダの一覧が表示されます。
このウォークスルーでは、データセット全体のサブセットのみを使用するために、ナレッジベースを特定のフォルダに制限する必要があります。これにより、このデモで発生するコストを抑えることができます。このデータセットをテストや開発以外の目的で使用する場合は、バケット全体を使用することをお勧めします。
NOAA は GHCN データのパフォーマンス改善に取り組んでおり、プレフィックス (またはフォルダ) が変更される可能性があることにご注意ください。
- パート 1 と同様に、csv/ フォルダ、次に by_year/ フォルダを開きます。ただし、今回は by_year フォルダ全体を使用します。バケット名とフォルダパスは次のようになります:
s3://noaa-ghcn-pds/csv/by_year/
- ウィンドウの右下にある番号付きのリンクを使用して、バケット内の最後のエントリに移動します。この記事の執筆時点では、6 を選択すると、2012-2025.csv の年のファイルが表示されます。
- 2024.csv と 2023.csv を選択してダウンロードし、後で使用するために保存します。これらのファイルを使用して、最初にナレッジベースへのクエリを実行します。
GHCN 年次ナレッジベース
パブリック AWS Open Data バケットのデータを使用して、新しいナレッジベースを作成します。パブリック AWS Open Data バケットから新しいデータでナレッジベースを更新したい場合は、同期 コマンドを使用して更新できます。
- Amazon Bedrock コンソールで、作成 を選択し、ベクトルストアを含むナレッジベース を選択します。
- ナレッジベースに
YOURNAME-GHCN-by-year
という名前を付けます。YOURNAME
はあなたの名前に置き換えてください。ページの残りの部分はデフォルトのままにして、次へ を選択します。 - Data source で、以下の変更を行います:
- Data source location を Other AWS account に変更します。
- Account ID に
123901341784
を入力します。 - S3 URI に
s3://noaa-ghcn-pds/csv/by_year/
を入力します。
- ページの残りの部分はデフォルトのままにして、次へ を選択します。
- 埋め込みモデルを選択するには、モデルを選択 を選択し、Titan Text Embeddings V2 を選択して、適用 を選択します。
- ページの残りの部分はデフォルトのままにして、次へ を選択します。
- 選択内容を確認し、準備ができたら ナレッジベースを作成 を選択します。
Amazon OpenSearch Serverless でベクトルデータベースを準備するには数分かかります。Amazon OpenSearch Serverless コレクションには料金が発生します。この例では、パブリックの GHCN バケットにある数百のファイルを使用しています。コストを監視するために、Cost Explorer の予算やアラームを設定することをお勧めします。
ベクトルデータベースが作成されると、「Amazon OpenSearch Serverless ベクトルデータベースの準備が完了しました」という通知が表示され、ナレッジベースが作成されます。この時点では空のベクトルストアができているので、データを投入する必要があります。そのためには、データを同期する必要があります:
- 以下のスクリーンショットに示すように、Data source で作成したデータソースを選択します。
- ベクトルストアへのデータ追加を開始するには、同期 を選択します。すべてのファイルをベクトルストアにパースするには数時間かかる場合があります。同期の完了を待つ間に、ナレッジベースの同期が完了した後にどのような質問ができるかを確認するため、いくつかのファイルをダウンロードすることができます。
同期が完了したら、以下の手順でナレッジベースをテストしてください:
- Amazon Bedrock コンソールで、Build の下にある ナレッジベース を選択し、
YOURNAME-GHCN-by-year
ナレッジベースを選択します。 - ナレッジベースをテスト で、テストに使用するモデルを選択するために モデルを選択 を選択します。Nova Lite を選択し、適用 を選択します。
これで質問の準備が整いました。以下にいくつかの例を示します:
質問:What was ASN00007139 TMAX in 17500301?
回答: The TMAX value for ASN00007139 on 17500301 is 424
ボットからの応答の横にある Show details > リンクに注目してください。このリンクを選択すると、応答の生成に使用されたファイルのチャンクを確認できます。
以下のような一般的な質問もできます:
質問: What types of data are in this knowledge base?
回答: Based on the retrieved results, the knowledge base contains data related to precipitation (PRCP), maximum temperature (TMAX), and minimum temperature (TMIN)
データの内容と、ナレッジベースでの使用方法がわかったので、データセット全体に対して以下のような質問ができます:
質問: What was highest SNWD recorded for US1AKFN0032?
回答: The highest SNWD recorded for US1AKFN0032 is 559.0
この値は、アラスカ州フェアバンクスの積雪深を示しています。
NOAA GHCN ドキュメントを使用して最寄りの観測所を見つけ、どのような値が得られるか確認してみましょう!必要に応じて、コストを節約するために作業が完了したらナレッジベースを削除することもできます。
クリーンアップ
今後の料金の発生を防ぐため、作業が完了したらナレッジベースを削除する必要があります。ナレッジベースを削除するには:
- Amazon Bedrock コンソールで、Build の下にある ナレッジベース を選択し、
YOURNAME-GHCN-by-year
ナレッジベースを選択します。 - ナレッジベース作成時の詳細設定でベクトルストアを保持することを選択した場合、ナレッジベースを削除する前に Amazon OpenSearch Serverless のインデックス名を確認する必要があります。
- ベクトルデータベース までスクロールし、コレクション ARN をメモしてください。
arn:aws:aoss:REGION:AWSACCOUNTID:collection/UUID
で、UUID
は ea50z3iuyaavwy8bymq4
のようなコレクションの一意の識別子になります
-
- 新しいタブまたはブラウザウィンドウで Amazon OpenSearch Service コンソールを開き、Serverless の下にある Collections を選択し、このチュートリアルの一部として作成したコレクションを開きます。
- ベクトルデータベースで確認した コレクション ARN と、コレクション ARN が一致することを確認します。
arn:aws:aoss:REGION:AWSACCOUNTID:collection/UUID
-
- ベクトルデータベースを削除するには コレクションを削除 を選択し、ダイアログボックスに
確認
と入力します。 - Amazon Bedrock タブに戻り、ナレッジベースの削除の最後のステップを完了します。
- ベクトルデータベースを削除するには コレクションを削除 を選択し、ダイアログボックスに
- 削除 を選択し、ウィンドウに
削除
と入力します。
まとめ
NOAA のデータ配信プログラムは、5 つの重要な目的のために環境データを共有しています。第一に、気象予報、緊急対応、海事・航空分野における輸送の安全性に関する重要な情報を提供します。第二に、科学者が気候研究、環境分析、トレンドモデリングを実施できるようにします。第三に、農業の収穫計画の支援、漁船団の航路最適化、観光事業の気象条件への適応など、産業全体の経済的意思決定をサポートします。第四に、公共データへのアクセスに関する連邦政府の要件を満たし、機関間の連携を強化します。第五に、気象モニタリングと環境研究の共有を通じて国際的なパートナーシップを支援します。このプログラムは、公的資金で収集された環境データは科学の発展と社会の利益のために自由に利用できなければならないという基本原則に基づいて運営されています。
AWS のオープンデータレジストリには、基盤モデルに追加のコンテキストを提供するために使用できる、650 以上のパブリックデータセットが含まれています。Amazon Bedrock は、AWS のオープンデータレジストリにあるパブリックデータセットの使用をサポートするようになったため、データセットのコピーを維持する必要がなくなりました。次のプロジェクトで使用できるデータセットがあるかどうか、レジストリをご確認ください。
リソース
- Amazon Bedrock ユーザーガイドのデータをナレッジベースに変換する
- Amazon Bedrock ユーザーガイドのAmazon Bedrock でサポートされているデータ型
- AWS のオープンデータについて詳しく学ぶ
- AWS のオープンデータレジストリでデータを探す
- Amazon Sustainability Data Initiative について詳しく学ぶ