Slide 1

Slide 1 text

AWS ӝ߈ ࢲߡܻझ ইఃఫ୛ ిইࠁӝ #AWSKRUGҳ٣ݽ੐ ߊ಴੗ : ӣక਋

Slide 2

Slide 2 text

ߊ಴੗ ࣗѐ • AWS Solutions Architect, Classmethod Inc.ʢ௿ېझݫࣗ٘ ઱धഥࢎĐ • 2020 APN AWS Top Engineers • AWS x9 Certified Engineer • Front-end, Back-end, Android, iOS, Machine Learning, Computer Vision, etc • Full Stack Serverless on AWS ߂ AWS ࢚ীࢲ੄ ׮নೠ ইఃఫ୛ ಁఢਸ োҳೞݴ ழܻযܳ ऺח ઺ https://dev.classmethod.jp/author/kim-taewoo/ ೠҴয & ੌࠄয ӝࣿ࠶۽Ӓ

Slide 3

Slide 3 text

ߊ಴ղਊী ؀ೞৈ • “ࢲߡܻझо ޖ঺ੋ૑ח ؀ۚ উ׮”, “AWS Lambda о ޥ૑ח উ׮” ੿ب੄ ੹ઁ۽ ߊ಴ ղਊਸ ળ࠺೮णפ׮. • ੑޙ੗ࠁ׮ח ઱۽ ࢲߡܻझ ୡә ߂ ઺әࢎਊ੗ ੉࢚੄ ٜ࠙ਸ ਤೠ ղਊੑפ׮. • ҳ୓੸ੋ ௏٘ ۨ߰ীࢲ੄ ࢸݺࠁ׮ח ࢲߡܻझ ੹ۚ ߂ ࢎҊߑध ١ী ୡ੼ਸ ݏ୸ ղਊੑפ ׮. • API Gateway + Lambda + DynamoDB э੉, ੉ઁח ൔ൤ ঌ۰૓ ಁఢ੉ ইצ ୭न ࢲߡ ܻझ زೱী ؀೧ࢲب ੉ঠӝ೤פ׮. • ߊ಴઱ઁ੄ ߧਤо ࢚׼൤ ևणפ׮.
 ߊ಴੗ܐח ૊द ҕѐغ޲۽ ݽٚ ղਊਸ ૑Ә ׼੢ ೠߣী ੉೧ೞप ೙ਃח হणפ׮ :)

Slide 4

Slide 4 text

द੘ೞӝ ੹ী

Slide 5

Slide 5 text

ࢲߡܻझ ੑޙ ੗ܐח ݆਷ؘ… • AWS ӝ߈ ࢲߡܻझ ਕ௼ࢪ ੗ܐա ೩ૉৡ ١਷ ݆਷ؘ Ѣ੄ ׮ ੑޙ ࣻળ… ׮਺ ױ҅۽ աইоӝ ਤೠ ੗ܐח হਸө? • AWS re:Invent / AWS Summit ١੄ ࣁ࣌ ҕѐ ৔࢚ਸ ࠁݶࢲ ҕࠗೞݶ غӟ ೞѷ૑݅, ޥо ੿ܻػ ੗ܐо ੓ਵݶ જѷחؘ… • ࢲߡܻझܳ ࠄѺ੸ਵ۽ সޖী ഝਊೞӝ ਤ೧ ੿ܻػ ੗ܐо ࠗ઒೧.. ౠ൤ ೠӖ ੗ܐח ଺ ਸࣻо হ֎.. • AWS ੄ ӝמ੉ ݆Ҋ જ਷Ѥ ঌѷחؘ যڌѱ ഝਊ೧ঠೡ૑ ݄݄ೞ֎.. ౠ൤ ࢲߡܻझח ب؀୓ ޤо ׮ܲѢ૑?

Slide 6

Slide 6 text

AWS ੄ ੗ܐח ഴܯ೤פ׮!! • BUT!!! ࢲߡܻझ ੑޙ੗ٜ੉ ઺әױ҅ ੉࢚ਵ۽ ֈযоӝ ਤೠ ੗ܐח ѐੋ੸ਵ۽ డহ੉ ࠗ઒ೞ ׮Ҋ וՙҊ ੓णפ׮ • ݆ࣻ਷ ࢗ૕ਸ ా೧ ঳যմ Үളਸ ҕਬೞ૑ ঋਵݶ ׮ܲ ࢎۈٜب ޖೠ൤ ࢗ૕ਸ ߈ࠂೡ ࡺ੉ભ • Ӓېࢲ ੉ ߊ಴੗ܐо ࢲߡܻझী ੑޙ೧ࢲ ׮਺ ױ҅۽ աইоҊ੗ೞח ৈ۞ٜ࠙ਸ ਤೠ ӡۄ੟ ੉о غݶ જѷ׮ח ݃਺ਵ۽ ߊ಴ܳ ળ࠺೮णפ׮ :)

Slide 7

Slide 7 text

SERVERLESS IS NOT JUST A TREND

Slide 8

Slide 8 text

ࢲߡܻझ ѐਃ

Slide 9

Slide 9 text

ࢲߡܻझ੄ ౠ૚ • AWS Lambda != Serverless • NoOps - ҙܻೡ ࢲߡо হ਺ • Built-in Fault Tolerance (HA), Automatic Scaling, … • Cost Effective - पઁ۽ ࢎਊೠ ݅ఀী ؀೧ࢲ݅ ࠺ਊ ૑ࠛ • AWS ࢲߡܻझ ஹೊ౴ ࢲ࠺झח Lambda / Fargate ١ • ࣛ૒൤, ݒפ૑٘ ࢲ࠺झ৬੄ ҃҅о ডр ݽഐೠ ݶ੉ ੓णפ׮

Slide 10

Slide 10 text

AWS Lambda ੄ ౠ૚ • ੉੹ ಕ੉૑੄ ࢲߡܻझ੄ ౠ૚ ੹ࠗܳ ನೣ • Stateless о ӝࠄ੸ੋ ੹ઁ (Global scope ߸ࣻ ੤ࢎਊ ١੄ Hacky ೠ ղਊ ઁ৻) • Cold Start ۄח ѐ֛੉ ઓ੤ (૑Ә਷ Provisioned Concurrency ۽ ೧Ѿоמ) • Custom Runtime ૑ਗ - ਗೞח ജ҃ ߂ ঱য۽ ѐߊ оמ • पઁ ഝਊࢎ۹о ਕբ ׮ন೧ࢲ, AWS ੄ ׮নೠ ࢲ࠺झ р੄ “੽଱ઁ” э਷ ו՝

Slide 11

Slide 11 text

৵ ࢲߡܻझܳ ߓਕঠೡөਃ? • ѾҴ਷ ࠺ૉפझ - ࠺ૉפझী যڃ о஖ܳ ઁҕೡ ࣻ ੓ਸөо ೨ब! • ࢤ࢑ࢿ/উ੿ࢿ/न܉ࢿ/ഛ੢ࢿ/ਬোࢿ/҃ઁࢿ ١ਸ ࣚऔѱ ഛࠁೡ ࣻ ੓਺ • ؀ӏݽ ౟ې೗, ؀ӏݽ ੉߮౟୊ܻ ١੄ ؀ӏݽ ࢲ࠺झী ݒ਋ ബҗ੸ • झఋ౟স ~ ؀ӝস ӏݽө૑ ׮নೠ ҳ୷ࢎ۹о ੉޷ ֈ୛թ • ӒܻҊ….. ੉޷ ঌѱݽܰѱ ׮ٜ ࢲߡܻझ ࢲ࠺झܳ ࢎਊೞҊ ҅भפ׮

Slide 12

Slide 12 text

৵ ࢲߡܻझܳ ߓਕঠೡөਃ? • ѾҴ਷ ࠺ૉפझ - ࠺ૉפझী যڃ о஖ܳ ઁҕೡ ࣻ ੓ਸөо ೨ब! • ࢤ࢑ࢿ/উ੿ࢿ/न܉ࢿ/ഛ੢ࢿ/ਬোࢿ/҃ઁࢿ ١ਸ ࣚऔѱ ഛࠁೡ ࣻ ੓਺ • ؀ӏݽ ౟ې೗, ؀ӏݽ ੉߮౟୊ܻ ١੄ ؀ӏݽ ࢲ࠺झী ݒ਋ ബҗ੸ • झఋ౟স ~ ؀ӝস ӏݽө૑ ׮নೠ ҳ୷ࢎ۹о ੉޷ ֈ୛թ • ӒܻҊ….. ੉޷ ঌѱݽܰѱ ׮ٜ ࢲߡܻझ ࢲ࠺झܳ ࢎਊೞҊ ҅भפ׮ CloudWatch AppSync IAM DynamoDB API Gateway Glue Cognito Fargate Batch S3 CloudSearch EventBridge IoT CodeBuild Polly Comprehend Step Functions WAF GuardDuty Shield

Slide 13

Slide 13 text

