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
FargateでService,RunTask,Cronを運用する/fargate-serv...
Search
Shohei Koyama
June 24, 2020
Programming
5.6k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
FargateでService,RunTask,Cronを運用する/fargate-service-runtask-cron-operation-tips
https://jawsug-container.connpass.com/event/177732/
Shohei Koyama
June 24, 2020
More Decks by Shohei Koyama
See All by Shohei Koyama
成長をサポートするピープルマネジメントのやり方
sioncojp
11
3k
FOLIOのterraform運用tips/folio-terraform-operation-tips
sioncojp
2
4.2k
FOLIOモバイルアプリのインフラ構成/folio-mobile-infra-architecture
sioncojp
3
2.5k
SSM+yamlを使って開発別に 暗号化したDBパスワードを読み込む / yamlssm-sample
sioncojp
2
2.7k
私が最近Mackerelでやったこと
sioncojp
1
5.2k
Go開発環境と勉強方法
sioncojp
0
450
MackerelでGetWild
sioncojp
4
7.7k
Other Decks in Programming
See All in Programming
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
210
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
200
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
230
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
120
[DroidKaigi 2026] Bring your own phones to Gradle Managed Devices
f2lk
0
120
cdk deploy JawsSonic #MARATHONしながらAWSリソースをデプロイしてみよう
akihisaikeda
2
130
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
330
Jetpack Compose メカニズム
skydoves
0
410
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.7k
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
860
Java 27新機能 / Java 27 new features
kishida
2
130
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
160
Featured
See All Featured
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
520
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
520
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Color Theory Basics | Prateek | Gurzu
gurzu
1
470
Thoughts on Productivity
jonyablonski
76
5.4k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
200
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
420
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
280
Are puppies a ranking factor?
jonoalderson
2
3.9k
Transcript
@sion_cojp 'BSHBUFͰ4FSWJDF 3VO5BTL $SPOΛӡ༻͢Δ 4IPIFJ,PZBNB
自己紹介 Shohei Koyama / @sion_cojp Timee, Inc. SRE,DRE,ίʔϙϨʔτΤϯδχΞ ݩϓϩήʔϚʔͰΞδΞνϟϯϐΦϯ GetWildۦಈ։ൃ
λΠϛʔ ͙͢ಇ͚͙͓͕ͯۚ͢ Β͑Δ εΩϚόΠτΞϓϦ
目次 ͳͥk8s͡Όͳͯ͘ECS͔ʁ Service, RunTask, Cronͱʁ ΞʔΩςΫνϟ ࣮ࡍͷӡ༻ςΫχοΫ ཧํ๏ ڞ௨Խ Deploy
ϝϯςφϯε ϩΪϯά ϞχλϦϯά
なぜk8sじゃなくてECSか? ECSʢFargateʣͰे k8sΛΔΑΓɺSRE͕αʔόαΠυͷαϙʔτ৭Μͳ ͜ͱͬͨ΄͏͕ελʔτΞοϓతʹخ͍͠ FargateͩͱΫϥελཧෆཁͰخ͍͠ vs
Service,RunTask,Cronとは? Service...αʔόʔ RunTask…ҙͷλΠϛϯάͰ࣮ߦ Cron…ఆظ࣮ߦʢcloudwatch eventsͰ ࢦఆͨ࣌ؒ͠ʹRunTaskΛ࣮ߦʣ
Railsで例えるとこんな感じ Service...rails s RunTask...rake db:migrate Cron...ఆظ࣮ߦ͍ͨ͠rake task
ServiceとRunTaskについて FargateʹλεΫ։࢝ํ๏͕̎ͭ͋Γ·͢ ͦΕ͕ServiceͱRunTaskͰ͢ https://docs.aws.amazon.com/cli/latest/reference/ecs/index.html#cli-aws-ecs console上より
ͦΕͧΕͷΞʔΩςΫνϟ
Service
Cron
RunTask
࣮ࡍͷӡ༻ςΫχοΫ
管理方法: terraformの話 terraform ͏ج൫Λڞ௨Խ γϯϓϧͳઃܭ εέʔϧΛ؆୯ʹग़དྷΔΑ͏ʹ͢Δ Serviceでは、 大きなスパイクを予測してるときはこんな感じでコンテナを増します
管理方法: 図の話 ΞʔΩςΫνϟਤͷอଘ ৽͘͠ࢀೖ͢Δਓ͕ཧղ͍͢͠ͷͰਤඞͣ࡞Γ·͠ΐ͏ drawioͰॻ͍ͯ .drawio .pngϑΝΠϧΛอଘͯ͠·͢ ΞʔΩςΫνϟ͍͍ײ͡ʹվम͞Ε͍ͯ͘ͷͳͷͰɺ ඞཁͳͱ͖मਖ਼͠·͢
管理方法: チュートリアルの話 νϡʔτϦΞϧ sandboxͰ୭͕ؾܰʹ࡞ग़དྷΔΑ͏ʹͳͬͯ·͢ ࣮ࡍίʔυݟΔΑΓಈ͔ͯ͠ίϯιʔϧΛϙνϙν ͷํ͕ཧղ͍ͨ͢͠Ί 1つ15分くらいで出来上がります チュートリアルで使うコマンド類は Docker化 or
バイナリダウンロード terraformはmake経由で バイナリがダウンロードされるので makeさえ入ってればすぐ叩けます
共通化 terraform moduleͰڞ௨Խ มԽ͕ଟ͍ͱ͜ΖผͷιϦϡʔγϣϯΛߟ͑·͢ ʢྫ͑TaskDefinitionͷ࡞ͳͲʣ ʢฐࣾͩͱιϑτΣΞΛ࡞ͯ͠ղܾ͢Δ͜ͱ͕ଟ͍ʣ λΠϛʔڞ௨Խ͕ਐΜͰ͓Γɺ ৽نαʔϏεՃ͢ΔࡍͰDockerfile͑͋͞Ε ͙͢ग़དྷ·͢
共通化: Serviceの場合 ALBとfargateは切り離したmoduleで管理してる またclusterは変更が発生しない + 共通なので切り離し
共通化: 実際のcronのterraform clusterͱtaskͷ̎ͭͷmoduleߏ Լه͕clusterͷίʔυ RunTaskもほぼ同じmoduleを扱ってます Cloudwatch eventsがあるかないかなので。
ͪ͜Β͕λεΫՃ༻ جຊతʹmodule͚ͩͰ ࣄΓΔ͕ɺ IAMͷՃ͕͋Ε ը૾ͷ௨Γઃఆ 共通化: 実際のcronのterraform
Deploy ecs-deployͱ͍͏πʔϧʢGoʣ TaskDefinitionͷupdate Serviceͷupdate RunTaskͷ࣮ߦ Cronͷ࣌ؒมߋ ϩΪϯάͷͨΊɺfluent-bitΛαΠυΧʔͰཱͯΔ
Deploy αʔϏεଆͰ༻ҙ͞ΕͨMakefileʹecs-deployΛͬͨ deployϩδοΫ͕ॻ͔Εͯ·͢ ݖݶ͑͋͞ΕϩʔΧϧͰ࣮ߦՄೳͳMakefile ͦΕΛslack-deployͱ͍͏αʔόʢGoʣΛܦ༝ͯ͠ɺ slackܦ༝Ͱ࣮ߦͯ͠·͢
メンテナンス slack-deploy͔ΒϝϯςφϯεϞʔυʹͰ͖·͢ʢલड़ͷπʔϧʣ Service ALBʹର̎͠छྨͷlistenerϧʔϧΛΓସ͑ͯΔ͚ͩ ECSʹશ෦ߦ͘ϧʔϧ ϝϯς༻ͷಛఆͷhttp response + 503Λฦ͢ϧʔϧ Cron
ࢦఆͨ͠ͷ or શͯΛdisable/enableͰ͖·͢
ロギング Fargateʢfirelens) → fluent-bit → datadog logs → firehose →s3
moduleઃܭΛͩ͜Θͬͨ݁Ռɺs3ྑ͍ײ͡ʹอଘ͞Ε·͢
ロギング ecs-deployଆͰڥมΛ͍͍ײ͡ʹηοτͯ͘͠Ε·͢ datadog logsͷλάʹΑΔݕࡧੑ্ https://hub.docker.com/r/sioncojp/fluent-bit-datadog-firehose
モニタリング: Service ecs-update-notify ʢGoͷπʔϧʣ λεΫ͕શʹΓସΘͬͨ࣌ͷ௨ λεΫ͕ΓସΘΒͳ͔ͬͨ࣌ͷΤϥʔ௨ https://github.com/sioncojp/ecs-update-notify
モニタリング: Service ͦΕҎ֎DatadogͰࢹ
モニタリング: RunTask, Cron clusterʹඥ͍ͮͨlambdaͰɺexit 0Ҏ֎ͷ߹ࢦఆͨ͠ Slack Webhook URLʹ௨
モニタリング: RunTask, Cron lambda͔Βdatadogʹ࣮ߦʹ͔͔ͬͨ࣌ؒʢελʔτ ~ ετοϓʣ Λඈͯ͠·͢
最後に FargateͱͯศརͰɺ λΠϛʔͰͱͯศརʹ༗ޮ׆༻ͯ͠·͢ʂ Ͱ͕͢ɺ࣮ࡍʹޮΑ͘ӡ༻͢ΔͷେมͰ͢ɻ ͦͷͨΊͷઃܭͱͯηϯε͕͍Γ·͢͠ɺ ղܾ͢ΔͨΊͷιϑτΣΞ։ൃೳྗେࣄͰ͢ɻ
None