Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
PHP_Laravel_とAWS_FargateのDeploy戦略.pdf
Search
TAKU
October 02, 2021
Programming
3.5k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PHP_Laravel_とAWS_FargateのDeploy戦略.pdf
PHPカンファレンス2021で使用した登壇資料です。
TAKU
October 02, 2021
Other Decks in Programming
See All in Programming
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.8k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
480
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
460
dotNET_vulnclicker_intro.pdf
deka_morita
0
110
mrbgem 三角測量 開発
ogom
0
210
パーソナライズPodcastを作った話
repunit11
0
130
CodeRabbitの効果検証と過ごしてみた3ヶ月
armondando
0
180
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
400
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2k
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.5k
Verilogで学ぶCPU自作入門
uyuki234
8
4k
最近”作らせてる” ローカルAIアプリの話
akit37
0
230
Featured
See All Featured
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
350
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
910
KATA
mclloyd
PRO
35
16k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
Six Lessons from altMBA
skipperchong
29
4.5k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
450
Scaling GitHub
holman
464
140k
The Pragmatic Product Professional
lauravandoore
37
7.5k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Transcript
Confidential © dip Corporation. 1 © dip Corporation. PHP(Laravel)とAWS FargateのDeploy戦略
PHPカンファレンス2021 ディップ株式会社 中川拓哉
Confidential © dip Corporation. 自己紹介 • 中川 拓哉 • 2018年4月にディップ株式会社に新卒入社
• PHPer歴:3年6ヶ月 • Twitter:@tkdev0728 • Qiita:@taku-0728 2
Confidential © dip Corporation. 今日話すこと • EC2→Fargateに移行した話をデプロイを主軸にして話します • PHPの話を詳しく聞きたい方はdiscordか明日のスポンサーツアーにて! 3
Confidential © dip Corporation. 本番環境でコンテナ使ってますか? 4
Confidential © dip Corporation. インフラ環境の変化 5 オンプレミス クラウド
Confidential © dip Corporation. インフラ環境の変化 6 EKS ECS
Confidential © dip Corporation. 前提 7 出典:Googleトレンド (https://trends.google.co.jp/trends/explore?q=Laravel%20EC2,Laravel%20ECS,Laravel%20EKS)
Confidential © dip Corporation. まだEC2が多い 8
Confidential © dip Corporation. ディップはどうなのか 9
Confidential © dip Corporation. 10 長く運用されているサービス 新しいサービス
Confidential © dip Corporation. 11 長く運用されているサービス 新しいサービス EC2
Confidential © dip Corporation. 12 長く運用されているサービス 新しいサービス EC2 Fargate
Confidential © dip Corporation. 13 新しいサービス • オートスケールをやりやすい • 開発環境が簡単に作れる
• 開発環境と本番環境の差異が少ない • インフラ構成を他チームに展開しやすい コンテナ化した理由 Fargate
Confidential © dip Corporation. 14 長く運用されているサービス
Confidential © dip Corporation. 15 長く運用されているサービス どうやってEC2からコンテナ化するのか
Confidential © dip Corporation. 一言でコンテナ化と言っても... 開発環境 16 • 記事が多い ◦
先人のノウハウが参考になる
Confidential © dip Corporation. 一言でコンテナ化と言っても... 開発環境 17 • 記事が多い ◦
先人のノウハウが参考になる 本番環境 • 検討事項が多い ◦ デプロイをどうやって行うか ◦ ログ管理どうするのか ◦ 外部監視どうするのか
Confidential © dip Corporation. 一言でコンテナ化と言っても... 開発環境 18 • 記事が多い ◦
先人のノウハウが参考になる 本番環境 • 検討事項が多い ◦ デプロイをどうやって行うか ◦ ログ管理どうするのか ◦ 外部監視どうするのか
Confidential © dip Corporation. そもそも今のデプロイは どうやっているのか 19
Confidential © dip Corporation. 20 今のデプロイ方法 • 手動ローリングアップデート
Confidential © dip Corporation. 今のデプロイの改善したいところ • デプロイ用ツールのJenkinsの管理が属人化している ◦ • 操作手順が多く手動での操作が必要
◦ • せっかくAWSなのにデプロイは外部ツール ◦ • インフラチームとアプリチームが縦割りになっている 21
Confidential © dip Corporation. 今回意識したこと • デプロイ用ツールのJenkinsの管理が属人化している ◦ デプロイ用の資材の管理を標準化したい •
操作手順が多く手動での操作が必要 ◦ できる限り手順を自動化したい • せっかくAWSなのにデプロイは外部ツール... ◦ CI/CDもAWSで完結させたい • インフラチームとアプリチームが縦割りになっている ◦ インフラとアプリをONE TEAMにしたい 22
Confidential © dip Corporation. できあがったもの 23
Confidential © dip Corporation. Fargateを用いたデプロイフロー 24
Confidential © dip Corporation. Fargateを用いたアプリケーションの構成図 25 • GitHub上でソースをマージする
Confidential © dip Corporation. Fargateを用いたアプリケーションの構成図 26 • マージをトリガーにCodebuildが動く ◦ PHPUnitの実行
◦ PHPInsightsの実行 ◦ Laravel Mixの実行 ◦ Laravel キャッシュの生成
Confidential © dip Corporation. Fargateを用いたアプリケーションの構成図 27 • ビルドに成功したら ECRにdocker imageを
S3に後続処理で使うソースを それぞれ配置
Confidential © dip Corporation. Fargateを用いたアプリケーションの構成図 28 • S3へのPushをトリガーに CodePipeline実行
Confidential © dip Corporation. Fargateを用いたアプリケーションの構成図 29 • CodePipelineがCodeDeployを実行
Confidential © dip Corporation. Fargateを用いたアプリケーションの構成図 30 • CodeDeployがECRのimageと S3内のコードを基に 新規環境を待機系として生成
Confidential © dip Corporation. Fargateを用いたアプリケーションの構成図 31 • 待機系と本番系を入れ替える
Confidential © dip Corporation. 結果 32
Confidential © dip Corporation. 結果 • デプロイ用ツールのJenkinsの管理が属人化している ◦ • 操作手順が多く手動での操作が必要
◦ • せっかくAWSなのにデプロイは外部ツール ◦ • インフラチームとアプリチームが縦割りになっている 33
Confidential © dip Corporation. 結果 • デプロイ用ツールのJenkinsの管理が属人化している ◦ ソースと同じリポジトリで管理することで標準化された •
操作手順が多く手動での操作が必要 ◦ • せっかくAWSなのにデプロイは外部ツール... ◦ • インフラチームとアプリチームが縦割りになっている 34
Confidential © dip Corporation. 結果 • デプロイ用ツールのJenkinsの管理が属人化している ◦ ソースと同じリポジトリで管理することで標準化された •
操作手順が多く手動での操作が必要 ◦ 待機系と本番系の入れ替え以外は自動で実行されるようになった • せっかくAWSなのにデプロイは外部ツール... ◦ • インフラチームとアプリチームが縦割りになっている 35
Confidential © dip Corporation. 結果 • デプロイ用ツールのJenkinsの管理が属人化している ◦ ソースと同じリポジトリで管理することで標準化された •
操作手順が多く手動での操作が必要 ◦ 待機系と本番系の入れ替え以外は自動で実行されるようになった • せっかくAWSなのにデプロイは外部ツール... ◦ CI/CDをAWSで完結できた • インフラチームとアプリチームが縦割りになっている 36
Confidential © dip Corporation. 結果 • デプロイ用ツールのJenkinsの管理が属人化している ◦ ソースと同じリポジトリで管理することで標準化された •
操作手順が多く手動での操作が必要 ◦ 待機系と本番系の入れ替え以外は自動で実行されるようになった • せっかくAWSなのにデプロイは外部ツール... ◦ CI/CDをAWSで完結できた • インフラチームとアプリチームが縦割りになっている ◦ インフラとアプリで相談しながら一緒に作り上げた 37
Confidential © dip Corporation. 最後に総括 38
Confidential © dip Corporation. 総括(やってみてどうだったか) • インフラチームとの役割の線引きが一番困った ◦ Terraformなど環境の用意はインフラ ◦
yamlファイルなど環境に乗せるものはアプリ • コンテナなので一度作ると環境の複製は楽だった • このノウハウを社内でどう展開していくかが今後の課題 39
Confidential © dip Corporation. 40