au WebϙʔλϧαΠτϦχϡʔΞϧΠϯϑϥͷऔΓΈ
View Slide
ࣗݾհલᖒਖ਼ٓʢ·͑͟Θ·͞Α͠ʣ• גࣜձࣾmediba• ΠϯϑϥετϥΫνϟʔ෦ / ͷͮ͘Γਪਐ෦• PerlΤϯδχΞ 7• ࣾSE 2• Πϯϑϥྺ 3• AWSೝఆ• ιϦϡʔγϣϯΞʔΩςΫτ ΞιγΤΠτ• ιϦϡʔγϣϯΞʔΩςΫτ ϓϩϑΣογϣφϧ
Agenda• au WebϙʔλϧͷϦχϡʔΞϧ• Fargateʹ͍ͭͯ• ͳͥFargateΛར༻͢Δͷ͔• Fargateͷར༻ύλʔϯ• ࣮ࡍʹ͔ͭͬͯΈͯͲ͏ͩͬͨͷ͔• ·ͱΊ
ΠϯϑϥΤϯδχΞͷਓʁ
AWS͍ͬͯΔਓʁ
ίϯςφ͍ͬͯΔਓʁ
ϓϩμΫγϣϯͰίϯςφӡ༻͍ͯ͠Δਓʁ
au WebϙʔλϧͷϦχϡʔΞϧ
ΦϯϓϨˠAWS
VM→ίϯςφ
au WebϙʔλϧϦχϡʔΞϧͷΠϯϑϥߏਤʢҰ෦ൈਮʣ
Fargateʹ͍ͭͯ
ͷલʹ
AWSͷίϯςφؔ࿈αʔϏε• ίϯτϩʔϧϓϨʔϯίϯςφͷΦʔέετϨʔγϣϯΛ୲• ECS• EKS• σʔλϓϨʔϯίϯςφ͕࣮ࡍʹಈ࡞͢Δڥ• EC2• Fargate
ECS for Fargateʹ͍ͭͯ• ίϯςφ͕ىಈ͢ΔϗετͱΫϥελཧΛAWS͕໘ݟͯ͘ΕΔϚωʔδυαʔϏε
&$4$MVTUFS&$*OTUBODFECS for EC25"4,/HJOY /PEF5"4,/HJOY /PEF&$*OTUBODF5"4,/HJOY /PEF5"4,/HJOY /PEF
&$4$MVTUFSECS for Fargate5"4,/HJOY /PEF5"4,/HJOY /PEF5"4,/HJOY /PEF5"4,/HJOY /PEF
ίϯτʔϧϓϨʔϯσʔλϓϨʔϯϑϧϚωʔδυ
ͳͥECS for FargateΛར༻͢Δͷ͔• ϑϧϚωʔδυαʔϏε• ίϯτϩʔϧϓϨʔϯ͚ͩͰͳ͘σʔλϓϨʔϯͷϗετཧ͕ෆཁ• ଞͷAWSαʔϏεΛར༻͍͢͠• λεΫʹରͯ͠IAM RoleΛ༩Ͱ͖Δ• λεΫຖʹENI͕Ξλον͞ΕΔͨΊSecurityGroup͕ઃఆͰ͖Δ• CloudWatchLogsͰϚωʔδυͳϩάཧ• CodePipelineͰϚωʔδυͳܧଓతͳσϓϩΠ
Fargateͷར༻ύλʔϯ
ϥΠϑαΠΫϧͷ͍λεΫ
ϥΠϑαΠΫϧͷ͍λεΫ• WebαʔόΞϓϦέʔγϣϯαʔόͷϓϩηε• ALBԼʹෳͷίϯςφλεΫΛىಈ• σϓϩΠ࣌ʹ৽͍͠λεΫͷىಈͱALBͷ͚ସ͑
ϥΠϑαΠΫϧͷ͍λεΫ
ϥΠϑαΠΫϧͷ͍λεΫ• όονॲཧͳͲඞཁͳ࣌ʹλεΫΛ࣮ߦͯ͠ऴྃ• εέδϡʔϦϯάͰͷఆظత࣮ߦ• όοναʔό͕ෆཁʹͳΔͷͰׂ҆
Ͱ࣮ࡍͬͯͲ͏ͩͬͨͷʁ
σϓϩΠ͕ίϯςφʹ͍ͯ͠
σϓϩΠ͕ίϯςφʹ͍ͯ͠• λεΫ͕Runningঢ়ଶʹͳΔͷʹ̍΄Ͳ͔͔Δ• ENIͷΞλον࣌ؒ10ඵ΄Ͳ͔͔Δ• ίϯςφΠϝʔδͷPullʹ͕͔͔࣌ؒΔ• FargateΠϝʔδͷΩϟογϡΛอ࣋Ͱ͖ͳ͍ʢࠓʣ5"4,/HJOY /PEF5"4,/HJOY /PEF
NATGWͷ༧ظͤ͵༻ྔ
NATGWͷ༧ظͤ͵༻ྔ• ECRͷଓΠϯλʔωοτܦ༝ʢσϑΥϧτʣ• FargateΠϝʔδͷΩϟογϡΛอ࣋Ͱ͖ͳ͍ʢࠓʣ• DockerHubવΠϯλʔωοτܦ༝• ΠϝʔδΛPull͗͢͠ΔͱBAN͞ΕΔ͜ͱ(͞Εͨ)
ECRͷଓσϑΥϧτΠϯλʔωοτܦ༝*OUFSOFU
ରࡦ
PrivateLinkΤϯυϙΠϯτܦ༝ʹϧʔτมߋ*OUFSOFU
NATGWʹฏԺ͕͓ͱͣΕΔPrivateLinkಋೖલ PrivateLinkಋೖޙ
Fargateͷࢹ
CloudWatch MetricsͰͷࢹ• ϝτϦΫε• CPU Utilization• Memory Utilization• σΟϝϯγϣϯ• Ϋϥελʔ୯Ґ• αʔϏε୯Ґ
Ϋϥελʔ&$4$MVTUFS5"4, 5"4, 5"4, 5"4,
λεΫ୯ҐͷϝτϦΫεݟ͍ͨ
λεΫ୯ҐͰϝτϦΫεΛऔಘ͍ͨ͠&$4$MVTUFS5"4,%BUBEPH/PEF5"4,%BUBEPH/PEF5"4,%BUBEPH/PEF5"4,%BUBEPH/PEFDatadog AgentͷαΠυΧʔίϯςφΛ্ཱͪ͛Δ
λεΫ୯ҐͰϝτϦΫεΛऔಘ͍ͨ͠Agentܦ༝ͰϝτϦΫεใΛٵ্͍͛ΔʢવAgentͷFargateඅ༻͔͔Γ·͢ʣ
Datadog AgentΛར༻ͨ͠ࢹ• DatadogAgentͷΠϝʔδͷஔ͖ॴECR• DatadogAgentͷόʔδϣϯͷै͕ඞཁ• ϥΠϑαΠΫϧͷ͍λεΫϝτϦΫεͷऔಘ͕͍͠• Logूͱࢹ͕ॏཁ
ίϯςφͷࢹͱӡ༻• Cattle,not petsʢϖοτͰͳ͘ɺՈசʣ• VMͷཧͱҧ͍Ϛγϯͷӡ༻ΑΓαʔϏεͷՄ༻ੑͱੑೳΛॏࢹ͢Δ• ͕ൃੜͨ͠λεΫ༰ࣻͳ͘ఀࢭ• ΦʔτώʔϦϯάͰએݴͨ͠λεΫͷʹΔ
·ͱΊ
·ͱΊ• FargateίϯςφΛར༻͢Δ߹ʹ࠷ॳʹݕ౼͖͢બࢶ• FargateͷίϯςφΠϝʔδΩϟογϡͰ͖ͳ͍• PrivateSubnetͰίϯςφΛىಈ͢Δ߹PrivateLinkΛར༻͢Δ• ίϯςφͷಛੑʹΑͬͯࢹํ๏ͱࢹରΛߟ͑Δඞཁ͕͋Δ