4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS re:Invent 2025のセッション情報一覧をExcel化してみる

Last updated at Posted at 2025-10-14

みなさん、こんにちは!

今年12月にラスベガスで開催予定の AWS re:Invent 2025。執筆時点で1,843ものセッションが予定されており、情報を収集するにも一苦労です。
公式の Event Catalog はありますが、Excel化して見やすくできたら良いな...ということで、セッション情報一覧をExcel化してみました。
Excel化の方法について、以降で詳しくご紹介します。
※10/10時点でセッション情報一覧のJSONファイルに「セッションの開始時間」や「開催場所」の情報がないため、データが取得できません。セッション情報一覧が更新されたら本ブログも更新します。

セッション情報取得

以下のリポジトリからセッション情報一覧のJSONファイル(data/sessions.json)を取得します。

re:Invent 2025 MCP Server

プログラム作成

取得したセッション情報一覧を、以下のPythonでTSVに整形して書き出します。
Pythonプログラムではセッションの必要情報を取り出しつつ、タイトルと概要の翻訳を行っています。

main.py

qiita.rb
import csv
import json

from google import genai
from tenacity import retry, stop_after_attempt, wait_exponential

# 無料で利用可能なGeminiを使用
# 無料枠利用の場合、クォータ制限に注意する
GEMINI_API_KEY = '<API_KEY>'

genai_client = genai.Client(api_key=GEMINI_API_KEY)

@retry(stop=stop_after_attempt(5), wait=wait_exponential(multiplier=2, min=30, max=120))
def get_translation(content):
    # 翻訳指示プロンプト
    prompt = f"""
    Translate the following English into Japanese: {content}

    Instructions:
    - Make sure to return the most direct and common translation.
    - Provide only the translation in your response. No explanation is needed.

    Example:
    English: 4x faster workload modernization with agentic AI
    Japanese (Response): エージェントAIでワークロードモダナイゼーションを4倍高速化
    """
    response = genai_client.models.generate_content(
        model="gemini-2.0-flash",
        contents=prompt,
    )
    return response.text.replace('\n', '')

def load_sessions():
    try:
        # 'sessions.json'からセッション情報を取得
        with open("./sessions.json", "r") as f:
            data = json.load(f)
        return data
    except Exception:
        raise

def generate_records(sessions):
    for session in sessions:
        # 必要データの抽出
        code = session["code"]
        title = session["title"]
        title_jp = get_translation(title)
        abstract = session["abstract"].replace('\n', '')
        abstract_jp = get_translation(abstract)
        type = session["type"]
        length = session["length"]
        session_id = session["sessionID"]
        event_id = session["eventId"]
        attributes = session["attributes"]
        level = ",".join(attributes["level"])
        features = ",".join(attributes["features"])        
        topics = ",".join(attributes["topics"])
        roles = ",".join(attributes["roles"])
        services = ",".join(attributes["services"])
        industries = ",".join(attributes["industries"])
        segments = ",".join(attributes["segments"])
        areas_of_interest = ",".join(attributes["areas_of_interest"])
        speakers = ",".join([speaker["fullName"] for speaker in session["speakers"]])

        yield [
            code,
            title,
            title_jp,
            abstract,
            abstract_jp,
            type,
            length,
            session_id,
            event_id,
            level,
            features,
            topics,
            roles,
            services,
            industries,
            segments,
            areas_of_interest,
            speakers
        ]

def write_to_csv(sessions):
    total, count = len(sessions), 0

    # 整形したセッション情報を取得し、結果を'output.tsv'に出力
    records = generate_records(sessions)
    with open("./output.tsv", "w") as f:
        writer = csv.writer(f, delimiter="\t") # TSVのため区切り文字は'\t'
        for record in records:
            writer.writerow(record)
            count += 1
            print(f"Processed {count}/{total} ({count / total * 100:.1f}%)")

def main():
    # セッション情報読み込み
    sessions = load_sessions()

    # ファイル書き込み
    write_to_csv(sessions)

if __name__ == "__main__":
    try:
        main()
    except Exception as e:
        print(f"Error: {e}")

main.py と同じ階層に sessions.json を置くと、データが読み込まれて処理され、ファイル(output.csv)に書き込まれていきます。

