Slide 1

Slide 1 text

ϚΠΫϩαʔϏεͷϦϦʔεʹ ·ͭΘΔUPJMΛղফͨ͠࿩ Ճ౻ ༡അ גࣜձࣾ໺ଜ૯߹ݚڀॴ JAWS-UG SREࢧ෦ #3

Slide 2

Slide 2 text

ࣗݾ঺հ • 2020೥ ໺ଜ૯߹ݚڀॴೖࣾ • AWSͳͲͷΫϥ΢υΛ༻͍ͨΠϯϑ ϥ։ൃ΍ӡ༻ɾอक • SRE׆ಈɿ൒೥ʙ1೥ 1 Ճ౻ ༡അ Kato Asuma ϨϏϡΞʔͱͯ͠ڠྗ @AsumaYwY

Slide 3

Slide 3 text

എܠ ൃੜͨ͠UPJM UPJMͷղফʹ޲͚ͯ ·ͱΊ 2

Slide 4

Slide 4 text

എܠᶃίϯϓϥΠΞϯεʹؔ͢Δ४ڌ • ελʔτΞοϓͷ͓٬༷޲͚ʹΫϨδοτΧʔυαʔϏεΛఏڙ • PCIDSS(※)ͱݺ͹ΕΔΧʔυ৘ใηΩϡϦςΟͷࠃࡍ౷Ұج४ʹ४ڌ͢Δඞཁ͕͋Δ 3 ʲ1$*%44ཁ݅ʳ ͢΂ͯͷγεςϜίϯϙʔωϯτͱιϑτ΢ΣΞʹɺ ϕϯμఏڙͷηΩϡϦςΟύον͕Πϯετʔϧ͞Εɺط஌ͷ੬ऑੑ͔Βอޢ͞Ε͍ͯΔɻ ॏཁͳηΩϡϦςΟύον͸ɺϦϦʔεޙ Χ݄Ҏ಺ʹΠϯετʔϧ͢Δɻ ※Payment Card Industry Data Security Standard

Slide 5

Slide 5 text

എܠᶄҰ෦ͷίϯϙʔωϯτͰ੬ऑੑͷରԠ͕සൟʹൃੜ • ECS / FargateΛओ࣠ʹͨ͠ϓϥοτϑΥʔϜ • ϩάϧʔλͱͯ͠fluent-bitΛར༻ 4 サービスプラットフォーム マイクロサービス別 各API API Gateway NLB API NLB API API ALB 決済系API 返済系API 申込系API 通知系API Aurora ECS ⾮同期処理 API Gateway スマホアプリ 外部接続システム (返済機能) 管理者Web アプリ コンテナ fluent-bit コンテナ 約1ヶ⽉に1度 脆弱性が発⾒ 12個のマイクロサービス群 各ECS/Fargateタスクの中⾝

Slide 6

Slide 6 text

എܠᶅ؀ڥߏ੒ʹΑΔ$*$%ϑϩʔ 5 • ֤ϚΠΫϩαʔϏεຖʹCI/CDΛܦͯɺproduction؀ڥʹϦϦʔε͞ΕΔ Pull Requestに対する レビュー実施

Slide 7

Slide 7 text

'MVFOUCJUͷ੬ऑੑରԠ͕5PJMʹͳ͍ͬͯΔ 6 ϲ݄ʹ̍ճҎ্ ൃݟ͞ΕΔ੬ऑੑ ΞϓϦʹ௚઀ ؔ࿈͕ͳ͍ 13ϨϏϡʔෛՙ αʔϏε਺ʹ ൺྫͨ͠ෛՙ૿େ Toil

Slide 8

Slide 8 text

UPJMͷղফʹ޲͚ͯطଘͷ੬ऑੑରԠϑϩʔ 7 Fluent-bitίϯςφ੬ऑੑमਖ਼ ECR΁pushͱࣄલͷಈ࡞֬ೝ (commit IDΛؚΜͩλά໊) 12ϦϙδτϦ º 3ϒϥϯνͰ ECSఆٛͷมߋ (fluent-bitλάमਖ਼) PRͱϨϏϡʔ º αʔϏε਺ ECSαʔϏεͷσϓϩΠ タグ指定を変更することで、 レビュー負荷を軽減

Slide 9

Slide 9 text

UPJMͷղফʹ޲͚࣮ͯࢪͨ͠ࢪࡦ 1. Fluent-bitίϯςφͷlatestλάӡ༻ 2. Slack + AWS Chatbot + LambdaʹΑΔ ECSαʔϏεҰׅϦσϓϩΠ 8

Slide 10

Slide 10 text

UPJMͷղফᶃ 'MVFOUCJUίϯςφͷMBUFTUλάӡ༻Λ࠾༻ ͨͩ͠ɺMBUFTUλάͷӡ༻͸ҎԼͷཧ༝͔ΒΞϯνύλʔϯͱ͞Ε͍ͯΔ • ιʔείʔυͱͷτϨʔαϏϦςΟ • ՔಇதͷΠϝʔδͷόʔδϣϯ͕Θ͔Βͳ͍ • ϩʔϧόοΫ͕Ͱ͖ͳ͍ 9

Slide 11

Slide 11 text

UPJMͷղফᶃ 'MVFOUCJUίϯςφͷMBUFTUλάӡ༻Λ࠾༻ 10 • ιʔείʔυͱͷτϨʔαϏϦςΟ ⇨ࣗ෼ͨͪͷ؅ཧ͢ΔFluent-bitͷιʔείʔυͳͲ͔Β֬ೝՄೳ • ՔಇதͷΠϝʔδͷόʔδϣϯ͕Θ͔Βͳ͍ ⇨ECSͰՔಇதͷλεΫͷϋογϡΛ֬ೝͯ͠ECRͰಥ߹Մೳ • ϩʔϧόοΫ͕Ͱ͖ͳ͍ ⇨λάͷ෇͚ସ͑ͰରԠՄೳ Fluent-bitコンテナイメージは設定をカスタマイズしたものを ⾃分たちのイメージとして管理・利⽤している

Slide 12

Slide 12 text

UPJMͷղফᶄ&$4αʔϏεҰׅϦσϓϩΠ 11 ① ② ③ ɾChatOpsΛϕʔεʹSlack͔Β3؀ڥͷLambdaΛىಈ ɾ12αʔϏεΛҰׅͰϦσϓϩΠ͢Δ͜ͱͰɺ੬ऑੑ͕ରॲ͞Εͨfluent-bitΛ൓ө

Slide 13

Slide 13 text

·ͱΊ 12 ɾUPJMΛೝࣝ͠ɺࣗಈԽ͕ՄೳͳΑ͏ʹ γεςϜ΍ϓϩηεΛվળ͢ΔͨΊͷΧϧνϟʔ͸େ੾ ɾ๬·͍͠ઃܭͱӡ༻ෛՙͷόϥϯεΛऔΔ