৵ ࢲߡܻझܳ ߓਕঠೡөਃ? • ѾҴ਷ ࠺ૉפझ - ࠺ૉפझী যڃ о஖ܳ ઁҕೡ ࣻ ੓ਸөо ೨ब! • ࢤ࢑ࢿ/উ੿ࢿ/न܉ࢿ/ഛ੢ࢿ/ਬোࢿ/҃ઁࢿ ١ਸ ࣚऔѱ ഛࠁೡ ࣻ ੓਺ • ؀ӏݽ ౟ې೗, ؀ӏݽ ੉߮౟୊ܻ ١੄ ؀ӏݽ ࢲ࠺झী ݒ਋ ബҗ੸ • झఋ౟স ~ ؀ӝস ӏݽө૑ ׮নೠ ҳ୷ࢎ۹о ੉޷ ֈ୛թ • ӒܻҊ….. ੉޷ ঌѱݽܰѱ ׮ٜ ࢲߡܻझ ࢲ࠺झܳ ࢎਊೞҊ ҅भפ׮ CloudWatch AppSync IAM DynamoDB API Gateway Glue Cognito Fargate Batch S3 CloudSearch EventBridge IoT CodeBuild Polly Comprehend Step Functions WAF GuardDuty Shield ࢎप Ѣ੄ ׮ ࢲߡܻझભ…!!

Slide 14

Slide 14 text

ࢲߡܻझח ౟۪٘о ইצ ޷ې • Full Stack Serverless by Nader Dabit (@dabit3)
 https://www.oreilly.com/library/view/full-stack-serverless/ 9781492059882/ • Full Stack Development in the Era of Serverless Computing
 https://egghead.io/lessons/egghead-egghead-talks-full- stack-development-in-the-era-of-serverless-computing • Serverless - the future of software architecture?
 https://read.acloud.guru/serverless-the-future-of-software- architecture-d4473ffed864

Slide 15

Slide 15 text

Ӓ۞ա!! ࢤп݅ఀ औ૑ח ঋભ • ࢲߡܻझ ইఃఫ୛ח default о MSA —> MSA ী ؀ೠ Ө੉੓ח ੉೧о ೙ࣻ • ؀ࠗ࠙੄ ѐߊ੗ٜ੉ Server-based ੄ ࢎҊߑधীࢲ ߩযա૑ ޅೞҊ ੓׮ • Ҷ੉ উॄب غח ௏٘ܳ ੗Բ ॳ۰Ҋ ೠ׮ (Less is better) • ೐ۿ౟ূ٘ীࢲ ೞݶ ؼ Ѧ ੗Բ ߔূ٘ীࢲ ୊ܻೞ۰Ҋ ೠ׮ (Rich Client) • SaaS بੑਸ ԁ۰ೠ׮

Slide 16

Slide 16 text

ࢲߡܻझ ੹ജਸ ਤೠ ੹ۚ ߂ ࢎҊߑध

Slide 17

Slide 17 text

ࢲߡܻझ ੹ۚ ߂ ࢎҊߑध • MSA (Microservices Architecture) ܳ Ө੉੓ѱ ੉೧ೞ੗ • Event-driven ߑधী ੊ࣼ೧૑੗ • ࢲߡܻझ ਕ௼೒۽਋ ܳ ٣੗ੋೞ੗ • Rich Client ח աࢂ Ѫ੉ ইפ׮ • SaaS بੑ਷ ݃ҳ݃ҳ • No code is the best code

Slide 18

Slide 18 text

੗! ೞաঀ оࠁѷणפ׮ :)

Slide 19

Slide 19 text

MSA ܳ Ө੉੓ѱ ੉೧ೞ੗

Slide 20

Slide 20 text

Microservices Architecture • Ӓր ࢲ࠺झ߹۽ ଂѐ֬ӝ݅ ೞݶ MSA ܳ ੜ ೞח Ѧөਃ..? • MSA ח ੿݈ য۵णפ׮… • ੢դইפҊ ૓૞۽ য۵׮ҳਃ!!! (Ӕষ૓૑)

Slide 21

Slide 21 text

MSA ח ৵ য۰਎өਃ? • ݽפఠ݂਷? 
 ࢲ࠺झ ࠂ੟ب ҙܻח?
 ࢲ࠺झ߹ द௸ܻ౭ח?
 ࢲ࠺झ߹ ߡ੹ҙܻח? 
 ࢲ࠺झ ѐߊद ٣ߡӦ਷?
 ࢲ࠺झр੄ ౟ے੥࣌ ୊ܻח? 
 ా೤ ۽Ӧ୊ܻח? 
 ੢গ ࢚ടद ੘਷ ࢲ࠺झ ೞա۽ ੋ೧ ੹୓ ࢲ࠺झо લ૑ ঋਵ۰ݶ?
 ੢গ ࢚ടद ౟۞࠶ ग౴਷?
 ࢲ࠺झ߹ ߓನ੹ۚ਷?
 పझ౴਷?
 ࢲ۽ ׮ܲ ࢲ࠺झܳ ׸׼ೞח ౱ р੄ ࣗా ߂ ઑਯ਷?
 ࢲ࠺झܳ ଂєਵ۽ ੋ೧ ߊࢤೞח ಌನݢझ য়ߡ೻٘ ҙܻח? ?????? ݆ࣻ਷ ࢲ࠺झ ূ٘ನੋ౟ ҙܻח?

Slide 22

Slide 22 text

݆ࣻ਷ ࢲ࠺झ ূ٘ನੋ౟ ҙܻח? MSA ח ৵ য۰਎өਃ? • ݽפఠ݂਷? 
 ࢲ࠺झ ࠂ੟ب ҙܻח?
 ࢲ࠺झ߹ द௸ܻ౭ח?
 ࢲ࠺झ߹ ߡ੹ҙܻח? 
 ࢲ࠺झ ѐߊद ٣ߡӦ਷?
 ࢲ࠺झр੄ ౟ے੥࣌ ୊ܻח? 
 ా೤ ۽Ӧ୊ܻח? 
 ੢গ ࢚ടद ੘਷ ࢲ࠺झ ೞա۽ ੋ೧ ੹୓ ࢲ࠺झо લ૑ ঋਵ۰ݶ?
 ੢গ ࢚ടद ౟۞࠶ ग౴਷?
 ࢲ࠺झ߹ ߓನ੹ۚ਷?
 పझ౴਷?
 ࢲ۽ ׮ܲ ࢲ࠺झܳ ׸׼ೞח ౱ р੄ ࣗా ߂ ઑਯ਷?
 ࢲ࠺झܳ ଂєਵ۽ ੋ೧ ߊࢤೞח ಌನݢझ য়ߡ೻٘ ҙܻח? ?????? Monolithic architecture ীࢲ Ӓր ೧ب য۰਍ؘ Ҷ੉ ଂѐח ߄ۈী ؊؊؊ য۰ਕ઎णפ׮ƕƕ

Slide 23

Slide 23 text

Ӓۢ ب؀୓ ৵…
 ࢲ࠺झܳ ܻ࠙ೞח Ѧөਃ?

Slide 24

Slide 24 text

Microservices Architecture • য۵ӟ ೞ૑݅, ׼ো൤, بੑೞݶ જ਷ ੼੉ ؊ ݆ਵפө Ӓۧѷભ?!
 [઱੄] Monolithic architecture ী ࠺೧ ೦࢚ Microservices architecture о ਋ਘೞ׮ח ڷ਷ ইתפ׮) • ઁо ࢤпೞח ࣗ೐౟ਝয ѐߊীࢲ о੢ ઺ਃೞҊ ೨ब੸ੋ فо૑ о஖
 : Productivity AND Reusability —> Monolith ࠁ׮ MSA ীࢲ पഅदఃח Ѫ੉ औणפ׮ • (Monolithic architecture ৬ ࠺Ү೮ਸ ٸ) 
 MSA ח 
 - scalable (؀ӏݽ ࠗೞ ୊ܻী ੸೤ೞҊ) 
 - reusable (ࢲ࠺झ ੤ࢎਊࢿ੉ ֫ই૑Ҋ)
 - flexible (ইఃఫ୛о ਬোೞҊ)
 - testable (పझ౟ೞӝ औҊ)
 - resilient (؊ ѼҊೞҊ)
 - highly available (؊ ֫਷ оਊࢿਸ ഛࠁೞӝ औҊ)
 - quicker release cycle (ߓನ઱ӝо ؊ ૣҊ) AND SO MANY GOOD THINGS!

Slide 25

Slide 25 text

Բળೣ੄ ޷೟ • જ਷ Ѥ ׮ ঌѷ૑݅, पઁ۽ بੑ೧ࠁݶ য۰਍ ੼੉ ݆णפ׮. • MSA ী ؀ೠ Ө਷ ੉೧ܳ ਤ೧ Բળ൤ ೠ ష೗ঀ ੉೧೧ աоח ֢۱੉ ઺ਃ೤פ׮.
 —> ੉ җ੿ਸ ഒ੗ ೞ૑ ݃दҊ ౱ਗٜ࠙җ ೣԋೞݶࢲ ޙചܳ ٜ݅যաоח Ѫ੉ ؊ ઺ਃ೤פ׮. • MSA ܳ पઁ۽ بੑೞӝ ਤ೧ࢲח ױࣽ൤ ࣗ೐౟ਝয ইఃఫ୛݅ Ҋ۰ೡ Ѫ੉ ইפۄ, 
 ౱ ޙച ߂ ౱ਗٜ੄ מ۱ ١੉ ؊ ઺ਃೞѱ Ҋ۰غযঠ೤פ׮. • ࢲߡܻझ ইఃఫ୛ܳ ٣੗ੋೞ׮ࠁݶ MSA ҙ۲ ׮নೠ ӝߨٜਸ ഝਊೡ ࣻ ੓ח ҃਋о ݆ਵ޲۽,
 ಣࣗী MSA ী ؀೧ Բળೠ ҙबҗ ҃೷ਸ ऺ׮ࠁݶ ߈٘द ب਑੉ ؾפ׮!!

