Go島てる

https://github.com/2509-progate-aws-hackathon/main

TypeScript

AWS

PostgreSQL

Amplify

RDS

めちゃくちゃネガティブな道案内アプリです。Goは使用してません。

yotu

Yanai

TA

推しアイデア

貴重な情報資源であるオープンデータを利用して、なんの得にもならないアプリをつくったところ

作った背景

おもしろそう

推し技術

postGISを使用した緯経度からの範囲指定検索の実装

プロジェクト詳細

この作品は、2025年9月に行われた "Progateハッカソン powered by AWS & Project LINKS" での出場作品です。

概要

こんな経験はありませんか?

  • 飛行機や夜行バスに乗ったとき、「今から数時間、他人の運転に命を握られるのオモロいな...」と思ったこと
  • 実際に死にかけたこと

長い旅程に危険はつきもの。 「Go島てる」を使用することで、過去のデータから自分の通る経路上でどんな事故があったかを分析し、あるかもしれない可能性に気付き、理由もなく恐怖することができます。

使用したオープンデータ

Project LINKSで公開されている「自動車運送事業事故データ」の02_jikohoukokusyo.csv「自動車運送事業の事故報告書データ(ファイル02)」を使用しました。 https://www.geospatial.jp/ckan/dataset/links-jidousyaunsoujigyoujiko-2024 (データ処理は下に記載があります)

つかいかた

  1. マップが描画されると、「開始」「終了」のマーカーを置くことができるようになります。 image

2.ふたつのマーカーを設置し「シミュレーション開始」をクリックすると、過去の事故データがDBからクローリングされ、表示されます。 画像は試しに500件くらい表示してみたやつ。

  1. 最後に、事故情報を学習した AI が、事故状況から起こりうる「最悪の状況」を教えてくれます。やったね。

技術

アプリとインフラに分けて紹介します。

App

  • Next.js
    • MAPまわり
      • Maplibre
  • Postgres DB
  • strandsagents(Agent作成)

Infra

前提として、全てのリソースを aws でホスティングしています。

  • Amplify (app)
  • Aurora Serverless v2 (db)
  • Location Service
  • Bedrock AgentCore

AIエージェント

  • strandsagents(Agent作成)
  • Amazon Bedrock AgentCore
  • Amazon Bedrock
  • Amazon Bedrock ナレッジベース
  • Amazon ECR
  • Amazon S3

アーキテクチャ図

※間違ってる可能性があります image

データ処理

  • Amazon Sagemaker AI (notebook instance)
    • pandas
    • Amazon Bedrock
  • S3
  • RDS (Aurora Serverless v2)
  • (EC2) (RDS接続用)

使用したオープンデータには、事故の情報が約60カラムに渡って詳細に記載されていました。 Amazon Bedrock経由でモデルに各行のデータの一部をプロンプトとして渡し、各事故データに対し「タイトル」と「概要」を生成しました image

Sagemakerのnotebookインスタンス上で処理を行いS3にcsvを保存し、EC2からpsqlで、RDSのデータベースにアクセスしクエリを叩いて、S3に保存した加工済みデータをテーブルへ挿入しました

SELECT aws_s3.table_import_from_s3( '{table_name}', '', '(format csv, header true)', aws_commons.create_s3_uri( '{bucket_name}', '{file_path}', '{region}' ) );

参考: Amazon S3 から RDS for PostgreSQL DB インスタンスにデータをインポートする

serverlessを使うことでコスト削減が・・・imageできませんでした(本当に申し訳ございません)

AI 活用

mcp

今回は aws を触るので、aws 公式の documentation MCP を使用しました。 https://awslabs.github.io/mcp/servers/aws-documentation-mcp-server/

AI Agent に登録しておくことで、最新の情報を参照してくれるようになります。 image

その他

Kiro つかってみた

※触ったけどハッカソン向きじゃないな......と思ったので、途中から触るのをやめてます

なんと、だいぶ前に waitlist に登録していた Kiro がハッカソン前日に来ていました。やった~ image

Kiro は Amazon が提供する AI IDE です。ほかの AI IDE のように Vibe Coding もできますが、その強みは Kiro spec にあります。 詳しい説明は 公式記事 に任せますが、簡単にまとめると

  • Kiro にプロンプトを投げると、複数の要件に展開する(例:Todo リストの作成 → todo の追加・編集・削除、締め切りの追加...)
  • 続けて、要件をもとに設計文書を作成する
  • 設計をもとにタスク・サブタスクを生成する

といったフローで開発を行います。こうすることで AI が要件をどのように解釈しているかが開発者からもモニタリングできるほか、これまで人間が行ってきた「要件定義」「設計」のフローを新たに AI Agent が肩代わりできるようになり、開発速度の向上が見込めます。

画面はこんな感じ。それぞれ「要件定義(Requirement)」「設計(Design)」「タスク(Task List)」と書き下してくれるので、これからなにをするかがハンドリングしやすいです。 image

ちなみに、VSCode ベースなので以降も楽でした。(wsl からの起動だけちょっと工夫が必要)

ちなみに応答待機中は Kiro くんがキョロキョロします。かわいいね。 image

yotu

@yotu