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
elixir-aws-fargate-in-production.pdf
Search
Sonoda Ryohei
August 03, 2018
Technology
3.1k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
elixir-aws-fargate-in-production.pdf
Sonoda Ryohei
August 03, 2018
More Decks by Sonoda Ryohei
See All by Sonoda Ryohei
AWSの基本的な使い方
sonodar
13
31k
社内研修用 AWSの概念・全体像
sonodar
6
29k
Other Decks in Technology
See All in Technology
Kiro Crew で始める マルチエージェント開発
miu_crescent
PRO
0
160
AI・HPC開発を支えるGPU環境の新しい選択肢 液冷GPUシステム「AquSys」の取り組み
gpuunite_official
0
230
What's new in Go 1.27?
ciarana
0
300
Model Studio CLI × Token Plan
maigo999
0
210
20260817_生成AIの動向と中学校・高等学校での活用を考える_v1.00_公開用
doradora09
PRO
0
190
Android skills に学ぶ
kokiko
0
150
猫付きpingコマンドを自作
uyuki234
0
290
DDDのエッセンスを取り入れたAIでの開発
ak2ie
1
210
MIXIで活躍できるエンジニアを 若手社員目線で考えてみる
mixi_engineers
PRO
0
130
8bit CPU 2026
koba789
6
2.7k
AIのためのEthernet技術動向 (SerDes)
markunet
1
300
平文パスワードはログに“残り” ── 肝心の侵入は“痕跡すら残らない”
kuroneko13
0
120
Featured
See All Featured
Discover your Explorer Soul
emna__ayadi
2
1.3k
A Modern Web Designer's Workflow
chriscoyier
698
190k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Ruling the World: When Life Gets Gamed
codingconduct
0
310
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
900
Utilizing Notion as your number one productivity tool
mfonobong
4
550
Building Applications with DynamoDB
mza
96
7.2k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Mind Mapping
helmedeiros
PRO
1
330
Designing Experiences People Love
moore
143
24k
Transcript
Copyright © 2018 M3, Inc. All Rights Reserved "84'BSHBUFͰ&MJYJSͷ ίϯςϯπ৴γεςϜΛ
ӡ༻ͯ͠Έͨ
⾃⼰紹介 me |> name “Ryohei Sonoda” |> job “Application Engineer”
|> work_at %{ name: “M3, Inc”, since: “2016” ] |> history [ %{ category: “SIer”, since: “2006” } ] |> like [“Java”, “JavaScript”, “Elixir”] |> twitter “@ryoryoryohei” |> github “sonodar” |> oss [“aws-ssm-env”] |> aws_services [“ElasticBeanstalk”, “ECS”] !2
本⽇お話する内容 ઌɺฐࣾςοΫϒϩάʹϙετͨ͠༰ʹ͍ͭͯൃදͤ͞ ͍͖ͯͨͩ·͢ɻैདྷͷ&MBTUJD#FBOTUBMLߏ͔Β'BSHBUF ʹӡ༻Λมߋͨ͠༰ʹͳΓ·͢ɻ "84'BSHBUFͰ&MJYJSͷίϯςϯπ৴γεςϜΛӡ༻ͯ͠Έͨ IUUQTXXXNUFDICMPHFOUSZFMJYJSBXTGBSHBUF lGBSHBUFFMJYJSz·ͨlGBSHBUFΤϜεϦʔzͰάά͍ͬͯͩ͘͞ɻ !3
AGENDA • 'BSHBUFԽͯ͠Έͯ • ैདྷͷ&MBTUJD#FBOTUBMLߏͱ՝ • "84'BSHBUFԽޙͷߏ • ߏมߋޙͷ՝ͱվળ !4
Fargate化してみて w ΞϓϦέʔγϣϯσϓϩΠ·Ͱͷ͕࣌ؒߴԽ͞Εͨɻ w ˠ w ϓϥοτϑΥʔϜߏมߋָ͕ʹͳͬͨɻ w ϓϥοτϑΥʔϜมߋʹ͔͔Δ͕࣌ؒॖ͞Εͨɻ w
࣌ؒˠ w %PDLFSԽʹΑΓϩʔΧϧڥͰϓϥοτϑΥʔϜࣗମͷςετ͕Ͱ ͖ΔΑ͏ʹͳͬͨɻ w ίϯςφԽʹΑΔΦʔόʔϔου΄ͱΜͲݟΒΕͳ͔ͬͨɻ w σϓϩΠύΠϓϥΠϯΛཧ͘͢͠ͳͬͨɻ !5
従来のElasticBeanstalk構成と課題 'BSHBUFԽલ&MBTUJD#FBOTUBMLͷ$VTUPN1MBUGPSN Λར༻ͯ͠&MJYJS1IPFOJYڥΛӡ༻͍ͯ͠·ͨ͠ɻ &MBTUJD#FBOTUBMLݱঢ়ɺ&SMBOHͷϓϥοτϑΥʔϜ αϙʔτ͞Ε͍ͯͳ͍ͨΊɺಠࣗʹϏϧυͨ͠$VTUPN 1MBUGPSNΛར༻͢Δඞཁ͕͋Γ·ͨ͠ɻ !6
従来のElasticBeanstalk構成と課題 &$Ͱͳ͘&MBTUJD#FBOTUBMLΛબఆͨ͠ཧ༝ɺͪΐ͏ ͲγεςϜߏஙͷλΠϛϯάͰ$VTUPN1MBUGPSN͕ϩϯ ν͞Εͨ͜ͱͱɺࢲࣗ&MBTUJD#FBOTUBMLʹ׳Ε͍ͯͨͨ ΊͰ͢ɻ &MBTUJD#FBOTUBMLθϩμϯλΠϜͰͷσϓϩΠΛ࡞Γ ࠐΉඞཁ͕ͳ͘ɺίϚϯυ̍ͭͰΞϓϦέʔγϣϯͷ৽όʔ δϣϯ͕σϓϩΠͰ͖ΔͷͰɺଞγεςϜͰॏๅ͍ͯ͠· ͢ɻ !7
従来のElasticBeanstalk構成と課題 'BSHBUFҠߦલͷϥϯλΠϜߏҎԼͷ௨ΓͰ͢ɻ !8
従来のElasticBeanstalk構成と課題 &MBTUJD#FBOTUBMLʹର͢ΔΞϓϦέʔγϣϯͷσϓϩΠ ҎԼͷΑ͏ʹ࣮ࢪ͍ͯ͠·ͨ͠ɻ ࣾ(JUMBCʹιʔείʔυΛϓογϡɻ (JUMBC$*ͷϚχϡΞϧδϣϒͰFCEFQMPZίϚϯυΛ ࣮ߦɻ "84@"$$&44@,&:@*%ͱ"84@4&$3&5@"$$&44@,&: (JUMBC$*ͷϓϩδΣΫτڥมʹઃఆ͞Ε͍ͯΔɻ !9
従来のElasticBeanstalk構成と課題 ਤʹද͢ͱҎԼͷΑ͏ͳΠϝʔδͰ͢ɻ !10
従来のElasticBeanstalk構成と課題 &SMBOH&MJYJSͷόʔδϣϯΞοϓͷͨΊʹ$VTUPN 1MBUGPSNࣗମΛϏϧυ͠ͳ͓͢߹ɺҎԼͷΑ͏ʹ࣮ ࢪ͍ͯ͠·ͨ͠ɻ ࣾ(JUMBCʹιʔείʔυΛϓογϡɻ ϩʔΧϧͰख࡞ۀͰFCQDSFBUFίϚϯυΛ࣮ߦɻ (JUMBC$*δϣϒ͔Βͷ࣮ߦʹ͍ͭͯɺσϓϩΠύΠϓϥΠϯΛߏஙͨ͠ͷ ͷ্ख͘ػೳͤͣɺ݁ہ͜ͷख๏ʹམͪண͖·ͨ͠ɻৄ͘͠ฐࣾςοΫϒ ϩάΛࢀর͍ͯͩ͘͠͞ɻ
!11
従来のElasticBeanstalk構成と課題 $VTUPN1MBUGPSNͷϏϧυΛਤʹද͢ͱҎԼͷΑ͏ͳΠϝʔδͰ͢ɻ !12
従来のElasticBeanstalk構成と課題 ͜ͷߏͷͱͯ͠$VTUPN1MBUGPSNͷϏϧυ࣌ؒ ͕͍͜ͱ͕ڍ͛ΒΕ·͢ɻ w $VTUPN1MBUGPSNͷϏϧυʹ͕͔͔࣌ؒΓ͗͢Δ ʢ&SMBOHͷϏϧυʹʣɻ ‣ αʔόߏΛFCFYUFOTJPOTͰཧ͢ΔΑ͏ʹͳΔɻ ‣ ΞϓϦέʔγϣϯͷσϓϩΠ͕αʔόߏͷΤϥʔ
Ͱࣦഊ͢ΔΑ͏ʹͳΔɻ GMVFOUEϓϥάΠϯͷڝ߹ͳͲ !13
従来のElasticBeanstalk構成と課題 ·ͨɺ(JUMBC$*্͔ΒσϓϩΠίϚϯυΛ࣮ߦ͢Δ߹্ɺ (JUMBC$*Ͱར༻͢Δ*".Ϣʔβͷݖݶ͔ͳΓڧ͍ݖݶʹ ͳΓ·͢ɻ ۩ମతʹɺ&MBTUJD#FBOTUBML4FSWJDF3PMFͱಉఔͷݖݶ ͕ඞཁͳͨΊɺFD5FSNJOBUF*OTUBODFTͱ͍ͬͨϦιʔε ͷআݖݶΛؚΜͩͷͱͳΓ·͢ɻ (JUMBC$*ͷύϥϝʔλ͕ൺֱత؆୯ʹࢀরͰ͖ͯ͠·͏ͨΊɺ ͜ΕηΩϡϦςΟ্·͋͘͠Γ·ͤΜɻ !14
従来のElasticBeanstalk構成と課題 ࢲ"84ڥΛίʔυԽ͢ΔͨΊʹ5FSSBGPSNΛΜ Ͱར༻͢ΔͷͰ͕͢ɺ5FSSBGPSNͷ&MBTUJD#FBOTUBMLϦ ιʔεʹ͓͍ͯ$VTUPN1MBUGPSNߏஙͷͨΊͷඞਢύϥ ϝʔλͱͳΔ1MBUGPSN"SO͕αϙʔτ͞Ε͍ͯͳ͍͜ͱ ӡ༻্ͷωοΫͱͳΓ·ͨ͠ɻ ࣮ࡍʹ5FSSBGPSNͷιʔείʔυʹύονΛͯͯϏϧυ࣮ͨ͠ߦ όΠφϦΛϦϙδτϦʹίϛοτͯ͠ར༻͢Δͱ͍ͬͨӡ༻Λͱͬͯ ͍·ͨ͠ɻ !15
従来のElasticBeanstalk構成と課題 $VTUPN1MBUGPSNߏͷ՝Λ·ͱΊΔͱҎԼͱͳΓ·͢ɻ w ϓϥοτϑΥʔϜͷϏϧυʹ͕͔͔࣌ؒΓ͗͢ΔͨΊɺαʔό ߏͷมߋ͕ͮ͠Β͍ɻ w (JUMBC$*্ʹڧ͍ݖݶΛ࣋ͬͨ*".ϢʔβͷγʔΫϨοτ ใΛอ࣋͢Δඞཁ͕͋Δɻ w 5FSSBGPSN͕$VTUPN1MBUGPSNʹରԠ͍ͯ͠ͳ͍ɻ
&MBTUJD#FBOTUBMLͷͰͳ͘ɺ&SMBOHɺ(JUMBCɺ5FSSBGPSN ͱ͍ͬͨΈ߹ΘͤʹΑΔ՝Ͱͨ͠ɻ !16
AWS Fargate 化後の構成 ͱͱ&$4ԽΛߦ͏༧ఆͰ͋ͬͨͷͰ͕͢ɺ ʹ"84'BSHBUF͕౦ژϦʔδϣϯʹདྷͨͷ Ͱɺ&MBTUJD#FBOTUBML͔Β'BSHBUFͰͷӡ༻ʹҠߦ͠· ͨ͠ɻ &MBTUJD#FBOTUBMLͷ.VMUJ$POUBJOFS%PDLFSϓϥοτ ϑΥʔϜ௨ৗͷ&$4ͱ͍ͬͨબࢶ͋ͬͨͷͰ͕͢ɺ ͔ͤͬ͘ͳͷͰ'BSHBUFΛબ͠·ͨ͠ɻ
!17
AWS Fargate 化後の構成 ίϯςφԽͨ͜͠ͱʹΑͬͯɺ࠷ऴతͳ"84'BSHBUFߏ ҎԼͷΑ͏ͳׂͱී௨ͷߏͱͳΓ·ͨ͠ɻ !18
AWS Fargate 化後の構成 4Λىͱͨ͠ɺ$PEF1JQFMJOFʹΑΔσϓϩΠύΠϓϥ ΠϯΛߏங͠·ͨ͠ɻ !19
AWS Fargate 化後の構成 σϓϩΠύΠϓϥΠϯͷߏ (JUMBCͰιʔεͷΞʔΧΠϒͷΈΛߦ͍ɺ4ʹΞοϓϩʔυɻ %PDLFSΠϝʔδͷϏϧυ&$4ͷσϓϩΠ$PEF1JQFMJOFͰߦ͏ɻ ϝϦοτɿ (JUMBC͔Β4ʹQVU͢Δ͚ͩɺ*".ϙϦγʔ͕ݶఆతɻ (JUMBCͱ"84͕ૄ݁߹ʹͳΓɺ"84ߏΛίʔυԽ͍͢͠ɻ σϝϦοτɿ
ڥ͝ͱͷࠩΛεΫϦϓτͰղܾ͠ͳ͚ΕͳΒͳ͍ɻ !20
AWS Fargate 化後の構成 ࠾༻͠ͳ͔ͬͨσϓϩΠύΠϓϥΠϯͷߏҊ <ϘπҊ">(JUMBCͰΠϝʔδϏϧυͱ&$3ͷϓογϡΛߦ͍ɺ $PEF1JQFMJOFͰ&$4ͷσϓϩΠͷΈΛߦ͏ɻ ϝϦοτɿ $PEF#VJMEͷ՝͕͔͔ۚΒͳ͍ɻ $PEF1JQFMJOFͷॲཧ͕࣌ؒॖ͞ΕΔɻ σϝϦοτɿ
ڥ͝ͱͷࠩΛεΫϦϓτͰղܾ͠ͳ͚ΕͳΒͳ͍ɻ !21
AWS Fargate 化後の構成 ࠾༻͠ͳ͔ͬͨσϓϩΠύΠϓϥΠϯͷߏҊ <ϘπҊ#>(JUMBC͔Β$PEF$PNNJUʹϓογϡͯ͠ىಈɻ ϝϦοτɿ ϩʔϧόοΫ࣌ʹ"84ͷΈͰ݁͢Δɻ σϝϦοτɿ (JUMBCͱͷೋॏཧͰ༰ྔ͕૿େ͢Δɻ $PEF$PNNJU͚ͩͰ͍͍ͷʹɺͳΜ͔ແବɻ
!22
AWS Fargate 化後の構成 ࠾༻͠ͳ͔ͬͨσϓϩΠύΠϓϥΠϯͷߏҊ <ϘπҊ$>(JUMBC͔ΒFDTDMJͰ&$4ʹσϓϩΠɻ ϝϦοτɿ ύΠϓϥΠϯ͕(JUMBCͷΈͰ݁͢Δɻ σϝϦοτɿ (JUMBC্ͷ*".Ϣʔβݖݶ͕ڧݖݶʹͳΔɻ ύΠϓϥΠϯߏΛίʔυԽͮ͠Β͍ɻ
!23
構成変更後の改善点 ϓϥοτϑΥʔϜͷϏϧυ࣌ؒ ࣌ؒˠ ͷվળ (JUMBC$*্ͷ*".Ϣʔβݖݶ &MBTUJD#FBOUBML4FSWJDF3PMFˠT1VU0CKFDU 5FSSBGPSNඇରԠ ύονͯˠύονͯͳ͍ !24
構成変更後の課題 'BSHBUFԽޙͷ՝ w ίϯςφγϯάϧϓϩηεͳͷͰɺࢹ༻ͷϓϩηεͳͲ ΛͲ͏࣮͢Δ͔ݕ౼͕ඞཁɻ w CVJMETQFDZNM͕ΞϓϦέʔγϣϯϦϙδτϦʹ͔͠ஔ͚ ͳ͍ͷͰɺ$PEF#VJME͕ΞϓϦέʔγϣϯϦϙδτϦʹґ ଘ͢Δɻ w
"84ར༻ྉ͕গׂ͚ͩ͠ߴʁʢ݄̓தͰͷมߋͷͨΊɺ· ͩྉۚൺֱग़͍ͯ͠ͳ͍ʣ !25
最後に ࠓճͷ"84'BSHBUFߏΛ࣮ͨ͠खॱΛฐࣾςοΫϒϩά Ͱެ։͍ͯ͠·͢ɻࢀߟʹͳΕ͍Ͱ͢ɻ w "84'BSHBUFͰ&MJYJSͷίϯςϯπ৴γεςϜΛಈ͔ͯ͠Έͨ ࣮ ฤ IUUQTXXXNUFDICMPHFOUSZFMJYJSGBSHBUFJNQM w "84'BSHBUFͷσϓϩΠύΠϓϥΠϯ
(JUMBC4$PEF1JQFMJOF Λ ߏஙͯ͠ΈͨIUUQTXXXNUFDICMPHFOUSZFMJYJSGBSHBUFJNQM w "84'BSHBUFͱσϓϩΠύΠϓϥΠϯΛ5FSSBGPSNͰཧͯ͠Έͨ ʢ$PNJOH4PPOʣ !26