Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20220121 AWS Amplifyで運用した背景と結果 WEBサイトの構成について
Search
Takumi Abe
January 22, 2023
Technology
0
110
20220121 AWS Amplifyで運用した背景と結果 WEBサイトの構成について
2022/01/21 (金) JAWS PANKRATION 2021 ~振り返り~にて発表した登壇資料。
https://jaws-ug.doorkeeper.jp/events/130606
Takumi Abe
January 22, 2023
Tweet
Share
More Decks by Takumi Abe
See All by Takumi Abe
20250514 1Passwordを使い倒す道場 vol.1
east_takumi
0
200
250510 StepFunctionのテスト自動化始めました vol.1
east_takumi
1
310
250509 JAWS DAYS 2025 re:Cheers サポート班振り返り
east_takumi
0
13
250208 Discordに勉強会告知を⾃動でしたい!vol.2
east_takumi
0
6
250201 マネコンの進化についていけないので、MFA設定くらいは自動化して追いつく作戦
east_takumi
1
110
250125 Discordに勉強会告知を⾃動でしたい!vol.1
east_takumi
0
5
241226 推しに嫌われないためにわたしたちはなにをすべきか vol.0
east_takumi
0
86
「楽しい」を優先できる コミュニティ運営を作っていく vol.0
east_takumi
0
50
241116 Momento CacheみたいなのをAWSだけでできないか考えてみた
east_takumi
0
36
Other Decks in Technology
See All in Technology
AWS Summit Japan 2025 Community Stage - App workflow automation by AWS Step Functions
matsuihidetoshi
1
280
250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ver.0.1」
msykd
PRO
2
320
本が全く読めなかった過去の自分へ
genshun9
0
560
米国国防総省のDevSecOpsライフサイクルをAWSのセキュリティサービスとOSSで実現
syoshie
2
1.1k
2025-06-26_Lightning_Talk_for_Lightning_Talks
_hashimo2
2
100
生成AI活用の組織格差を解消する 〜ビジネス職のCursor導入が開発効率に与えた好循環〜 / Closing the Organizational Gap in AI Adoption
upamune
5
3.7k
Tech-Verse 2025 Keynote
lycorptech_jp
PRO
0
220
フィンテック養成勉強会#54
finengine
0
180
M3 Expressiveの思想に迫る
chnotchy
0
110
"サービスチーム" での技術選定 / Making Technology Decisions for the Service Team
kaminashi
1
150
製造業からパッケージ製品まで、あらゆる領域をカバー!生成AIを利用したテストシナリオ生成 / 20250627 Suguru Ishii
shift_evolve
PRO
1
140
急成長を支える基盤作り〜地道な改善からコツコツと〜 #cre_meetup
stefafafan
0
130
Featured
See All Featured
Code Review Best Practice
trishagee
68
18k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Code Reviewing Like a Champion
maltzj
524
40k
Site-Speed That Sticks
csswizardry
10
660
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
GraphQLとの向き合い方2022年版
quramy
48
14k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
A Modern Web Designer's Workflow
chriscoyier
694
190k
Into the Great Unknown - MozCon
thekraken
39
1.9k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
53k
Why You Should Never Use an ORM
jnunemaker
PRO
57
9.4k
Six Lessons from altMBA
skipperchong
28
3.9k
Transcript
AWS Amplifyで運用した背景と結果 WEBサイトの構成について Takumi Abe
メンバー紹介 リーダー Shigeru Oda Kohei Otani Takumi Abe
アジェンダ • AWS Amplify採用経緯 • リリースタイムライン • 実現できなかったこと • 費用やGoogle
Analyticsの結果 • 今回の反省と総括
AWS Amplify採用の経緯 • DAYSからの反省 ◦ 登壇者情報掲載やニュースリリースを同じサイト上で実現&更新を自動化 したい ◦ 情報更新の際に他の人の編集が影響しないようにしたい
Shifter運用との比較 Shifter(Word Press)運用の場合 • メリット ◦ デザインテンプレートやプラグインが豊富 ◦ URLやOGP画像などをマニュアルで登録できる •
デメリット ◦ 更新する際に作業中のすべてが本番反映される ▪ masterに直commitしてるイメージ ◦ 自動化に一苦労(PHPができれば問題なし?) master master master おっしゃ!!! 更新できた まだ作業中だったの に!? 一コマ劇場 一方その頃…
AWS Amplify採用の経緯 • DAYSからの反省 ◦ 登壇者情報掲載やニュースリリースを同じサイト上で実現&更新を自動化 したい ◦ 情報更新の際に他の人の編集が影響しないようにしたい フルスクラッチで作ってみたら全部行けるかも!?
であれば、Amplify使ってみよう!!!←ココ
当初作ろうとしてたの構成
当初作ろうとしてたの構成
使用した技術 • Nuxt.js (2.15.x) • TailwindCSS • AWS Amplify
リリースタイムライン 8月中旬 初期プロジェクト作成 コンテンツをmarkdownで管理 10月上旬 サイトリリース 8月下旬 OGP設定 9月下旬 全体レイアウト調整
2ヶ国語対応(英語・日本語) 10月中旬 Google Analytics設置 newsページのprevnext設置 favicon設置 11月上旬 バーガーメニュー実装 タイムゾーン対応 各種リンク置き換え 11月上旬 newsページの言語切替実装 登壇者情報公開の半自動実装 タイムテーブル公開 11月中旬 newsページ言語切り替えバグ修正 newsページのprevnext修正 11月下旬 follow upページ作成 登壇者資料公開
リリースタイムライン 8月中旬 初期プロジェクト作成 コンテンツをmarkdownで管理 10月上旬 サイトリリース 8月下旬 OGP設定 9月下旬 全体レイアウト調整
2ヶ国語対応(英語・日本語) 10月中旬 Google Analytics設置 newsページのprevnext設置 favicon設置 11月上旬 バーガーメニュー実装 タイムゾーン対応 各種リンク置き換え 11月上旬 newsページの言語切替実装 登壇者情報公開の半自動実装 タイムテーブル公開 11月中旬 newsページ言語切り替えバグ修正 newsページのprevnext修正 11月下旬 follow upページ作成 登壇者資料公開
2ヶ国語対応(英語・日本語) nuxt/i18n - 自動ルート生成や検索エンジン最適化、翻訳メッセージの遅延読み込みを実現 - コンポーネントごとに翻訳もできる - ただし、自動翻訳ではないため、翻訳文章を自身で用意する必要ある
2ヶ国語対応(英語・日本語) 実装部分 日本語 英語
配信コンテンツをmarkdownで管理 nuxt/content - GitベースのヘッドレスCMSとして機能する - Markdown、JSON、YAML、XML、CSVファイルといったファイルをMongoDBのAPI ような機能で扱える - Markdownの文章をそのままコンテンツとして展開できる
配信コンテンツをmarkdownで管理 変数を設定でき、 呼び出せばvueファイル上で 判定条件などに利用可能 実際に公開してるニュース記事の 本文
登壇者情報公開の半自動化 • nuxt/contentを使って、CSVの内容をインポートし変数に格納 • (レコード番号) -1 が配列番号になり、↑上記で格納した変数から対象の情報を取り出 す • 取り出した個々人の情報をHTMLに表現
CSVをアップロードするだけで、登壇者情報が更新できる
登壇者情報公開の半自動化 ハードコーディングになったわけ - nuxt/contentの仕様のため - CSVの1レコード≠1つのJSON 参考:https://content.nuxtjs.org/ja/writing CSV Markdown
実現できなかったこと • パンくずリストの設置 • GASでのAPI実装 • SNSへの自動投稿 • SNSシェアボタン •
PDFプラグインの実装 • 国旗の自動更新 • テスト
実現できなかったこと • パンくずリストの設置 • GASでのAPI実装 • SNSへの自動投稿 • SNSシェアボタン •
PDFプラグインの実装 • 国旗の自動更新 • テスト
GASでのAPI実装をしなかった背景 • セキュリティについての調査時間不足 ◦ 個人情報(メアド、電話番号)を含む可能性もあったため • 回避パターン案 ◦ スプレッドシートに個人情報を持たせない ▪
一番確実だが、手作業を必要としヒューマンエラーが発生する可能性あり ◦ スプレッドシート(Google)側でブロッキングできる? ▪ 不確定事項が大きかった
費用やGoogle Analyticsの結果 費用 2021.10 $9.89 ¥1126.9 2021.11 $13.05 ¥1486.9 合計
$22.94 ¥2613.8
費用やGoogle Analyticsの結果 Google Analytics リクエストのあった国々( ver 世界地図)
費用やGoogle Analyticsの結果 Google Analytics リクエストのあった国々( ver 世界地図)
費用やGoogle Analyticsの結果 Google Analytics ページビューの変動 10.11~12.06
今回の反省と総括 • Amplifyについて ◦ previewがすごく役立った ▪ リポジトリに入ってない人にも確認してもらいやすい (コレ自体がいいかどうかはさておき) ▪ ブランチごとにプレビューできるからレビューしやすい
◦ デプロイ爆速だった ▪ nuxt初期プロたてて、反映までが半日いらないのは神 ▪ ドメインなどの選定が完了していることが前提
今回の反省と総括 • Amplifyについて ◦ previewがすごく役立った ▪ リポジトリに入ってない人にも確認してもらいやすい (コレ自体がいいかどうかはさておき) ▪ ブランチごとにプレビューできるからレビューしやすい
◦ デプロイ爆速だった ▪ nuxt初期プロたてて、反映までが半日いらないのは神 ▪ ドメインなどの選定が完了していることが前提 • デザイン案を早めに決めると動きやすい ◦ デザインの調整でかなり時間を食った • GASでのAPIできれば自動化にむけて敵なし ◦ セキュリティ事項だけ注意すれば大丈夫 ...と思う! • Markdownファイルに呼び出しidつけて管理しても良かった ◦ 登壇者情報ページの概要だけ、レイアウトが崩れやすかった
メンバーへ Shigeru Oda Kohei Otani
最後に... 応援いただきありがとうございました!!