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
ECS/Fargateの活用事例(CakePHP編)
Search
adachin0817
September 25, 2020
Technology
1
4.3k
ECS/Fargateの活用事例(CakePHP編)
https://connehito.connpass.com/event/187729/
【ランサーズ社合同勉強会】コネヒトマルシェオンライン「事業を支えるWeb開発」vol.2
adachin0817
September 25, 2020
Tweet
Share
More Decks by adachin0817
See All by adachin0817
TechBull Membersの開発進捗どうですか!?
rvirus0817
0
1.1k
クラウド脆弱性の傾向とShisho Cloudの活用
rvirus0817
0
190
TechBullエンジニアコミュニティの取り組みについて
rvirus0817
0
1k
横断SREの立ち上げと、AWSセキュリティへの取り組みの軌跡
rvirus0817
3
11k
ゼロから創る横断SREチーム ~挑戦と進化~
rvirus0817
3
5k
入社1ヶ月でここまでやった!Findy Toolsインフラ支援の最適化
rvirus0817
11
13k
メンティー同士で輪読会を始めたら学びしかなかった
rvirus0817
1
1.1k
Lancersをコンテナへ本番移行する取り組み
rvirus0817
1
3.3k
~CircleCIでTerraformリリースのサーバーレス化~ インフラの独自リリースを継続的リリースへ
rvirus0817
0
5.3k
Other Decks in Technology
See All in Technology
Kiro Hookを Terraformで検証
ao_inoue
0
130
Shadow DOMとセキュリティ - 光と影の境界を探る / Shibuya.XSS techtalk #13
masatokinugawa
0
310
Step Functions First - サーバーレスアーキテクチャの新しいパラダイム
taikis
1
280
【CEDEC2025】大規模言語モデルを活用したゲーム内会話パートのスクリプト作成支援への取り組み
cygames
PRO
1
310
SAE J1939シミュレーション環境構築
daikiokazaki
1
190
「育てる」サーバーレス 〜チーム開発研修で学んだ、小さく始めて大きく拡張するAWS設計〜
yu_kod
1
180
ユーザー理解の爆速化とPdMの価値
kakehashi
PRO
1
110
The Madness of Multiple Gemini CLIs Developing Simultaneously with Jujutsu
gunta
1
2.8k
KCD Lima: eBee in Peru!
lizrice
0
110
[MIRU2025]Preference Optimization for Multimodal Large Language Models for Image Captioning Tasks
keio_smilab
PRO
0
100
経理出身PdMがAIプロダクト開発を_ハンズオンで学んだ話.pdf
shunsukenarita
1
230
私とAWSとの関わりの歩み~意志あるところに道は開けるかも?~
nagisa53
1
130
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1k
Done Done
chrislema
184
16k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Thoughts on Productivity
jonyablonski
69
4.8k
Testing 201, or: Great Expectations
jmmastey
43
7.6k
How to Ace a Technical Interview
jacobian
278
23k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Designing Experiences People Love
moore
142
24k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Transcript
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 ECS/Fargateͷ׆༻ࣄྫ (CakePHPฤ) ϥϯαʔζגࣜձࣾ SRE/҆ୡ ྋ ίωώτϚϧγΣΦϯϥΠϯ ʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 ΞδΣϯμ ɾࣗݾհ ɾݱࡏऔΓΜͰ͍Δ͜ͱ ɾECS/FargateͷϝϦοτσϝϦοτ ɾ։ൃڥΛ࡞ΔϙΠϯτ ɾStg/ຊ൪ڥͷߏʹ͍ͭͯ ɾSSH/࡞ۀ༻ίϯςφʮdevopsʯʹ͍ͭͯ
ɾCircleCIʹΑΔίϯςφσϓϩΠ ɾECS Scheduled TasksʹΑΔόον࣮ʹ͍ͭͯ ɾϩά/ίϯςφࢹʹ͍ͭͯ ɾ·ͱΊ
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 ࣗݾհ
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 ࣗݾհ ɾ҆ୡ ྋ(adachin) ɾLancers SRE 2018~ ɾ@adachin0817
ɾRVIRUS0817 ɾblog.adachin.me ɾwiki.adachin.me ɾOSS : ɾCakePHPͰݸਓαʔϏε։ൃத
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 ݱࡏऔΓΜͰ͍Δ͜ͱ
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 ݱࡏऔΓΜͰ͍Δ͜ͱ ɾڈळ ɾάϧʔϓձࣾ(γΫϩϚʔέςΟϯά) ɾॳΊͯECS/FargateʹҠߦνϟϨϯδ ɾRuby on Rails
ɾࠓ4݄ʹҠߦྃ ɾݱࡏ (5݄͔Β) ɾάϧʔϓձࣾ(Lancers Agency)ɹ ɾECS/FargateͰҠߦத(90%) ɹɾࠓճͪ͜ΒͷΛ͠·͢!!
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 ϥϯαʔζΤʔδΣϯγʔͷ αʔϏεʹ͍ͭͯ
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 ϥϯαʔζΤʔδΣϯγʔͷαʔϏεʹ͍ͭͯ ɾPROsheetɺLancers Agent ɾ͘͞ΒͷΫϥυ ɹɾPHP5.4 CakePHP2.5.4 ɹɾApache,MySQL5.7
ɾ։ൃڥ ɹɾVagrant,AnsibleͰཧ ɾίʔϙϨʔταΠτ ɹɾPHP5.5,MySQL5.7 ɾϝσΟΞαΠτ(WordPress) ɹɾPHP5.5,MySQL5.7
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 ։ൃڥΛ࡞Δ ϙΠϯτ
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 ։ൃڥΛ࡞ΔϙΠϯτ ɾຊ൪ڥͱಉͷߏΛ࠶ݱ ɾELB(H2O)ίϯςφ(ϦόʔεϓϩΩγ) ɾAppίϯςφ ɹɾPHP5.5-alpine/CakePHP2.5.4/Nginx ɾMySQLίϯςφ ɾSendGridίϯςφ
ɾphpMyAdminίϯςφ ɾWordPressίϯςφ(PHP7.3-alpine/Nginx) ɾ֤ΞϓϦέʔγϣϯͷىಈSupervisorͰཧ ɾcomposer installAppίϯςφͰϩάΠϯ࣌ʹ࣮ߦ ɹɾsupervisorctlͰΞϓϦΛrestart͢ΔΑ͏ʹ
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 Stg/ຊ൪ڥͷ ߏʹ͍ͭͯ
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 Stg/ຊ൪ڥͷߏʹ͍ͭͯ ɾTerraformͰશϦιʔείʔυԽ ɾStgڥۃྗίετΛ͑λεΫ1ͭ ɾdevopsίϯςφͷར༻ ɾDBRDS AuroraʹҠߦ ɾϝʔϧૹ৴Postfix͔ΒSendGridԽ
ɾίʔϙϨʔταΠτWordPressԽ ɾը૾S3Խ ɾWordPressͷը૾ ɹɾWP Offload Media LiteϓϥάΠϯͰS3ʹ ɾϩάCloudWatch Logs ɾόονECS Scheduled Tasks ɾ෦ࠪ(ϩάͷू) ɹɾAmazon Kinesis ɾσϓϩΠCircleCIͷΈͰ࣮ ɾࢹDatadog
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 SSH/࡞ۀ༻ίϯςφ ʮdevopsʯʹ͍ͭͯ
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 SSH/࡞ۀ༻ίϯςφʮdevopsʯʹ͍ͭͯ ɾAppʹSSH͠ͳ͍ ɾSSH/࡞ۀ༻ίϯςφ(Appͱಉ) ɹɾdevopsͱ໋໊ ɾίϚϯυͰRDSଓ ɹɾdumprestore ɾaws
cliͷར༻ ɾSSMͷSession Manager ͋Δ͕ ɹɾखܰʹ౿Έ͔ΒSSHΛ͍ͨͨ͠Ί ɾVPC PeeringͰϥϯαʔζͷωοτϫʔΫ͔ΒSSHϩάΠϯ
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 CircleCIʹΑΔ ίϯςφσϓϩΠʹ͍ͭͯ
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 APIܦ༝ͰͷStgڥͷσϓϩΠ ɾStgڥͷσϓϩΠ ɹɾgithub flow ɹɾγΣϧεΫϦϓτ ɹɹɾҙͷϒϥϯνΛࢦఆ ɾૉૣ͘σϓϩΠ͕Մೳ
ɹɾ։ൃޮ͕Ξοϓ ɾMasterϚʔδͰຊ൪ڥϦϦʔε ɾTerraform CIڥΛ࣮ $ sh deploy.sh ԼهͷΑ͏ʹϒϥϯνΛࢦఆ࣮ͯ͠ߦ͍ͯͩ͘͠͞ɻ (ྫ) sh deploy.sh ϒϥϯν໊ $ sh deploy.sh fix-nginx { "number" : 74, "state" : "pending", "id" : "xxxxxx-xxxxx-xxxxx-xxx-xxxxxxxx", "created_at" : "2020-08-27T06:14:43.973Z" } ϒϥϯν໊/ fix-nginx ͷStgσϓϩΠΛ։࢝͠·ͨ͠!
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 όονͷ࣮ʹ͍ͭͯ
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 ECS Scheduled TasksʹΑΔόον࣮ʹ͍ͭͯ ɾࠓ·Ͱ ɹɾCron ɾݱࡏ ɹɾECS
Scheduled Tasks ɹɹɾCloudWatchͷΠϕϯτϧʔϧ ɹɹɾTerraformԽ { "containerOverrides": [ { "name": "prosheet-app", "command": [ "php", "/var/www/prosheet/cake/app/Console/cake.php", "-app", "/var/www/prosheet/cake/app", "mail", "exec" ] } ]
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 ϩάʗίϯςφࢹ ʹ͍ͭͯ
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 ϩά/ίϯςφࢹʹ͍ͭͯ ɾΞΫηε/ΞϓϦϩάɺRDSࠪ/Τϥʔϩά ɹɾCloudWatch Logsʹ ɹɾࠓ·Ͱ ɹɹɾLambdaͰS3ʹγϯΫɹɹ ɹɹɾPythonͰ࣮͍ͯͨͨ͠Ίӡ༻ίετΞοϓ
ɹɾࠓճ ɹɹɾAmazon Kinesis Data FirehoseͰS3ʹू ɹɹɾTerraformԽ ɾࢹ ɹɾMackerel→DatadogʹҠߦ ɹɾλεΫఆٛʹdatadog-agentΛಈ࡞ͤ͞ΔΑ͏ʹ ɹɾcpu:10ɺmemory:256 TerraformԽ
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 ·ͱΊ
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 ·ͱΊ ɾImmutableͳαʔόʔͷӡ༻ ɹɾ҆ఆӡ༻ɺӡ༻ޮͷΞοϓ ɾϗετΠϯελϯεͷཧ͕ল͚Δ ɾλεΫ୯ҐͰࣗ༝ʹϦιʔεมߋՄೳ ɾॳΊͯίϯςφຊ൪ӡ༻͢Δʹ͔ͳΓϋϚΔ ɹɾϔϧενΣοΫ͕௨Βͳ͍ͱίϯςφ͕མͪΔ
ɹɾLinuxྗ͕ࢼ͞ΕΔ ɹɾσϓϩΠͷ࣮͕େม͕ͩલͷܦݧ͕͋ͬͨ ɹɹɾ͙͢ʹ࣮Ͱ͖ͨ ɾσόοά͕ͮ͠Β͍ ɾλεΫͷىಈ͕Ί ɹɾόον࣮ߦ͘ͳΔ ɾྉ͕͓ۚߴΊ ɹɾEC2ΑΓׂߴʢ1ׂʙ2ׂʣ ɾࠓޙ ɹɾ·ͣདྷ݄தʹҠߦ ɹɾPHP/CakePHPͷόʔδϣϯΞοϓ ɹɾίϯςφͷ੬ऑੑݕ (Trivy) ɹɾDatadogͰϩά࿈ܞ ɹɾChatOpsʹΑΔσϓϩΠ ɹɾPHP CIڥͷ࣮ ɹɾϥϯαʔζຊՈίϯςφҠߦʹνϟϨϯδ
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2 SREٻΉʂʂ
2020/9/25 ʲϥϯαʔζࣾ߹ಉษڧձʳίωώτϚϧγΣΦϯϥΠϯʮࣄۀΛࢧ͑ΔWeb։ൃʯvol.2