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
MDH-LT-Thursday-20170126
Search
Shuhei Kimura
January 26, 2017
Technology
0
1.6k
MDH-LT-Thursday-20170126
Shuhei Kimura
January 26, 2017
Tweet
Share
More Decks by Shuhei Kimura
See All by Shuhei Kimura
Akka streamsを活用したログ集計に優しいデータフローの構築
kimurashuhei
2
5.3k
pmconf2017
kimurashuhei
0
3.5k
AWS Summit Tokyo 2015
kimurashuhei
0
92
Other Decks in Technology
See All in Technology
組織貢献をするフリーランスエンジニアという生き方
n_takehata
1
1.3k
モノレポ開発のエラー、誰が見る?Datadog で実現する適切なトリアージとエスカレーション
biwashi
6
800
RSNA2024振り返り
nanachi
0
580
Tech Blogを書きやすい環境づくり
lycorptech_jp
PRO
1
240
プロダクトエンジニア構想を立ち上げ、プロダクト志向な組織への成長を続けている話 / grow into a product-oriented organization
hiro_torii
1
170
オブザーバビリティの観点でみるAWS / AWS from observability perspective
ymotongpoo
8
1.5k
Moved to https://speakerdeck.com/toshihue/presales-engineer-career-bridging-tech-biz-ja
toshihue
2
740
30分でわかる『アジャイルデータモデリング』
hanon52_
9
2.7k
Helm , Kustomize に代わる !? 次世代 k8s パッケージマネージャー Glasskube 入門 / glasskube-entry
parupappa2929
0
250
関東Kaggler会LT: 人狼コンペとLLM量子化について
nejumi
3
580
Larkご案内資料
customercloud
PRO
0
650
次世代KYC活動報告 / 20250219-BizDay17-KYC-nextgen
oidfj
0
250
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
133
33k
Gamification - CAS2011
davidbonilla
80
5.1k
What's in a price? How to price your products and services
michaelherold
244
12k
Designing for Performance
lara
604
68k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
550
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
410
Transcript
ECS্Ͱಈ͘DockerΞϓϦέʔγϣϯΛTerraformΛ ͬͯσϓϩΠ͢ΔΑ͏ʹͯ͠Έͨ Dynalyst System Engineer Shuhei Kimura
DynalystͰγεςϜͯ͢AWSͰߏங͞Ε͍ͯ·͢ ֓ཁ - ϦλʔήςΟϯάࠂ৴αʔϏεϓϥοτϑΥʔϜͰ͢ɻ - ੈքதͷސ٬ʹαʔϏεΛఏڙ͠·͢ɻ نײ - RTBͰɺϐʔΫ࣌13ສQPS@Asia/Tokyo Region,
10ສQPS@US/East Region - ೖࡳαʔό྆RegionͰ120 - ܭଌͳͲॾʑؚΊͯEC2 200ۙ͘Instance͕Քಇத - ֤छϩά͓Αͦ1.5TB/dayΛS3ʹอଘ
Ͳ͏ͬͯΞϓϦέʔγϣϯͷϦϦʔεͯ͠·͔͢ʁ ࣮ߦڥ x σϓϩΠํ๏ = Ұൠతʹͱͯଟ༷Ͱ͋Δ - Fabric/CapistranoͳͲΛͬͯEC2ʹΞϓϦΛϦϦʔε - Apex/aws-cliͳͲΛͬͯLambdaFunctionΛϦϦʔε
- ElasticbeanstalkΛར༻ͯ͠ELB+EC2ߏͷΞϓϦΛRollingUpdateϦϦʔε - Chef/Ansible/PuppetͳͲͰपลڥؚΊͯprovisionͯ͠ϦϦʔε DynalystͰɺ͍Ζ͍Ζͳٕज़తઓͷ݁Ռ .. ͍Ζ͍Ζͳ࣮ߦڥͰ৭ʑͳΞϓϦ͕ಈ͍͍ͯΔঢ়ଶΛ ίπίπFabricͷtaskΛՃͨ͠Γϝϯςͨ͠Γ͠ͳ͕Βɺ ͳΜͱ͔Γ͘Γ͍ͯ͠Δঢ়ଶɻ
σϓϩΠͷ؍͔ΒEC2 Container Service ʹະདྷΛײͨ͡ ECS Cluster - αʔόϦιʔεແବͳ͘༗ޮʹ͍ͭͭ ECS Task
Definition - ʓʓͳΞϓϦΛ ECS Service - XXͳ෩ʹಈ͔͍ͨ͠ ͍ΖΜͳΞϓϦέʔγϣϯΛಈ͔͢େલఏ͕ͱͯ౷Ұ͞Εͨঢ়ଶʹͳΔ BatchAPIWorkerConsumer͍͍ͩͨECS্Ͱಈ͔ͤΔ DockerContainerԽ͢Δ͜ͱ͕σϓϩΠͷγϯϓϧԽʹܨ͕Δͱ͍͏ߟ͑
ECS Docker ApplicationΛTerraformΛͬͯϦϦʔε͠Α͏ ͳΜͰTerraformʁ - ίʔυͰ͔͚Δ - ECSͱͷIntegration͕ͪΌΜͱ։ൃ͞Εͯͨ - ੜͷAPIୟ͘ͷ͖ͬͱͲ͔͜Ͱ࠳ં͢Δ,
retryͱ͔πϥͦ͏ - terraformͷΊΜͲ͍͘͞ͱ͜ΖΛ͋Μ·Γؾʹ͠ͳͯ͘Α͍ 㱺 stateյΕͯͳΜͱͳ͍ɻ࠶ߏஙͯ͠deploy͍͍ͤ͠ɻ - MultiRegionΛߟ͑Δͱɺಉ࣌ʹσϓϩΠͱ͔͕ͨΓલʹͳͬͯͣ͘ 㱺 ݁ہͷͱ͜ΖதAWS APIͳͷͰ౿Έαʔό͍ΒͣͰσϓϩΠͰ͖Δʂ 㱺 CircleCI͔Βterraform࣮ߦ͢Δͱ͔͢ΕɺσϓϩΠڥߏங͍Βͳ͍
ͬͯΈͨΒ͜͏ͳͬͨᶃ ͱΓ͋͑ͣɺTerraform࣮ߦڥతʹCircleCIͤʹͯ͠ΈΔ
ͬͯΈͨΒ͜͏ͳͬͨᶄ TaskDefinition Service ErrorLogCount LogGroup
ͬͯΈͨΒ͜͏ͳͬͨᶅ ΞϓϦέʔγϣϯ͕ಈ͚ͩ͘Ͱͳ͘ɺͦͷपลؚΊͯ ༻ҙͰ͖ΔඇৗʹΘ͔Γͯ͘͢Α͘ͳͬͨɻ
ෳRegionʹෳͷAppΛϦϦʔε͢ΔͷɺRollback؆୯ ͖ͳΑ͏ʹpr͢Δɻ વreviewϑϩʔ࡞͍͍ͬͯɻ
·ͱΊ ECS x Terraform ͷΈ߹ΘͤࢥͬͯͨΑΓྑ͛͞ ࠓޙ͍Ζ͍Ζͳٕज़͕ग़ͯ͘ΔͷͰɺࢼߦࡨޡ͍ͯ͘͠ ʮSSHͨ͠Βෛ͚ʯΛݱ࣮ͷͷʹ͢Δ͘ϒϥογϡΞοϓ