AWS + GitHub Actions で構築する個人備忘録

記事タイトルとURLをコピーする

はじめに

こんにちは、マネージドサービス部の福田です。

普段、オブザーバビリティ推進に取り組んでいますがオブザーバビリティに必要な知識は非常に幅広く、日々のキャッチアップには苦労が絶えません。

調べものをするたびにブラウザのブックマークは増え、生成AIに何度も同じ質問を繰り返してしまう……。「備忘録を残そう」と試みても、以下のような悩みに直面していました。

  • 更新が面倒:結局、放置されて情報が古くなる
  • 情報が散在:運用方法を模索する中で様々なツールを使ってしまい、どこに書いたか忘れる

「もっと手軽で、管理しやすい記録の仕組みはないものか」

そんな思いから、AWS + GitHub Actionsを用いた個人備忘録を構築してみました。 最初は自分用として始めましたが、実際に使用してみると「チームの知識共有ツールとしても活用できるのでは?」という意外な気づきもありました。

今回は、そんな個人的な試行錯誤から生まれた個人備忘録のお話です。

アーキテクチャと設計

とにかく構築、運用が楽な構成にしました。
各ページの内容も自身のメモ+公式ドキュメントを生成AIでいい感じの内容にしてもらいドキュメント作成についても楽しています。
(内容は生成AIにまとめてもらっていることもあるので各ページには公式ドキュメントのリンクを記載をしております)

システム構成図

GitHub Actionsを起点にビルドからデプロイまでを完全自動化しつつ、アクセス元はWAFで制限することでセキュリティを担保しています。

実装のポイント

1. 更新のハードルを下げる

GitHub Actionsでデプロイを完全自動化し、「Markdownを書いてPushするだけ」でサイトが更新される状態にしました。
※動作も早く見た目もいい VitePress を使用しています。
VitePressの公式サイト:https://vitepress.dev/

# .github/workflows/deploy.yml (抜粋)
- name: Build VitePress site
  run: npm run docs:build

- name: Deploy to S3
  run: aws s3 sync <ローカルディレクトリのパス> s3://<バケット名> [オプション]

2. OIDCによるセキュアなデプロイ

GitHub ActionsからAWSへのデプロイには、セキュリティを考慮して OIDC (OpenID Connect) を使用しています。

IAMユーザー(アクセスキー/シークレットキー)を埋め込む必要がなく、一時的な認証情報を使用するため、万が一の漏洩リスクを最小限に抑えられます。

# OIDCによる認証設定
- name: Configure AWS credentials
  uses: aws-actions/configure-aws-credentials@v4
  with:
    role-to-assume: arn:aws:iam::<AWSアカウントID>:role/<ロール名>
    aws-region: <リージョン>

実際に運用してみた感触

現在は個人備忘録として使用しています。 以下が実際の画面です。

▼ トップページ

▼ 各ページ
オブザーバビリティ以外にもAWS含めた備忘録サイトになっています
この辺りはもう少し整理したい気持ちはありますが、このシステムの改修自体にあまり時間は割けたくないので、そのうちやろうかなと思っています。

▼ 編集フロー
各ページにあるリンクからGitHubへ移動し、直接編集が可能です。コミットすれば自動反映されます。

▼ 検索フロー

▼ 公式サイトのリンク集
各ページにも関連する公式サイトへのリンクは記載していますが、それとは別に 公式サイトのリンク集ページ 作成しています。
記事ごとの参照だけでなく、ここから情報の根拠(一次情報)をまとめて探すことも可能です。

使ってみて感じたメリット

  1. 検索性が高い: VitePress標準の検索機能が優秀
  2. 更新が気楽: デザインを気にせずMarkdownを書くだけ。
  3. 履歴が残る: 「いつ書いたか」「何を変更したか」がGitに残る

今後の可能性

1. 自分の備忘録が、そのまま「回答」になる

当初は自分のためだけに作ったツールでしたが、運用するうちに 「これ、チーム展開しても良いのでは?」 と感じ始めています。
チームメンバーから「New Relicの設定ってどうやるの?」「オブザーバビリティのこの指標って何?」と聞かれた時、これまではチャットで説明していましたが、URLを一つ貼るだけで解決できそうだなと感じています。

質問する側もされる側もチャットの往復は手間ですし、一次情報として共通のナレッジベースがあると何かと楽だと思います。
また個人的には、New Relicの操作手順ではなく、「オブザーバビリティの考え方」そのものを知ってもらいたいと思っております。
そうした概念的な知識は、流れてしまうチャットよりも、共通のナレッジベースとしてストックしておく方が適している気がします。

2. 生成AIとの連携

HTMLやMarkdownが S3 上に格納されていますので Amazon Bedrock を組み合わせることで、RAG として活用することもできます。
例:チャットボットに質問すると備忘録の内容をAIがいい感じに回答してくれるようになるなど

おわりに

「自分のための備忘録、どう管理しよう?」という悩みから始めたサイト構築でしたが、結果として 「チームの知識共有にも使えるシステム」 の可能性を感じました。
今回の構成はシンプルですが、ドキュメントが S3 上にあるため、将来的には Amazon Bedrock と連携させて RAGとして活用することも可能です。

とはいえ、あくまで「個人の備忘録」としての手軽さを最優先したいので、今のところ導入はしないと考えておりますが、今後「ページを探して移動するのすら面倒くさい……」と感じるようになったら、導入していこうと思っています。

・福田 圭(記事一覧)

・マネージドサービス部 所属
・X(Twitter):@soundsoon25

2023 New Relic Partner Trailblazer。New Relic Trailblazer of the Year 2025受賞。New Relic User Group運営。