ํฐ์คํ ๋ฆฌ ๋ทฐ
์ต๊ทผ์ staging ํ๊ฒฝ์์ ๋จ์ผ ์ธ์คํด์ค๋ฅผ ๋๋ฉด์๋ ๋ฌด์ค๋จ ๋ฐฐํฌ๋ฅผ ํ๊ณ ์ถ์๋๋ฐ,
AWS Elastic Beanstalk์ ํ์ฉํด์ ์ด๋ฅผ ์์ฝ๊ฒ ํด๊ฒฐํ ์ ์์์ต๋๋ค. ๊ทธ๋์ ์ ์ ๊ฐ์ ๊ณ ๋ฏผ์ ํ๊ณ ๊ณ์ ๋ถ๋ค์ ์ํด ๊ธฐ๋ก์ฐจ ์ด ๊ธ์ ์์ฑํฉ๋๋ค.
AWS Elastic Beanstalk์ vercel๊ณผ ์ ์ฌํ๊ฒ ์ฝ๋๋ง ์ฌ๋ฆฌ๋ฉด ์ธํ๋ผ ๊ด๋ จ ์ธํ ์ ๋งค์ฐ ์์ฝ๊ณ ๋น ๋ฅด๊ฒ ๋ฐฐํฌํ ์ ์๋๋ก ๋์์ฃผ๋ PaaS(Platform as a Service)์ ๋๋ค.
Elastic Beanstalk์ ์ฌ์ฉํ๋ฉด ์ธํ๋ผ ๊ด๋ฆฌ๋ฅผ ์ ๊ฒฝ์ฐ์ง ์์ ์ ์๊ณ ๋น์ฉ๋ Elastic Beanstalk ๊ธฐ๋ฅ ์์ฒด๋ ๋ฌด๋ฃ์ด๋ฉฐ S3, EC2 ๋ฑ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ์ ์ฅํ๊ณ ์คํํ๊ธฐ ์ํด ์์ฑํ ๋ฆฌ์์ค์ ๋ํด์๋ง ์ง๋ถํ๋ฉด ๋ฉ๋๋ค.
๊ทธ๋์ ๋ฆฌ์์ค๋ฅผ ์ต๋ํ ํ๋ฆฌํฐ์ด๋ก ๊ตฌ์ฑํ๊ณ ์ฌ๋ฌ ํ๋ก์ ํธ์์ ์์ฃผ ์ ์ฉํ๊ฒ ํ์ฉํ๊ณ ์์ด์!
ํ๊ฒฝ ๊ตฌ์ฑ
ElasticBeanstalk ๋์๋ณด๋์์ ํ๊ฒฝ ์ถ๊ฐ๋ฅผ ์ ํํ๊ณ ์ํ๋ ์ด๋ฆ๊ณผ ํ๊ฒฝ ์ ๋ณด, ๋๋ฉ์ธ ์ด๋ฆ์ ์ ์ ํ๊ฒ ์ค์ ํด์ฃผ์ธ์!
์ ๋ test-mokhs๋ก ํ์ต๋๋ค
ํ๋ซํผ ์ ํ ๊ตฌ์ฑ
ํ๋ซํผ ์ ํ์ ๋ฐฐํฌํ ์ ํ๋ฆฌ์ผ์ด์
ํ๊ฒฝ์ ๋ง์ถฐ์ ๊ตฌ์ฑํฉ๋๋ค.
์ ๋ Java ์น ์ ํ๋ฆฌ์ผ์ด์
(e.g. Spring Boot)์ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ์ ๋ง์ถฐ Java๋ก ์ ํํ์ต๋๋ค.
์ฌ๊ธฐ์ ์ค์ํ ๊ฑด ๋จ์ผ ์ธ์คํด์ค๋ก ์ ์งํ๋ฉด์ ๋ฌด์ค๋จ ๋ฐฐํฌ๋ฅผ ํ๊ธฐ ์ํด์ ์ฌ์ ์ค์ ์์ ์ฌ์ฉ์ ์ง์ ๊ตฌ์ฑ์ ์ ํํด์ค์ผํ๋ค๋ ์ ์
๋๋ค.
๋จ์ผ ์ธ์คํด์ค๋ฅผ ์ ํํ๋ฉด ์ดํ์ ์ถ๊ฐ ๋ฐฐ์น๋ฅผ ํตํ ๋กค๋ง ๋ฐฐํฌ ์ต์
์ ์ ํํ๋ ์น์
์ด ๋ณด์ด์ง ์์ต๋๋ค.
๊ณ ๊ฐ์ฉ์ฑ์ ์ ํํด์ ์์ ํ ์๋ ์๊ฒ ์ง๋ง ์ผ๋ถ ์ต์
๋ค์ด ์ํ๋ ๊ฒ๊ณผ ๋ค๋ฅด๊ฒ ๊ตฌ์ฑ๋์ด ์ฌ์ฉ์ ์ง์ ๊ตฌ์ฑ ์ต์
์ผ๋ก ์งํํ๋ ๊ฒ ํธํฉ๋๋ค.
์ด๋ค ์ต์
๋ค์ด ๋ค๋ฅธ ์ง๋ ์ง์ ๋ณ๊ฒฝํด๊ฐ๋ฉด์ ์์๋ณด์
๋ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค :)
์๋น์ค ์ก์ธ์ค ๊ตฌ์ฑ
์๋น์ค ์ก์ธ์ค ๊ตฌ์ฑ์ ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํด์ฃผ์ธ์!
์๋น์ค ์ญํ ์์๋ ๊ธฐ์กด ์๋น์ค ์ญํ ์ฌ์ฉ์ ์ ํํ์
๋ ๋ฉ๋๋ค.
*์ฌ๊ธฐ์ ์ฃผ์ํ ์ ์ EC2 ํค ํ์ด์ EC2 ์ธ์คํด์ค ํ๋กํ์ผ์
๋๋ค.
ํด๋น ์ค์ ์ ๊ณต๋ฐฑ์ผ๋ก ๋๊ฑฐ๋ ์ ์ ํ๊ฒ ์ค์ ํด์ฃผ์ง ์์ผ๋ฉด Elastic Beanstalk์์ IAM Role์ ์ฐพ์ง ๋ชปํด Elastic Beanstalk ํ๊ฒฝ์ด ์ ์ ๋์ํ์ง ์์ ์ ์์ต๋๋ค.
EC2 ํค ํ์ด์ EC2 ์ธ์คํด์ค ํ๋กํ์ผ ์์ฑ ๊ด๋ จํด์๋ ๋ฐ๋ก ์๋์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
Elastic Beanstalk์์ ์ฌ์ฉํ IAM Role, EC2 ํค ํ์ด ์์ฑ
์ฃผ์* ์์์ ๋งํ๋ค์ํผ ๋ฏธ๋ฆฌ ์ธ์คํด์ค ํ๋กํ์ผ(IAM Role)๊ณผ ํค ํ์ด๋ฅผ ๋ง๋ค์ด๋์ง ์์ผ๋ฉด Elastic Beanstalk์์ IAM Role์ ์ฐพ์ง ๋ชปํด Elastic Beanstalk ํ๊ฒฝ์ด ์ ์ ๋์ํ์ง ์์ ์ ์์ต๋๋ค.
ํค ํ์ด๋ EC2 ๋์๋ณด๋์ ๊ฐ์ ๋คํธ์ํฌ ๋ฐ ๋ณด์ธ > ํค ํ์ด ํญ์ ๋ค์ด๊ฐ์ ์์ฑํด์ฃผ์ธ์!
์ธ์คํด์ค ํ๋กํ์ผ(IAM Role) ์์ฑ์ IAM ๋์๋ณด๋์ ๋ค์ด๊ฐ์ ์ญํ ์์ฑ์ ์ ํ ํ ์๋ ๊ณผ์ ์ ๋ฐ๋ผ๊ฐ์๋ฉด ๋ฉ๋๋ค!
fyi. ์ธ์คํด์ค ํ๋กํ์ผ์ ๋น๋กฏํ IAM ๊ด๋ จ ์ค์ ์ ๊ณต์ ๋ฌธ์์์ ๋ ์์ธํ๊ฒ ํ์ธํด๋ณผ ์ ์์ต๋๋ค.
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-instanceprofile.html
์๋น์ค ๋๋ ์ฌ์ฉ ์ฌ๋ก๋ฅผ EC2๋ก ์ ํํ๊ณ ์๋ 3๊ฐ ๊ถํ์ ์ถ๊ฐํด์ฃผ์ธ์
- AWSElasticBeanstalkMulticontainerDocker
- AWSElasticBeanstalkWebTier
- AWSElasticBeanstalkWorkerTier
๊ฒํ ๋จ๊ณ์์ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋์ด ์์ผ๋ฉด ์๋ฃ! ์ญํ ์ด๋ฆ๋ ์ ์ ํ๊ฒ ์ค์ ํด์ฃผ์ธ์.
๋คํธ์ํฌ ๊ด๋ จ ์ค์
VPC ์ค์ ์ ๊ฐ ํ๊ฒฝ์ ๋ง๊ฒ ์ค์ ํด์ฃผ์๋ฉด ๋ฉ๋๋ค! ์ ๋ ๊ฐ์ฉ ์์ญ์ผ๋ก ap-northeast-2c๋ง ์ฌ์ฉํ๋ฏ๋ก ์ด๋ ๊ฒ ๊ตฌ์ฑํ์ด์.
RDS๋ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋ ๊ฒ ์๋ค๋ฉด ์๋ธ๋ท์ ์ ํํด์ ์์ฝ๊ฒ ์ค์ ํ ์ ์์ต๋๋ค
์คํ ์ค์ผ์ผ๋ง ๊ทธ๋ฃน ์ค์
๋ฌด์ค๋จ ๋ฐฐํฌ๋ฅผ ์ํด ๋จ์ผ ์ธ์คํด์ค๊ฐ ์๋ ๋ฐธ๋ฐ์ฑ๋ ๋ก๋๋ฅผ ์ ํํ๊ณ ์ธ์คํด์ค ์ต๋๊ฐ์ 1๋ก ์ ์งํฉ๋๋ค.
์ด๋ฅผ ์ ํํ์ง ์์ผ๋ฉด ๋ฌด์ค๋จ ๋ฐฐํฌ ์ค์ ์ ํ๊ธฐ ์ํ "์ถ๊ฐ ๋ฐฐ์น๋ฅผ ํตํ ๋กค๋ง ๋ฐฐํฌ" ์ต์
์ด ๋ณด์ด์ง ์์ต๋๋ค.
๋ก๋ ๋ฐธ๋ฐ์ ์ ํ
๋ก๋ ๋ฐธ๋ฐ์๋ก๋ Application Load Balancer๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ํ๋ก์ธ์ค์ ๋ฆฌ์ค๋๋ ๋ณธ์ธ์ ์ ํ๋ฆฌ์ผ์ด์
์ค์ ์ ๋ง๊ฒ ๋ง์ถฐ์ฃผ์ธ์!
e.g. ์ ๋ 8080 port์ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์
์ ๋์ฐ๊ณ health check path๋ /health๋ก ์ค์ ํ์ต๋๋ค.
fyi. health check path์ ๋ง๋ api๋ ๊ฐ๋ฐ์ด ํ์ํฉ๋๋ค.
๊ด๋ จํด์ ์์ธํ ๋ด์ฉ์ Application Load Balancer์ ๋ํด์ ์ฐพ์๋ณด๋ ๊ฑธ ์ถ์ฒํฉ๋๋ค.
์ํ ์ ํ๋ฆฌ์ผ์ด์
์ผ๋ก ๋จผ์ ๋ฐฐํฌ๊ฐ ์ ๋๋์ง ํ
์คํธํ๊ณ ์ถ์ ๊ฒฝ์ฐ๋ ๊ธฐ๋ณธ ์ค์ ๊ทธ๋๋ก ๋ฐฐํฌํด์ ํ
์คํธ ํ ์ฝ๋๋ฅผ ๊ต์ฒดํ๋ ๊ฑธ ์ถ์ฒ๋๋ ค์!
fyi. Elastic Beanstalk์ ๋ฐฐํฌ๊ฐ ์๋ฃ๋ ์ดํ์๋ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ๋น๋กฏํ ์ผ๋ถ ๊ตฌ์ฑ์ ์์ ๋กญ๊ฒ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค
๋กค๋ง ์ ๋ฐ์ดํธ ๋ฐ ๋ฐฐํฌ ์ค์
*์ดํ ๋กค๋ง ์
๋ฐ์ดํธ ๋ฐ ๋ฐฐํฌ ์น์
์์ ๋ฐฐํฌ ์ ์ฑ
์ '์ถ๊ฐ ๋ฐฐ์น๋ฅผ ์ฌ์ฉํ ๋กค๋ง'์ผ๋ก ์ค์ ํฉ๋๋ค.
fyi. ๋จ์ผ ์ธ์คํด์ค๋ก ์ธํ๋ผ๋ฅผ ๊ตฌ์ฑํ์ผ๋ฏ๋ก ์ถ๊ฐ ๋ฐฐ์น๋ฅผ ์ฌ์ฉํ ๋กค๋ง ๋ฐฐํฌ ์ ์ฑ
์ ํ์ฉํด์ผ ๋ฌด์ค๋จ ๋ฐฐํฌ๋ฅผ ํ ์ ์์ด์!
์ดํ ๊ฒํ ๊ณผ์ ์ ๊ฑฐ์ณ ElasticBeanstalk์ด ์ ์์ ์ผ๋ก ๋ฐฐํฌ๋๋ ๊ฑธ ํ์ธํ ํ
์ฝ๋ ์
๋ก๋๋ฅผ ํตํด ์ฌ๋ฌ ํ๊ฒฝ ๋ฒ์ ์ ๋ฐฐํฌํด๋ณด๋ฉฐ ๋ฌด์ค๋จ์ผ๋ก ๋ฐฐํฌ๋๋ ๊ฑธ ํ์ธํด๋ณด์ธ์!
'BackEnd' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
MySQL ์คํ ๊ณํ ํบ์๋ณด๊ธฐ (1) | 2024.04.28 |
---|---|
ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค(isolation level)์ด๋? (0) | 2024.03.03 |
์์ฆ ๋ ์ค๋ฅด๋ gRPC ํบ์๋ณด๊ธฐ (2) | 2022.12.04 |
Nginx 403 (13 Permission denied) ํด๊ฒฐํ๊ธฐ (0) | 2021.10.30 |
JWT (0) | 2021.06.26 |
- Total
- Today
- Yesterday
- rate limit
- ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค
- mysql
- ์ข์ ์์ง๋์ด
- golang oomkilled
- Aws Reinvent 2023
- ํด์
- 2023 ๊ฐ๋ฐ์ ํ๊ณ
- 2๋ ์ฐจ ์๋ฒ ๊ฐ๋ฐ์
- ๋ฐฑ์ค
- ์ถ์ ์ง๋
- Golang
- ์ข์ ์ฝ๋๋ ๋ฌด์์ธ๊ฐ?
- grpc client
- ํ๋ก๊ทธ๋๋จธ์ค
- ํ(Heap)
- ์คํ/ํ
- ์๊ณ ๋ฆฌ์ฆ
- ์ฅ์ ํ๊ณ
- ์ฝ๋ฉํ ์คํธ
- mysql ์คํ ๊ณํ
- kotlin s3 upload
- ์ข์ ๊ฐ๋ฐ์
- ๋ฑ ํฌ์๋ฌ๋ ๊ฐ๋ฐ์
- ์ข์ ๊ฐ๋ฐ์ ๋๊ธฐ
- 2023 ํ๊ณ
- Go
- ๊น์ด/๋๋น ์ฐ์ ํ์(DFS/BFS)
- HTTP
- AWS re:Invent 2023
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |