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
システム監視入門
grimoh
5
790
PLaMo 3.0 Primeの構造化出力サポート
pfn
PRO
0
160
AI エージェント時代のデジタルアイデンティティ
fujie
2
1.3k
20260608_Codexの可能性_ノンプログラマー向け_大城追記
doradora09
PRO
0
720
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
110k
StepFunctionsとGraphRAGを活用した暗黙知活用のためのRAG基盤
yakumo
0
200
クラウドセキュリティ入門 ~安全なクラウド利用のための基礎知識~
lhazy
7
5.8k
AIがAPIを書く時代に、私たちは何を設計すべきか
nagix
0
200
AI驚き屋発見器
yama3133
2
390
QAタスクをスキル化したいときに考えること
aomoriringo
0
140
BigQuery を検索ソースとした AI Agent の作り方って 〇〇 通りあんねん
satohjohn
0
150
事業成長とAI活用を止めないデータ基盤アーキテクチャの設計思想
hiracky16
0
790
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
We Are The Robots
honzajavorek
0
290
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
370
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
410
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Thoughts on Productivity
jonyablonski
76
5.3k
Music & Morning Musume
bryan
47
7.3k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
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