Slide 26

Slide 26 text

(ଵҊ) AWS ࢲߡܻझীࢲח • ݽפఠ݂਷? 
 ࢲ࠺झ ࠂ੟ب ҙܻח?
 ࢲ࠺झ߹ द௸ܻ౭ח?
 ࢲ࠺झ߹ ߡ੹ҙܻח? 
 ࢲ࠺झ ѐߊद ٣ߡӦ਷?
 ࢲ࠺झр੄ ౟ے੥࣌ ୊ܻח? 
 ా೤ ۽Ӧ୊ܻח? 
 ੢গ ࢚ടद ੘਷ ࢲ࠺झ ೞա۽ ੋ೧ ੹୓ ࢲ࠺झо લ૑ ঋਵ۰ݶ?
 ੢গ ࢚ടद ౟۞࠶ ग౴਷?
 ࢲ࠺झ߹ ߓನ੹ۚ਷?
 పझ౴਷?
 ࢲ۽ ׮ܲ ࢲ࠺झܳ ׸׼ೞח ౱ р੄ ࣗా ߂ ઑਯ਷?
 ࢲ࠺झܳ ଂєਵ۽ ੋ೧ ߊࢤೞח ಌನݢझ য়ߡ೻٘ ҙܻח? CloudWatch Metrics / ݽפఠ݂ SaaS ࣛܖ࣌ ١ X-Ray / AppMesh / Step Functions IAM Role ਸ ాೠ ӂೠ ҙܻ / ACM ߂ KMS ܳ ాೠ ੋૐࢲ ߂ ఃҙܻ ١ git ١ਸ ాೠ ௏٘ ഋ࢚ҙܻ + ߓನ ױਤ߹ IaC (CDK ١) Service Lens (഑਷ X-Ray) ৬ ೣԋ CloudWatch Logs Step Functions ܳ ాೠ Distributed Sagas ҳഅ CloudWatch Logs ܳ ాೠ centralized logging SQS ۽ resiliency Service Lens ഑਷ Epsagon ١੄ ࣛܖ࣌ ੸ӓ ഝਊ ߓನױਤܳ ੜ ޘযࢲ CodeDeploy ܳ ాೠ Canary ߓನ Integration Testing ߂ E2E పझ౴ ਤ઱۽ Scrum ߂ Agile ਸ ઑ૒੄ ౠࢿী ݏѱ ۨ੉য ߹۽ நद ੹ۚਸ ੸੺൤ ݆ࣻ਷ ࢲ࠺झ ূ٘ನੋ౟ ҙܻח? AppSync ܳ ాೠ BFF ಁఢ ഝਊ ࠄ ठۄ੉٘ী աৌೠ Ѫٜࠁ׮ ഻ঁ ׮নೠ ࣛܖٜ࣌੉ ઓ੤ೞ޲۽ ଵҊ݅ ೧઱ࣁਃ :)

Slide 27

Slide 27 text

(ଵҊ) AWS ࢲߡܻझীࢲח • ݽפఠ݂਷? 
 ࢲ࠺झ ࠂ੟ب ҙܻח?
 ࢲ࠺झ߹ द௸ܻ౭ח?
 ࢲ࠺झ߹ ߡ੹ҙܻח? 
 ࢲ࠺झ ѐߊद ٣ߡӦ਷?
 ࢲ࠺झр੄ ౟ے੥࣌ ୊ܻח? 
 ా೤ ۽Ӧ୊ܻח? 
 ੢গ ࢚ടद ੘਷ ࢲ࠺झ ೞա۽ ੋ೧ ੹୓ ࢲ࠺झо લ૑ ঋਵ۰ݶ?
 ੢গ ࢚ടद ౟۞࠶ ग౴਷?
 ࢲ࠺झ߹ ߓನ੹ۚ਷?
 పझ౴਷?
 ࢲ۽ ׮ܲ ࢲ࠺झܳ ׸׼ೞח ౱ р੄ ࣗా ߂ ઑਯ਷?
 ࢲ࠺झܳ ଂєਵ۽ ੋ೧ ߊࢤೞח ಌನݢझ য়ߡ೻٘ ҙܻח? CloudWatch Metrics / ݽפఠ݂ SaaS ࣛܖ࣌ ١ X-Ray / AppMesh / Step Functions IAM Role ਸ ాೠ ӂೠ ҙܻ / ACM ߂ KMS ܳ ాೠ ੋૐࢲ ߂ ఃҙܻ ١ git ١ਸ ాೠ ௏٘ ഋ࢚ҙܻ + ߓನ ױਤ߹ IaC (CDK ١) Service Lens (഑਷ X-Ray) ৬ ೣԋ CloudWatch Logs Step Functions ܳ ాೠ Distributed Sagas ҳഅ CloudWatch Logs ܳ ాೠ centralized logging SQS ۽ resiliency Service Lens ഑਷ Epsagon ١੄ ࣛܖ࣌ ੸ӓ ഝਊ ߓನױਤܳ ੜ ޘযࢲ CodeDeploy ܳ ాೠ Canary ߓನ Integration Testing ߂ E2E పझ౴ ਤ઱۽ Scrum ߂ Agile ਸ ઑ૒੄ ౠࢿী ݏѱ ۨ੉য ߹۽ நद ੹ۚਸ ੸੺൤ ݆ࣻ਷ ࢲ࠺झ ূ٘ನੋ౟ ҙܻח? AppSync ܳ ాೠ BFF ಁఢ ഝਊ ࠄ ठۄ੉٘ী աৌೠ Ѫٜࠁ׮ ഻ঁ ׮নೠ ࣛܖٜ࣌੉ ઓ੤ೞ޲۽ ଵҊ݅ ೧઱ࣁਃ :) ઁо AWS ܳ ࢎیೞח ੉ਬ੉ભ!!! AWS о ݎೞݶ աب ݎೠ׮!!

Slide 28

Slide 28 text

Event Driven ߑधী ੊ࣼ೧૑੗

Slide 29

Slide 29 text

Event Driven • ࢲ۽ ܻ࠙ػ ࢲ࠺झٜ р੄ ౟ܻѢ ഑਷ ాनਸ ਤ೧ ੉߮౟о ࢎਊؽ • ੉߮౟ ܻ٘࠵ ইఃఫ୛ীࢲ੄ ೨ब੸ੋ 3о૑ ਃࣗ
 - Event Producers
 - Event Routers
 - Event Consumers

Slide 30

Slide 30 text

Event Driven Business Logic Push event Pull event Event store

Slide 31

Slide 31 text

Event Driven Service A Event Router Service B Service C Service D

Slide 32

Slide 32 text

Event Driven Service A Service B Service C Service D SNS SQS SQS SQS

Slide 33

Slide 33 text

Event Driven Service A Service B Service C Service D EventBridge Event Bus Event Rules

Slide 34

Slide 34 text

Event Driven Service B Service C Service D EventBridge Event Bus Event Rules

Slide 35

Slide 35 text

Event Driven • SQS / SNS / Kinesis / EventBridge ١ਸ ੸ӓ੸ਵ۽ ഝਊೞݶ ؊ ֫਷ ࣻળ ੄ resiliency ܳ ഛࠁೡ ࣻ ੓Ҋ, ਬোೠ ইఃఫ୛ܳ ҳࢿೡ ࣻ ੓णפ׮ • ؀ӏݽ ࢲ࠺झীࢲח ࢎप, ੉߮౟ ܻ٘࠵੉ “੿׹” ੑפ׮
 : ੉߮౟ ܻ٘࠵ ߑध੉ ইפݶ ࣻभর ױਤ੄ ਃ୒ਸ resilient ೞѱ ୊ܻೡ ࣻ ੓ ח ߑߨ੉ হणפ׮
 —> ؀ӏݽ ౟ې೗ ୊ܻী ੸೤ೠ ࢲߡܻझ੄ ౠ૚ਸ ੜ ഝਊೞӝ ਤ೧ࢲח ੉߮ ౟ ܻ٘࠵਷ ࢶఖ੉ ইצ ೙ࣻ੸੉ભ • AWS ীࢲ ઁҕ೧઱ח ੉߮౟ ҙ۲ ࢲ࠺झੋ SQS / SNS / Kinesis / EventBridge ܳ ઁ؀۽ ੉೧ೞҊ ഝਊೞח Ѫ਷ AWS ӝ߈ ࢲߡܻझ ѐߊ੗੄ ӝࠄ੸੉ݶࢲب ޖ঺ࠁ׮ب ઺ਃೠ झఆ੉ۄҊ ࢤп೤פ׮ :)

Slide 36

Slide 36 text

Event Driven • ੉߮౟ ܻ٘࠵੉ աীѱب ೙ਃೡө?
 - self-contained ౟ے੥࣌ ੿ࠁܳ ੉߮౟۽ ੹׳ೞ۰Ҋ ೠ׮ݶ?
 - ࢎਊೞח ࢲ࠺झীࢲ ਬਊೠ event ܳ ઁҕ೧઱Ҋ ੓׮ݶ?
 - п ݃੉௼۽ࢲ࠺झܳ ৮੹൤ ܻ࠙दః۰Ҋ ೞחо?
 - PubSub ߑध੉ ೙ਃೠо?

