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
Lancersをコンテナへ本番移行する取り組み
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
adachi.ryo
June 29, 2022
Programming
1
3.4k
Lancersをコンテナへ本番移行する取り組み
https://lancersrecruit.connpass.com/event/248522/
adachi.ryo
June 29, 2022
Tweet
Share
More Decks by adachi.ryo
See All by adachi.ryo
横断SREがSRE社内留学制度 / Enablingになぜ踏み切ったのか
rvirus0817
0
360
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
1.8k
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
2.6k
Findy Team+のSOC2取得までの道のり
rvirus0817
0
2.6k
FindyにおけるTakumi活用と脆弱性管理のこれから
rvirus0817
0
3.1k
技術的負債で信頼性が限界だったWordPress運用をShifterで完全復活させた話
rvirus0817
1
5.6k
Amazon Security Lakeを活用したセキュリティログの集約とAIによる可視化の最前線
rvirus0817
0
330
TechBull Membersの開発進捗どうですか!?
rvirus0817
0
1.8k
クラウド脆弱性の傾向とShisho Cloudの活用
rvirus0817
0
280
Other Decks in Programming
See All in Programming
社内規程RAGの精度を73.3% → 100%に改善した話
oharu121
13
7.9k
CSC307 Lecture 13
javiergs
PRO
0
320
今更考える「単一責任原則」 / Thinking about the Single Responsibility Principle
tooppoo
3
1.6k
New in Go 1.26 Implementing go fix in product development
sunecosuri
0
410
nilとは何か 〜interfaceの構造とnil!=nilから理解する〜
kuro_kurorrr
3
1.9k
grapheme_strrev関数が採択されました(あと雑感)
youkidearitai
PRO
1
210
Claude Code の Skill で複雑な既存仕様をすっきり整理しよう
yuichirokato
1
360
Go1.26 go fixをプロダクトに適用して困ったこと
kurakura0916
0
350
Claude Codeセッション現状確認 2026福岡 / fukuoka-aicoding-00-beacon
monochromegane
4
410
How to stabilize UI tests using XCTest
akkeylab
0
110
AI時代のシステム設計:ドメインモデルで変更しやすさを守る設計戦略
masuda220
PRO
4
450
LangChain4jとは一味違うLangChain4j-CDI
kazumura
1
170
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
130
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
89
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
97
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
250
The Cult of Friendly URLs
andyhume
79
6.8k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
Ethics towards AI in product and experience design
skipperchong
2
220
Why Our Code Smells
bkeepers
PRO
340
58k
Crafting Experiences
bethany
1
81
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Transcript
ϥϯαʔζגࣜձࣾ ϓϩμΫτ։ൃ෦/ٕज़ج൫ SRE ҆ୡ ྋ ʲLancers x dipʳEngineer Meetup #1
LancersΛίϯςφຊ൪Ҡߦ͢ΔऔΓΈ
ࣗݾհ • ҆ୡ ྋ(adachin) • Lancers/SRE 2018/5~ • @adachin0817
• RVIRUS0817 • blog.adachin.me • wiki.adachin.me • ݸਓαʔϏε։ൃத(ਐḿѱ) ʲLancers x dipʳEngineer Meetup #1
ࠓճ͓͍ͨ͜͠ͱ • 2018ͷγεςϜ • TerraformԽਪਐ • Amazon Linux2Խ • ϩάαʔόʔͷഇࢭ
• ։ൃڥͷվળ • ϑϩϯτΤϯυͷվળ • چ։ൃڥɺEC2Ͱͷӡ༻՝ • Batch/AppΛίϯςφ • ࣗલσϓϩΠγεςϜΛഇࢭ • ෛՙରࡦͱϨεϙϯε • ·ͱΊ ʲLancers x dipʳEngineer Meetup #1
ฐࣾʹ͍ͭͯ ʲLancers x dipʳEngineer Meetup #1
άϧʔϓձࣾECS/FargateʹҠߦࡁΈ ʲLancers x dipʳEngineer Meetup #1
Ҏલొஃ͍ͯͨ͠εϥΠυͪ͜Β ʲLancers x dipʳEngineer Meetup #1
ʲLancers x dipʳEngineer Meetup #1
2018ϥϯαʔζͷαʔόʔߏ ʲLancers x dipʳEngineer Meetup #1
2021ϥϯαʔζͷαʔόʔߏ ʲLancers x dipʳEngineer Meetup #1
2021/10~(࣮ࢪ) ʲLancers x dipʳEngineer Meetup #1
TerraformԽ ʲLancers x dipʳEngineer Meetup #1
Ұ෦TerraformԽΛ͍ͯ͠Δ͕શͰͳ͍ • άϧʔϓձࣾશͯTerraformԽ • ຊՈҰ෦͔͠TerraformԽ͞Ε͍ͯͳ͍ ɾηΩϡϦςΟʔάϧʔϓIDͳͲΛͦͷ··ࢦఆ ɾEC2ͰͷߏஙಠࣗͷAWS CLIͰࣗಈԽ
ɾͦΕҎ֎खಈͰઃఆ • શͯΛterraform importΛ͢Δʹݫ͍͠ ɾϑΣʔζ͝ͱʹऔΓΉ͜ͱʹ ʲLancers x dipʳEngineer Meetup #1
Terraform Phase 1 • VPC ɾαϒωοτ ɾϧʔτςʔϒϧ
ɾΠϯλʔωοτήʔτΣΠ ɾNatήʔτΣΠ ɾΤϯυϙΠϯτ ɾηΩϡϦςΟάϧʔϓ • ELB ɾλʔήοτάϧʔϓ ɾϦεφʔϧʔϧ ʲLancers x dipʳEngineer Meetup #1 • EC2 • RDS • ACM • εςʔδϯάͱຊ൪ڥ߹Θͤͯ ɾ1ϲ݄ ɾͦΕҎ֎ࠓظରԠ
Terraform ։ൃڥͱCI/CD ʲLancers x dipʳEngineer Meetup #1
Amazon Linux 2Խ ʲLancers x dipʳEngineer Meetup #1
EC2ΛAmazon Linux 2Խ • Amazon Linux1Ͱӡ༻ ɾAppɺཧը໘(Admin)ɺBatchαʔόʔ ɾ20206݄3ʹηΩϡϦςΟΞοϓσʔτͷఏڙ͕ऴྃ
• άϧʔϓձࣾͷҠߦ͕ॏͳΓରԠͰ͖ͣ • ͞ΒʹArm͕ରԠ͞ΕͯύϑΥʔϚϯε্͕ঢͱίετݮ • άϧʔϓձࣾͷίϯςφͷϊϋ͕ߴ·ΓҠߦΛܾҙ ɾಉ࣌ʹMySQL8ԽऔΓΉ͜ͱʹ ʲLancers x dipʳEngineer Meetup #1
ϩάαʔόʔͷഇࢭ ʲLancers x dipʳEngineer Meetup #1
ϩάαʔόʔ͕୯Ұো • ੳج൫(Digdag/Embulk/BigQuery/Redash)Λӡ༻ ɾϩάج൫(Fluentd) ɾApp(ΞΫηεϩά/ΞϓϦέʔγϣϯϩά) ɹɾS3ʹू •
ਖ਼ৗʹಈ࡞͍ͯ͠ͳ͍ঢ়ଶ͕ʑݟड͚ΒΕ ɾϒϥοΫϘοΫεԽͱͷ՝ʹ… • td-agentͷόʔδϣϯΞοϓΛࢼΈ͕ͨ ɾ͏·͍͔͓ͣ͘ख্͛ঢ়ଶ ʲLancers x dipʳEngineer Meetup #1
Amazon KinesisʹҠߦ • CloudWatch Logs(awslogs)Λ࠾༻ ɾ։ൃϝϯόʔͰௐࠪͰ͖ΔΑ͏ʹ ɾൺֱతֶशίετ͕͍awslogsΛબ •
ϩάϙϦγʔΛݟ͢ ɾΞΫηεϩάS3ʹूͷ·· ɾΞϓϦϩάੳ༻్ͱͯ͠ར༻͠ͳ͍ • Datadog LogsͰKinesisͷ࿈ܞ ɾΞϓϦνʔϜॠ࣌ʹରԠՄೳ ɾՄ؍ଌੑΛߴΊΒΕΔΑ͏ʹ • ίϯςφʹҠߦ͢Δ४උ͕ͬͨ ʲLancers x dipʳEngineer Meetup #1
։ൃڥͷमਖ਼ ʲLancers x dipʳEngineer Meetup #1
։ൃڥͷमਖ਼ • ։ൃڥຊ൪ಉΛ࠶ݱ ɾAnsibleίϯςφ ɹɾύοέʔδΠϯετʔϧ • มߋ
ɾDocker Imageamazonlinux2 ɾsupervisorͰϓϩηεཧ ɾෆཁͳύοέʔδΛચ͍ग़͠আ ɾamazon-linux-extrasʹΑΔPHPΠϯετʔϧ ɾtd-agentͷআͱawslogsͷΠϯετʔϧ • ཧը໘ECS/FargateʹҠߦ͢ΔͨΊ ɾDocker fi leΛҰ͔Βbuild͢ΔΑ͏ʹ ʲLancers x dipʳEngineer Meetup #1
2022/03~(Ҡߦ) ʲLancers x dipʳEngineer Meetup #1
Ҡߦ͢Δʹ͋ͨͬͯ • ཧը໘(Admin)ECS/FargateʹҠߦ ɾCakePHP2EC2 ɾCakePHP4ECS/FargateͰಈ࡞ • BatchArmʹҠߦ •
AppArmʹҠߦͰ͖ͣintelͰӡ༻ ɾDatadog ɹɾdd-trace-php͕ArmΛαϙʔτ❌ ʲLancers x dipʳEngineer Meetup #1
ʲLancers x dipʳEngineer Meetup #1
͜͜Ͱٙʹࢥ͏ํ ͍ΔͷͰ ʲLancers x dipʳEngineer Meetup #1
Appίϯςφʹ Ҡߦ͠ͳ͍ͷ͔ʁ ʲLancers x dipʳEngineer Meetup #1
ϑϩϯτΤϯυͷ ՝ ʲLancers x dipʳEngineer Meetup #1
ϑϩϯτΤϯυͷωοΫͱվળ • ιʔείʔυ͕5GBҎ্ ɾyarn installͰ30Ҏ্͔͔Δ ɾίϯςφσϓϩΠͰ͕࣌ؒେʹ͔͔Δ • ϑϩϯτΤϯυΛׂ͔ͯ͠ΒҠߦ
ɾιʔεߏ্ɺύεʹΑΔॲཧׂ͕ࠔͰ͕͔͔Δ • ༧ΊϩʔΧϧͰϏϧυͯ͠ੜ͞ΕͨϑΝΠϧΛGitཧ͢Δӡ༻ ɾyarn installෆཁʹͳΓɺCI͕࣌ؒେ෯ʹॖ ɾAppαʔόʔͷίϯςφҠߦͰ͖Δ͕݅ͬͨ ʲLancers x dipʳEngineer Meetup #1
2022/04(࣮ࢪ) ʲLancers x dipʳEngineer Meetup #1
چ։ൃڥɺEC2Ͱͷ ӡ༻՝ ʲLancers x dipʳEngineer Meetup #1
SREͷӡ༻՝ • AnsibleίϯςφʹΑΔ։ൃڥͷ౷ҰʹΑΓ͕͔͔Δ ɾAppίϯςφΛECRͰڞ༻͢Δඞཁ͕͋Δ ɾύοέʔδͷߋ৽ͳͲίϯςφΛ࡞Γͯ͠ECRʹpush • Φʔτεέʔϧͷ࠶ઃఆͰAppαʔόʔΛ࡞Γ͞ͳ͚ΕͳΒͳ͍
ɾAMIΛखಈͰ࡞Γ͢ͱ͍͏τΠϧ͕ͬͨ·· • ࣗલͷσϓϩΠγεςϜ͕ଐਓԽ ɾෆ۩߹ͷରԠʹ͕͔͔Δ ʲLancers x dipʳEngineer Meetup #1
։ൃڥͷվળ ʲLancers x dipʳEngineer Meetup #1
৽։ൃڥ • Docker fi leʹΑΔҰൠతͳӡ༻ • ผϦϙδτϦ(playbook) ɾLancersຊମͷϦϙδτϦʹ౷Ұ •
Ansibleίϯςφഇࢭ • ϩάج൫Ͱར༻ ɾEC2ͱಉ༷awslogsΛΠϯετʔϧ ʲLancers x dipʳEngineer Meetup #1
BatchΛίϯςφ ʲLancers x dipʳEngineer Meetup #1
BatchαʔόʔECS Scheduled TaskʹҠߦ • όον100ݸҎ্ ɾԽͤͣEC2 1ͷΈͰӡ༻ ɾαʔόʔμϯAZো͕ى͖Δͱ
ɹɾαʔϏεʹӨڹ͕ग़ͯ͠·͏ঢ়گ • CakePHP4 ɾ80ݸͷΈҠߦ ɾ։ൃϝϯόʔ͕TerraformͰཧͰ͖ΔΑ͏ʹ • CloudWatch LogsɺSNSɺLambdaͰΤϥʔ௨ • CakePHP2ͷόονQAνʔϜ͕Ҡߦத ʲLancers x dipʳEngineer Meetup #1
ࣗલσϓϩΠγεςϜ ʹ͍ͭͯ ʲLancers x dipʳEngineer Meetup #1
ʮDeploy-Sanʯ • 2015~ ɾRuby on RailsͱJenkins ɾಠࣗγΣϧͰrsync •
Φʔτεέʔϧ࣌ ɾDeploy-san͔Β࠷৽ͷίʔυΛऔಘ ɾ୯Ұো • ϦϦʔε࣌ؒ ɾࠩߋ৽Ͱ1Ҏ ʲLancers x dipʳEngineer Meetup #1
CircleCIʹҠߦ ʲLancers x dipʳEngineer Meetup #1
CI/CDΛCircleCIʹҠߦ • MasterϚʔδ:ຊ൪ APIܦ༝:εςʔδϯά/ΧφϦΞ • ίϯςφσϓϩΠߴԽ ɾ.dockerignoreʹΑΔෆཁͳϑΝΠϧল͘
ɾDocker fi leͰෆཁͳύοέʔδͷ୨Է͠ ɾCircleCIͷcheckout_shallowΛར༻ ɹɾ࠷ޙͷίϛοτͷΈcheckout ɾremote-docker-layer-cachingΛ༗ޮԽ • 5Ҏ·ͰॖΊΔ͜ͱ͕Ͱ͖ͨ ʲLancers x dipʳEngineer Meetup #1
ΧφϦΞڥͷσϓϩΠΛ੍ݶ • ຊ൪DBΛࢀর ɾΧφϦΞڥʹ୭ͰϦϦʔεͰ͖ͯ͠·͏ • CircleCI ɾcontext
ɹɾSecurity Group ɹɾGitHub Teamsͷݖݶ͋ΔਓͷΈঝೝ • https://wiki.adachin.me/archives/1313/ ʲLancers x dipʳEngineer Meetup #1
ෛՙରࡦͱϨεϙϯε ʲLancers x dipʳEngineer Meetup #1
ෛՙରࡦ • EC2࣌ ɾc5ܥΠϯελϯε ɾECSͩͱCPUબͰ͖ͳ͍ • Fargate Spot
ɾطଘͷ3Fargate ɾΦʔτεέʔϧFargate Spot(ίετݮ) • Φʔτεέʔϧ ɾ࠷খͰ3ɺ࠷େͰ20 ɾCPU 20%Ͱ૿Ճ 10%Ͱݮগ • php-fpmνϡʔχϯάͨ͠͠ ʲLancers x dipʳEngineer Meetup #1
2022/06(Ҡߦ) ʲLancers x dipʳEngineer Meetup #1
ʲLancers x dipʳEngineer Meetup #1
ҠߦޙͷϨεϙϯεʹ͍ͭͯ • ϥϯαʔζதʹෛՙ͕ϐʔΫ • αʔόʔϨεϙϯεेmsఔ • ݱࡏ ɾCPU 60%Ͱ૿Ճ
40%Ͱݮগ ɾΦʔτεέʔϧ7 ʲLancers x dipʳEngineer Meetup #1
Ҡߦޙͷίετ ʲLancers x dipʳEngineer Meetup #1
·ͱΊ ʲLancers x dipʳEngineer Meetup #1
·ͱΊ • 1ͰΓ͖Δ͜ͱ͕Ͱ͖ͨ ɾάϧʔϓձࣾͰͷϊϋΛ׆͔ͤͨ • ੜ࢈ੑ্͕ظ ɾSREͷτΠϧݮ
ɾ։ൃ෦શମͷϦϦʔεϑϩʔվળ • ࠓޙ ɾϑϩϯτΤϯυͷϞμϯԽ ɾPHP8.1/CakePHPͷόʔδϣϯΞοϓ ʲLancers x dipʳEngineer Meetup #1
ΤϯδχΞϒϩάॻ͍ͯ·͢ ʲLancers x dipʳEngineer Meetup #1
͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ ʲLancers x dipʳEngineer Meetup #1