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
3.9k
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
入社1ヶ月でここまでやった!Findy Toolsインフラ支援の最適化
rvirus0817
6
1.4k
メンティー同士で輪読会を始めたら学びしかなかった
rvirus0817
1
910
MENTAを5年やってみて:メンタリングで意識していること
rvirus0817
0
400
Lancersをコンテナへ本番移行する取り組み
rvirus0817
1
1.7k
~CircleCIでTerraformリリースのサーバーレス化~ インフラの独自リリースを継続的リリースへ
rvirus0817
0
3.5k
Terraform v0.12.29 → v1.0.5にバージョンアップする上で気をつけること
rvirus0817
0
4.1k
MENTAをAWSに移行して振り返る(ECS/Fargate + Laravel編)
rvirus0817
3
8.3k
ECS/Fargateの活用事例 (Ruby on Rails編)
rvirus0817
3
2.8k
Do u know DigitalOcean?
rvirus0817
1
2k
Other Decks in Technology
See All in Technology
Matterport を使ってクラスメソッド各拠点のバーチャルオフィスツアーを作成してみた
wakatsuki
0
160
クラウド利用者の「責任」をどう果たす?AWSセキュリティ対策のススメ #AWSSummit
hiashisan
0
270
ゆめみのアクセシビリティの現在地と今後
ryokatsuse
3
290
テスト・設計研修【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
170
技術負債による事業の失敗はなぜ起こるのか / Why do business failures due to technical debt occur?
i35_267
0
190
スレットハンティングについて知っておきたいこと
hacket
0
130
dxd2024-生成AIに振り回された3か月間の成功と失敗/dxd2024-link-and-motivation
lmi
2
260
AOAI Dev Day LLMシステム開発 Tips集
hirosatogamo
15
3.6k
エンジニア向け会社紹介資料
caddi_eng
14
220k
公共領域から学ぶ クラウド移行についてエンジニアが意識していること
kawakawa2222
0
140
OSSコミットしてZennの課題を解決した話
dyoshikawa1993
0
150
AWSで”最小権限の原則”を実現するための考え方 /20240722-ssmjp-aws-least-privilege
opelab
10
4.3k
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
325
21k
A Tale of Four Properties
chriscoyier
155
22k
GraphQLの誤解/rethinking-graphql
sonatard
59
9.6k
BBQ
matthewcrist
82
9k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
17
8.7k
Agile that works and the tools we love
rasmusluckow
325
20k
The World Runs on Bad Software
bkeepers
PRO
63
11k
What the flash - Photography Introduction
edds
65
11k
Done Done
chrislema
179
15k
Building a Scalable Design System with Sketch
lauravandoore
458
32k
Producing Creativity
orderedlist
PRO
340
39k
Facilitating Awesome Meetings
lara
46
5.8k
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