Serverless - low-hill/Knowledge GitHub Wiki
์๋ฒ๋ฆฌ์ค๋?
์๋ฒ๋ฆฌ์ค๋ ๊ฐ๋ฐ์๊ฐ ์๋ฒ๋ฅผ ๊ด๋ฆฌํ ํ์ ์์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋ํ๊ณ ์คํํ ์ ์๋ ํด๋ผ์ฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๋ฐ ์คํ ๋ชจ๋ธ์ด๋ค. ์๋ฒ๋ฆฌ์ค ์ํคํ ์ฒ๋ ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํ ํ์ ์์ด ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์๋น์ค๋ฅผ ๊ตฌ์ถํ๊ณ ์คํํ๋ ๋ฐฉ์์ด๋ค. ์๋ฒ๋ฆฌ์ค ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ ์ ํด ์ฉ๋์ ๋ํ ๋น์ฉ์ ์ง๋ถํ์ง ์๋๋ค. ๋น์ฉ ์ฒญ๊ตฌ๋ ์ฝ๋ ์คํ์ ์์ํ๋ฉด ์์๋๊ณ ์คํ์ ๋ฉ์ถ๋ฉด ์ข ๋ฃ๋๊ณ , ์ผ๋ฐ์ ์ผ๋ก ์คํ ์๊ฐ ๋ฐ ์๊ตฌ๋๋ ๋ฆฌ์์ค๋ฅผ ๋ฐํ์ผ๋ก ๊ฐ๊ฒฉ์ด ์ฑ ์ ๋๋ค.
์๋ฒ๋ฆฌ์ค ์๋น์ค ์ ํ
- functions / code execution (Lambda)
- APIs (API Gateway)
- Databases (Aurora DB, DynamoDB)
- Object storage (S3)
- orchestration (CloudWatch events, CICD with CodePipeline, CodeBuild, AI, SageMaker)
์๋ฒ๋ฆฌ์ค ์ฅ์
- ์ค์ ์ฌ์ฉ๋์ ๋ํด์๋ง ๋น์ฉ์ด ์ฒญ๊ตฌ๋๋ฏ๋ก ๊ฒฝ์ ์
- ์ธํ๋ผ ๊ด๋ฆฌ๊ฐ ์๋ ์ฝ๋ ์์ฑ์ ์ง์คํ ์ ์์ด ๊ฐ๋ฐ์ ์์ฐ์ฑ ํฅ์
- ๊ฐ๋จํ ํจํค์ง ๋ฐ ๋ฐฐํฌ
์๋ฒ๋ฆฌ์ค ๋จ์
- ์คํ๋๋ ํจ์๊ฐ ํธ์ถ๋๊ธฐ ์ํด ์ปจํ ์ด๋๊ฐ ์คํ๋๋ ๋๊ธฐ ์๊ฐ(Cold-Start)์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ธ๋ฐ ๋๋ฆฌ๋ค. ๋น ๋ฅธ ์๋ต์ด ํ์ํ ์ ํ์ ๊ฒฝ์ฐ ์๋ฒ๋ฆฌ์ค๋ ์ข์ ์ ํ์ด ์๋ ์ ์๋ค.
AWS Lambda
AWS Lambda๋ ์๋ฒ๋ฆฌ์ค ์ปดํจํ ์๋น์ค๋ก, ์ฌ์ฉ์๊ฐ ์๋ฒ๋ฅผ ํ๋ก๋น์ ๋ํ๊ฑฐ๋ ๊ด๋ฆฌํ ํ์ ์์ด ์ฝ๋๋ฅผ ์คํํ ์ ์๋๋ก ํด์ค๋ค. Lambda ํจ์๋ ์ฌ์ฉ์๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ์คํํ๊ณ , ํ์ํ ๋ฆฌ์์ค๋ฅผ ์๋์ผ๋ก ํ ๋นํ๋ฉฐ, ์คํ ์๊ฐ์ ๋ฐ๋ผ ๊ณผ๊ธ๋๋ค. ์ด ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ๋ถ ๋๋ ์ ์ฒด๋ฅผ ํด๋ผ์ฐ๋์์ ์คํํ ์ ์์ด ๊ด๋ฆฌ ์์ ์ ์ต์ํํ๊ณ ํ์ฅ์ฑ๊ณผ ์ ์ฐ์ฑ์ ๋์ผ ์ ์๋ค.
Lambda Layer
Lambda Layer๋ฅผ ํตํ ์ฝ๋ ๋ฐ ๊ตฌ์ฑ ๊ณต์ ๋ Lambda ํจ์์ [๋ณต์ก์ฑ์ ์ค์ด๋] ๋ฐ ์ค์ํ ์์๊ฐ ๋ ์ ์๋ค.
AWS Lambda๋ ์ธํ๋ผ ๊ตฌ์ถ ์์ด ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ถํ ์ ์๋ ๊ฐ๋ ฅํ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ค. ๊ทธ๋ฌ๋ Lambda ํจ์๋ฅผ ๋ฐฐํฌํ๋ ๊ณผ์ ์ ์ฝ๋ ํ์ผ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ณต์ฌํด์ผ ํ๋ฏ๋ก ๋ง์ ๋ฆฌ์์ค์ ์๊ฐ์ด ์์๋ ์ ์๋ค. ์ด๋ฌํ ๋ฐฉ์์ ํนํ ๋ณต์ก์ฑ์ ๊ฐ์ง ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์
์ ์์
ํ ๋ ์ฝ๋ ์ค๋ณต์ ์ด๋ํ ์ ์์ต๋๋ค. AWS Lambda Layer๋ ๊ณตํต ์์๋ฅผ ์์ฑํ์ฌ Lambda ํจ์์ ํตํฉํ ์ ์๊ฒ ํจ์ผ๋ก์จ ๋ณต์ก์ฑ์ ์ค์
๋๋ค.
Lambda Step Function
multi-page user workflows์์ state machines์ ์์ฃผ ๋ฑ์ฅํ๋ ๊ธฐ๋ฅ์ผ๋ก, ํน์ ์์๋ก ์๋ํ๊ณ ๊ตฌ์ฑ ๊ฐ๋ฅํ ์ถ๋ ฅ์ ์ ๊ณตํด์ผ ํ๋ค. AWS๋ ์ด๋ฌํ ์๊ตฌ๋ฅผ ๊ณตํต ํจํด์ผ๋ก ์ธ์ํ๊ณ Step Functions๋ฅผ ์๋ฃจ์
์ผ๋ก ์ ์ํ๋ค.
AWS Step Functions๋ฅผ ์ฌ์ฉํ๋ฉด ๊ตฌ์ฑ ๊ฐ๋ฅํ state machines์ ํตํด Lambda ํจ์์ ๋ฐฐํฌ ๋ฐ ์ฌ์ฉ์ ๊ด๋ฆฌํ ์ ์๋ค. ์ด๋ฅผ ํตํด ๊ฐ ๊ตฌ์ฑ ์์๊ฐ ๋
๋ฆฝ์ ์ผ๋ก ๋์ํ๋ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์
์์ ์ ํต์ ์ธ ๋ฌธ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์
์ํ๋ฅผ ๊ด๋ฆฌํ ์ ์๋ค. AWS ๋์๋ณด๋์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ํ์ฉํ๋ฉด ํธ๋ฆฌํ ํจ์ ๋์์ด๋๋ฅผ ์ฌ์ฉํ์ฌ Step Function ๊ธฐ๋ฐ ์ํ ๋จธ์ ์ ์ฝ๊ฒ ๊ตฌ์ฑํ๊ฑฐ๋, Amazon States Language๋ฅผ ํตํด ์ฌ๋ ์๋ ์ค์ ๋ ๊ฐ๋ฅํ๋ค.
Event-driven solutions
AWS Lambda๋ ์จ๋๋งจ๋ ์ธํ๋ผ๋ก, ์ด๋ฒคํธ ๊ธฐ๋ฐ ์ํคํ ์ฒ๋ก ์๋ํ๋ค. ์ด๋ฌํ ์ด๋ฒคํธ๋ ๋ค์ํ ๊ณณ์์ ๋ฐ์ํ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ์์คํ ํ๋ ์๋ฆผ์ด๋ ๋ฐ์ดํฐ ์ ์ฅ์์ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค. ์๋์ ๊ฐ์ด ์ด๋ฒคํธ ํธ๋ฆฌ๊ฑฐ๋ฅผ Data-driven ์ด๋ฒคํธ, ์๋ฆผ ๊ธฐ๋ฐ ์ด๋ฒคํธ, ๊ทธ๋ฆฌ๊ณ ๋ช ํํ ๋ฒ์ฃผ์ ์ํ์ง ์๋ ๊ธฐํ ์ ํ์ ์ด๋ฒคํธ๋ก ๋๋์ด ๊ธฐ์ ํ๋ค.
Data-driven event source
Data-driven event๋ ์ฃผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ด์ํ๋ ์์ค์์ ์ ๊ณต๋๊ณ , ์ด ๋ฐ์ดํฐ๋ ์ ํ๋ฆฌ์ผ์ด์
parameters์ ์บ์๋ ์งํฉ, ์
๋ฐ์ดํธ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ S3์ ์ ํ์ผ์ด ๋ ์ ์๋ค. ์ด๋ฌํ ์๋น์ค๋ค์ ํตํด ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๋ ๋ชจ๋ ๊ฒ์ AWS Lambda๋ฅผ ์ํ ํธ๋ฆฌ๊ฑฐ ์ด๋ฒคํธ๋ฅผ ์์ฑํ ์ ์๋ค.
๋ฐ์ดํฐ ์คํ ์ด๋ฅผ ์ ์ ํ๊ฒ ์ ์ฉํ๋ฉด ์ฌ์ฉ์ ํ๋์ ์ค์๊ฐ์ผ๋ก ๋์ํ ์ ์๊ธฐ์ ์๋์์๋ Lambda์ ํตํฉ๋๋ ๋ค์ฏ ๊ฐ์ง ์ธ๊ธฐ ์๋ ๋ฐ์ดํฐ ๊ธฐ๋ฐ ์ด๋ฒคํธ ์์ค๋ฅผ ๋ค๋ฃฌ๋ค.
1. Amazon RDS
์ฒซ ๋ฒ์งธ๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋น์ค์ธ Amazon RDS์ด๋ค. ์ด ์ด๋ฒคํธ ์์ค๋ Amazon RDS์ ํธ์คํ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ๋์ ๋ฐ์ํฉ๋๋ค. RDS ์๋น์ค๋ Simple Notification Service(SNS)์ ์๋ฆผ์ ์์ฑํ๊ณ , ์ด๋ฅผ ์ฌ์ฉ์ ์ง์ AWS Lambda ํจ์๋ฅผ ํธ์ถํ๋๋ก ๊ตฌ์ฑํ ์ ์๋ค. ์ด๋ฅผ ํตํด ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ๋์ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ์๊ฐ ์ง์ ํ ์ํฌํ๋ก์ฐ๋ฅผ ์์ฑํ ์ ์๋ค.
2. Amazon DynamoDB
Amazon DynamoDB๋ ๋ฐ์ดํฐ ํ๋์ ๊ธฐ๋ฐํ์ฌ AWS Lambda ์ด๋ฒคํธ๋ฅผ ์์ฑํ ์ ์๋ NoSQL ๊ธฐ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ์ ๊ณตํ๋ค. ์ด ํ๋์ DynamoDB Streams์ ์บก์ฒ๋๋ฉฐ, ์ฌ๊ธฐ์๋ DynamoDB ํ ์ด๋ธ์ item-level์์ ์ ๊ณต๋๋ ์์ ์ฌํญ์ ์๊ฐ ์์ ์ํ์ค๊ฐ ํ์๋๋ค. ์ด ์ ๋ณด๋ ์ต๋ 24์๊ฐ ๋์ ๋ก๊ทธ์ ์ถ๊ฐ๋ก ์ ์ฅ๋์ด ๋ฐ์ดํฐ์ transition state๋ฅผ ์บก์ฒํ ์ ์๋ค. DynamoDB Streams์ AWS Lambda๋ฅผ ์ฐ๊ฒฐํ์ฌ NoSQL ๊ธฐ๋ฐ ๋ฐ์ดํฐ์ ํ๋์ ๋ฐ๋ผ ๋์ ์ธ ์ํฌํ๋ก์ฐ๋ฅผ ์์ฑํ ์ ์๋ค.
3. Amazon S3
Amazon Simple Storage Service๋ ๋ชจ๋ ์์ค์ ์น ํธ๋ํฝ์ ์ฒ๋ฆฌํ ์ ์๋ ํ์ฅ ๊ฐ๋ฅํ ์คํ ๋ฆฌ์ง ์ ๊ทผ ๋ฐฉ์์ ์ ๊ณตํ๋ค. Amazon S3๋ ํน์ S3 ๋ฒํท ๋ด์์ ๋ฆฌ์์ค ์์ฑ ๋ฐ ์ญ์ ์ ์ด๋ฒคํธ๋ฅผ ์์ฑํ์ฌ AWS Lambda์ ๋์ ์ผ๋ก ํตํฉํ ์ ์๋ค. ์ด๋ฅผ ํตํด ๋น๋์ค ํธ๋์ค์ฝ๋ ๋ฐ ๋ก๊ทธ ๋ณํ๊ธฐ์ ๊ฐ์ ๋ณต์กํ ํ์ผ ๊ด๋ฆฌ flow๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
4. Amazon Kinesis Data Streams
์ด๋น ์์ฒ ๊ฐ์ ์์ค์์ ๊ธฐ๊ฐ๋ฐ์ดํธ์ ๋ฐ์ดํฐ๋ฅผ ์บก์ฒํด์ผ ํ๋ ๊ฒฝ์ฐ Amazon Kinesis Data Streams(Amazon KDS)์ ๊ฐ์ ๊ณ ์ฉ๋ ์ค์๊ฐ ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. Amazon KDS์ ๋์ ํ์ฅ์ฑ์ ์ฌ์ฉ์ ํ๋ ๋ฐ ๊ธฐํ ํ๋ ์คํธ๋ฆผ์ ๋ํ ์ค์๊ฐ ๋ถ์์ ๊ฐ๋ฅํ๊ฒ ํ์ฌ, ๋ฐ๋ฆฌ์ด ๋จ์๋ก ์์ง๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ์ฌ ๋ค์ํ ๋์๋ณด๋, ์ฌ๊ธฐ ํ์ง ์์คํ ๋ฑ์ผ๋ก ๋ถ์ฐํ ์ ์์ต๋๋ค. AWS Lambda๋ ์ด flow์ ๋๊ธฐ์์ผ๋ก ํ๋ฌ๊ทธ์ธํ์ฌ ๊ตฌ์ฑ๋ ์์ค์ ์ค์ํ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ๋์ ์ผ๋ก ๋ฐ์ํ ์ ์๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ผ๊ด๋ก ์ฝ๊ณ ์ฒ๋ฆฌํ๋ฉฐ, ์คํธ๋ฆผ ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ ์์งํ๊ณ ์ ์กํ ์ ์๋ค.
5. Amazon ElastiCache
ElastiCache๊ฐ ๋ฐ์ดํฐ ๋ถ์ ๋ฐ ๊ฒ์์ ๊ฐ๋ฅํ ํ ๋น ๋ฅด๊ฒ ์ ๊ณตํ๋๋ก ์ค๊ณ๋์๊ธฐ ๋๋ฌธ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ ์ฝ๊ฒ ์บ์ฑ์ ๊ตฌํํ ์ ์๋ค. AWS Lambda๋ ElastiCache ์์คํ ์ ์ด๋ฒคํธ์ ์๋ตํ์ฌ ํ์ํ ๋ ์บ์ ์ด๋ฒคํธ์ ๋น ๋ฅด๊ฒ ๋์ํ ์ ์๋ค.
Notification-driven
Notification-driven์ ํตํด ์๋นํ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ์ ์์ง๋ง, ๊ทธ๋ค์ ์ฃผ์ ๋ชฉ์ ์ ํ ์์คํ ์์ ๋ค๋ฅธ ์์คํ ์ผ๋ก ์ ๋ณด๋ฅผ ๋ผ์ฐํ ํ๋ ๊ฒ์ด๋ค. ์ด๋ฌํ ์๋ฆผ ๊ธฐ๋ฐ ์ด๋ฒคํธ ์์ค ์ค ๊ฐ์ฅ ์ธ๊ธฐ ์๋ Amazon API Gateway, Amazon SES, Amazon SNS, Amazon SQS ๋ฑ ๋ค ๊ฐ์ง๋ฅผ ์ดํด๋ณธ๋ค.
Lambda Architecture
Lambda์ ๋ด๋ถ ์๋ ๋ฐฉ์์ ์์ธํ ์ดํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค:
- Frontend Service: Lambda ํจ์๊ฐ ํธ์ถ๋ ๋, rontend Service๊ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ์์ฒญ์ ์ ์ ํ data plane services๋ก ๋ผ์ฐํ ํ๊ณ ํธ์ถ ํ๋ก์ธ์ค์ ์ด๊ธฐ ๋จ๊ณ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค
- Worker Hosts and MicroVMs: Lambda๋ Firecracker์ ์ํด ๋ง๋ค์ด์ง ์๋ง์ MicroVM์ ๊ด๋ฆฌํ๋ worker hosts๋ก ์ด์๋ฉ๋๋ค. ๊ฐ MicroVM์ ๋จ์ผ ํจ์ ํธ์ถ์ ์ ์ฉ์ผ๋ก ํ ๋น๋์ด ๊ฒฉ๋ฆฌ๋๊ณ ์์ ํ ์คํ ํ๊ฒฝ์ ๋ณด์ฅํฉ๋๋ค. ๋ํ, ์ฌ๋ฌ worker hosts๊ฐ ๋์ผํ Lambda ํจ์ ํธ์ถ์ ๋์์ ์ฒ๋ฆฌํ ์ ์๋๋ก ์ํคํ ์ฒ๊ฐ ์ค๊ณ๋์์ต๋๋ค. ์ด๋ฌํ ์ค์ ์ ๊ณ ๊ฐ์ฉ์ฑ๊ณผ ๊ฐ๋ ฅํ ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ ๊ณตํ ๋ฟ๋ง ์๋๋ผ ์ฌ๋ฌ ๊ฐ์ฉ ์์ญ์ ๊ฑธ์ณ ์๋น์ค์ ํ์ฅ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ํฅ์์ํต๋๋ค
- Firecracker: Firecracker๋ Lambda ์ํคํ ์ฒ์ ํต์ฌ ๊ตฌ์ฑ ์์์ ๋๋ค. ๊ฐ ํจ์ ํธ์ถ์ ๋ํด ๊ฒฝ๋ํ๋๊ณ ์์ ํ MicroVMs์ ์์ฑํ ์ ์๊ฒ ํด์ค๋๋ค. ์ด ๋ฉ์ปค๋์ฆ์ Lambda ํจ์์ ์๊ตฌ์ ๋ฐ๋ผ ๋ฆฌ์์ค๊ฐ ํจ์จ์ ์ผ๋ก ํ ๋น๋๊ณ ํ์ฅ๋๋๋ก ๋ณด์ฅํฉ๋๋ค
- Internal Queueing in Lambda: ๋น๋๊ธฐ ํธ์ถ ํ๋ก์ธ์ค์ ๊ฒฝ์ฐ, AWS Lambda๋ ๋ด๋ถ ํ์ ๋ฉ์ปค๋์ฆ์ ๊ตฌํํฉ๋๋ค. ์ด๋ฒคํธ๊ฐ Lambda ํจ์๋ฅผ ํธ๋ฆฌ๊ฑฐํ ๋, ์ด๋ค์ ๋จผ์ ์ด ๋ด๋ถ ํ์ ๋ฐฐ์น๋ฉ๋๋ค. ์ด ์์คํ ์ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌ ๊ฐ๋ฅํ ๋ง์ดํฌ๋กVM์ ํจ์จ์ ์ผ๋ก ๋ถ๋ฐฐํฉ๋๋ค. ๋ด๋ถ ํ๋ ํนํ ์์ ๊ธ์ฆ์ด๋ ๋์ ์ฒ๋ฆฌ๋ ์๋๋ฆฌ์ค์์ Lambda ํจ์์ ์ํํ ์ด์์ ์ ์งํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
Lambda ํ๊ฒฝ ๋ณ์ ์ฌ์ฉ
ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๋๋ฅผ ์
๋ฐ์ดํธํ์ง ์๊ณ ๋ ํจ์์ ๋์์ ์กฐ์ ํ ์ ์๋ค. ํ๊ฒฝ ๋ณ์๋ ํจ์์ ๋ฒ์ ๋ณ ๊ตฌ์ฑ์ ์ ์ฅ๋๋ ๋ฌธ์์ด ์์ด๋ค. Lambda ๋ฐํ์์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฝ๋์์ ์ฌ์ฉํ ์ ์๊ฒ ํ๊ณ , ํจ์ ๋ฐ ํธ์ถ ์์ฒญ์ ๋ํ ์ ๋ณด๋ฅผ ํฌํจํ๋ ์ถ๊ฐ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ๋ค.
์ฐธ๊ณ : ๋ณด์์ ๋์ด๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๊ฒฉ ์ฆ๋ช ๋ฐ API ํค ๋๋ ๊ถํ ๋ถ์ฌ ํ ํฐ๊ณผ ๊ฐ์ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ธฐ ์ํด AWS Secrets Manager๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. (์์ธํ ๋ด์ฉ์ AWS Secrets Manager๋ก ์ํฌ๋ฆฟ ์์ฑ ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐ)
ํ๊ฒฝ ๋ณ์๋ ํจ์ ํธ์ถ ์ ์ ํ๊ฐ๋์ง ์๋๋ค. ์ ์ํ ๋ชจ๋ ๊ฐ์ ๋ฌธ์์ด ๊ทธ๋๋ก ์ทจ๊ธ๋๋ฉฐ ํ์ฅ๋์ง ์๋๋ค.
Scaling
์ ํ๋ฆฌ์ผ์ด์ ์ ๋จ์ผ ์ธ์คํด์ค๊ฐ ๋๋ถ๋ถ์ ๋ ์ ๋ถํ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ง๋ง, ํธ๋ํฝ์ด ๋น ๋ฅด๊ฒ ์ฆ๊ฐํ ์ ์๋ ์ด๋ฒคํธ์ ๋๋นํด์ผ ํ๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ์ด ๋ฐฉ๋ฒ์ด ์๋ค.
-
์์ง์ ํ์ฅ์ผ๋ก ํด๊ฒฐ [Scale Up]
๊ธฐ์กด ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ ๋๋ ๋ ๋น ๋ฅธ CPU๋ฅผ ์ถ๊ฐํ์ฌ ์์ง์ ์ผ๋ก ํ์ฅํ๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ๋ค์ดํ์ ์์ด ์ด๋ฅผ ๋ฌ์ฑํ๊ธฐ๋ ์ฝ์ง ์๋ค.
-
์ํ์ ํ์ฅ์ผ๋ก ํด๊ฒฐ [Scale Out]
์ ํ๋ฆฌ์ผ์ด์ ์ ์ธ์คํด์ค๋ฅผ ๋ ๋ง์ด ๋ฐฐํฌํ๊ณ ์ธ์คํด์ค ๊ฐ์ ํธ๋ํฝ์ ๋ถ์ฐํ์ฌ ์ํ์ ์ผ๋ก ํ์ฅํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ฉด ์ธ์คํด์ค ์ค ํ๋๊ฐ ์ค์๋ํ๋๋ผ๋ ๋ค๋ฅธ ์ธ์คํด์ค๋ก ์ํฌ๋ก๋๋ฅผ ์์ฝ๊ฒ ๋ถ์ฐํ ์ ์๋ค. ๋ํ ๋ค์ดํ์ ์์ด ๋ ์ฝ๊ฒ ์์ ์ ์ํํ ์ ์๋ค.
-
ํธ๋ํฝ์ ๋ฐ๋ฅธ ๋ฆฌ์์ค ์๋ ํ์ฅ [Auto Scaling]
๋ฆฌ์์ค๋ฅผ ์ถ๊ฐํ๋ฉด ๋น์ฉ์ด ๋ค๊ธฐ ๋๋ฌธ์ ์๊ธ์ด ์ฆ๊ฐํ์ง ์๋๋ก ์ฃผ์ํด์ผ ํ๋ค. ๋คํํ๋ ํธ๋ํฝ์ ๋ฐ๋ผ ๋ฆฌ์์ค๋ฅผ ์๋์ผ๋ก ํ์ฅํ ์ ์๋ค. ๋ค์ํ ๋ฉํธ๋ฆญ์ ๊ธฐ๋ฐ์ผ๋ก ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ์ธ์คํด์ค๊ฐ ํ๊ณ์ ๋๋ฌํ๋์ง ์์ธกํ๊ณ ๊ทธ์ ๋ฐ๋ผ ์กฐ์น๋ฅผ ์ทจํ ์ ์์ต๋๋ค.
Auto Scaling
Amazon AWS ECS์๋ ์๋์ ๊ฐ์ ๋ ๊ฐ์ง ์๋ ํ์ฅ ์ ํ์ด ์๋ค.
-
Cluster Auto Scaling
Amazon ECS๋ Application Auto Scaling ์๋น์ค๋ฅผ ํ์ฉํ์ฌ Auto Scaling๋ฅผ ์ ๊ณตํ๋ค.
-
Service auto scaling
Reference
- ์๋ฒ๋ฆฌ์ค๋?
- ์๋ฒ๋ฆฌ์ค ์ปดํจํ
- AWS-๐-๋๋คLambda-๊ฐ๋ -์๋ฆฌ
- Using Lambda environment variables
- Defining environment variables
- Scaling the number of application instances with Amazon ECS
- An Introduction to the AWS Serverless Ecosystem
- Lambda Internals: the Underneath of AWS Serverless Architecture