Slide 1

Slide 1 text

'VMM4FSWFSMFTTͰ8Λ૊ΜͩΒ͜͏ͳͬͨ ໺ଜ૯߹ݚڀॴ ถᖒ୓໵ "84ྺ೥ͪΐͬͱͷ ݩΦϯϓϨΞϓϦ԰͕

Slide 2

Slide 2 text

ຊ೔͓఻͍͑ͨ͜͠ͱ ݩΞϓϦ԰ͷਓ͕ؒαʔόϨε։ൃΛշదʹ͢ΔͨΊʹͲΜͳࣄΛ͖ͯͨ͠ͷ͔ʁ ԁͰ΋ϥϯχϯάίετΛԼ͛ΔͨΊʹͲΜͳ޻෉Λͨ͠ͷ͔ʁ ຊ೔͓఻͑͠ͳ͍͜ͱ ΫϥΠΞϯτ΍όοΫΤϯυͷࡉ͔ͳ࣮૷ ͸͡Ίʹ

Slide 3

Slide 3 text

͜Εʂ ೥ʹ໺ଜ૯߹ݚڀॴʹ৽ଔೖࣾɻۚ༥ۀքͷ͓٬༷޲͚ʹ ϑϩϯτγεςϜͷߏஙΤϯϋϯεΛ୲౰ͨ͠ޙʹδϣϒνΣϯδɻ ݱࡏ͸࢈ۀۀքͷ͓٬༷޲͚ʹ"84؀ڥશൠͷઃܭߏஙΛ୲౰ɻFYಸྑݝ ޷͖ͳ"84αʔϏε͸4". 4UFQ'VODUJPOT $PEF#VJME ޷͖ͳٕज़͸/FYUKT 5BJMXJOE$44 %PDLFS LT 3BODIFS झຯ͸֨ಆٕʢ೔ຊݓ๏ͱ͍͏΋ͷΛ΍ͬͯ·ͨ͠ʣ ͻͱ͜ͱਓੜॳͷΦϑϥΠϯSF*OWFOUߦ͖·͢ʂ UBLVZBZPOF ถᖒ୓໵ 5BLVZB:POF[BXB

Slide 4

Slide 4 text

*γεςϜΦʔόʔϏϡʔ

Slide 5

Slide 5 text

ͱ͋ΔϚϧνΞΧ΢ϯτ؅ཧνʔϜͷ͓࿩

Slide 6

Slide 6 text

͋Δ͋Δʁͳ&YDFMӡ༻ ൿٕɿ&YDFMਃ੥ॻΛϝʔϧͰૹ৴ʂ γεςϜΦʔόʔϏϡʔ Excel v2 Excel Excel 4UFQ Ϣʔβͷखݩʹอ؅͞Ε͍ͯΔ &YDFMΛར༻ऀͰฤू 4UFQ ਃࠐॻ&YDFMWΛ 
 ΞΧ΢ϯτ؅ཧऀʹૹ෇ 4UFQ ؅ཧऀଆͰอ؅͍ͯ͠Δ 
 &YDFM୆ாʢ௨শਆ&YDFMʣʹసه

Slide 7

Slide 7 text

͋Δ͋Δʁͳ&YDFMӡ༻ γεςϜΦʔόʔϏϡʔ Excel v2 Excel Excel 4UFQ Ϣʔβͷखݩʹอ؅͞Ε͍ͯΔ &YDFMΛར༻ऀͰฤू 4UFQ ਃࠐॻ&YDFMWΛ 
 ΞΧ΢ϯτ؅ཧऀʹૹ෇ 4UFQ ؅ཧऀଆͰอ؅͍ͯ͠Δ 
 &YDFM୆ாʢ௨শਆ&YDFMʣʹసه సه๨ΕͳͲͷΦϖϛε͕ଟൃɺͭΒ͍😇

Slide 8

Slide 8 text

