{"id":39556,"date":"2023-08-12T14:48:50","date_gmt":"2023-08-12T05:48:50","guid":{"rendered":"https:\/\/m9js.shop\/blog\/?p=39556"},"modified":"2023-08-12T14:48:50","modified_gmt":"2023-08-12T05:48:50","slug":"aws-lambda-and-backend-services-building-and-deploying-serverless-architectures","status":"publish","type":"post","link":"https:\/\/m9js.shop\/blog\/development\/aws-lambda-and-backend-services-building-and-deploying-serverless-architectures","title":{"rendered":"AWS Lambda\uc640 \ubc31\uc5d4\ub4dc \uc11c\ube44\uc2a4: \uc11c\ubc84\ub9ac\uc2a4 \uc544\ud0a4\ud14d\ucc98\uc758 \uad6c\ucd95\uacfc \ubc30\ud3ec"},"content":{"rendered":"
<\/p>\n
AWS Lambda\ub294 \uc11c\ubc84\ub9ac\uc2a4 \uc544\ud0a4\ud14d\ucc98\ub97c \uad6c\ud604\ud558\ub294 \ub370 \ud544\uc218\uc801\uc778 \ud074\ub77c\uc6b0\ub4dc \ucef4\ud4e8\ud305 \uc11c\ube44\uc2a4\uc785\ub2c8\ub2e4. \uc11c\ubc84\ub9ac\uc2a4 \uc544\ud0a4\ud14d\ucc98\ub294 \uc11c\ubc84 \uc778\uc2a4\ud134\uc2a4\ub97c \uc9c1\uc811 \uad00\ub9ac\ud558\uc9c0 \uc54a\uace0 \ud544\uc694\ud55c \uae30\ub2a5\uc744 \ud074\ub77c\uc6b0\ub4dc \uc11c\ube44\uc2a4\uc758 \ud568\uc218\ub85c \uad6c\ud604\ud558\ub294 \ubc29\uc2dd\uc744 \ub9d0\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \ubc29\uc2dd\uc740 \uac1c\ubc1c\uc790\uac00 \uc778\ud504\ub77c \uad00\ub9ac\uc5d0 \ub300\ud55c \ubd80\ub2f4\uc744 \uc904\uc774\uace0, \ube60\ub974\uace0 \uc548\uc815\uc801\uc778 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uad6c\ud604\ud560 \uc218 \uc788\ub3c4\ub85d \ub3c4\uc640\uc90d\ub2c8\ub2e4.<\/p>\n
\uc774 \uae00\uc5d0\uc11c\ub294 AWS Lambda\uc640 \ubc31\uc5d4\ub4dc \uc11c\ube44\uc2a4\ub97c \uc774\uc6a9\ud558\uc5ec \uc11c\ubc84\ub9ac\uc2a4 \uc544\ud0a4\ud14d\ucc98\ub97c \uad6c\ucd95\ud558\uace0 \ubc30\ud3ec\ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud574 \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n
AWS Lambda\ub294 \ud074\ub77c\uc6b0\ub4dc \ucef4\ud4e8\ud305 \uc11c\ube44\uc2a4 \uc911 \ud558\ub098\ub85c, \uc11c\ubc84 \uc778\uc2a4\ud134\uc2a4\ub97c \uc9c1\uc811 \uad00\ub9ac\ud558\uc9c0 \uc54a\uace0 \ud544\uc694\ud55c \uae30\ub2a5\uc744 \ud568\uc218\ub85c \uad6c\ud604\ud558\ub294 \ubc29\uc2dd\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \uc774\ub294 \uac1c\ubc1c\uc790\uac00 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \ud544\uc694\ud55c \uae30\ub2a5\uc744 \uc989\uc2dc \uad6c\ud604\ud560 \uc218 \uc788\ub2e4\ub294 \uc7a5\uc810\uc774 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
AWS Lambda\ub294 \ub2e4\uc591\ud55c \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4\ub97c \uc9c0\uc6d0\ud558\uba70, \ucf54\ub4dc\ub97c \uc2e4\ud589\ud558\uae30 \uc704\ud55c \uc778\ud504\ub77c \uad00\ub9ac\ub098 \uc11c\ubc84 \uad00\ub9ac\ub294 \ubaa8\ub450 AWS\uc5d0\uc11c \ucc98\ub9ac\ud569\ub2c8\ub2e4. \uc774\ub85c \uc778\ud574 \uac1c\ubc1c\uc790\ub294 \ud568\uc218\ub97c \uc791\uc131\ud558\ub294 \ub370 \uc9d1\uc911\ud560 \uc218 \uc788\uc73c\uba70, AWS Lambda\uac00 \ucf54\ub4dc\ub97c \uc2e4\ud589\ud558\ub294 \ub370 \ud544\uc694\ud55c \ubaa8\ub4e0 \uc790\uc6d0\uc744 \uc790\ub3d9\uc73c\ub85c \ud560\ub2f9\ud569\ub2c8\ub2e4.<\/p>\n
\uc11c\ubc84\ub9ac\uc2a4 \uc544\ud0a4\ud14d\ucc98\ub294 \uc11c\ubc84 \uc778\uc2a4\ud134\uc2a4\ub97c \uc9c1\uc811 \uad00\ub9ac\ud558\uc9c0 \uc54a\uace0 \ud544\uc694\ud55c \uae30\ub2a5\uc744 \ud568\uc218\ub85c \uad6c\ud604\ud558\ub294 \ubc29\uc2dd\uc785\ub2c8\ub2e4. \uc774\ub97c \uc704\ud574\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \uad6c\uc131 \uc694\uc18c\uac00 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n
\uc11c\ubc84\ub9ac\uc2a4 \uc544\ud0a4\ud14d\ucc98\uc5d0\uc11c \uae30\ub2a5\uc740 \ud568\uc218\ub85c \uad6c\ud604\ub429\ub2c8\ub2e4. \ud568\uc218\ub294 \ud544\uc694\ud55c \uae30\ub2a5\uc744 \uc218\ud589\ud558\ub294 \ucf54\ub4dc \ube14\ub85d\uc73c\ub85c, AWS Lambda\uc5d0\uc11c \uc2e4\ud589\ub429\ub2c8\ub2e4. \uac1c\ubc1c\uc790\ub294 \ud568\uc218\ub97c \uc791\uc131\ud558\uace0 \ubc30\ud3ec\ud560 \uc218 \uc788\uc73c\uba70, \ud544\uc694\uc5d0 \ub530\ub77c \ud568\uc218\ub97c \uc218\uc815\ud558\uace0 \uc5c5\ub370\uc774\ud2b8\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
\uc11c\ubc84\ub9ac\uc2a4 \uc544\ud0a4\ud14d\ucc98\uc5d0\uc11c \uc774\ubca4\ud2b8 \uc18c\uc2a4\ub294 \ud568\uc218\ub97c \uc2e4\ud589\ud558\ub294 \ud2b8\ub9ac\uac70 \uc5ed\ud560\uc744 \ud569\ub2c8\ub2e4. \uc774\ubca4\ud2b8 \uc18c\uc2a4\ub294 AWS \uc11c\ube44\uc2a4 \uc911 \ud558\ub098\uc5d0\uc11c \ubc1c\uc0dd\ud558\ub294 \uc774\ubca4\ud2b8\ub97c \uac10\uc9c0\ud558\uace0, \uc774\ub97c \ud568\uc218\ub85c \uc804\ub2ec\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, Amazon S3 \ubc84\ud0b7\uc5d0 \ud30c\uc77c\uc774 \uc5c5\ub85c\ub4dc\ub418\uba74 \uc774\ubca4\ud2b8 \uc18c\uc2a4\uac00 \uc774\ub97c \uac10\uc9c0\ud558\uace0 \ud574\ub2f9 \ud568\uc218\ub97c \uc2e4\ud589\ud569\ub2c8\ub2e4.<\/p>\n
\uc11c\ubc84\ub9ac\uc2a4 \uc544\ud0a4\ud14d\ucc98\uc5d0\uc11c \ucef4\ud4e8\ud305\uc740 \ud568\uc218\ub97c \uc2e4\ud589\ud558\ub294 \ub370 \uc0ac\uc6a9\ub418\ub294 \uc218\ucd08\uc5d0\uc11c \uba87 \ubd84\uae4c\uc9c0\uc758 \ucef4\ud4e8\ud305 \ub9ac\uc18c\uc2a4\ub97c \ub9d0\ud569\ub2c8\ub2e4. \uc774\ub294 AWS Lambda\uc5d0\uc11c \uc790\ub3d9\uc73c\ub85c \uad00\ub9ac\ub418\uba70, \ud568\uc218\uac00 \uc2e4\ud589\ub420 \ub54c \ud544\uc694\ud55c \ubaa8\ub4e0 \ucef4\ud4e8\ud305 \ub9ac\uc18c\uc2a4\ub97c \ud560\ub2f9\ud569\ub2c8\ub2e4.<\/p>\n
\uc11c\ubc84\ub9ac\uc2a4 \uc544\ud0a4\ud14d\ucc98\uc5d0\uc11c \uc800\uc7a5\uc18c\ub294 \ud568\uc218\uac00 \uc0ac\uc6a9\ud558\ub294 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \uc774\ub294 Amazon S3, Amazon DynamoDB, Amazon Aurora \ub4f1\uc758 AWS \uc11c\ube44\uc2a4\ub97c \uc0ac\uc6a9\ud558\uc5ec \uad6c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
\ubc31\uc5d4\ub4dc \uc11c\ube44\uc2a4\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c \ud544\uc694\ud55c \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\uace0 \uad00\ub9ac\ud558\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc11c\ube44\uc2a4\uc640 AWS Lambda\ub97c \ud1b5\ud569\ud558\uc5ec \uc11c\ubc84\ub9ac\uc2a4 \uc544\ud0a4\ud14d\ucc98\ub97c \uad6c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
Amazon API Gateway\ub294 HTTP API\ub97c \uc0dd\uc131\ud558\uace0 \uad00\ub9ac\ud558\ub294 \uc11c\ube44\uc2a4\uc785\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c \ud544\uc694\ud55c \ubc31\uc5d4\ub4dc \uc11c\ube44\uc2a4\ub97c \ub178\ucd9c\ud558\uace0, \uc774\ub97c AWS Lambda\uc640 \ud1b5\ud569\ud558\uc5ec \uc11c\ubc84\ub9ac\uc2a4 \uc544\ud0a4\ud14d\ucc98\ub97c \uad6c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uc0ac\uc6a9\uc790\uac00 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uc694\uccad\ud558\uba74 Amazon API Gateway\uac00 \ud574\ub2f9 \uc694\uccad\uc744 AWS Lambda \ud568\uc218\ub85c \uc804\ub2ec\ud558\uace0, \uc774\ub97c \ud1b5\ud574 \ubc31\uc5d4\ub4dc \uc11c\ube44\uc2a4\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uac80\uc0c9\ud569\ub2c8\ub2e4.<\/p>\n
AWS AppSync\ub294 \ud074\ub77c\uc6b0\ub4dc \uae30\ubc18 \ub370\uc774\ud130 \uc18c\uc2a4\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uc27d\uac8c \uac00\uc838\uc624\uace0 \uc5c5\ub370\uc774\ud2b8\ud560 \uc218 \uc788\ub294 \ud50c\ub7ab\ud3fc\uc785\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \uc0ac\uc6a9\uc790\uac00 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uc694\uccad\ud558\uba74 AWS AppSync\uac00 \ud574\ub2f9 \uc694\uccad\uc744 AWS Lambda \ud568\uc218\ub85c \uc804\ub2ec\ud558\uace0, \uc774\ub97c \ud1b5\ud574 \ubc31\uc5d4\ub4dc \uc11c\ube44\uc2a4\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uac80\uc0c9\ud569\ub2c8\ub2e4.<\/p>\n
\uc11c\ubc84\ub9ac\uc2a4 \uc544\ud0a4\ud14d\ucc98\ub97c \ubc30\ud3ec\ud558\uae30 \uc704\ud574\uc11c\ub294 AWS Lambda \ud568\uc218\ub97c \uc791\uc131\ud558\uace0, \uc774\ub97c Amazon API Gateway \ub610\ub294 AWS AppSync\uc640 \ud1b5\ud569\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n
AWS Lambda \ud568\uc218\ub97c \uc791\uc131\ud558\ub824\uba74 \uba3c\uc800 \ud568\uc218 \ucf54\ub4dc\ub97c \uc791\uc131\ud574\uc57c \ud569\ub2c8\ub2e4. \uc774 \ucf54\ub4dc\ub294 \ud544\uc694\ud55c \uae30\ub2a5\uc744 \uad6c\ud604\ud558\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. AWS Lambda\ub294 Node.js, Python, Java, Go \ub4f1 \ub2e4\uc591\ud55c \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4\ub97c \uc9c0\uc6d0\ud558\uba70, \uc774 \uc911\uc5d0\uc11c \uc120\ud0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n
\ub2e4\uc74c\uc740 Node.js\ub97c \uc0ac\uc6a9\ud558\uc5ec \uac04\ub2e8\ud55c \ud568\uc218\ub97c \uc791\uc131\ud558\ub294 \uc608\uc785\ub2c8\ub2e4.<\/p>\n
exports.handler = async (event) => {\n console.log('Event: ', event);\n const response = {\n statusCode: 200,\n body: JSON.stringify('Hello from Lambda!'),\n };\n return response;\n};<\/code><\/pre>\n\uc774 \ucf54\ub4dc\ub294 Lambda \ud568\uc218\ub97c \uc791\uc131\ud558\uace0, \uc774 \ud568\uc218\uac00 \ud638\ucd9c\ub418\uba74 "Hello from Lambda!"\ub77c\ub294 \uba54\uc2dc\uc9c0\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4.<\/p>\n
Amazon API Gateway\uc640 \ud1b5\ud569<\/h3>\n
Lambda \ud568\uc218\ub97c \uc791\uc131\ud55c \ud6c4\uc5d0\ub294 Amazon API Gateway\uc640 \ud1b5\ud569\ud574\uc57c \ud569\ub2c8\ub2e4. \uc774\ub97c \uc704\ud574\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ub2e8\uacc4\ub97c \uc218\ud589\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n
\n- Amazon API Gateway \ucf58\uc194\uc5d0\uc11c \uc0c8 API\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/li>\n
- \uc0c8 \ub9ac\uc18c\uc2a4\ub97c \ucd94\uac00\ud558\uace0, \uc774 \ub9ac\uc18c\uc2a4\uc5d0 \ub300\ud55c \uba54\uc11c\ub4dc\ub97c \uc815\uc758\ud569\ub2c8\ub2e4.<\/li>\n
- \uba54\uc11c\ub4dc \ud1b5\ud569 \uc720\ud615\uc744 AWS Lambda\ub85c \uc124\uc815\ud558\uace0, Lambda \ud568\uc218\uc640 \ud1b5\ud569\ud569\ub2c8\ub2e4.<\/li>\n
- API\ub97c \ubc30\ud3ec\ud558\uace0, \uc5d4\ub4dc\ud3ec\uc778\ud2b8 URL\uc744 \uac00\uc838\uc635\ub2c8\ub2e4.<\/li>\n<\/ol>\n
AWS AppSync\uc640 \ud1b5\ud569<\/h3>\n
AWS AppSync\uc640 Lambda \ud568\uc218\ub97c \ud1b5\ud569\ud558\ub824\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \ub2e8\uacc4\ub97c \uc218\ud589\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n
\n- AWS AppSync \ucf58\uc194\uc5d0\uc11c \uc0c8 API\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/li>\n
- \uc0c8 \ub370\uc774\ud130 \uc18c\uc2a4\ub97c \ucd94\uac00\ud558\uace0, \uc774 \ub370\uc774\ud130 \uc18c\uc2a4\uc5d0 \ub300\ud55c GraphQL \uc2a4\ud0a4\ub9c8\ub97c \uc815\uc758\ud569\ub2c8\ub2e4.<\/li>\n
- Lambda \ud568\uc218\ub97c \uc815\uc758\ud558\uace0, \uc774 \ud568\uc218\ub97c AWS AppSync \ub370\uc774\ud130 \uc18c\uc2a4\uc640 \ud1b5\ud569\ud569\ub2c8\ub2e4.<\/li>\n
- API\ub97c \ubc30\ud3ec\ud558\uace0, \uc5d4\ub4dc\ud3ec\uc778\ud2b8 URL\uc744 \uac00\uc838\uc635\ub2c8\ub2e4.<\/li>\n<\/ol>\n
\uacb0\ub860<\/h2>\n
AWS Lambda\uc640 \ubc31\uc5d4\ub4dc \uc11c\ube44\uc2a4\ub97c \uc774\uc6a9\ud558\uc5ec \uc11c\ubc84\ub9ac\uc2a4 \uc544\ud0a4\ud14d\ucc98\ub97c \uad6c\ucd95\ud558\uace0 \ubc30\ud3ec\ud558\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\uc558\uc2b5\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \uac1c\ubc1c\uc790\ub294 \uc778\ud504\ub77c \uad00\ub9ac\uc5d0 \ub300\ud55c \ubd80\ub2f4\uc744 \uc904\uc774\uace0, \ube60\ub974\uace0 \uc548\uc815\uc801\uc778 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uad6c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. AWS Lambda\uc640 \ub2e4\uc591\ud55c AWS \uc11c\ube44\uc2a4\ub97c \ud1b5\ud569\ud558\uc5ec \ub354\uc6b1 \uac15\ub825\ud55c \uc11c\ubc84\ub9ac\uc2a4 \uc544\ud0a4\ud14d\ucc98\ub97c \uad6c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"
AWS Lambda\ub97c \uc774\uc6a9\ud55c \uc11c\ubc84\ub9ac\uc2a4 \uc544\ud0a4\ud14d\ucc98 \uad6c\ucd95 \ubc0f \ubc30\ud3ec \ubc29\ubc95\uc5d0 \ub300\ud574 \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n","protected":false},"author":1,"featured_media":33704,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1957],"tags":[200,2119,2162,2076,2468,6196,3414],"class_list":["post-39556","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","tag-amazon","tag-api","tag-event","tag-from","tag-gateway","tag-6196","tag-3414"],"acf":[],"_links":{"self":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts\/39556","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/comments?post=39556"}],"version-history":[{"count":1,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts\/39556\/revisions"}],"predecessor-version":[{"id":39602,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts\/39556\/revisions\/39602"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/media\/33704"}],"wp:attachment":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/media?parent=39556"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/categories?post=39556"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/tags?post=39556"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}