Slide 37

Slide 37 text

Event Driven • ੉߮౟ ܻ٘࠵ ߑधਵ۽ ࢸ҅ೡ ٸ Ҋ۰ೡ ੼਷?
 - Strict ordering (੉߮౟ ࣽࢲ੄ ઺ਃࢿ)
 - Deduplication (઺ࠂػ ੉߮౟ ઁѢ)
 - Point-To-Point vs. Publish/Subscribe (୹ߊ૑৬ ݾ੸૑ ੿੄)
 - Push vs. Pull (੉߮౟ ࣻनߑध ੿੄)
 - Latency Profile (੉߮౟ ୊ܻ ࣘب੄ ࠙ನ ࠺ਯ)
 - Serverless vs. Broker/Cluster (੉߮౟ ೩ٜ݂ ೒ۖಬ ࢶఖ)
 - Filtering vs. Firehose (੉߮౟ ೙ఠ݂ ೙ਃࢿ)
 - Data blobs vs. structured objects (੉߮౟ ؘ੉ఠ ഋध ੿੄)

Slide 38

Slide 38 text

ࢎप re:Invent 2019 ࣁ࣌݅ ࠁदҊ ੉೧ೞदݶ ৮߷೤פ׮!!!

Slide 39

Slide 39 text

Event Driven ଵҊ੗ܐ https://www.youtube.com/watch?v=h46IquqjF3E

Slide 40

Slide 40 text

Event Driven ଵҊ੗ܐ https://www.youtube.com/watch?v=h46IquqjF3E

Slide 41

Slide 41 text

Event Driven ଵҊ੗ܐ https://www.youtube.com/watch?v=h46IquqjF3E

Slide 42

Slide 42 text

Event Driven ଵҊ੗ܐ https://www.youtube.com/watch?v=h46IquqjF3E

Slide 43

Slide 43 text

Event Driven https://www.youtube.com/watch?v=h46IquqjF3E ଵҊ੗ܐ

Slide 44

Slide 44 text

Event Driven • AWS re:Invent 2019: Moving to event-driven architectures (SVS308-R1)
 : https://www.youtube.com/watch?v=h46IquqjF3E
 ղਊ ৮੹ જणפ׮!! ԙ ࠁࣁਃ!!! • AWS Summit Online Korea (2020)
 : ੉߮౟ ܻ٘࠵ ইఃఫ୛ ҳ୷ਸ ਤೠ ੸੺ೠ য೒ܻா੉࣌ ా೤ ࢲ࠺झ ࢶఖ ߂ ࢎਊߑߨ (ӣࢿ૓ש, Solutions Architect, AWS)
 ਤ੄ re:Invent ੄ ߊ಴ղਊਸ ೠҴয۽ औѱ ಽযࢲ ࢸݺ೧઱࣑णפ׮.
 ࣁ࣌ ৔࢚੉ ҕѐغݶ ԙ ࠁࣁਃ!!!

Slide 45

Slide 45 text

Amazon EventBridge • re:Invent 2019 ীࢲ ࢜܂ѱ ߊ಴ೠ ࢲ࠺झ • ੉߮౟ ӝ߈ ࢲ࠺झ੄ GOTO ࢲ࠺झо ؼ Ѫ э਷ ו՝ • Event Bus ܳ ੿੄ೞҊ Event Bus ݃׮ Rule ਸ ੿੄ೣ • AWS ੉৻੄ SaaS ೒ۖಬ (Zendesk, Auth0, Epsagon ١) җ੄ ੋపӒۨ੉࣌ب ૑ਗ
 https://aws.amazon.com/eventbridge/integrations/ • Amazon EventBridge Schema Registry (2020/4/30 GA) ܳ ੉ਊೞݶ ੉߮౟ झః݃ ١۾ ߂ ҙܻо ݒ਋ рಞ೧૗

Slide 46

Slide 46 text

ࢲߡܻझ ਕ௼೒۽਋ܳ ٣੗ੋೞ੗

Slide 47

Slide 47 text

ࢲߡܻझۄҊ ೞݶ
 ࠺زӝ(Asynchronous) о ځয়ܰदաਃ?

Slide 48

Slide 48 text

࠺زӝܳ ੄धೞ૑ ঋਵݶ Client Service B Service A Service A о ೞ৏হ੉ ӝ׮ܻח दр = Client о ࠛ೙ਃೞѱ ӝ׮ܻח दр Service A о ؀ӝ೧ঠೞח दр

Slide 49

Slide 49 text

௿ۄ੉঱౟ীࢲ ਕ௼೒۽਋ ҙܻ Client Service B Service A ௿ۄ੉঱౟ীࢲ ਕ௼೒۽਋ܳ ૒੽ ҙܻೞח ߑध —> ௿ۄ੉঱౟ীࢲ੄ ࠂ੟بо ೙ਃ੉࢚ਵ۽ ݆੉ ֫ই૕ оמࢿ

Slide 50

Slide 50 text

࠺زӝ ୊ܻߑध Client Service B Service A SQS / SNS / Kinesis / EventBridge ١ਸ ഝਊೞৈ ࢲ࠺झܳ וटೠ ઑ೤(loosely coupled)ਵ۽ ҳࢿ೤פ׮

Slide 51

Slide 51 text

࠺زӝ ୊ܻߑध Client Service B Service A Client ীࢲ Service B ੄ ੘স੉ ՘լח૑ ഛੋೞח ߑߨ 1
 Client ীࢲ ઱ӝ੸ਵ۽ ServiceB ੄ ੘স੉ ՘լח૑ ޛযࠄ׮

Slide 52

Slide 52 text

࠺زӝ ୊ܻߑध Client Service B Service A Client ীࢲ Service B ੄ ੘স੉ ՘լח૑ ഛੋೞח ߑߨ 2
 Service B ীࢲ Client ী hook ਸ Ѧযળ׮ (оמೠ ҃਋ী ೠೣ)

Slide 53

Slide 53 text

࠺زӝ ୊ܻߑध Client Service B Service A Client ীࢲ Service B ੄ ੘স੉ ՘լח૑ ഛੋೞח ߑߨ 3
 Pub/Sub ӝ߈ਵ۽ ੉߮౟ܳ ࣻनೠ׮

Slide 54

Slide 54 text

Ӕؘ ਃ્ীח ખ ׳ۄਃ • ਕ௼೒۽਋ܳ ҳࢿೞח ࢲ࠺झ ࣻо ݆ই૑ݶ ؊਌ ࠂ੟ೠ ҳࢿ੉ ؽ
 : Step Functions ܳ ా೧ ਕ௼೒۽਋ܳ औѱ ҙܻೞ੗!
 • ਕ௼೒۽਋ח ٸ۽ח ౟ے੥࣌ਵ۽ ஂәغযঠೡ ٸب ੓਺
 : Step Functions ܳ ా೧ ࠙࢑ ౟ے੥࣌ਸ ҳഅೞ੗!

Slide 55

Slide 55 text

Step Functions ܳ ాೠ ࠙࢑ ౟ے੥࣌ ҳഅ • ࢲߡܻझ ইఃఫ୛ח ӝࠄ੸ਵ۽ MSA о غӝ ٸޙী, 
 ࢲ࠺झр੄ ౟ے੥࣌ਸ Ҋ۰ೡ ೙ਃо ੓਺ • ੉ ٸ, ౟ے੥࣌ ୊ܻܳ ೐ۿ౟ীࢲ ೡ ૑, ߔূ٘ীࢲ ೡ ૑੄ Ѿ੿੉ ೙ਃ • Ѿઁա ઱ޙ ١۾ ١੄ ੿݈ ઺ਃೠ ӝמٜী ؀೧ࢲח 
 AWS Step Functions ਸ ഝਊೞৈ ߔূ٘ীࢲ ୊ܻ • ੗ࣁೠ ղਊ਷ ইې ࠶۽Ӓܳ ଵઑ
 https://dev.classmethod.jp/articles/serverless- for-order-system-jawsdays2020-korean/ ੉ߣ section ীࢲ ׮ܖҊ੗ ೠ ղਊ੉ ׮ ٜযо੓णפ׮ :)

Slide 56

Slide 56 text

Rich Client ৡۄੋ ઱ޙ ࢲ࠺झܳ ࢲߡܻझ ইఃఫ୛۽ ҳ୷ೞӝ #࠙࢑౟ے੥࣌ #पदрؘ੉ఠझ౟ܻ߁

Slide 57

Slide 57 text

Rich Client ח աࢂ Ѫ੉ ইפ׮ ಴അ੉ ցޖ ࣗबೞ֎ਃ…ƃƃ աࢁ૑ঋ਷ ࣻળ੉ ইפۄ য়൤۰ ௿ۄ੉঱౟ীࢲ ݆਷ ੌਸ ೞѱ ٣੗ੋೞࣁਃ :)

Slide 58

Slide 58 text

ࠁా ߔূ٘ ѐߊೠ׮Ҋ ೞݶ ੉۠ ҳࢿਸ ࢤпೞҊ ҅नٜ࠙ ݆ਵदભ?

Slide 59

Slide 59 text

Rich Client ௿ۄ੉঱౟ח “ੌױ” ߔূ٘۽ ؘ੉ఠܳ ࠁղҊ, ߔূ٘ীࢲ “ঌইࢲ ੜ” ਃ୒ী ݏѱ ୊ܻ

