Share
Embed
ECS×Fargateで実現する運用コストほぼ0なコンテナ運用の仕組み/ ecs fargate low cost operation
AWS DevDay Online Japan 2020 の登壇資料です
Shoichiro Nagai(shnagai)
October 20, 2020
Transcript
48 slides
-
© 2020, Amazon Web Services, Inc. or its affiliates. All
rights reserved. In Partnership with ECS×FargateͰ࣮ݱ͢Δ ӡ༻ίετ΄΅0ͳίϯςφӡ༻ͷΈ ίωώτגࣜձࣾ ӬҪউҰ(shnagai) A - 7 -
"CPVUϚϚϦ 2"ίϛϡχςΟ Ϣʔβʔ͕ΈΛߘɺ૬ஊ͋͠͏2"ػೳ ઐՈʹΑΔճظؒݶఆͰఏڙ ϝσΟΞ ৷ɾҭࣇͳͲͷهࣄΛXFCͱΞϓϦͰ৴ ৽ϚϚͷʮਓʹਓʯʹ͝ར༻͍͍͍ͨͩͯΔΞϓϦɺใϝσΟΞʮϚϚϦʯ 3ਓʹ1ਓ ৽ϚϚͷ ͕ར༻த!
※2 ΞϓϦձһ 250ສਓ ϚϚ͚No.1ΞϓϦʹબग़ ※1 ʮୈ̔ճ݈߁ण໋Λͷͦ͏ʂΞϫʔυʯʹͯ ްੜ࿑ಇলࢠͲՈఉہ ड ※1 1,084ਓͷϚϚ͕બͿʮݱࡏ͍ͬͯΔΞϓϦʯ ʹͯɺ5߲ (ଞͷϚϚʹΦεεϝ͍ͨ͠ɺೝɺར༻ɺརศੑɺײ) Ͱ ̍ҐΛ֫ಘ͠·ͨ͠ɻʮϚϚ͚No.1ΞϓϦʯ20193݄Πϯςʔδௐɹௐࠪରɿ৷தʙ2ࡀ0ϲ݄ͷࢠڙΛ࣋ͭঁੑʢn=1,084ʣΛநग़ ※2 2019ͷʮϚϚϦʯͷग़࢈༧ఆΛઃఆͨ͠Ϣʔβʔͱɺްੜ࿑ಇলൃදʮਓޱಈଶ౷ܭʯͷग़ੜ͔Βࢉग़ -
w ӡ༻ίετΛۃݶ·Ͱগͳͯ҆͘͠ఆՔಇͯ͠΄͍͠ w Ϋϥυɺ֤छ4BB4ͷར༻ w ࣗݾճ෮ܕΞʔΩςΫνϟͷ࠾༻ ίϯςφɺϚωʔδυαʔϏε׆༻ w ͦΕʹ͔͔Δඅ༻গͳ͚Εগͳ͍΄Ͳྑ͍
w ಉ͜͡ͱΛΔͷͰ͋ΕίετͰग़དྷΔํ͕Ձߴ͍ αʔϏεӡ༻ͷཧ૾ -
w ϝϯςφϯείετ͕͍ w ίϯτϩʔϧϓϨʔϯʹؔͯ͠΄΅ҙࣝ͢Δඞཁͳ͍ w ίϯςφΛͲ͏ಈ͔͔͢ʹྗग़དྷΔ w "84ͷϦιʔεͱϑϨϯυϦʔ w "-#
*".ϩʔϧ $MPVE8BUDI&WFOUT 4UFQ'VODUJPOT w ίωώτ"84Ͱ΄΅શͯͷγεςϜΛΜͰ͍ΔͷͰ࿈ܞָ͕ͳͷେࣄ w ֶशίετΊ w αʔϏεɺλεΫఆٛɺΫϥελΛ࠷ݶ͑Είϯςφӡ༻ग़དྷΔ w ࣗ༝͍͕ɺίϯςφӡ༻ʹ͋ͨΓઃఆ߲ߟྀࣄ߲͕গͳ͍ &$4ͷؾʹೖ͍ͬͯΔͱ͜Ζ -
ίωώτͰͷ&$4ӡ༻ͷྺ࢙ 20177݄ ECSຊ൪ӡ༻։࢝ DockerΛͬͨίϯςφͷຊ൪ӡ༻։࢝ EC2όοΫΤϯυ 201712݄ શαʔϏεΛECSԽ طଘαʔϏεͷҠߦ͕ྃ͠શαʔϏεΛECSͰӡ༻ EC2όοΫΤϯυ 201810݄
Fargateຊ൪ಋೖ FargateΛຊ൪ӡ༻։࢝ ӡ༻ίετܹݮ͕ͩඅ༻Λ͑ΔͨΊʹ༷ʑͳ 20205݄ Fargate × λʔήοτ ServiceAutoScalling FargateͷॊೈੑΛۦͨ͠ಈతΩϟύϓϥΛ࣮ݱ ӡ༻ίετ΄΅0Ͱඅ༻ݮ -
w &$ࣗମͷӡ༻ w Α͠ͳʹ".*ߋ৽ w Α͠ͳʹ&$ϝϯςφϯεରԠ w Α͠ͳʹ&$Λࢹ w &$4ؔ࿈ͷӡ༻
w λεΫΛࣄલʹݟӽͨ͠ΩϟύγςΟϓϥϯχϯά͕ඞཁ w Ͳͷ&$Ͱಈ͔͔͢ w λεΫͷஔ֬ೝ ແବͳ͘ஔ͞Ε͍ͯΔ͔ w खಈεέʔϧΞτΠϯ w ΫϥελΛͲ͏Ή͔ &$4º&$ߏΑ͠ͳʹ&$ͷӡ༻ίετ͕ൃੜ -
w &$ࣗମͷӡ༻ w Α͠ͳʹ".*ߋ৽ w Α͠ͳʹ&$ϝϯςφϯεରԠ w Α͠ͳʹ&$Λࢹ w &$4ؔ࿈ͷӡ༻
w λεΫΛࣄલʹݟӽͨ͠ΩϟύγςΟϓϥϯχϯά͕ඞཁ w λεΫͷஔ֬ೝ ແବͳ͘ஔ͞Ε͍ͯΔ͔ w खಈεέʔϧΞτΠϯ w ΫϥελΛͲ͏Ή͔ &$4º&$ߏΑ͠ͳʹ&$ͷӡ༻ίετ͕ൃੜ ҰͭҰ͍ͭܰ ͕ੵΈॏͳΔͱେ͖ͳӡ༻ίετʹ -
w λεΫΛಈ͔͢ج൫ͷ&$ͱλεΫࣗମͷεέʔϧΛߟྀ͢Δ ඞཁ͕͋Δ w ग़དྷͳ͘ͳ͍͕ෳࡶͳΈΛࣗલͰӡ༻͠ͳ͚ΕͳΒͳ͍ w &$4$MVTUFS"VUP4DBMJOH͕ղܾͯ͘͠ΕΔ͔ IUUQTBXTBNB[PODPNKQBCPVUBXTXIBUTOFXBNB[POFDTDMVTUFSBVUPTDBMJOHOPXBWBJMBCMF
w ӡ༻ίετඅ༻ϐʔΫτϥϑΟοΫΛࡹ͚ΔϦιʔεΛࣄલ ʹ༻ҙ w গͷΠϯϑϥͱ8FCΤϯδχΞͰαʔϏεӡ༻ w ෳࡶͳΈΛಋೖͨ͠ࡍͷӡ༻ίετେ͖͍ &$4º&$ߏΦʔτεέʔϧ͕ෳࡶ -
w "84Ϛωʔδυͳίϯςφ͚ίϯϐϡʔςΟϯάΤϯδϯ w &$ෆཁ w ॊೈͳϦιʔεͱैྔ՝ۚ w .FNʙ W$16ʙͷൣғͰॊೈʹׂΓͯ w
͚ͬͨͩैྔ՝ۚ 'BSHBUFͱ -
w &$ࣗମͷӡ༻ w Α͠ͳʹ".*ߋ৽ w Α͠ͳʹ&$ϝϯςφϯεରԠ w Α͠ͳʹ&$Λࢹ w &$4ؔ࿈ͷӡ༻
w λεΫΛࣄલʹݟӽͨ͠ΩϟύγςΟϓϥϯχϯά͕ඞཁ w λεΫͷஔ֬ೝ ແବͳ͘ஔ͞Ε͍ͯΔ͔ w खಈεέʔϧΞτΠϯ w ΫϥελΛͲ͏Ή͔ 'BSHBUFͷొͰ&$4ͷӡ༻͕େ෯ʹָʹͳͬͨ ͦͦEC2͕ෆཁʹ ͯ͢ϦιʔεׂΓͯͷ -
w 3*Ͱ&$ˠ'BSHBUF 4BWJOHT1MBOTͳ͠ ͩͱഒͷඅ༻ w &$όοΫΤϯυ࣌ͱಉ͡λεΫͰ'BSHBUFʹҠߦ w ౦ژϦʔδϣϯରԠޙϲ݄Ͱ·ͩࣄྫͳ͔ͬͨͷͰ҆શʹ IUUQTUFDIDPOOFIJUPDPNFOUSZ w
අ༻ΛԼ͛ΔͨΊʹλεΫΛݮΒ͍ͯͬͨ͠ w &$όοΫΤϯυ࣌σϓϩΠ༻ʹ֬อ͞ΕͨϦιʔεΛঃʑʹݮΒ͢ w αʔϏεӡ༻ʹͷͳ͍λεΫΛݟۃΊΔ &$͔Βղ์͞Ε͕ͨඅ༻͕ߴ͍ -
'BSHBUF4QPUͷొ w ΦϯσϚϯυՁ͔֨Β࠷େ0''Ͱར༻Մೳ w 4QPUλΠϓͳͷͰڧ੍தஅ͋Γ w ۭ͖Ωϟύ͕ͳ͍ͱલʹ௨͠தஅ w εςʔδϯάڥதஅ͍͍ͯ͠όονॲཧʹར༻ w
҆ఆՔಇ͕Ұ൪େࣄͳͷͰຊ൪ͷΣϒʹ͍ͬͯͳ͍ -
&$ͱ'BSHBUFͷྉۚൺֱ 1࣌ؒ͋ͨΓͷඅ༻ൺֱ ($/hour) ap-northeast-1 ΦϯσϚϯυ RI / Compute Savings Plans
ׂҾ EC2 C5.large 0.107 0.063 શֹલ͍ 41% Fargate 2vCPU mem4G 0.12324 0.0961272 શֹલ͍ 22% Fargate - EC2 0.01624 0.0331272 EC2RI→FargateSV $24/month * ߴ͍ EC2RI→Fargate $45/month * ߴ͍ ※SVͳ͠ -
'BSHBUFӡ༻Ͱײ͍ͯͨ͡՝ w ΦʔτεέʔϦϯά͕͍͔ͭͳ͍ w ͔ͤͬ͘'BSHBUFԽͯ͠Φʔτεέʔϧग़དྷΔΑ͏ʹͳͬͨ w ϐʔΫ࣌ؒʹϨΠςϯγҧΞϥʔτ͕ग़࢝Ίͨ ຖ൩ώϠώϠ w
ݟΔͱΦʔτεέʔϧൃಈͯ͠Δ͕ॳಈʹ͍͍͍ͭͯͳ͍ w $16τϦΨͷTఔͷىಈόοϑΝͩͱͪΐͬͱ͍ w අ༻͕&$࣌ͱൺΔͱߴࢭ·Γ͍ͯͨ͠ w λεΫΛݮΒͯ͠ɺ4BWJOHT1MBOTΛͬͯ·ͩߴ͍ w ಉ͡αʔϏεΛӡ༻͢ΔͳΒඅ༻গͳ͍ͷ͕ਖ਼ٛͰ͢ΑͶ -
ΩϟύγςΟϓϥϯχϯάʹର͢Δߟ͑ํͷมԽ w ϐʔΫτϥϑΟοΫΛ҆શʹࡹ͚ΔΩϟύγςΟΛ༻ҙ w ҆શͳαʔϏεӡ༻ͷͨΊʹ༨ͳඅ༻Λࢧ͏ w &$όοΫΤϯυͰ'BSHBUFͬͯ͜ͷߟ͑ͰαʔϏεӡ༻͍ͯͨ͠ 25 50 75
100 0࣌ 3࣌ 6࣌ 9࣌ 12࣌ 15࣌ 18࣌ 21࣌ 24࣌ ΩϟύγςΟ ར༻Ωϟύ -
ΩϟύγςΟϓϥϯχϯάʹର͢Δߟ͑ํͷมԽ w ैྔ՝ۚΛ׆͔ͨ͠ಈతͳΩϟύγςΟίϯτϩʔϧ w Ϣʔβ͕ଟ͍࣌ʹଟ͘ͷϦιʔεΛߏ͑গͳ͘ͳͬͨΒϦιʔεΛ࠷খԽ w ඞཁͳϦιʔεΛඞཁͳ͚࣌ͩ༻ҙͦ͠ͷରՁΛࢧ͏ͷ͕Ϋϥυͷݪ 25 50 75
100 0࣌ 3࣌ 6࣌ 9࣌ 12࣌ 15࣌ 18࣌ 21࣌ 24࣌ ΩϟύγςΟ ར༻Ωϟύ -
ΩϟύγςΟϓϥϯχϯάʹର͢Δߟ͑ํͷมԽ w ैྔ՝ۚΛ׆͔ͨ͠ಈతͳΩϟύγςΟίϯτϩʔϧ w Ϣʔβ͕ଟ͍࣌ʹଟ͘ͷϦιʔεΛߏ͑গͳ͘ͳͬͨΒϦιʔεΛ࠷খԽ w ඞཁͳϦιʔεΛඞཁͳ͚࣌ͩ༻ҙͦ͠ͷରՁΛࢧ͏ͷ͕Ϋϥυͷݪ 25 50 75
100 0࣌ 3࣌ 6࣌ 9࣌ 12࣌ 15࣌ 18࣌ 21࣌ 24࣌ ΩϟύγςΟ ར༻Ωϟύ &$4Ͱ࣮ݱ͍ͨ͠ -
&$4λʔήοτ4FSWJDF"VUP4DBMMJOH w &$4ଆͰλεΫඞཁΛಈతʹίϯτϩʔϧͯ͘͠ΕΔػೳ w &$44FSWJDFͷฏۉ$16༻ w &$44FSWJDFͷฏۉϝϞϦ༻ w &$44FSWJDFʹඥͮ͘"-#ͷλεΫ͋ͨΓͷϦΫΤετ w
͜Ε·ͰεύΠΫରࡦʹ͍ͬͯͨ w εέʔϧΞτ༻ʹฏۉ$16༻τϦΨͰൃಈ -
ฏۉ$16༻Λ͢Δ4FSWJDF"VUP4DBMMJOHڍಈ λεΫඞཁ: 10 CPU༻39% λεΫඞཁ: 15 CPU༻38.5% ϦΫΤετ૿ CPU༻55% CPU༻Λࢦఆʹऩଋ͢ΔΑ͏ʹ
λεΫΛίϯτϩʔϧ ϦΫΤετݮ CPU༻20% λεΫඞཁ: 5 CPU༻30% ※࠷·ͰεέʔϧΠϯ -
&$4λʔήοτ4FSWJDF"VUP4DBMMJOHͷઃఆ ߲ ༰ ίωώτͰͷઃఆ λʔήοτ ͨ͠ϝτϦΫεͰͷ͖͍͠ (ฏۉCPU/ฏۉϝϞϦ/λεΫ͋ͨΓͷreq) αʔϏεͷੑ࣭ʹΑΓ ݕূ͠ͳ͕ΒదͳᮢΛೖΕΔ εέʔϧΞτ
Ϋʔϧμϯظؒ εέʔϧΞτͨ͠ޙͷػ࣌ؒ (͜ͷؒ࿈ଓͰεέʔϧΞτൃಈ͠ͳ͍) 60s (ෛՙ࣌ຖεέʔϧΞτ) εέʔϧΠϯ Ϋʔϧμϯظؒ εέʔϧΠϯͨ͠ޙͷػ࣌ؒ (͜ͷؒ࿈ଓͰεέʔϧΠϯൃಈ͠ͳ͍) 900s (Ώͬ͘Γॖୀͯ͠΄͍͠ͷͰ) εέʔϧΠϯͷແޮԽ On/OffͰεέʔϧΠϯΛߦ͏͔Ͳ͏͔ ࠓճͷతͩͱOff -
࠶ܝ 'BSHBUFӡ༻Ͱײ͍ͯͨ͡՝ w ΦʔτεέʔϦϯά͕͍͔ͭͳ͍ w ϐʔΫ࣌ʹϨΠςϯγҧΞϥʔτ͕ग़࢝Ίͨ ຖ൩ώϠώϠ w ݟΔͱΦʔτεέʔϧൃಈͯ͠Δ͕ॳಈʹ͍͍͍ͭͯͳ͍
w අ༻͕&$࣌ͱൺΔͱߴࢭ·Γ͍ͯͨ͠ w λεΫΛݮΒͯ͠ɺ4BWJOHT1MBOTΛͬͯ·ͩߴ͍ w ಉ͡αʔϏεΛӡ༻͢ΔͳΒඅ༻গͳ͍ͷ͕ਖ਼ٛͰ͢ΑͶ -
ݱࡏͷ&$4º'BSHBUFӡ༻ w 'BSHBUFԽ͍ͯ͠ΔαʔϏε΄΅ϝϯςෆཁͰӡ༻ w 'BSHBUFΤʔδΣϯτͷWରԠ͋ΔͷͰͰͳ͍ w ϐʔΫ࣌ؒଳͷεέʔϧΞϥʔτͳ͘উखʹͬͯ͘ΕͯΔײ͡ w අ༻'BSHBUFಋೖ࣌ʹൺͯେ෯ʹݮ w
ฏۉλεΫՔಇ͕Լ͕ͬͨͷͰैྔ՝ۚͷԸܙΛͦͷ··ड͚Δ w 4BWJOHT1MBOTͰׂҾͷԸܙΛड͚Δ w εςʔδϯάҰ෦ͷόονͰ'BSHBUF4QPUͰେ෯ͳίετΧοτ -
·ͱΊ ΞʔΩςΫνϟ/߲ ӡ༻ίετ අ༻ ϙΠϯτ EC2όοΫΤϯυ ˚ લड़ͷEC2ӡ༻ ˕ Reserved,SpotInstanceΛར༻
Φʔτεέʔϧ͕ෳࡶͳͷͰɺϐ ʔΫτϥϑΟοΫ*ഒʹ͑͏ ΔΫϥελ(EC2)Λ༻ҙ Fargate ˕ ˚ SavingsPlansΛར༻ λεΫݮΒ͠EC2όοΫΤϯυ ͱಉ͘͡Β͍ͷඅ༻ײ RI,Spotͱൺֱ͢Δͱߴ͍ͷͰɺϐ ʔΫτϥϑΟοΫʹ͑͏ΔΑ͏ λεΫݮΒ͢+Φʔτεέʔϧ( ͍ͱ͍͏՝ײ) Fargate × λʔήοτ ServiceAutoScalling ˕ ˕ λεΫ੍ޚΛECSʹҕɻ ฏۉతͳλεΫͷݮʹޭ͠ අ༻ѹॖ -
·ͱΊ ΞʔΩςΫνϟ/߲ ӡ༻ίετ අ༻ ϙΠϯτ EC2όοΫΤϯυ ˚ લड़ͷEC2ӡ༻ ˕ Reserved,SpotInstanceΛར༻
Φʔτεέʔϧ͕ෳࡶͳͷͰɺϐ ʔΫτϥϑΟοΫ*ഒʹ͑͏ ΔΫϥελ(EC2)Λ༻ҙ Fargate ˕ ˚ SavingsPlansΛར༻ λεΫݮΒ͠EC2όοΫΤϯυ ͱಉ͘͡Β͍ͷඅ༻ײ RI,Spotͱൺֱ͢Δͱߴ͍ͷͰɺϐ ʔΫτϥϑΟοΫʹ͑͏ΔΑ͏ λεΫݮΒ͢+Φʔτεέʔϧ( ͍ͱ͍͏՝ײ) Fargate × λʔήοτ ServiceAutoScalling ˕ ˕ λεΫ੍ޚΛECSʹҕɻ ฏۉతͳλεΫͷݮʹޭ͠ අ༻ѹॖ 'BSHBUFͷϝϦοτΛ׆༻ͯ͠ ӡ༻ෛՙΛۃྗ͘ίϯςφӡ༻͢Δ͜ͱ͕ &$4Λબ͢ΔڧΈͩͱߟ͍͑ͯΔ -
Thank you! © 2020, Amazon Web Services, Inc. or its
affiliates. All rights reserved. In Partnership with ίωώτגࣜձࣾ ӬҪউҰ(shnagai)