プログラム実行

ターミナルで main.py を実行します。

python main.py

実際の出力例:

qiita.rb
DVT222-S   100% Observability at 10% the Cost Using Grepr's Real-Time ML (sponsored by Grepr)  GreprのリアルタイムMLでコスト10%で100%のオブザーバビリティを実現 (Grepr提供) Engineering team are stuck between a rock and a hard place when it comes to observability: either collect all the data on how your system is behaving or risk not having that one thing needed during an incident. Grepr acts as a proxy between your observability agents and your observability vendor and uses real-time ML to understand the behavior of every piece of data. Grepr's Intelligent Data Engine automatically reduces noise, while keeping all the original raw data in low-cost storage, automatically handling new usage patterns or spikes. The result: minimal configuration, immediate 90% reduction in costs, with no migrations needed. Learn how Grepr works and see it in action in this session. This presentation is brought to you by Grepr, an AWS Partner.  オブザーバビリティに関してエンジニアリングチームはシステムの振る舞いに関するすべてのデータを収集するかインシデント発生時に必要となるその一つの情報がないリスクを冒すかの板挟みになっていますGreprはオブザーバビリティエージェントとオブザーバビリティベンダーの間にプロキシとして機能しリアルタイムMLを使用してすべてのデータ片の振る舞いを理解しますGreprのインテリジェントデータエンジンはすべての元の生データを低コストストレージに保持しながらノイズを自動的に削減し新しい使用パターンやスパイクにも自動的に対応します結果として最小限の設定で移行作業なしに即座にコストを90%削減できますGreprの仕組みと実際の動作についてはこのセッションでご覧くださいこのプレゼンテーションはAWSパートナーであるGreprがお届けします  Lightning talk  20.0    1753648751188001ud1m    17436415reinvent2025    200 - Intermediate  AWS Partners,Lecture-style  Developer Tools Developer / Engineer,DevOps Engineer,IT Executive           Independent Software Vendor,Startup Monitoring & Observability,Cost Optimization,DevOps Jad Naous
MAM349  4x faster workload modernization with agentic AI    エージェントAIでワークロードモダナイゼーションを4倍高速化    Discover how to transform enterprise workloads up to 4x faster through the strategic implementation of agentic AI. This lightning talk demonstrates how to evolve your architectural practice from periodic updates to a dynamic, continuous discipline leveraging the AWS Well-Architected Tool and AWS Transform. Learn to systematically evaluate your infrastructure using the AWS Well-Architected Framework's proven methodologies, develop comprehensive data-driven modernization roadmaps, and expedite transformations through AWS Transform's capabilities.  エージェントAIを戦略的に実装することでエンタープライズワークロードを最大4倍高速に変換する方法を発見しましょうこのライトニングトークではAWS Well-Architected ToolとAWS Transformを活用してアーキテクチャプラクティスを定期的な更新から動的で継続的な規律へと進化させる方法を実証しますAWS Well-Architected Frameworkの実績ある方法論を使用してインフラストラクチャを体系的に評価し包括的なデータ主導のモダナイゼーションロードマップを開発しAWS Transformの機能を通じて変革を迅速化する方法を学びましょう  Lightning talk  20.0    1755044544176001pbPd    17436415reinvent2025    300 - Advanced  Lecture-style   Artificial Intelligence,Migration & Modernization   Developer / Engineer,IT Professional / Technical Manager,Solution / Systems Architect   AWS Transform           Well-Architected Framework,Innovation & Transformation,Agentic AI   
...

Excel化

TSVの作成が完了したら、テキストファイルにしてExcelに取り込みます。(TSVのままだとExcel取り込み時に文字化けするため)
Excelで「データ」→「データの取得」→「テキストまたはCSVから」をクリックし、ファイルを読み込みます。
image.png

区切り記号を「タブ」で読み込むと、ファイルのデータが表形式で取り込まれます。
image.png

さいごに

公式の Event Catalog もありますが、セッション数が非常に多い&全部英語なので、日本語化しつつ検索しやすくするにはプログラムでExcel化してしまったほうが便利ですね。

セッション情報一覧のExcelが欲しいという方は、こちらよりお気軽にご連絡ください!

4
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?