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
AWSが公表している 「BestPractices For Wordpress on AWS」...
Search
kinjo
June 29, 2023
Programming
1.9k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWSが公表している 「BestPractices For Wordpress on AWS」AWS CDK で作ってみた
近い内に、CDKのコードもGithubのパブリックリポジトリにアップします。
kinjo
June 29, 2023
More Decks by kinjo
See All by kinjo
初めてAWSサミット行ってきた
kinjo_yuya
0
78
Other Decks in Programming
See All in Programming
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
100
AI時代の仕事技芸論〜ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ(スクフェス仙台 2026バージョン)
kuranuki
0
600
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
800
Performance Engineering for Everyone
elenatanasoiu
0
270
AI がコードを書く時代における新卒エンジニアの仕事風景 (2026) / New Graduate Engineers in the Era of AI Coding (2026)
sushichan044
0
210
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
360k
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
290
OSINT for SRE: 学術論文とポストモーテムから探る システム障害の共通パターン / SRE NEXT 2026
tomoyk
1
3.4k
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
220
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
460
Contextとはなにか
chiroruxx
1
390
SREの積み重ねがAI駆動開発のガードレールになった ― 7つの実践/SRE Guardrails The 7
tomoyakitaura
8
3.9k
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.7k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6k
Context Engineering - Making Every Token Count
addyosmani
9
1k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
220
HDC tutorial
michielstock
2
740
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
150
Statistics for Hackers
jakevdp
799
230k
Transcript
AWSが公表している 「BestPractices For Wordpress on AWS」 AWS CDK で作ってみた
自己紹介 会社名: 株式会社シーエー・アドバンス 名前:金城 裕也(きんじょう ゆうや)
[email protected]
github.com/yuyakinjo 最近、CDKやってます
今日話したい事 ・ベストプラクティスで公開されているアーキテクチャを参考にCDKで作ってみた ・当初やろうとしていた構成 VS ベストプラクティスでパフォーマンス比較 ・ベストプラクティス + α ・やってみて感想
AWS CDKとは
AWS CDK とは ・AWS Cloud Development Kit(CDK)は、クラウドインフラをコード で定義するためのオープンソースのソフトウェア開発フレームワーク です ・Python,
Java, TypeScript等の言語を使えます ・CloudFomation −(JSON・YAMLつらみ) = CDK
「BestPractice For Wordpress on AWS」を取り入れるまでの背景
弊社でグループ会社の社内・社外広報 サイトを担当 ・非エンジニアさんでもサイト編集できるよう広く普及した wordpress採用
現状の構成(グレーアウトは非採用)
課題点 ・サイトちょっと重いね(特に初期表示・画像・動画) ・アクセス殺到すると落ちるね(DBコネクション原因ぽいね) ・データ料金(EFS)高いね
改善アクション ・サイトちょっと重いね(特に初期表示・画像・動画) → CloudFrontでキャシュ ・アクセス殺到すると落ちるね(DBコネクションプール枯渇が原因ぽい) → AuroraServelessV2に切り替え ・データ料金(EFS)高いね → S3に画像・動画移動
でも実は、AWSの担当者様から アドバイスはもらっていた・・・ 弊社では、年1ぐらいで(コロナ時期除く)、AWSの担当者様から 新しいサービスの紹介や、現在弊社で運用しているシステムの アーキテクチャを直々にレビューしてもらう機会がありました。 その時に、上述した課題点をお伝えし、ベストプラクティスなるものを共 有してもらっていた。
「Best Practices for WordPress on AWS」 の概要
・AWS ホワイトペーパーとガイド AWS と AWS コミュニティによって作成された、テクニカ ルホワイトペーパー、技術ガイド、参考資料、リファレンス アーキテクチャ図などの技術文書(抜粋)。 Best Practices
for WordPress on AWS
ベストプラクティス構成
現状の構成(グレーアウトは非採用)
改善アクション → CloudFrontでキャシュ → AuroraServelessV2に切り替え → S3に画像・動画移動 → 上記で、課題は解決するはずだから、 memcachedはオプションで!!
memcachedなしでいくぞう
CDKにて作成後、パフォーマンス比較
負荷テストで、1200req / 10sec 結果:2xx → 20%弱 リクエスト過多 → ALB 503
もしかして、memcached必 要なのか 伸びない・・・
memcached追加!!
アクセス改善1000倍以上 248req/10sec → 20000req/10sec ※リンクを共有して10秒以内に全社員がアクセスしたのを想定
負荷テストで、20000req / 10sec 結果:2xx → 99%以上 リクエスト過多 → ALB 503
ならない memcached必要やん! 伸びすぎた草
ELB が503返さない memcached 必要やん!
レスポンスタイム改 善 memcached 必要やん!
DBコネクション枯 渇しない memcached 必要やん!
ECSのメトリクスが穏やかになっている スパイクしても、スケールする余裕ある。。。
memcached 頑張ってるね
・memcached ・memcachedを活かすplugin(w3-total-cache) ・pluginの使用方法もリポジトリで解説してました まとめ:強さのポイント
ベストプラクティス + α
EC2のスケール管理辛い + そういえば、 認証必要だった
・スケール管理を楽にしよう EC2 → ECS ・認証 社内向けのためコンテンツ・コンテンツに掲載されている画像・動画類 → 社内のSSO通った人のみ ベストプラクティス +
α
構成図でみる認証経路
・①⇔④ CloudFront - ALB 間はOIDC使う(やったことある) ・①⇔② CloudFront - S3間どうしよう(やったことない) 認証は、社内独自SSO(CASSO)
え、Lambda@EdgeとCognito 準備するの・・・ Lambda + Cognito大げさ・・・ 公式見ると実装例ある!が・・・・
世にあるのもそ れに追随する が多い・・
ALB ⇔ S3 に認証を寄せるか 副作用:CloudFrontのキャッシュ使わないことになるかもだけど。安全第一 参考例あるかな・・・・ 近いのあった!!!! リリースが昨年末 1. VPC
Endpointを準備 2. ALBのターゲットグループに設定 これこれ感
認証込み構成図
・EC2 → ECS Fargate ・認証 ALB ⇔ VPC Endpoint ⇔S3
1. すべての認証経路をALBのOIDCに寄せ、サーバーサイドに リクエストが届かない(便利!) 2. アプリ側で認証を実装しない(差分少なくて楽!) +α の まとめ
今回やってみた感想
ベストプラクティス は 裏切らない
・認証はさんだ時のキャッシュ(CloudFront)の扱い方 headerとかcookieとかの条件が難しいのでパス!安全第一 苦労したところ①
・CDKでVPC EndpointのENIからPrivate IPアドレスの取得 まだ普及していないやり方なので、CDKではまだ実装 例ないので、自力で取得! 参考 :https://aws.amazon.com/jp/blogs/networking-and-content-delivery/hosting-internal-https-static-websites-with -alb-s3-and-privatelink/ 苦労したところ②
流れ VPC Endpoint作成 ↓ ENIからIPアドレス抽出 ↓ ALBのターゲットグループ に追加
次の改善点
次の改善点 ・CloudFront入れたけど、まだキャッシュさせてるものない(副作用) → ホワイトペーパーにヒントがありそう ・ALB ⇔VPC Endpoint ⇔ S3間のキャッシュ →
AWS File CacheかAWS StorageGateway使えそう? ・誰でも使えるようにしたい → ConstructHub、Github、Qiita等で共有
現場からは以上です。