Slide 60

Slide 60 text

ࢲߡܻझ ইఃఫ୛ীࢲח যڌѱ ׮ܳөਃ?

Slide 61

Slide 61 text

Rich Client ௿ۄ੉঱౟ীࢲ ਗೞח ࢲ࠺झܳ “૒੽” ഐ୹ ҃਋ী ٮۄࢲח ࢲ࠺झр੄ ౟ے੥࣌ب “૒੽” ୊ܻ

Slide 62

Slide 62 text

Rich Client • (ӝמ੉) ೂࠗೠ (݆਷/ڨڨೠ) ௿ۄ੉঱౟ • Client о ݆਷ ੌਸ ೞח Ѫਸ ف۰ਕೞ૑ ݈ۄח ੄޷! • ࢲߡܻझ ইఃఫ୛ীࢲח ਗېۄݶ ߔূ٘о ೡ ߨೠ ੌਸ ೐ۿ౟ূ٘о ૒੽ ୊ܻೞח Ѫ੉ ؊ જ਷ ࢸ҅ੋ ҃਋о ݆णפ׮
 
 ৘द) 
 ਬ੷ ੋૐ੘স (Client <-> Cognito / Auth0)
 ౵ੌ/੉޷૑ স۽٘ (Client <-> S3)
 ੸਷ ࣻ੄ ࢲ࠺झٜী ؀ೠ ਕ௼೒۽਋ (Client <-> Service 1 / Service 2 / … )
 —> ਕ௼೒۽਋о ࠂ੟೧૑ݶ ׼ো൤ Step Functions ۽ ޘחѪ੉ જणפ׮

Slide 63

Slide 63 text

SaaS بੑ਷ ݃ҳ݃ҳ ಴അ੉ җѺೞ޲۽ ઱੄!! ׼োೠ ݈੉૑݅, पઁ۽ח ੜ Ѩష೧ࢲ بੑ೧઱ࣁਃ :)

Slide 64

Slide 64 text

SaaS ܳ بੑೠ׮ҳ?! • ࣁ҅੸ੋ Top Class ౱੉ ࣻ֙р ೞա੄ ࣛܖ࣌ী ૘઺೧ࢲ ٜ݅যմ SaaS ࣛܖ࣌,
 ੉Ѫࠁ׮ ؊ ੜ ٜ݅ ੗न ੓աਃ? • গୡী ࢲߡܻझ ইఃఫ୛ܳ بੑೠ׮ח Ѫ ੗୓о ௿ۄ਋٘ ߮؊ࢎܳ ޺Ҋ оח Ѫ
 ੉৴ ੉ۧѱ ػ Ѣ SaaS ݃ҳ݃ҳ بੑೞભ?! • જ਷ SaaS ࣛܖ࣌ਸ ݆੉ ঌݶ ঌࣻ۾ ੸੤੸ࣗী ഝਊоמ!! (߹಴ 999ѐ!!)
 —> ಣࣗী ழޭפ౭ ഝز ߂ ࣁ޷ա ١ਸ ৌब൤ ଵৈ೧ঠೞח ੉ਬ੉ӝب ೤פ׮

Slide 65

Slide 65 text

୶ୌ SaaS ܻझ౟ ੉ ৻ীب ޖࣻ൤ ݆ਵפ ׮ܲ SaaS ઁಿب ݆੉ ॄࠁदҊ ࣗхਸ ҕਬ೧઱ࣁਃ :)

Slide 66

Slide 66 text

SaaS بੑ द Ҋ۰ࢎ೦ • AWS ীࢲ о੢ ӝࠄ੸ੋ ోٜ਷ ׮ ઁҕ೧સפ׮
 - ݽפఠ݂ - CloudWatch
 - ా೤ ۽Ӧ - CloudWatch Logs
 - ࠙࢑ ౟ۨ੉य - X-Ray / ServiceLens
 - ਬ੷ੋૐ - Cognito
 - CDN - CloudFront
 - WAF - AWS WAF
 - ӝఋ ׮ࣻ • SaaS بੑ੹ ੼Ѩೡ ૕ޙࢎ೦ ৘द
 Q. ೧׼ ࣛܖ࣌ਸ ݅ٚ ౱/ഥࢎܳ য٣ө૑ न܉ೡ ࣻ ੓חо?
 Q. AWS ীࢲ ઁҕغח ӝמ݅ਵ۽ח ੿݈ ࠗ઒ೠо?
 Q. ୡӝ࠺ਊ(۞׬ழ࠳/بੑਸ ਤೠ ੘স ١ ನೣ)੉ хࣻೡ݅ೠо?
 Q. ୶റী ׮ܲ ࣛܖ࣌ਸ ࢎਊೞ۰Ҋ ೡ ٸ Vendor Lock ੉ Ѧܾ оמࢿ਷ হחо?
 Q. SaaS ࣛܖ࣌ بੑী ؀ೠ ౱ਗٜ੄ ز੄ܳ ୽࠙൤ ঳঻חо?

Slide 67

Slide 67 text

No code is the best code ಴അ੉ ӓױ੸੉޲۽ ઱੄!! ׼োೠ ݈੉૑݅, पઁ۽ח ௏٘ ੘ࢿ೧ঠೡ ੌ੉ ଵ ݆ભ..ƃƃ

Slide 68

Slide 68 text

Lines of codes are liability, not assets • Lambda ܳ ഝਊೞݶ ޖઑѤ જ׮?
 —> Lambda হ੉ (Lambdaless) ز੘ೞח ࢲߡܻझ ҳࢿ੉ ؊ જભ!! • ੋ೐ۄ/OS/޷ٜਝয ҙܻܳ উೠ׮Ҋ ҙܻೡ ѱ হয૑աਃ? (Management-free)
 —> ۠ఋ੐ҙܻ/ߡ੹ҙܻ/௏٘ҙܻ ١੄ ௏٘ ҙ۲ ҙܻ੉गח ৈ੹൤ թই੓णפ׮! • ૊, ௏٘ܳ ݆੉ ੘ࢿೞݶ ੘ࢿೡ ࣻ۾ ࠗ଻(Liability)о טযդ׮ח Ѣભ! • Ӓۧ׮ݶ যڄ ٸ ௏٘ܳ ೖೞҊ, যڄ ٸ ੘ࢿ೧ঠೡөਃ?

Slide 69

Slide 69 text

௏٘੘ࢿਸ ೖೞח Ѫ੉ જਸ ࣻ ੓ח ҃਋ • Glue ۽ ೧Ѿؼ ࣻ ੓ח ױࣽೠ data transformation ੘সਸ Ҷ੉ EMR ۽ ೞ۰Ҋ ֢۱ೞ૑ ঋӝ • AppSync ߂ Amplify ীࢲ ٜ݅য઱ח మ೒݁ਵ۽ ୽࠙ೠؘ Ҷ੉ ղ ௏٘ܳ ੘ࢿೞ۰ Ҋ ೞ૑ ঋӝ • Step Functions ীࢲ ਕ௼೒۽਋ܳ ҙܻೞݶ ಞ೧૕ Ѫਸ Ҷ੉ Lambda ௏٘۽ ࠂ ੟ೠ ݫएܳ ٜ݅૑ ঋӝ • Kinesis Firehose ۽ ૊द S3 ী য়࠳ં౟۽ ੷੢ೡ ࣻ ੓ח ੌਸ, Ҷ੉ Kinesis Data Stream + Lambdaਵ۽ গॳ૑ ݈ӝ Lambda о ইצ ׮ܲ ࢲߡܻझ ࢲ࠺झܳ ੸ӓഝਊೞ੗!

Slide 70

Slide 70 text

௏٘੘ࢿਸ ೖೞח Ѫ੉ જਸ ࣻ ੓ח ҃਋ • ױࣽ൤ ؘ੉ఠ ഋधਸ ߸҃ೞח ҃਋
 
 ৘द)
 
 API Gateway ীࢲ Lambda ܳ ഐ୹ೞҊ ௿ۄ੉঱౟ীࢲ ࠁղળ ؘ੉ఠܳ Ӓ؀۽ DynamoDB ী ੷੢ೞח ҃਋, Lambda ܳ Ѣ஖૑ ঋҊ API Gateway ীࢲ VTL (Velocity Template Langauge) ۽ ૒੽ ؘ੉ఠ ߸ജറ DynamoDB ী ੷੢оמ
 —> API Gateway ܳ DynamoDB ੄ ೐۾द۽ ഝਊ
 
 https://aws.amazon.com/blogs/compute/using-amazon-api-gateway-as-a- proxy-for-dynamodb/ Feat. Lambdaless

Slide 71

Slide 71 text

௏٘੘ࢿਸ ೖೞח Ѫ੉ જਸ ࣻ ੓ח ҃਋ • Lambda ܳ ా೧ ׮ܲ ࢲ࠺झܳ ױࣽೞѱ ഐ୹ೞח ҃਋
 
 ৘द)
 
 Step Functions ܳ HTTP ূ٘ನੋ౟ܳ ా೧ ഐ୹ೞҊ र਷҃਋, API Gateway -> Lambda -> Step Functions о ইצ, API Gateway ীࢲ ૒੽ Step Functions ܳ ഐ ୹оמ
 
 SQS ܳ HTTP ূ٘ನੋ౟ܳ ా೧ ഐ୹ೞҊ र਷ ҃਋, ਤ৬ زੌೞѱ API Gateway ী ࢲ ૒੽ SQS ܳ ഐ୹оמ
 
 —> ࢎप… Ѣ੄ ؀ࠗ࠙੄ AWS ࢲ࠺झо API Gateway ܳ ాೠ HTTP Endpoint ܳ о ૕ ࣻ ੓णפ׮!! Feat. Lambdaless

