
À̹ø¿¡ ºñÁ¦ÀÌÆÛºê¸¯¿¡¼ ³ª¿Â "¼¹ö¸®½º ÀÌÁ¦´Â AWS Lambda·Î °£´Ù" ÀÔ´Ï´Ù.
¼¹ö¸®½ºÀÇ °³³äÀ» ¿¹Á¦·Ñ ÅëÇØ¼ ¾Ë¾Æº¸°í ÇÔ²² °í¹ÎÇØ¾ß ÇÒ ºñ¿ë ¹× ¸ð´ÏÅ͸µ ÇÑ°è ¹× Çѵµ¿¡ ´ëÇØ¼ ´Ù·ç¾ú½À´Ï´Ù.
¸ñÂ÷´Â ´ÙÀ½°ú °°ÀÌ 7°³ÀÇ Chapter ¿Í 2°³ÀÇ ºÎ·ÏÀ¸·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù.
°¢°¢ÀÇ ¼ÒÁ¦¸ñ°ú ¾î¶°ÇÑ ³»¿ë¿¡ ´ëÇØ ¼³¸íÇϰí ÀÖ´ÂÁö´Â ´ÙÀ½°ú °°½À´Ï´Ù.
1Àå ÁغñÇϱâ
1-1 AWS ¼¹ö¸®½º
1-2 °³¹ß ȯ°æ ±¸Ãà
1-3 Severless Framework ¼Ò°³
- AWS ¼¹ö¸®½º´Â ¹«¾ùÀ̰í, ¾î¶² ÀåÁ¡À» °¡Áö´ÂÁö, °³¹ß¿¡ ÇÊ¿äÇÑ È¯°æ¼³Á¤À» ¹æ¹ýÀ» ÀÍÈ÷°í °³¹ß¿¡ »ç¿ëÇÒ Nodejs¿Í TypeScript¸¦ °£´ÜÈ÷ ¼³¸íÇÏ°í ¼¹ö¸®½º µµ±¸ÀÎ Severless FrameworkÀÇ »ç¿ë¹ýÀ» ±âº»¿¹Á¦¸¦ ÅëÇØ ¼³¸íÇϰí ÀÖ½À´Ï´Ù.
2Àå Hello API
2-1 Hello API ÀÚ¹Ù½ºÅ©¸³Æ® ±¸Çö
2-2 Hello API ŸÀÔ½ºÅ©¸³Æ® ±¸Çö
2-3 »ó¿ë ¼ºñ½º °í·Á
2-4 ¸ð´ÏÅ͸µ
2-5 ºñ¿ë °è»ê
2-6 Á¤¸®
- AWS ¼¹ö¸®½º ¼ºñ½ºÀÎ API Gateway¿Í Lambda¸¦ »ç¿ëÇØ "Hello"¸¦ Ãâ·ÂÇÏ´Â °£´ÜÇÑ API±¸Çö¹æ¹ý°ú ÀÚ¹Ù½ºÅ©¸³Æ®¿Í ŸÀÔ½ºÅ©¸³Æ®¸¦ °¢°¢ ¼³¸íÇϰí, ŸÀÔ½ºÅ©¸³Æ®·Î °³¹ßÇÒ¶§ ÇÊ¿äÇÑ ÄÄÆÄÀÏ ¿É¼Ç ¼³Á¤°ú À¥ÆÑ¿¬µ¿¿¡ ´ëÇØ¼µµ °£·«È÷ ´Ù·ç°í ÀÖ½À´Ï´Ù. ¶ÇÇÑ ¹èÆ÷ÇÑ ½ºÅÃÀ» »ó¿ë¼ºñ½º·Î Ȱ¿ëÇÒ¶§ °ËÅäÇØ¾ß ÇÏ´Â Çѵµ °³³ä°ú ¼ºñ½º°¡ Á¤»óÀûÀ¸·Î µ¿ÀÛÇϰí ÀÖ´ÂÁö ¸ð´ÏÅ͸µ ¹× °æº¸ ¼³Á¤ ¹æ¹ý¿¡ ´ëÇØ¼µµ ¼³¸íÇϸç, ÇØ´ç ¼ºñ½º »ç¿ëÀÚÀÇ ¿äû ÆÐÅÏÀ» °¡Á¤ÇÏ°í ±×¿¡ ´ëÇÑ ºñ¿ëÀÌ ¾ó¸¶³ª ¹ß»ýÇÏ´ÂÁö °è»êÇÏ°í ºñ¿ë È¿¿ëÀ» À§ÇØ °ËÅäÇØ¾ß ÇÏ´Â ºÎºÐ¿¡ ´ëÇØ¼µµ ¼³¸íÇϰí ÀÖ½À´Ï´Ù.
3Àå »çÁø ÃÖÀûÈ ¼ºñ½º
3-1 ¼ºñ½º ¼Ò°³ ¹× ¼³°è
3-2 Lambda¿¡¼ ¿ÜºÎ ÇÁ·Î¼¼½º ½ÇÇà Áغñ
3-3 ù ¹øÂ° ½Ã½ºÅÛ ±¸Çö
3-4 µÎ ¹øÂ° ½Ã½ºÅÛ ±¸Çö: Public, Private, Bucket ºÐ¸®
3-5 ¼¼ ¹øÂ° ½Ã½ºÅÛ ±¸Çö: S3 À̺¥Æ®·Î ÃÖÀûÈ ¼öÇà
3-6 »ó¿ë ¼ºñ½º °í·Á
3-7 ¸ð´ÏÅ͸µ
3-8 ºñ¿ë °è»ê
3-9 Á¤¸®
- °í°´ÀÌ ¾÷·ÎµåÇÑ JPEG ÆÄÀÏÀÇ ¿ë·®À» ÁÙ¿äÁÖ´Â À¥ ¼ºñ½º¸¦ ¼¹ö¸®½º ½ºÅÃÀ» Ȱ¿ëÇÏ¿© °³¹ßÇØº¸°í, Lambda¿¡¼ ¿ÜºÎ ½ÇÇà ÆÄÀÏÀ» ½ÇÇàÇÏ´Â ¹æ¹ý°ú S3¸¦ »ç¿ëÇÏ¿© ÆÄÀÏÀ» ±³È¯ÇÏ´Â ¹æ¹ý, S3ÀÇ ÆÄÀÏÀ» CloudFormation ¼±¾ðÀ» ÅëÇØ ÇÒ´çÇÏ´Â ¹æ¹ý, ¶ÇÇÑ ±Û·Î¹ú ¼ºñ½º¸¦ À§ÇØ °í·ÁÇÒ Á¡¿¡ ´ëÇØ ¾Ë¾Æº¸°í ±×Áß¿¡¼ S3 Àü¼Û °¡¼ÓÈ ±â´ÉÀ» ¼Ò°³Çϸç, ÀÌ ¼ºñ½º ÀÎÇÁ¶ó¿¡¼ ¹ß»ýÇÏ´Â ºñ¿ëÀ» °è»êÇϰí ÁÙÀÌ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇϰí ÀÖ½À´Ï´Ù.
4Àå ºí·Î±× ¼ºñ½º
4-1 ¼ºñ½º ¼Ò°³ ¹× ¼³°è
4-2 ±âº» API ±¸Çö
4-3 DynamoDB ¿¬µ¿
4-4 MySQL ¿¬µ¿
4-5 SQLite ¿¬µ¿
4-6 ÀúÀå¼Ò ºñ±³
4-7 ÇÁ·±Æ®¿£µå ¿¬µ¿
4-8 S3¿Í CloudFront¸¦ »ç¿ëÇØ ¹èÆ÷
4-9 CloudFrontÀÇ ´ÙÁß ¿À¸®Áø »ç¿ë
4-10 API Gateway¿¡¼ À¥ ÆäÀÌÁö Á¦°ø
4-11 REST API »ç¿ë
4-12 ÀÎÁõ ±¸Çö
4-13 »ó¿ë ¼ºñ½º °í·Á
4-14 ¸ð´ÏÅ͸µ
4-15 ºñ¿ë °è»ê
4-16 Á¤¸®
- ±ÛÀ» ÀÛ¼ºÇÏ°í °Ô½ÃÇÏ´Â ºí·Î±× ¼ºñ½º¸¦ ¼¹ö¸®½º ½ºÅÃÀ» Ȱ¿ëÇÏ¿© °³¹ßÇØº¸°í, ÀÛ¼ºµÈ ±ÛÀÇ ÀúÀå¼Ò·Î DynamoDB, MySQL, SQLite¸¦ »ç¿ëÇÏ´Â ³»¿ëÀ» ¼³¸íÇϰí ÀÖ°í, °¢ ÀúÀå¼ÒÀÇ Æ¯¼º¿¡ ¸Â°Ô ¼¹ö¸®½º ½ºÅÃÀ» ¼³°èÇϰí Àå´ÜÁ¡À» Åä´ë·Î ÀûÇÕÇÑ ½Ã³ª¸®¿À¸¦ ¾Ë¾Æº¸¸ç, ¶ÇÇÑ ºí·Î±× ¼ºñ½º¸¦ À§ÇØ React ±â¹ÝÀÇ °£´ÜÇÑ ÇÁ·ÐÆ®¿£µå ÆäÀÌÁö¸¦ °³¹ßÇØº¸°í, À̸¦ API¿Í ÇÔ²² ¼ºñ½ºÇϱâ À§ÇØ À¥ ÆäÀÌÁö¸¦ S3¿Í CloudFront¸¦ »ç¿ëÇØ ¹èÆ÷ÇÏ´Â ¹æ¹ý°ú API Gateway¿¡¼ ÇÔ²² Á¦°øÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇϰí ÀÖ½À´Ï´Ù.
¸¶Áö¸·À¸·Î´Â API Gateway°¡ Á¦°øÇÏ´Â ±ÇÇѺο© ±â´ÉÀÎ Lambda ±ÇÇÑ ºÎ¿©ÀÚ¸¦ »ç¿ëÇØ ÀÎÁõµÈ »ç¿ëÀÚ¸¸ API¸¦ »ç¿ëÇϵµ·Ï ±¸¼ºÇÏ´Â ¹æ¹ýµµ ¼³¸íÇϰí ÀÖ½À´Ï´Ù.
5Àå Ãßõ ¼ºñ½º
5-1 ½Ã³ª¸®¿À
5-2 °³¹ß ȯ°æ ±¸Ãà
5-3 ½Ã½ºÅÛ ¼³°è
5-4 ÇнÀ ±¸Çö
5-5 Ãßõ API ±¸Çö
5-6 ¼ºñ½º API ±¸Çö
5-7 À¥ ÆäÀÌÁö ±¸Çö
5-8 CDN ¹èÆ÷
5-9 »ó¿ë ¼ºñ½º °í·Á
5-10 ¸ð´ÏÅ͸µ
5-11 ºñ¿ë °è»ê
- ±ÛÀ» ÃßõÇÏ´Â ¼ºñ½º¸¦ ¼¹ö¸®½º ½ºÅÃÀ» Ȱ¿ëÇÏ¿© °³¹ßÇØº¸°í, ±Û¸¶´Ù ¸ðµÎ °íÀ¯ÇÑ ½Äº°ÀÚ°¡ ÀÖ´Ù°í °¡Á¤Çϰí À̸¦ Word2vec ¶óÀ̺귯¸®¸¦ Ȱ¿ëÇØ ±Û A¸¦ ºÃÀ»°æ¿ì ±Û B¸¦ º¼ ¼ö ÀÖµµ·Ï ÃßõÇÏ´Â ¼ºñ½º¸¦ °³¹ßÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇϰí ÀÖ½À´Ï´Ù. Ãßõ¿¡ »ç¿ëÇÏ´Â ¶óÀ̺귯¸®´Â ´ëºÎºÐ ¿ë·®ÀÌ Å©°í Lambda¿¡ Äڵ带 ¾÷·Îµå ÇÏ´Â °ÍÀÌ ½±Áö ¾Ê±â¿¡ ÄÁÅ×ÀÌ³Ê À̹ÌÁö ±â¹ÝÀ¸·Î Lambda Äڵ带 ¾÷·Îµå ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼µµ ¼³¸íÇϰí ÀÖ½À´Ï´Ù.
6Àå äÆÃ
6-1 WebSocket API
6-2 ¿¡ÄÚ
6-3 äÆÃ ÀüÆÄ
6-4 ÁÖÁ¦-±¸µ¶-ÀüÆÄ
6-5 ÀÎÁõ
6-6 »ç¿ëÀÚ ÁöÁ¤ µµ¸ÞÀÎ
6-7 »ó¿ë ¼ºñ½º °í·Á
6-8 ¸ð´ÏÅ͸µ
6-9 ºñ¿ë °è»ê
6-10 Á¤¸®
- AWS API GatewayÀÇ ±â´ÉÀÎ WebSocket API¸¦ Ȱ¿ëÇØ °£´ÜÇÑ Ã¤ÆÃ ¼ºñ½º¸¦ °³¹ßÇØº¸°í, º¸³½ ¸Þ½ÃÁö¸¦ ±×´ë·Î µ¹·ÁÁÖ´Â ¿¡ÄÚ ¿¹Á¦, Á¢¼ÓÇÑ ¸ðµç »ç¶÷¿¡°Ô µ¿ÀÏÇÑ ¸Þ½ÃÁö¸¦ ÀüÆÄÇÏ´Â ¿¹Á¦, ƯÁ¤ÁÖÁ¦¸¦ ±¸µ¶ÇÑ ´ë»ó¿¡°Ô¸¸ ¸Þ½ÃÁö¸¦ ÀüÆÄÇÏ´Â ¿¹Á¦¸¦ »ìÆìº¸°í WebSocket API¿¡¼ Lambda ±ÇÇѺο©ÀÚ¸¦ »ç¿ëÇßÀ»¶§ ¾òÀ» ¼ö ÀÖ´Â ÀÌÁ¡°ú »ç¿ëÀÚ ÁöÁ¤ µµ¸ÞÀÎÀ» »ç¿ëÇßÀ» ¶§ ÁÖÀÇÇÒ Á¡¿¡ ´ëÇØ¼µµ ÇÔ²² ¼³¸íÇϰí ÀÖ½À´Ï´Ù.
7Àå °ÔÀÓ ¼¹ö
7-1 ¿Â¶óÀÎ ¹ì °ÔÀÓ
7-2 VPC
7-3 °ÔÀÓ ¼¹ö ±¸Çö
7-4 ¸ÅĪ ±¸Çö
7-5 °ÔÀÓ ±¸Çö
7-6 Å×½ºÆ®¿Í ¹èÆ÷
7-7 À¥ Ŭ¶óÀÌ¾ðÆ® ±¸Çö
7-8 »ó¿ë ¼ºñ½º °í·Á
7-9 ¸ð´ÏÅ͸µ
7-10 ºñ¿ë °è»ê
7-11 Á¤¸®
- WebSocket API¸¦ Ȱ¿ëÇØ °£´ÜÇÑ °ÔÀÓ ¼¹ö¸¦ LambdaÀ§¿¡ ±¸ÃàÇØº¸°í, Lambda VPC³»ÀÇ ElastiCache Redis¿¡ ¿¬°áÇÏ¸é¼ @connections ¸í·ÉÀ» »ç¿ëÇϱâ À§ÇÑ VPC ±¸Ãà ¹æ¹ýÀ» ¾Ë¾Æº¸°í, Lambda À§¿¡ °£´ÜÇÑ ¾×ÅÍ ¸ðµ¨À» ±¸ÇöÇØ ½Ç½Ã°£ Åë½ÅÀÌ °¡´ÉÇÑ °ÔÀÓ ¼¹ö¸¦ ±¸ÇöÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇϰí ÀÖ½À´Ï´Ù.
ºÎ·Ï A µµ¸ÞÀÎ ±¸ÀÔ
A-1 Route53¿¡¼ µµ¸ÞÀÎ ±¸ÀÔ
A-2 Ÿ»ç µµ¸ÞÀÎ ¿¬°á
A-3 µµ¸ÞÀÎ ·¹ÄÚµå ¼¼Æ® Ãß°¡
A-4 ÀÎÁõ¼ ¹ß±Þ
- Route53ÀÇ µµ¸ÞÀÎ ±¸ÀÔ ±â´ÉÀ» »ç¿ëÇÏ¿© µµ¸ÞÀÎÀ» µî·ÏÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇϰí ÀÖ½À´Ï´Ù.
ºÎ·Ï B ±¸±Û OAuth ±¸¼º
B-1 ÇÁ·ÎÁ§Æ® »ý¼º
B-2 µ¿ÀÇ È¸é ±¸¼º
B-3 Ŭ¶óÀÌ¾ðÆ® ID »ý¼º
- ±¸±Û OAuth¸¦ ±¸¼ºÇϱâ À§ÇØ ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÏ°í µ¿ÀÇ È¸éÀ» ±¸¼ºÇÑ ÈÄ Å¬¶óÀÌ¾ðÆ® ID¿Í ۸¦ »ý¼ºÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇϰí ÀÖ½À´Ï´Ù.
AWS Lambda¶ó´Â À̺¥Æ® ±â¹Ý ¼¹ö¸®½º ÄÄÇ»ÆÃ Ç÷§ÆûÀ» ¿©·¯ ¿¹Á¦¸¦ ÅëÇØ¼ ¼³°è, °³¹ß, ¹èÆ÷ ¹× ¸ð´ÏÅ͸µ ÁöÇ¥¿Í ºñ¿ë°è»ê±îÁö Àü¹ÝÀûÀ¸·Î ¸¹Àº°Í À» ¹è¿ï ¼ö ÀÖ´Â ¾ÆÁÖ ÈǸ¢ÇÑ ¼ÀûÀÌ¿´½À´Ï´Ù. React¸¦ Ȱ¿ëÇÑ ÇÁ·ÐÆ®¿£µå À¥¼ÒÄÏÀ» Ȱ¿ëÇÑ Ã¤ÆÃ°ú °ÔÀÓ¼¹ö ºÎ·ÏÀÇ ±¸±Û OAuth ±îÁö À¥ °³¹ßÀÇ ½ÃÀÛ°ú ³¡À» ´Ù ¼³¸íÇϰí ÀÖ¾î¼ ¸¸Á·½º·¯¿î ³»¿ëÀÌ ¸¹¾Ò½À´Ï´Ù.
YES24 ¸®ºä¾îŬ·´ ¼Æò´Ü ÀÚ°ÝÀ¸·Î ÀÛ¼ºÇÑ ¸®ºäÀÔ´Ï´Ù.