Slide 1

Slide 1 text

Webサイト運用の自動化 AIエージェント要らなかった話 JAWS-UG 茨城 #16 LT&BBQ大会 くらっち

Slide 2

Slide 2 text

自己紹介 普段の業務 Railsアプリのエンジニア / QAエンジニア / AIエンジニア 社内業務アプリ開発 自社プロダクトQA担当 開発部AI推進担当 趣味 スポーツ 野球, ソフトボール マラソン くらっち ビーチラグビー スキー, スノボ JAWS-UG 東京支部 運営メンバー (この前、チュートリアル完了とy-ohgiさんに伝えられました)

Slide 3

Slide 3 text

運営してるWebサイト Agenda あのニャン太郎め... Git/CI/CDを使わないでどうやる? まとめ

Slide 4

Slide 4 text

01 運営してるWebサイト

Slide 5

Slide 5 text

運営しているWebサイト ソフトボールチームに入ってソフトボールをやってます。 そのチームのInstagramとWebサイトを運営しています。

Slide 6

Slide 6 text

構成 当初の構成はシンプルに CloudFront + S3 で構築 S3にHTML/CSS/JSを格納 CloudFrontでホスティング ※ CDKで構築

Slide 7

Slide 7 text

一見、シンプルなWebサイト運営。 課題とかあるの?

Slide 8

Slide 8 text

あるんすよ

Slide 9

Slide 9 text

何が?

Slide 10

Slide 10 text

練習や試合の日程が出るたびに 更新しなければ...

Slide 11

Slide 11 text

02 あのニャン太郎め...

Slide 12

Slide 12 text

運用開始時 日程把握のために 自分のカレンダーにも入力 日程を受け取る LINEグループ 私 commit push PR作成 Webサイト編集 ※ コーディングエージェントは使ってます merge deploy

Slide 13

Slide 13 text

週1でこれやるのめんどくさくてぇ...

Slide 14

Slide 14 text

そりゃもちろん?自動化しましたよ?

Slide 15

Slide 15 text

運用自動化構想Part1 日程を受け取る LINEグループ 私 AIくん頼むわぁ へい! commit push PR作成 Webサイト編集 deploy merge Github Actions CI/CD実行

Slide 16

Slide 16 text

どうですか?問題なさそうでしょう?

Slide 17

Slide 17 text

自分にとっては落とし穴がありました

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

このニャン太郎

Slide 20

Slide 20 text

フリープランでは PRのAuto Mergeが有効にできない...!

Slide 21

Slide 21 text

チェック入れられない...!

Slide 22

Slide 22 text

この構成は使えない... 日程を受け取る LINEグループ 私 AIくん頼むわぁ へい! commit push PR作成 Webサイト編集 deploy merge Github Actions CI/CD実行 ※ Githubに課金すればおしまい

Slide 23

Slide 23 text

Gitを使わない方法はないかなぁ...

Slide 24

Slide 24 text

03 Git/CI/CDを 使わないでどうやる?

Slide 25

Slide 25 text

私たちが自動化しようとすると AI使おうとするじゃないですか?

Slide 26

Slide 26 text

AIのことは一旦考えない!

Slide 27

Slide 27 text

これによって行き着いた結論は

Slide 28

Slide 28 text

CMS&配信システム作るかぁ ※ CMS・・・Content Management System

Slide 29

Slide 29 text

運用自動化構想Part2 EventBridgeによる 定期実行 日程を受け取る LINEグループ カレンダー追加 私 ソースコードを 編集することがない! 日程取り込み Webサイトへ反映

Slide 30

Slide 30 text

自作CMSアプリのアーキテクチャ

Slide 31

Slide 31 text

自作CMSアプリのアーキテクチャ シンプル! CMSアプリ CloudFront S3 API Gateway Lambda DynamoDB 認証 Cognito Google垢 公開Webサイト CloudFront S3

Slide 32

Slide 32 text

自作CMSアプリのアーキテクチャ 定期実行処理 Webサイト反映 カレンダー同期 DynamoDB Stream EventBridge Lambda Lambda SQS 障害発生時メール SQS Lambda SNS

Slide 33

Slide 33 text

DynamoDB Streamsとな? DynamoDB Streams captures a time-ordered sequence of item-level modifications in any DynamoDB table and stores this information in a log for up to 24 hours. Applications can access this log and view the data items as they appeared before and after they were modified, in near-real time. DynamoDB Streamsは、任意のDynamoDBテーブルにおけるアイテムレベルの変更を時系列順に記録 し、最大24時間ログに保存します。アプリケーションはこのログにアクセスし、変更前後のデータアイテ ムの状態をほぼリアルタイムで確認できます。 Whenever an application creates, updates, or deletes items in the table, DynamoDB Streams writes a stream record with the primary key attributes of the items that were modified. アプリケーションがテーブル内のアイテムを作成、更新、または削除するたびに、DynamoDB Streams は変更されたアイテムの主キー属性を含むストリームレコードを書き込みます。

Slide 34

Slide 34 text

DynamoDB StreamsはLambda統合可能 Amazon DynamoDB is integrated with AWS Lambda so that you can create triggers—pieces of code that automatically respond to events in DynamoDB Streams. With triggers, you can build applications that react to data modifications in DynamoDB tables. Amazon DynamoDB は AWS Lambda と統合されているため、DynamoDB Streams のイベントに自動 的に応答するコードであるトリガーを作成できます。トリガーを使用すると、DynamoDB テーブルのデー タ変更に反応するアプリケーションを構築できます。 DynamoDB Streamの ドキュメント DynamoDB Stream Lambda統合の ドキュメント

Slide 35

Slide 35 text

ちなみに、同じDB系サービスでは、 Aurora MySQL Aurora PostgreSQL に同じような機能(アクティビティストリーム)が 実装されていました。

Slide 36

Slide 36 text

まとめ Webサイトの運用の自動化にAIエージェントは必要なかった! というか Git も CI/CD も不要でした 「自動化 = AIを使う」という固定概念は捨てましょう! DynamoDB Streamsは、監視系の機能ではあるが、Lambda統合ができる! 今後はLINE公式アカウントで動かしている、 家計簿管理やタスクさせてるAIエージェントに日程登録なども任せる想定。

Slide 37

Slide 37 text

Thank You!