͜͏͍ͨ͠ʂͷਤ γεςϜΦʔόʔϏϡʔ WEB WEB DB 4UFQ ਃࠐॻ৘ใʹมߋ͕͋ͬͨ৔߹͸ 
 ར༻ऀηϧϑͰ8͔Βొ࿥৘ใΛฤू ʢར༻ऀೝূ΋ඞཁʣ 4UFQ ؅ཧऀαΠυͰ ར༻ऀͷొ࿥৘ใΛӾཡɾฤू ,FZQPJOU &YDFMΛ׬શఫഇͯ͠%#Խʂ

Slide 9

Slide 9 text

ϑϧαʔόϨεͰ࣮૷ γεςϜΦʔόʔϏϡʔ Private subnet VPC AWS Cloud Lambda DynamoDB Cognito API-GW API-GW WEB WEB VPC Endpoint (Gateway) WEB Client WEB Client SES URL Lambda Lambda DB Aurora Serverless V2 RDS Proxy

Slide 10

Slide 10 text

֤ίϯϙʔωϯτͷղઆ γεςϜΦʔόʔϏϡʔ Private subnet VPC AWS Cloud Lambda DynamoDB Cognito API-GW API-GW WEB WEB VPC Endpoint (Gateway) WEB Client WEB Client SES URL Lambda Lambda DB Aurora Serverless V2 RDS Proxy ʲҰ࣌ΞΫηετʔΫϯ؅ཧʳ %ZOBNP%#ͷ55-ػೳΛ༻͍ͯ 
 ར༻ऀͷҰ࣌ΞΫηετʔΫϯΛ؅ཧ 
 ʢ"VSPSBͰτʔΫϯ55-࣮૷͸ॲཧ͕໘౗ɻɻʣ ʲೝূ63-ૹ৴ʳ Ұ࣌ΞΫηετʔΫϯͷ࡞੒͕׬ྃͨ͠Β ར༻ऀʹ8ΞΫηε༻ͷೝূ63-Λϝʔϧૹ෇

Slide 11

Slide 11 text

֤ίϯϙʔωϯτͷղઆ γεςϜΦʔόʔϏϡʔ Private subnet VPC AWS Cloud Lambda DynamoDB Cognito API-GW API-GW WEB WEB VPC Endpoint (Gateway) WEB Client WEB Client SES URL Lambda Lambda DB Aurora Serverless V2 RDS Proxy ʲϨίʔυΞΫηε-BNCEBʳ ೝূ63-ܦ༝Ͱجװ%#ͷϨίʔυΛࢀর͢Δࡍʹ͸ ར༻ऀͷτʔΫϯνΣοΫΛ࣮ࢪͷ্ɺ 3%41SPYZܦ༝Ͱجװ%#΁ΞΫηε ʲ71$& (BUFXBZ ʳ τʔΫϯͷόϦσʔγϣϯΛ࣮ࢪ͢ΔͨΊʹ 71$಺͔Β%ZOBNP%#΁ͷΞΫηε͕ ඞཁͱͳΔͨΊɺ(BUFXBZܕ71$&Ͱܦ࿏֬อ

Slide 12

Slide 12 text

**։ൃεϐʔυ޲্ͷͨΊͷऔΓ૊Έ

Slide 13

Slide 13 text

"844". 4FSWFSMFTT"QQMJDBUJPO.PEFM **։ൃεϐʔυ޲্ͷͨΊͷऔΓ૊Έ

Slide 14

Slide 14 text

