MIXI TECH CONFERENCE 2023 2023年3月3日(金) #mixitechcon
©MIXI.*9*5&$)$0/'&3&/$&શੈքͰ͠ଓ͚ΔαʔϏεͷΠϯϑϥͱ։ൃͷཪଆ7BOUBHFελδΦ ΈͯͶࣄۀ෦ 43&άϧʔϓਗ਼ਫ ܄
View Slide
©MIXI"CPVU.Fਗ਼ਫ ܄ !JTBPTIJNJ[V● ʙ גࣜձࣾϛΫγΟʢݱ.*9*ʣ● ʙ 4/4ʮNJYJʯӡ༻ΤϯδχΞ● ʙ ϞϯελʔετϥΠΫ 43&● ʙ ՈΞϧόϜ ΈͯͶ 43&● ʙ 43&άϧʔϓ ϚωʔδϟʔिࣾձਓਧָஂͰͷ׆ಈʢָஂɺτϩϯϘʔϯɺͨ·ʹࢦشऀʣɻΩϟϯϓͱΫϥϑτϏʔϧ͕͖ɻ2
©MIXIՈΞϧόϜ ΈͯͶ3
©MIXIՈΞϧόϜ ΈͯͶ4ύύɾϚϚ͕ࡱͬͨࢠͲͷࣸਅಈըΛɺੰͳͲটͨ͠Ո͚ͩʹ؆୯ʹڞ༗Ͱ͖Δࣸਅɾಈըڞ༗ΞϓϦϑΥτϒοΫࣸਅϓϦϯτͷྫ
©MIXIՈΞϧόϜ ΈͯͶ5ΈͯͶΈ·Γ(14 ΈͯͶग़ுࡱӨΈͯͶլঢ় ΈͯͶίʔϧυΫλʔ
©MIXIՈΞϧόϜ ΈͯͶ● ݄ϦϦʔε● ݱࡏݴޠɾͷࠃͱҬͰαʔϏεΛఏڙ● ւ֎Ͱʮ'BNJMZ"MCVNʯͱ͍͏໊শͰల։த● ݄ʹར༻ऀ͕ ສਓ˞Λಥഁ● ຊࠃͰϚϚύύͷͱͳΔˋͷํ˞͕͝ར༻6˞J04ɾ"OESPJEä ΞϓϦొऀɺϒϥβ൛ొऀͷ߹ܭ˞ʮΈͯͶʯొ࣌ʹೖྗ͞Ε͓ͨࢠ͞·ͷੜͱްੜ࿑ಇলൃදʮਓޱಈଶ౷ܭʯ͔Βࢉग़ɻ݄࣌Ͱˋ
©MIXIγεςϜߏ7
©MIXIΈͯͶΛࢧ͑ΔΫϥυ8AWSEKS / EC2 / S3 / AuroraElastiCache / SQS / SNS などGoogle CloudBigQuery などେ͕"84Ͱߏ͞Ε͍ͯΔ
©MIXI"84ͷߏʢུ֓ਤʣ9Amazon EKSAmazon EC2Amazon S3 Amazon AuroraAmazonElastiCacheAmazonCloudFrontApplicationLoad BalancerAmazonDynamoDB
©MIXIγεςϜߏ● "84ΞΧϯτڥ͝ͱʹશʹׂ● "84ͷϦιʔε5FSSBGPSNʹΑͬͯཧ● "-#ɺ4ͷલ໘ʹ$MPVE'SPOUΛஔ͖ɺωοτϫʔΫܦ࿏ͷ࠷దԽͱΩϟογϡར༻● &,4ΫϥελʔʹҰΞοϓσʔτ͢Δӡ༻ʢ৽چΫϥελʔೖΕସ͑ʣ● ,VCFSOFUFTͷϦιʔε"SHP$%ͱ)FMN$IBSUʹΑͬͯཧ● &$ׂҎ্͕εϙοτΠϯελϯεʢΦϯσϚϯυ͘͝Θ͔ͣʣ● &$্Ͱ3BJMT"QQMJDBUJPOɺ4JEFLJR8PSLFS͕ಈ࡞● "84-PBE#BMBODFS$POUSPMMFSͱ5BSHFU(SPVQ#JOEJOHʹΑͬͯ"-#͔Β1PE·ͰͷϧʔςΟϯάΛίϯτϩʔϧ● "VSPSB(MPCBM%BUBCBTFΛར༻ʢৄࡉޙड़ʣ10
©MIXIϚϧνϦʔδϣϯߏ11
©MIXIϚϧνϦʔδϣϯߏ12"84BQOPSUIFBTU"84VTFBTUϢʔβʔ͔Β͍ۙϦʔδϣϯʹΞΫηε͢Δ͜ͱͰϨεϙϯελΠϜΛ͘͢Δ͜ͱ͕Ͱ͖Δ
©MIXIϚϧνϦʔδϣϯߏʢσʔλϕʔεʣ13ap-northeast-1 us-east-1Amazon EKSAmazon EC2Amazon S3Amazon AuroraGlobal DatabaseAmazon AuroraGlobal DatabaseAmazon EKSAmazon EC2ϨΠςϯγʢฏۉ NTʣͰಉظ͞ΕΔಡΈऔΓΞΫηεͷΈରԠॻ͖ࠐΈɾಡΈऔΓΞΫηεରԠ
©MIXIϚϧνϦʔδϣϯߏʹ͓͚Δҙ● ΈͯͶͰϢʔβʔମݧͷ্Λతͱͨ͠ϚϧνϦʔδϣϯ○ ͍ΘΏΔ#$1ରࡦͰͳ͍● ֤ϦʔδϣϯͰಉ༷ͷࢹΛ͓͜ͳ͏ඞཁ͕͋Δ○ *B$ʹΑͬͯखؒ͋·Γ͔͔Βͳ͍● Ϧʔδϣϯ";ʹΑͬͯఏڙ͞Εͳ͍αʔϏεɺΠϯελϯελΠϓ͕͋Δ● &$ͷΩϟύγςΟঢ়گϦʔδϣϯɺ";ʹΑͬͯେ͖͘มΘΔ● ϦʔδϣϯؒͰωοτϫʔΫো͕͋Δͱσʔλϕʔεͷಉظʹେ͖ͳԆ͕ى͖Δ14
©MIXIαʔόʔΞϓϦέʔγϣϯͷ։ൃڥ15
©MIXIαʔόʔΞϓϦέʔγϣϯͷ։ൃڥ16Πϯλʔωοτ։ൃऀ͝ͱʹ༻ҙ͞Εͨڥ開発者44)ͱͯγϯϓϧʹॻ͘ͱ͜Μͳײ͜͜͡Ͱ։ൃ
©MIXIαʔόʔΞϓϦέʔγϣϯͷ։ൃڥ17Πϯλʔωοτ,VCFSOFUFT"͞Μͷ։ൃڥ1PE#͞Μͷ։ൃڥ1PE$͞Μͷ։ൃڥ1PE&͞Μͷ։ൃڥ1PE%͞Μͷ։ൃڥ1PEAさん Bさん Cさん Dさん Eさん開発チーム
©MIXI։ൃڥͷ࡞Γํ18εςοϓ̍ εςοϓ εςοϓ:".-ϑΝΠϧΛ(JU)VCʹϓογϡ˞:".-ͷத44)ͷެ։伴"SHP$%Ͱ4ZODૢ࡞Λͯ͠։ൃڥ͕ىಈ˞ेඵޙʹڥ͕࡞͞ΕΔ44)͢Δ։ൃऀࣗͰ࡞ɾআΛࣗ༝ʹߦ͏͜ͱ͕Մೳ
©MIXIखݩͷ.BD1$։ൃڥͷϩάΠϯपΓͷηΩϡϦςΟ19,VCFSOFUFTΫϥελ։ൃڥ 1PEίϯςφsshdkubectl exec netcat22番ポートΠϯλʔωοτίϯςφConfigMapSSH公開鍵ίϯςφίϯςφProxyCommand.ssh/configssh44)ͷϙʔτΛΠϯλʔωοτʹެ։͢Δඞཁͳ͍։ൃऀίϯςφ"84ೝূ
©MIXI։ൃڥ͕৽͍͠ߏʹͳͬͯ● Ҏલݸਓ͝ͱͷ&$ʹ44)ͯ͠%PDLFSΛར༻͍ͯͨ͠○ 44)ͷ伴ཧɺ5FSSBGPSNͷద༻ͱߏஙͷεςοϓ͕ଟ͔ͬͨ■ :".-ͷՃɺ"SHP$%ͷཧը໘͔Βͷద༻ͱ؆୯ʹ○ खॱ͕Θ͔ΓͮΒ͘43&ϝϯόʔͷαϙʔτ͕ඞཁʹͳͬͨΓ■ ୭Ͱ؆୯ʹߏஙɾআͰ͖ΔΑ͏ʹ○ ൪ϙʔτͷΠϯλʔωοτެ։ʢެ։伴ೝূͱ͍͑ةͳ͍ʣ■ ϙʔτެ։ͳ͠Ͱɺ"84ͷೝূʢ440ʣͱެ։伴ೝূͷΈ߹Θͤʹ■ 74$PEF3FNPUF%FWFMPQNFOUʹରԠ○ ϩά͕ཷ·Γ͗ͨ͢Γɺݕࡧͮ͠Β͔ͬͨΓ■ (SBGBOB-PLJͰݕࡧ͘͢͠20
©MIXIΦϒβʔόϏϦςΟͷ21
©MIXIΦϒβʔόϏϦςΟͳͥඞཁʁ● γεςϜͰԿ͕ى͖͍ͯΔͷ͔ΛѲ͢ΔͨΊ● ,VCFSOFUFTͳͲίϯςφͷΦʔέετϨʔγϣϯ͕ར༻͞ΕΔ͜ͱ͕૿͑ͨ݁ՌɺγεςϜ෦͕ෳࡶʹͳΓɺ֤ίϯϙʔωϯτΛ؍ଌՄೳͳঢ়ଶʹ͢Δඞཁ͕͋Δ● ϝτϦΫεɺϩάɺτϨʔεͳͲͷใଟ͋͘ΓɺͷݪҼΛௐࠪ͢ΔͨΊʹͦΕΒΛత֬ʹूܭ͠ɺՄࢹԽ͢ΔΈ͕ٻΊΒΕΔ22
©MIXIΦϒβʔόϏϦςΟͷ࣮ݱ23ϞόΠϧΞϓϦNew Relic MobileFirebase CrashlyticsαʔόʔΞϓϦNew Relic APMNew Relic Browser֤छϩάGrafana LokiAmazon AthenaGoogle BigQuery֤छϝτϦΫεPrometheus / Amazon ManagedService for PrometheusAmazon CloudWatchGrafana
©MIXIΦϒβʔόϏϦςΟͷશମ૾24KubernetesPrometheusNew RelicRailsnewrelic_rpmGrafanaNode ExporterAmazon CloudWatchAmazonManagedService forPrometheusGrafana LokiPromtailϢʔβʔͷNewRelicMobileϞχλϦϯάڥFluent Bit Amazon KinesisFirehoseAmazon S3AmazonAthenaGCS BigQueryETLॲཧσʔλͷྲྀΕ
©MIXI43&Λ࣮ફ͢Δ্ͰΦϒβʔόϏϦςΟͱͯେࣄ25
©MIXI·ͱΊ26
©MIXI·ͱΊ● શੈքͰ ສਓҎ্ͷϢʔβʔʹར༻͞ΕΔαʔϏεͷγεςϜߏ͕ࢀߟʹͳΕ͍Ͱ͢ɻ● "VSPSB(MPCBM%BUBCBTFͷ͓͔͛ͰϚϧνϦʔδϣϯߏΛ࡞Δ͜ͱ͕Ͱ͖ɺੈքதͷϢʔβʔମݧΛվળͰ͖·ͨ͠ɻ● ,VCFSOFUFTΫϥελ্ͷ։ൃڥηΩϡΞͰѻ͍͍͢ڥʹͳΓ·ͨ͠ɻ● ΦϒβʔόϏϦςΟࠓ·ͰࢼߦࡨޡΛ܁Γฦ͠ɺ43&͚ͩͰͳ͘։ൃऀશମͰར༻Ͱ͖ΔڥΛ࡞Δ͜ͱ͕Ͱ͖·ͨ͠ɻ27
©MIXI8&"3&)*3*/(28ΈͯͶ ࠾༻ ݕࡧ͞·͟·ͳϙδγϣϯͰืूதͰ͢ʂ