Slide 72

Slide 72 text

௏٘੘ࢿਸ ೖೞח Ѫ੉ જਸ ࣻ ੓ח ҃਋ • Lambda ܳ ా೧ ׮ܲ ࢲ࠺झܳ ױࣽೞѱ ഐ୹ೞח ҃਋
 
 ৘द)
 
 Step Functions ܳ HTTP ূ٘ನੋ౟ܳ ా೧ ഐ୹ೞҊ र਷҃਋, API Gateway -> Lambda -> Step Functions о ইצ, API Gateway ীࢲ ૒੽ Step Functions ܳ ഐ ୹оמ
 
 SQS ܳ HTTP ূ٘ನੋ౟ܳ ా೧ ഐ୹ೞҊ र਷ ҃਋, ਤ৬ زੌೞѱ API Gateway ী ࢲ ૒੽ SQS ܳ ഐ୹оמ
 
 —> ࢎप… Ѣ੄ ؀ࠗ࠙੄ AWS ࢲ࠺झо API Gateway ܳ ాೠ HTTP Endpoint ܳ о ૕ ࣻ ੓णפ׮!! Feat. Lambdaless Ӕؘ ױࣽ൤ ࢲ࠺झܳ ഐ୹೧ࢲ Ӓ؀۽ Ѿҗчਸ ߈ജೞח ҃਋ۄҊ ೞ؊ۄب AWS SDK ীࢲ ઁҕ೧઱ח exponential backoff ١੄ ӝמਸ ഝਊೞҊ र਷ ҃਋ীח ׼ো൤ Lambda ܳ ా೧ࢲ ഐ୹ೞח Ѫ੉ જणפ׮. ੗ࣁೠ ղਊ਷ ইې ࠶۽Ӓܳ ଵҊ! https://lumigo.io/blog/the-why-when-and-how-of-api-gateway-service-proxies/

Slide 73

Slide 73 text

௏٘੘ࢿ੉ ೙ਃೠ ҃਋ • ௏٘ܳ ॳ૑ ঋҊ ೧Ѿೡ ࣻ ੓ח ޙઁܳ ઁ৻ೠ ݽٚ ҃਋ • ࢎप, ઑӘ ੗ӓ੸ਵ۽ ਬૉா੉झܳ ࣗѐܻ٘ӟ ೮૑݅, ௏٘ হ੉ ࢲߡܻझ ইఃఫ୛ ܳ ҳࢿೡ ࣻ ੓ח ҃਋ח ౠ੿ೠ ݻݻ ா੉झܳ ઁ৻ೞҊח Ѣ੄ হणפ׮. • ױ, ೦࢚ Code First ۽ ࢤпೞӝࠁ׮, Less Management ܳ ࢤпೞח ҙ੼੉ 
 ࢲߡܻझ ইఃఫ୛ ٣੗ੋীࢲח ޖ঺ࠁ׮ب ೨ब੸੉ۄҊ ࢤп೤פ׮.
 —> NoOps ੄ ೨ब

Slide 74

Slide 74 text

AWS re:Invent 2019: I didn’t know Amazon API Gateway did that (SVS212-R2) https://www.youtube.com/watch?v=yfJZc3sJZ8E ଵҊ੗ܐ

Slide 75

Slide 75 text

AWSKRUG ࢲߡܻझ ࣗݽ੐ ߊ಴੗ܐ https://www.slideshare.net/mooyoul/lambdaless-and-aws-cdk-191793017 https://github.com/mooyoul/lambdaless/tree/master/proxy ੉ޖৌש, Vingle ଵҊ੗ܐ

Slide 76

Slide 76 text

݃ஜ য়ט • Best practices for organizing larger serverless applications https://aws.amazon.com/blogs/compute/best-practices-for-organizing-larger-serverless-applications/

Slide 77

Slide 77 text

ࢲߡܻझ ࢲ࠺झ ਍৔ೞӝ

Slide 78

Slide 78 text

੉ߣীח ੗ࣁ൤ ׮ܖ૑ ঋ૑݅, ࢲߡܻझ ࢲ࠺झܳ ਍৔ೡ ٸ ࢤп೧ࠅ ࣻ ੓ח ઱ઁ ٜী ؀೧ оߺѱ ੉ঠӝ೧ࠁѷणפ׮ :)

Slide 79

Slide 79 text

Lambda Testing Strategy • Unit Test / Integration Test / E2E Test • Lambda ೐۽ં౟ܳ যڌѱ ҳࢿ೧ࢲ যڌѱ ѐߊೞוջী ٮۄ ࢚׼൤ ੄Ѽ੉ ঺тܻח ࠗ࠙੉ӝب ೤פ׮. (ౠ൤ ਬ׫పझ౟ী ؀ೠ ҙ੼ী ٮۄ) • ѐੋ੸ਵ۽ “Lambda ௏٘ח ӝࠄ੸ਵ۽ Unit Test ܳ ೞ૑ ঋইب ػ׮” Ҋ ࢤп೤פ׮. • Yan Cui (AWS Serverless Hero) ש੄ ನझ౴
 - Yubl’s road to Serverless — Part 2, Testing and CI/CD
 : https://medium.com/hackernoon/yubls-road-to-serverless-part-2-testing-and- ci-cd-72b2e583fe64
 - How to Test Serverless Applications
 : https://epsagon.com/blog/how-to-test-serverless-apps/

Slide 80

Slide 80 text

• (For Kodeveloper) ੌࠄয ੗ܐੑפ׮ • Lambda ೩ٜ۞ܳ ୭؀ೠ ੸਷ ࣻ੄ ௏٘۽ ਬ૑ • ೨ब ࠺ૉפझ ۽૒ਸ ߹ب ஹನք౟ ݽٕ۽ ܻ࠙ • ࠺ૉפझ ۽૒ਸ ਬ׫పझ౟ • E2E పझ౴਷ Yan Cui ੄ ನझ౴җ ࠺तೠ ղਊ https://dev.classmethod.jp/articles/serverless-testing-using-typescript-and-jest/ Lambda Testing Strategy

Slide 81

Slide 81 text

Lambda Testing Strategy Unit Tests Integration Tests E2E Tests Server-based ೐۽ં౟੄ (ੌ߈੸ੋ) పझ౴ ੹ۚ Unit Tests Integration Tests E2E Tests ࢲߡܻझ ೐۽ં౟੄ పझ౴ ੹ۚ

Slide 82

Slide 82 text

Monitoring • CPU / Memory / Network In/Out ١਷ ؊੉࢚ ઺ਃೞ૑ ঋ਺ • ࢲߡܻझ ٣੗ੋীࢲ ઺ਃೠ ݫ౟ܼ
 - Number of errors 
 - Duration
 - Concurrent executions
 - Latency (Delayed)
 - Number of messages in queues
 - Number of requests throttled
 - Provisioned/Consumed Read/Write Capacity Units
 - Number of cold starts happened • Email / Slack / Twilio ١җ ো҅ೠ ঌۈ ࢸ੿

Slide 83

Slide 83 text

Logging • CloudWatch Logs о ӝࠄ • CW Logs ח ٣ಫ౟۽ ۽Ӓܳ ӝрઁೠহ੉ ੷੢ೞ޲۽ ਫ਼੤੸ਵ۽ ਃӘ ಩఍ ݏਸ оמࢿ੉ ઓ੤
 : ߈٘द Log Group ߹ ۽Ӓ ؘ੉ఠ ࠁઓ ӝрਸ ࢸ੿೧ف੗ • ۽Ӓ Ѩ࢝਷
 1) CloudWatch Logs Insights
 2) CloudWatch Logs -> S3 -> (Glue) -> Athena • CloudTrail Logs / S3 Access Logs / API Gateway Logs ١ Lambda о ইצ ׮ নೠ AWS ࢲ࠺झ۽ࠗఠ ߊࢤೠ ۽Ӓܳ যڌѱ ҙܻೡ Ѫੋ૑ب Ҋ޹ೞӝ

Slide 84

Slide 84 text

Deployment • Serverless Application Deployment Tools
 
 - AWS CloudFormation
 - AWS SAM (Serverless Application Model)
 - AWS CDK
 - Serverless Framework
 - Apex Up • ੿׹਷ হҊ ஂೱী ؀ೠ ࢶഐ݅ ੓ਸ ࡺ੉ۄҊ ࢤп • ѐੋ੸ਵ۽ Serverless Framework ਸ ࢶഐ • ୭Ӕীח CDK ب ਬब൤ ࢓ಝࠁҊ ੓਺ https://dev.classmethod.jp/articles/aws-cdk-intro-kor/

Slide 85

Slide 85 text