"84্ͰͷαʔόϨεΞϓϦߏஙʹಛԽͨ͠ϑϨʔϜϫʔΫ $MPVE'PSNBUJPOͷ֦ுతͳ΍ͭ $'Oޓ׵ͰϏϧυ࣌ʹ$'OςϯϓϨʔτʹม׵͞ΕΔ "1*(BUFXBZ΍-BNCEBΛ؆қͳจ๏ͰهࡌՄೳ ௨ৗͷ$'OϦιʔε΋4".্Ͱ؅ཧͰ͖ΔʢFY*".3PMF %ZOBNP%#౳ʣ ศརͳػೳ͕ͨ͘͞Μ TBNMPDBMɿ 
 "1*(BUFXBZͱ-BNCEBΛϩʔΧϧ؀ڥͰͷΤϛϡϨʔτ TBNTZODɿ 
 ϩʔΧϧ؀ڥͷมߋΛ"84؀ڥ΁஄ؙσϓϩΠ TBNMPHTɿ 
 "84؀ڥͰՔಇ͍ͯ͠Δ-BNCEB౳ͷϩάϑΣον "844". 4"."DDFMFSBUF ˞ ˞ IUUQTBXTBNB[PODPNKQCMPHTOFXTBXTTBNBDDFMFSBUF

Slide 15

Slide 15 text

੺࿮෦෼Λ4".ςϯϓϨʔτͰߏங 4".ͷΧόʔൣғ Private subnet VPC AWS Cloud Lambda DynamoDB Cognito API-GW API-GW WEB WEB VPC Endpoint (Gateway) WEB Client WEB Client SES URL Lambda Lambda DB Aurora Serverless V2 RDS Proxy

Slide 16

Slide 16 text

-BNCEB։ൃ͋Δ͋Δʁ

Slide 17

Slide 17 text

-BNCEBίʔυͷमਖ਼ -BNCEB։ൃ͋Δ͋Δʁ -BNCEBίϯιʔϧ্Ͱίʔυ ฤूͯ͠σϓϩΠ࣮ߦ΍ʂ

Slide 18

Slide 18 text

-BNCEBͷσόοά -BNCEB։ൃ͋Δ͋Δʁ -BNCEBʹQSJOUจΛ࢓ࠐΜͰ $MPVE8BUDIͰϞχλϦϯά΍ʂ શવϩάߋ৽͞Ε΁Μ΍Μ͚ ߋ৽Ϙλϯ࿈ଧ΍ʂ

Slide 19

Slide 19 text

ϩʔΧϧ؀ڥͷมߋΛ"84؀ڥ΁ಉظ ϩʔΧϧͷίʔυมߋΛݕ஌ͯ͠ϏϧυɺࣗಈσϓϩΠ -BNCEBϩδοΫͷมߋ౳Ͱ͋Ε͹ɺ$'OมߋηοτΛ࡞੒͠ͳ͍ͨΊߴ଎ͳσϓϩΠΛ࣮ݱՄೳʢମײඵ͘Β͍ʣ "1*(BUFXBZ -BNCEB 4UFQ'VODUJPOTҎ֎ͷϦιʔε$'OελοΫߋ৽͕૸Δ TBNTZOD

Slide 20

Slide 20 text

4".Ͱ࡞੒ͨ͠$'OϦιʔε͔ΒϩάετϦʔϜΛϑΣον 4".ελοΫ಺ͷ"1*(BUFXBZ 93BZ -BNCEB͔ΒϩάΛετϦʔϛϯά ΦϓγϣϯΛࢦఆ͢Δ͜ͱͰɺಛఆؔ਺͔ΒͷΈετϦʔϛϯά౳΋࣮ݱͰ͖Δ -BNCEBΛςετ࣮ߦͨ͠ޙʹ$8-PHTίϯιʔϧΛ։͍ͯ'࿈ଧ͠ͳͯ͘ྑ͘ͳΔʂ TBNMPHT

Slide 21

Slide 21 text

-BNCEB1PXFSUPPMTͷ׆༻ **։ൃεϐʔυ޲্ͷͨΊͷऔΓ૊Έ

Slide 22

Slide 22 text

-BNCEB1PXFSUPPMTʁ -BNCEBͷτϨʔγϯάɺϩΪϯάΛ؆୯ʹಋೖͰ͖ΔϢʔςΟϦςΟεΠʔτ 1VCMJDͳ-BNCEBϨΠϠʔɺ1Z1JͰಋೖ͢Δ͜ͱ͕Մೳ 1ZUIPOҎ֎ͩͱ/&5 +BWB 54Ͱ΋ఏڙ͞Ε͍ͯΔ ϝΠϯͰ࢖͍ͬͯͨϢʔςΟϦςΟ 5SBDFSɿ93BZͷܰྔϥούʔ -PHHFSɿϩάΛ+TPOͰߏ଄Խ͞Εͨจࣈྻͱͯ͠ग़ྗ .FUSJDTɿ$MPVE8BUDI.FUSJDTͰΧελϜϝτϦΫεΛ࡞੒Ͱ͖Δ ˞ IUUQTHJUIVCDPNBXTMBCTBXTMBNCEBQPXFSUPPMTQZUIPO

Slide 23

Slide 23 text

-BNCEB1PXFSUPPMTͷ͋Δੈք AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: sam-app-jawsdays Globals: Function: Timeout: 30 Tracing: Active Api: TracingEnabled: True OpenApiVersion: 3.0.2 Resources: HelloWorldFunction: Type: AWS::Serverless::Function Properties: CodeUri: hello_world/ Handler: app.lambda_handler Runtime: python3.9 Architectures: - x86_64 Layers: - !Sub arn:aws:lambda:${AWS::Region}:017000801446:layer:AWSLambdaPowertoolsPython:33 Events: HelloWorld: Type: Api Properties: Path: /hello Method: get -BNCEBఆٛͷ-BZFSͰ 1PXFSUPPMTͷ-BZFSΛࢦఆ͢Δ͚ͩʂ UFNQMBUFZBNM

Slide 24

Slide 24 text

-BNCEB1PXFSUPPMTͷ͋Δੈք import json import uuid from aws_lambda_powertools import Logger from aws_lambda_powertools import Tracer from aws_lambda_powertools import Metrics from aws_lambda_powertools.metrics import MetricUnit tracer = Tracer() logger = Logger() metrics = Metrics( namespace="sam-app-jawsdays", service="HelloWorldFunction") @metrics.log_metrics @tracer.capture_lambda_handler @logger.inject_lambda_context(log_event=False) def lambda_handler(event, context): # Powertools Logger logger.info(uuid.uuid4()) # Add Metic metrics.add_metric( name="CallCount", unit=MetricUnit.Count, value=1) # Return Response return None $MPVE8BUDI.FUSJDTΛఆٛ BQQQZ ϝτϦΫεΛ1VTI

Slide 25

Slide 25 text

-BNCEB1PXFSUPPMTͷ͋Δੈք import json import uuid from aws_lambda_powertools import Logger from aws_lambda_powertools import Tracer from aws_lambda_powertools import Metrics from aws_lambda_powertools.metrics import MetricUnit tracer = Tracer() logger = Logger() metrics = Metrics( namespace="sam-app-jawsdays", service="HelloWorldFunction") @metrics.log_metrics @tracer.capture_lambda_handler @logger.inject_lambda_context(log_event=False) def lambda_handler(event, context): # Powertools Logger logger.info(uuid.uuid4()) # Add Metic metrics.add_metric( name="CallCount", unit=MetricUnit.Count, value=1) # Return Response return None BQQQZ $MPVE8BUDI-PHTΛ +TPOͰߏ଄Խͨ͠ঢ়ଶͰग़ྗ

Slide 26

Slide 26 text

***ίετ࡟ݮͷͨΊͷऔΓ૊Έ

Slide 27

Slide 27 text

-BNCEBPO71$Ͱߟ͑Δ΂͖௨৴ܦ࿏ ***ίετ࡟ݮͷͨΊͷऔΓ૊Έ

Slide 28

Slide 28 text

։ൃ͕ऴ൫ʹֻ͔ࠩͬͨ͠ࠒɻɻ

Slide 29

Slide 29 text

!"#$%&%'#()*+,-./ (0121'#3%45 (61789#3%:;<=#8 (>$?@- ("AB,((CD((E((D(((F%3 GHI JK LM NM 4O#.P (($%Q#:; ((RSTI; ((3"#G=0UV ((WXYZ (([\]1W ((5^; "AB,

Slide 30

Slide 30 text

վमର৅ͱͳΔ෦෼ Private subnet VPC AWS Cloud Lambda DynamoDB Cognito API-GW API-GW WEB WEB VPC Endpoint (Gateway) WEB Client WEB Client SES URL Lambda Lambda DB Aurora Serverless V2 RDS Proxy 1SJWBUF4VCOFUʹ഑ஔ͍ͯ͠ΔͷͰɺ 4&4ͷΤϯυϙΠϯτͱ௨৴Ͱ͖ͳ͍🥲

Slide 31

Slide 31 text

ߏங࣌ʹߟ͍͑ͯͨͭͷ௨৴ܦ࿏ JJ1SJWBUF4VCOFUˠ/"5(8ˠ*(8 JJJ1SJWBUF4VCOFUˠ71$& J1VCMJD4VCOFUˠ*(8 -BNCEB͸1SJWBUF4VCOFU্Ͱ࣮ߦ 1VCMJD4VCOFUʹ഑ஔͨ͠/"5(BUFXBZˠ*(8ͷܦ࿏Ͱ "84αʔϏεͷΤϯυϙΠϯτͱ௨৴ -BNCEB͸1SJWBUF4VCOFU্Ͱ࣮ߦ 1SJWBUF4VCOFUʹ഑ஔͨ͠*OUFSGBDFܕ71$&ܦ࿏Ͱ "84αʔϏεͷΤϯυϙΠϯτͱ௨৴ -BNCEB͸1VCMJD4VCOFU্Ͱ࣮ߦ ύϒϦοΫ*1Λ࣋ͬͨ-BNCEBͷ&/*ܦ༝Ͱ "84αʔϏεͷΤϯυϙΠϯτͱ௨৴ VPC Public subnet Private subnet Aurora Lambda ENI Internet Gateway AWS Service Internet VPC Public subnet Private subnet Lambda ENI Aurora Internet Gateway NAT Gateway AWS Service Internet VPC Private subnet AWS Service Lambda ENI Aurora VPC Endpoint (Interface)

Slide 32

Slide 32 text

ߏங࣌ʹߟ͍͑ͯͨͭͷ௨৴ܦ࿏ JJ1SJWBUF4VCOFUˠ/"5(8ˠ*(8 JJJ1SJWBUF4VCOFUˠ71$& J1VCMJD4VCOFUˠ*(8 -BNCEB͸1SJWBUF4VCOFU্Ͱ࣮ߦ 1VCMJD4VCOFUʹ഑ஔͨ͠/"5(BUFXBZˠ*(8ͷܦ࿏Ͱ "84αʔϏεͷΤϯυϙΠϯτͱ௨৴ -BNCEB͸1SJWBUF4VCOFU্Ͱ࣮ߦ 1SJWBUF4VCOFUʹ഑ஔͨ͠*OUFSGBDFܕ71$&ܦ࿏Ͱ "84αʔϏεͷΤϯυϙΠϯτͱ௨৴ -BNCEB͸1VCMJD4VCOFU্Ͱ࣮ߦ ύϒϦοΫ*1Λ࣋ͬͨ-BNCEBͷ&/*ܦ༝Ͱ "84αʔϏεͷΤϯυϙΠϯτͱ௨৴ VPC Public subnet Private subnet Aurora Lambda ENI Internet Gateway AWS Service Internet VPC Public subnet Private subnet Lambda ENI Aurora Internet Gateway NAT Gateway AWS Service Internet VPC Private subnet AWS Service Lambda ENI Aurora VPC Endpoint (Interface) IUUQTEPDTBXTBNB[PODPNKB@KQMBNCEBMBUFTUEHDPO fi HVSBUJPOWQDIUNMWQDDPO fi HVSJOH 1VCMJD4VCOFUͰ-BNCEBΛىಈͯ͠΋ ΠϯλʔωοτΞΫηεͰ͖ͳ͍ʂ

Slide 33

Slide 33 text

ߏங࣌ʹߟ͍͑ͯͨͭͷ௨৴ܦ࿏ JJ1SJWBUF4VCOFUˠ/"5(8ˠ*(8 JJJ1SJWBUF4VCOFUˠ71$& J1VCMJD4VCOFUˠ*(8 -BNCEB͸1SJWBUF4VCOFU্Ͱ࣮ߦ 1VCMJD4VCOFUʹ഑ஔͨ͠/"5(BUFXBZˠ*(8ͷܦ࿏Ͱ "84αʔϏεͷΤϯυϙΠϯτͱ௨৴ -BNCEB͸1SJWBUF4VCOFU্Ͱ࣮ߦ 1SJWBUF4VCOFUʹ഑ஔͨ͠*OUFSGBDFܕ71$&ܦ࿏Ͱ "84αʔϏεͷΤϯυϙΠϯτͱ௨৴ -BNCEB͸1VCMJD4VCOFU্Ͱ࣮ߦ ύϒϦοΫ*1Λ࣋ͬͨ-BNCEBͷ&/*ܦ༝Ͱ "84αʔϏεͷΤϯυϙΠϯτͱ௨৴ VPC Public subnet Private subnet Aurora Lambda ENI Internet Gateway AWS Service Internet VPC Public subnet Private subnet Lambda ENI Aurora Internet Gateway NAT Gateway AWS Service Internet VPC Private subnet AWS Service Lambda ENI Aurora VPC Endpoint (Interface) ͦ΋ͦ΋࣮ݱෆՄ ʢυΩϡϝϯτͪΌΜͱಡ΋͏😇ʣ

Slide 34

Slide 34 text

ֹ݄ྉۚͷࢼࢉΛͯ͠ΈΔ ࣌఺ JJ1SJWBUF4VCOFUˠ/"5(8ˠ*(8 JJJ1SJWBUF4VCOFUˠ71$& /"5(BUFXBZ࣌ؒ୯Ґྉۚɿ64%IPVS /"5(BUFXBZσʔλॲཧྉɿ64%(# ΠϯλϑΣʔεܕ71$&࣌ؒ୯Ґྉۚɿ64%IPVS ΠϯλϑΣʔεܕ71$&σʔλॲཧྉɿ64%(# ࣌ؒ୯Ґྉۚ 64%º IPVS º EBZ º "; 64% σʔλॲཧྉ 64%º(#64% ࣌ؒ୯Ґྉۚ 64%º IPVS º EBZ º "; 64% σʔλॲཧྉ 64%º(#64% ໿64% ໿64% VPC Public subnet Private subnet Lambda ENI Aurora Internet Gateway NAT Gateway AWS Service Internet VPC Private subnet AWS Service Lambda ENI Aurora VPC Endpoint (Interface)

Slide 35

Slide 35 text

ֹ݄ྉۚͷࢼࢉΛͯ͠ΈΔ ࣌఺ JJ1SJWBUF4VCOFUˠ/"5(8ˠ*(8 JJJ1SJWBUF4VCOFUˠ71$& /"5(BUFXBZ࣌ؒ୯Ґྉۚɿ64%IPVS /"5(BUFXBZσʔλॲཧྉɿ64%(# ΠϯλϑΣʔεܕ71$&࣌ؒ୯Ґྉۚɿ64%IPVS ΠϯλϑΣʔεܕ71$&σʔλॲཧྉɿ64%(# ࣌ؒ୯Ґྉۚ 64%º IPVS º EBZ º "; 64% σʔλॲཧྉ 64%º(#64% ࣌ؒ୯Ґྉۚ 64%º IPVS º EBZ º "; 64% σʔλॲཧྉ 64%º(#64% ໿64% ໿64% VPC Public subnet Private subnet Lambda ENI Aurora Internet Gateway NAT Gateway AWS Service Internet VPC Private subnet AWS Service Lambda ENI Aurora VPC Endpoint (Interface) ͏ʔΜɺɺ 71$ͷத͔Β4&4ݺͼग़͢ ܦ࿏֬อͷͨΊ͚ͩʹ͔͋ Πϯϑϥ؅ཧͯ͠Δ$MPVE'PSNBUJPO 
 ςϯϓϨʔτͷमਖ਼΋ඞཁͩΑͳ͋ɻɻ

Slide 36

Slide 36 text

ߏங࣌ʹߟ͍͑ͯͨͭͷ௨৴ܦ࿏ JJ1SJWBUF4VCOFUˠ/"5(8ˠ*(8 JJJ1SJWBUF4VCOFUˠ71$& J1VCMJD4VCOFUˠ*(8 -BNCEB͸1SJWBUF4VCOFU্Ͱ࣮ߦ 1VCMJD4VCOFUʹ഑ஔͨ͠/"5(BUFXBZˠ*(8ͷܦ࿏Ͱ "84αʔϏεͷΤϯυϙΠϯτͱ௨৴ -BNCEB͸1SJWBUF4VCOFU্Ͱ࣮ߦ 1SJWBUF4VCOFUʹ഑ஔͨ͠*OUFSGBDFܕ71$&ܦ࿏Ͱ "84αʔϏεͷΤϯυϙΠϯτͱ௨৴ -BNCEB͸1VCMJD4VCOFU্Ͱ࣮ߦ ύϒϦοΫ*1Λ࣋ͬͨ-BNCEBͷ&/*ܦ༝Ͱ "84αʔϏεͷΤϯυϙΠϯτͱ௨৴ VPC Public subnet Private subnet Aurora Lambda ENI Internet Gateway AWS Service Internet VPC Public subnet Private subnet Lambda ENI Aurora Internet Gateway NAT Gateway AWS Service Internet VPC Private subnet AWS Service Lambda ENI Aurora VPC Endpoint (Interface) ͦ΋ͦ΋࣮ݱෆՄ ʢυΩϡϝϯτͪΌΜͱಡ΋͏😇ʣ ߴ͍*OUFSOFU௨৴͕ 
 ൃੜ͢ΔͷͰෆ࠾༻ ͪΐͬ͜ͱߴ͍ͷͰෆ࠾༻

Slide 37

Slide 37 text

VPC Private subnet AWS Service VPC Endpoint (Interface) Lambda ENI Route53 Provided DNS VPC Private subnet AWS Service VPC Endpoint (Gateway) Route Table Lambda ENI 71$ΤϯυϙΠϯτ͸छྨ͋Δ ήʔτ΢ΣΠܕ ΠϯλϑΣʔεܕ ૹ৴ઌ λʔήοτ MPDBM QMBCD WQDFBCDBCD Ξλονର৅ ར༻ྉۚ ϧʔςΟϯάͷ੍ޚ 
 ର৅αʔϏε αϒωοτຖ ࣌ؒྉۚʴ௨৴ྔ 71$ͷ಺෦%/4 
 ʢ3PVUF1SJWJEFE%/4ʣ ͨ͘͞Μ 71$ ௨৴ྔ͚ͩ 71$ͷϧʔτςʔϒϧ 
 4ͱ%ZOBNP%#͚ͩ

Slide 38

Slide 38 text

VPC Private subnet AWS Service VPC Endpoint (Interface) Lambda ENI Route53 Provided DNS VPC Private subnet AWS Service VPC Endpoint (Gateway) Route Table Lambda ENI 71$ΤϯυϙΠϯτ͸छྨ͋Δ ήʔτ΢ΣΠܕ ΠϯλϑΣʔεܕ ૹ৴ઌ λʔήοτ MPDBM QMBCD WQDFBCDBCD Ξλονର৅ ར༻ྉۚ ϧʔςΟϯάͷ੍ޚ 
 ର৅αʔϏε 71$ ௨৴ྔ͚ͩ 71$ͷϧʔτςʔϒϧ 
 4ͱ%ZOBNP%#͚ͩ (BUFXBZܕ 
 ࣌ؒྉۚෆཁͳͷ͑͑ͳ͋ %ZOBNP%#Ͱ ্ख͍͜ͱͰ͚΁Μ͔ͳʁ αϒωοτຖ ࣌ؒྉۚʴ௨৴ྔ 71$ͷ಺෦%/4 
 ʢ3PVUF1SJWJEFE%/4ʣ ͨ͘͞Μ

Slide 39

Slide 39 text

%ZOBNP%#4USFBNTͰ΍Δ͜ͱʹͨ͠ %ZOBNP%#4USFBNT %ZOBNP%#ςʔϒϧͷϨίʔυΠϕϯτʢ*OTFSU .PEJGZ 3FNPWFʣΛΩϟϓνϟͰ͖Δػೳ 4USFBNTͱ-BNCEBؔ਺͸ωΠςΟϒʹ౷߹͞Ε͓ͯΓɺ 
 ϨίʔυΠϕϯτΛτϦΨʹ-BNCEBΛൃՐͰ͖Δ %ZOBNP%#Λ#SPLFSͱͯ͠࢖͏͜ͱͰ 
 ΠϕϯτυϦϒϯͳ-BNCEBॲཧΛ࣮ߦͰ͖Δʂ DynamoDB Lambda DynamoDB Streams { "eventName":"INSERT", "dynamodb": { "NewImage" : {...}, "OldImage" : {...} } }

Slide 40

Slide 40 text

%ZOBNP%#4USFBNTͰ΍Δ͜ͱʹͨ͠ Private subnet VPC AWS Cloud Lambda DynamoDB API-GW VPC Endpoint (Gateway) WEB Client WEB Client SES URL Lambda DB Aurora Serverless V2 RDS Proxy #FGPSF

Slide 41

Slide 41 text

%ZOBNP%#4USFBNTͰ΍Δ͜ͱʹͨ͠ Private subnet VPC AWS Cloud Lambda DynamoDB API-GW VPC Endpoint (Gateway) WEB Client WEB Client Lambda SES DynamoDB Streams URL DB Lambda DB Aurora Serverless V2 RDS Proxy DynamoDB ɾϝʔϧ഑৴༻%ZOBNP%#ςʔϒϧ ɾϝʔϧૹ৴ઐ༻-BNCEBΛ৽ઃ { "Mail_Subject":"Mail Subject", "Mail_Body":"Mail Body", "From_Address":"[email protected]", "To_Address":"[email protected]", .... } "GUFS

Slide 42

Slide 42 text

%ZOBNP%#4USFBNTͰ΍Δ͜ͱʹͨ͠ Private subnet VPC AWS Cloud Lambda DynamoDB API-GW VPC Endpoint (Gateway) WEB Client WEB Client Lambda SES DynamoDB Streams URL DB Lambda DB Aurora Serverless V2 RDS Proxy DynamoDB ɾϝʔϧ഑৴༻%ZOBNP%#ςʔϒϧ ɾϝʔϧૹ৴ઐ༻-BNCEBΛ৽ઃ { "Mail_Subject":"Mail Subject", "Mail_Body":"Mail Body", "From_Address":"[email protected]", "To_Address":"[email protected]", .... } "GUFS طଘͷ%ZOBNP%#༻(BUFXBZܕ71$&Λ࠶ར༻͢Δ͜ͱͰɺ ௥ՃͰ/"5΍*OUFSGBDFܕ71$&Λ࡞੒͢Δ͜ͱͳ͘ ϝʔϧૹ৴ػೳ͕࣮ݱͰ͖ͨʂ΍ͬͨͶ😀

Slide 43

Slide 43 text

·ͱΊ ੈ͸ະિ༗ͷԁ҆τϨϯυ ΞϓϦͷ࡞Γ΍ΞʔΩςΫνϟΛ޻෉͢Δ͜ͱͰίετ͸࡟ݮͰ͖Δʂ Πϯϑϥ؅ཧίετֻ͕͔Βͳ͍4FSWFSMFTT͸༷ʑͳෛՙ͔Β։์ͯ͘͠ΕΔ -BNCEB։ൃͰ࢖͑Δपลπʔϧ 4"."DDFMFSBUF౳ɺ4".͸ͲΜͲΜػೳ֦ு͞Ε͍ͯΔ -BNCEB1PXFUPPMTɺಋೖ͕؆୯ଟछͷϥΠϒϥϦΛۦ࢖ͯ͠։ൃ଎౓6Q αʔόϨε͸͍͍ͧ (P4FSWFSMFTT ˞ εϥΠυ಺Ͱར༻͍ͯͨ͠αϯϓϧίʔυ IUUQTHJUIVCDPNUBLVZBZPOFTBNBQQKBXTEBZT

Slide 44

Slide 44 text

5IBOL:PV