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
100
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
250201 マネコンの進化についていけないので、MFA設定くらいは自動化して追いつく作戦
east_takumi
1
73
241226 推しに嫌われないためにわたしたちはなにをすべきか vol.0
east_takumi
0
58
「楽しい」を優先できる コミュニティ運営を作っていく vol.0
east_takumi
0
22
241116 Momento CacheみたいなのをAWSだけでできないか考えてみた
east_takumi
0
18
241012 おらたちに力をわけてくれ!!JAWS FESTA 2023から1年、地方とコミュニティのこれからを語り合いたい!
east_takumi
0
190
241004_JAWSPANKRATION2024-オペレーションの振り返り
east_takumi
0
36
240803 Webエンジニアが_One_Observability_Workshop_から始めるO11y.pdf
east_takumi
0
41
240601 最近GAしたAI Gatewayってなんだ?
east_takumi
0
20
240516「のうさば」から紐解く サメの郷土料理のお話
east_takumi
0
100
Other Decks in Technology
See All in Technology
RayでPHPのデバッグをちょっと快適にする
muno92
PRO
0
200
手を動かしてレベルアップしよう!
maruto
0
260
Oracle Database Technology Night #87-1 : Exadata Database Service on Exascale Infrastructure(ExaDB-XS)サービス詳細
oracle4engineer
PRO
1
220
生成AI×財務経理:PoCで挑むSlack AI Bot開発と現場巻き込みのリアル
pohdccoe
1
820
エンジニアの健康管理術 / Engineer Health Management Techniques
y_sone
4
890
AI Agent時代なのでAWSのLLMs.txtが欲しい!
watany
3
380
どちらかだけじゃもったいないかも? ECSとEKSを適材適所で併用するメリット、運用課題とそれらの対応について
tk3fftk
2
280
AWSアカウントのセキュリティ自動化、どこまで進める? 最適な設計と実践ポイント
yuobayashi
7
1.8k
“常に進化する”開発現場へ! SHIFTが語るアジャイルQAの未来/20250306 Yuma Murase
shift_evolve
0
100
サイト信頼性エンジニアリングとAmazon Web Services / SRE and AWS
ymotongpoo
7
1.9k
AIエージェント開発のノウハウと課題
pharma_x_tech
9
4.9k
開発者体験を定量的に把握する手法と活用事例
ham0215
0
140
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.2k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
RailsConf 2023
tenderlove
29
1k
A Philosophy of Restraint
colly
203
16k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
Embracing the Ebb and Flow
colly
84
4.6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
How to train your dragon (web standard)
notwaldorf
91
5.9k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
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
最後に... 応援いただきありがとうございました!!