Security • द௸ܻ౭ب ۨ੉য ߹۽ աׇࢲ ࢤпೞח Ѫ੉ ઺ਃ
 : ఃਕ٘ ઺बਵ۽ ࣗѐ೤פ׮
 
 Infrastructure - Shared Responsibility Model (AWS ীࢲ ࠁউө૑ ׮ ҙܻ೧ષ)
 OS - ࢲߡܻझ ইఃఫ୛ীࢲח OS ۨ߰੄ द௸ܻ౭ө૑ AWS ীࢲ ׮ ҙܻ೧ષ
 Network - VPC Flow Logs / WAF Shield ١
 Application - WAF
 Activity - Guard Duty / CloudTrail
 Data - Data protection in transit / Data protection at rest (ACM, KMS ١)
 Sensitive Data - Secrets Manager / Amazon Macie
 Log Data - Amazon Detective
 User - Cognito ܳ ాೠ AuthN/AuthR
 Execution Policy - IAM ী ؀೧ ੿ഛ൤ ੉೧ೞҊ ࢎਊೞח Ѫ੉ ನੋ౟ ੜ ݽܰѷਵݶ ੌױ IAM ࠗఠ ഛपೞѱ ੉೧ೞח Ѫ੉ ઺ਃ!!!!

Slide 86

Slide 86 text

Trouble Shooting • Observability ഛࠁо ޖ঺ࠁ׮ب ઺ਃ • Distributed Tracing ী ؀ೠ ੉೧
 : https://hackernoon.com/serverless-observability-part-1-new- challenges-to-old-practices-95de1b94d379 • AWS X-Ray / CloudWatch ServiceLens
 : ӝࠄਵ۽ ઁҕغח AWS ੄ ٣ಫ౟ ২࣌ • Epsagon / Jaeger / Zipkin ١੄ SaaS ߂ য়೑ࣗझ ӝ߈੄ ࣛܖ࣌ب ઓ੤ • ѐੋ੸ਵ۽ ࢶഐೞח ࣛܖ࣌਷ Epsagon

Slide 87

Slide 87 text

Epsagon • ࠙࢑ ౟ۨ੉य SaaS ࣛܖ࣌ • ୡӝࢸ੿੉ ݒ਋ ए਑ • بੑೞ੗݃੗ ࢲ࠺झݗ੉ ׮ࠁ੐ • AWS ੉৻੄ ࢲ࠺झب ૑ਗ • ࢲ࠺झݗীࢲ ߄۽ ۽Ӓө૑ ഛੋ оמ • Issues Manager ীࢲ ੗ز੉ग ҙܻ ଵҊ੗ܐ https://dev.classmethod.jp/articles/troubleshooting-in-seconds-epsagon-korean/

Slide 88

Slide 88 text

Full Stack Serverless

Slide 89

Slide 89 text

AWS Amplify • AWS Amplify CLI ߂ ۄ੉࠳۞ܻ ١ਸ ഝਊೞৈ ೐۽؋࣌ ࣻળ੄ গ೒ܻா੉࣌ਸ ݒ ਋ ࣚऔѱ ѐߊ/਍৔ೡ ࣻ ੓ח AWS ࢲ࠺झ੉੗ য়೑ࣗझ ೐۽ં౟ • API - GraphQL (AppSync) / RESTful (API Gateway)
 Storage - S3
 Auth - Cognito
 Hosting - S3 + CloudFront
 Prediction - Amazon Translate / Polly / Transcribe / Rekognition / …
 Analytics - Amazon Pinpoint / Amazon Kinesis 
 ӝఋ ׮ࣻ ࢲ࠺झ ઁҕ • ؊ ੗ࣁೠ ղਊ਷ ҕध ಕ੉૑ ଵઑ
 https://docs.amplify.aws/

Slide 90

Slide 90 text

AWS Amplify https://www.youtube.com/watch?v=4Am7n5F-S7Q

Slide 91

Slide 91 text

AWS AppSync • A Managed and Serverless GraphQL Service • AWS Amplify ৬ ೣԋ ઱ݾೞҊ ੓ח ࢲ࠺झ • झః݃ܳ ੘ࢿೞח Ѫ݅ਵ۽ب ܻ঴ఋ੐ ాनਸ ਤೠ web socket ӝ߈ GraphQL Subscription ੉ ੗زਵ۽ ࢤࢿؽ • BFF (Backend For Frontend) ಁఢ੉ա Microservices р੄ ױੌ ূ٘ನੋ౟ ١੄ ਊب۽ ݆੉ ࢎਊؽ • ௿ۄ੉঱౟ ѐߊ੗ח ঌѷ૑݅, GraphQL ઁ؀۽ ҃೷೧ࠁҊ աݶ RESTful API োز ੘স਷ ೞӝ फয૗ (ƀƀ)

Slide 92

Slide 92 text

AWS AppSync • AWSKRUG ࢲߡܻझ ࣗݽ੐ #20 • AppSync ܳ ഝਊೠ ܻ঴ఋ੐ ࢲߡܻझ ইఃఫ୛
 
 
 
 
 
 
 
 https://speakerdeck.com/twkiiim/appsyncreul-hwalyonghan-rieoltaim-seobeoriseu-akitegcyeo

Slide 93

Slide 93 text

AWS AppSync • AWS ੤ੑޙ ࠶۽Ӓ – AppSync ಞ (ೠҴয)
 https://dev.classmethod.jp/cloud/aws/aws-appsync-re-introduction-2019-korean-ver/

Slide 94

Slide 94 text

• [AppSync ѐ֛੿ܻ] AWS AppSync ߂ Resolver Mapping Template ী ؀೧ ѐ֛ਸ ੿ܻ೧ࠇद׮!
 https://dev.classmethod.jp/cloud/appsync-resolver-vtl-tutorial-ko/ AWS AppSync

Slide 95

Slide 95 text

Full Stack Serverless Full Stack Development in the Era of Serverless Computing https://egghead.io/lessons/egghead-egghead-talks-full-stack-development-in-the-era-of-serverless-computing

Slide 96

Slide 96 text

Full Stack Serverless • AWS ӝ߈੄ ࢲߡܻझ ইఃఫ୛ ࢸ҅ ߂ ѐߊਸ ೞ׮ࠁݶ ࢎप Ѣ੄ ؀ࠗ࠙੄ ҃਋ ӝઓ੄ ࠺तೠ ಁఢਸ ٮۄоח Ѫਸ ߊѼ • ౠ൤ झఋ౟স ١੄ ୡӝ ࢲ࠺झ੄ ҃਋ ਬ੷ੋૐ / API ࢲߡ / ORM / Ѩ࢝ /౵ੌস۽٘ / நय ١ ੉ ೨ब੸ੋ ӝמ੄ ؀ࠗ࠙ਸ ର૑ೣ • Amplify ܳ ഝਊೞৈ AWS ࢲ࠺झܳ ҳ୷ೞݶ ਤ੄ ࠺तೠ ಁఢ ٜਸ ݒ਋ ࣚऔѱ ѐߊೡ ࣻ ੓਺ • Client-oriented programming ੉ оמ Feat. Amplify

Slide 97

Slide 97 text

Full Stack Serverless • ௿ۄ੉঱౟ח ѐߊ੗о ਗೞח ؀۽ (Angular/Vue/React, Android, iOS, etc) • API ח AppSync ӝ߈੄ GraphQL (ؒਵ۽ ܻ঴ఋ੐ ӝמ੉ ٱ۰১) • ਬ੷ ഥਗоੑ/۽Ӓੋ ١੄ ੋૐ਷ Cognito • ੉޷૑ স۽٘ ١਷ S3 ۽ ૒੽ স۽٘ • ੗زਵ۽ ࢤࢿغח Ѫ੉ ইצ ߹ب۽ ҙܻೞҊ र਷ ࠺ૉפझ ۽૒ ١਷ API Gateway (+ Step Functions) + Lambda ۽ ߹ب۽ ҳ୷ ߂ ௿ۄ੉঱౟৬ োز
 —> ੗زਵ۽ ࢤࢿغח API.service.ts ١ਸ Ӓ؀۽ ࢎਊೞӝࠁ׮ח API ୶࢚ച ҅கਸ ٜ݅যف Ҋ ॳݶ ਬোೞҊ ഛ੢ࢿ੉ ֫਷ গ೒ܻா੉࣌ ࢸ҅о оמ Feat. Amplify

Slide 98

Slide 98 text

അद੼ীࢲ੄ ઱੄੼ • Amplify о ই૒ উ੿੸੉૑ ঋ਺ • JS ੉৻੄ Android ա iOS ীࢲ উ੿੸ਵ۽ ز੘ೞח૑ ࠁ੢ೡ ࣻ হ਺ • Data Store ীࢲ ઁডࢎ೦ٜ੉ ݆਺. 
 ؀಴੸ੋ ৘۽ח, • @searchable ૑ਗೞ૑ ঋ਺ (Elasticsearch ܳ ഝਊೞ۰ݶ API service ܳ ॳݶ ؽ) • @connection(keyName: …) ਸ ૑ਗೞ૑ ঋ਺ • Amplify ৬ ো҅غח п AWS ࢲ࠺झٜী ؀ೠ Ө੉ ੓ח ੉೧হ੉ ࢎਊೞݶ ѐߊ ૓೯ী য۰਑ਸ ѻਸ оמࢿ੉ ݆਺ Feat. Amplify

Slide 99

Slide 99 text

