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
28k
Other Decks in Technology
See All in Technology
Baseline対応のDOMの型定義を作った
uhyo
3
720
cccccc
moznion
0
1.8k
AI Driven AI Governance
pict3
0
250
ZOZOTOWNの進化と信頼性を両立する負荷試験
zozotech
PRO
0
140
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
12
5k
AIDLC_ヤフーショッピングの取り組み
lycorptech_jp
PRO
0
560
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.4k
攻撃者がいなくてもAIエージェントはインシデントを起こす
nomizone
0
200
デジタル・デザイン構想 by Sayaka Ishizuka
y150saya
0
200
“ID沼入口” - 基本とセキュリティから始める、考え続けるためのID管理技術勉強会 告知&イントロ
ritou
0
440
どうして今サーバーサイドKotlinを選択したのか
nealle
0
210
SRE歴2ヶ月でも開発6年の知見を活かして、チームで止まっていた環境改善を前に進めた話
a_ono
1
220
Featured
See All Featured
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
870
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.9k
Designing Experiences People Love
moore
143
24k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
Code Reviewing Like a Champion
maltzj
528
40k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
340
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
440
Designing Powerful Visuals for Engaging Learning
tmiket
1
440
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
210
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
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