Ӓۢীب ࠛҳೞҊ • Amplify ח ҭ੢൤ ݒ۱੸ੋ ో੉ۄҊ ࢤп • ࢲߡܻझ۽੄ ಁ۞׮੐ ੹ജਸ ੋ૑ೡ ٸ ׮਺ ױ҅о ޖ঺ੋ૑ ࢤп೧ࠁݶ Amplify ח ০਷ ੌ ਸ ೞҊ ੓׮Ҋ ࢤп
 —> ૑Ә੄ ઁডࢎ೦ٜ਷ ੼੼ ޖ੄޷೧૑Ѣա হয૑ѱ ؼ Ѫ • Amplify ӝ߈ਵ۽ ѐߊ੗о नӏ ࢲ࠺झܳ ٜ݅ӝ ਤ೧ ೧ঠೡ ୭ࣗೠ੄ ੌ
 
 1) ఋѶ ೒ۖಬীࢲ ࢲ࠺झ UI ѐߊ (ಌ࠶ܻयী оө਑)
 2) ؘ੉ఠ झః݃ ੿੄ (schema.graphql)
 3) ࢤࢿػ API.service.ts ܳ UI ஹನք౟৬ ૒੽, ഑਷ store ৬ োزೞӝ
 4) Amplify ੄ ׮ܲ ӝמ੉ ೙ਃೡ द োز (Auth, Upload, Inference, Analytics, …) Feat. Amplify

Slide 100

Slide 100 text

Full Stack Serverless • AWS Amplify ח അद੼ীࢲ ࢎप࢚ ਬੌೠ Full Stack Serverless ೐ۨ੐ਕ௼ • ࢲߡܻझ ӝ߈੄ MSA ܳ ௿ۄ੉঱౟ীࢲ औѱ ো҅ೞӝ ਤೠ GraphQL ী ؀೧ Ө੉ ੉೧ೡ ೙ਃࢿ • ಽझఖ ѐߊ੗৬ ೐ۿ౟ূ٘ ѐߊ੗੄ ҃҅о ੄޷হয૑ח द੼੉ ҍ ৢ Ѫ
 —> ݽ؍ গ೒ܻா੉࣌੄ ೐ۿ౟ূ٘ ѐߊ .. Ѿ௏ ࢤп݅ఀ औ૑ ঋणפ׮!
 —> ೐ۿ౟ূ٘ ѐߊ੗ח ࢲߡܻझ झఆਸ ߈٘द ੊ഃঠೞח द੼੉ ҍ ৢ Ѫ • ࢲߡܻझח ஹೊ౴ ২࣌ী ੓যࢲ ҍ default ಁ۞׮੐੉ ؼ Ѫ੉ۄח ੼ਸ ੋ૑ೞӝ

Slide 101

Slide 101 text

Ӓ ߆੄ ࢲߡܻझ ҙ۲ ੗ܐ

Slide 102

Slide 102 text

AWS Serverless Youtube Channel https://www.youtube.com/channel/UC_vJsnqdpuEoRseFmlkHMkA

Slide 103

Slide 103 text

Serverless Chats (Podcast) https://www.serverlesschats.com/

Slide 104

Slide 104 text

Yan Cui’s Blogs https://theburningmonk.com/

Slide 105

Slide 105 text

AWS Serverless Workshops https://github.com/aws-samples/aws-serverless-workshops

Slide 106

Slide 106 text

Nordic Serverless https://nordicserverless.io/

Slide 107

Slide 107 text

Serverless Resiliency https://dev.classmethod.jp/articles/reinvent-2019-session-report-svs407-korean/ ೠҴয ೧ࢸ Developers.IO ب ݆੉ ੉ਊ೧઱ࣁਃ (Բߢ)

Slide 108

Slide 108 text

ߊ಴ղਊ ੿ܻ

Slide 109

Slide 109 text

ߊ಴ղਊ ੿ܻ • ௿ۄ਋٘੄ Ԣ੉ۄ ܻࠛח ࢲߡܻझח ױࣽೠ ౟۪٘о ইפۄ ࣗ೐౟ਝয ѐߊ੄ ޷ې • ബҗ੸ੋ ࢲߡܻझ ইఃఫ୛ܳ ࢸ҅ೞӝ ਤ೧ যڃ Ѫٜਸ Ҋ۰೧ঠೞחо • ࢲߡܻझ ইఃఫ୛ܳ ਍৔ೡ दী যڃ ੼ਸ Ҋ۰೧ঠೞחо • Full Stack Serverless ܳ ਤೠ Amplify / AppSync • ӝఋ ࢲߡܻझ ҙ۲ ੗ܐ

Slide 110

Slide 110 text

Classmethod ীࢲ ੋ੤ܳ ݽभפ׮ :)

Slide 111

Slide 111 text

Classmethod, Inc • ੌࠄীࢲ AWS ࢎਊೞחؘ Classmethod ݽܰݶ р୏ • ੉ܴ݅ ٜਵݶ ইח ؀ӝস ~ झఋ౟সө૑ ׮নೠ ӏݽ੄ ஶࢸ౴/ҳ୷ਸ ాೠ ࡅܲ ࢿ੢ • Developers.IO - ਘ 220݅ PV ੉࢚ ӝ۾ೞח ੌࠄ ୭؀ ӝࣿ ࠶۽Ӓ ઺ ೞա • APN Consulting Partner of The Year 2018
 APN Competency Partner of The Year -DevOps- 2019 ܳ ࢚ࣻ • ੌࠄ ੹୓ীࢲ ୨ 100ݺ ࢶߊೞח 2020 APN AWS Top Engineers ઺ 34ݺ੉ ࢶ੿ • ੌࠄ ୭Ҋ੄ AWS ੹ޙоٜҗ ઱1ഥ AWS ࢎղ झఠ٣ ૓೯ Classmethod ীࢲח ೠҴੋ ূ૑פযٜ࠙ਸ ݽभפ׮ :) https://aws.amazon.com/jp/blogs/psa/2020-apn-aws-top-engineers-announcement/

Slide 112

Slide 112 text

Classmethod, Inc • 2019֙ 6ਘ, ୐ ೠҴੋ ূ૑פয۽ ੑࢎറ ו՛੼ਸ ನझ౴
 —> ੌࠄীࢲ о੢ ਕۄߖ੉ જ਷ ӝসਵ۽, ঑ب੸ਵ۽ ੗ਯ੸੉Ҋ ࣻಣ੸ੋ ӝসޙച
 
 
 
 
 
 
 
 
 
 
 Classmethod ীࢲח ೠҴੋ ূ૑פযٜ࠙ਸ ݽभפ׮ :) https://dev.classmethod.jp/articles/working-for-classmethod-as-a-korean/

Slide 113

Slide 113 text

Classmethod, Inc • ݽ૘ ૒ҵ ৘
 - AWS Engineer
 - AWS Solutions Architect
 - Serverless Developer (AWS / GCP / Azure ١)
 - Frontend Developer
 - Backend Developer
 - Mobile App Developer • ূ૑פয ઺ब੄ ӝস੉ۄ, য૑рೠ ನ૑࣌ ׮ ੓णפ׮ :) Classmethod ীࢲח ೠҴੋ ূ૑פযٜ࠙ਸ ݽभפ׮ :)

Slide 114

Slide 114 text

Classmethod, Inc •FAQ
 
 Q. ੌࠄয ঴݃ա ੜ೧ঠغաਃ?
 A. ੿ഛೞѱ ޤ׮ۄҊ ׹߸ܻ٘ӝח য۵૑݅, ৈ೯оࢲ ాೡ ੿ب੄ ੌࠄয ࣻળ੉ݶ (ٜয৬ࢲ Ҋ ࢤೞदѷ૑݅ ݶ੽ীࢲ ӝࠄ੸ੋ ழޭפா੉࣌੉ оמೠ ੿بݶ) ޙઁহणפ׮
 
 Q. ੿݈ ܻݽ౟ਕ௼ оמೠоਃ?
 A. ֎. ௏۽ա ࢎక ੉੹ীب ਗೡٸ݃׮ ઙઙ ܻݽ౟ ਕ௼ ೮঻Ҋ, 1֙ ղղ ܻݽ౟ ਕ௼ ೞदח ࠙ ٜب ҅भפ׮. ޛۿ, ೠҴীࢲ ܻݽ౟ ਕ௼ೞ࣊ب ࢚ҙহणפ׮.
 
 Q. ٜযয়ӝ੹ী AWS ঴݃ա ঌইঠغաਃ?
 A. ݽ૘૒ҵী ٮۄ ׮ܰ૑݅, ੸যب AWS ূ૑פয੄ ҃਋ AWS ੹ഃ ݽܰח ࢚క۽ ૑ਗೞ࣊ ب ೤Ѻೞदחؘ ௾ ޙઁח হणפ׮. (׼ো൤ ঌݶ ঌ ࣻ۾ ؊ જѷભ) Classmethod ীࢲח ೠҴੋ ূ૑פযٜ࠙ਸ ݽभפ׮ :)

Slide 115

Slide 115 text

Classmethod, Inc • ଻ਊҙ۲ ޙ੄ࢎ೦਷ Slack ଻օীࢲ DM ઱ࣁਃ :) 
 
 
 
 
 
 
 
 
 
 
 
 Classmethod ীࢲח ೠҴੋ ূ૑פযٜ࠙ਸ ݽभפ׮ :) https://careers.classmethod.jp/ ଻ਊ ࢎ੉౟

Slide 116

Slide 116 text

੉࢚, ߊ಴ܳ ݃஝פ׮. ٜয઱࣊ࢲ хࢎ೤פ׮ :)