Amazon ECS๋กœ ์ปจํ…Œ์ด๋„ˆ ์šด์šฉ์„ ์œ„ํ•œ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•ด๋ณด๋‹ˆ ์ƒ๊ฐ๋ณด๋‹ค ๋Ÿฌ๋‹์ปค๋ธŒ๊ฐ€ ๋†’์Šต๋‹ˆ๋‹ค. Amazon ECS ๊ฒฝํ—˜์ด ๋ถ€์กฑํ•œ ์ดˆ์‹ฌ์ž๋กœ์จ ์•Œ์•„์•ผํ•  ๊ฒƒ๋“ค์— ๋Œ€ํ•ด์„œ ๊ณต์œ ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

์˜คํ† ์Šค์ผ€์ผ๋ง ๊ทธ๋ฃน ๊ณผ Amazon ECS ์ตœ์ ํ™” Linux AMI

Amazon ECS๋Š” EC2 ์ธ์Šคํ„ด์Šค ๊ธฐ๋ฐ˜ ๊ตฌ์„ฑ์„ ์œ„ํ•ด์„œ๋Š” ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ์ •์˜๋œ ์˜คํ† ์Šค์ผ€์ผ๋ง ๊ทธ๋ฃน(ASG)์„ ์šฉ๋Ÿ‰ ๊ณต๊ธ‰์ž๋กœ ์ถ”๊ฐ€ํ•˜๊ณ  ์˜คํ† ์Šค์ผ€์ผ๋ง ์ •์˜์— ๋”ฐ๋ผ ์‹คํ–‰๋œ ECS ์ธ์Šคํ„ด์Šค ๋‚ด์— ECS ์—์ด์ „ํŠธ์™€ ํ†ต์‹ ํ•˜์—ฌ ํƒœ์Šคํฌ๋ฅผ ์ปจํ…Œ์ด๋„ˆ๋กœ ์‹คํ–‰ํ•œ๋‹ค. ์˜คํ† ์Šค์ผ€์ผ๋ง ๊ทธ๋ฃน์œผ๋กœ ์‹คํ–‰๋˜๋Š” ์ธ์Šคํ„ด์Šค๋Š” Amazon ECS ์ตœ์ ํ™” Linux AMI๋กœ ๊ตฌ์„ฑ๋˜์–ด์•ผ ํ•œ๋‹ค.

Amazon ECS ์ตœ์ ํ™” Linux AMI๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ์ด์œ ๋Š” Amazon ECS ์ปจํ…Œ์ด๋„ˆ ์—์ด์ „ํŠธ(ecs-agent)๊ฐ€ ํฌํ•จ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ECS ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ํƒœ์Šคํฌ๋กœ ์‹คํ–‰๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ecs-agent ์ปจํ…Œ์ด๋„ˆ์™€ ํ†ต์‹ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ECS ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์„ฑ ์‹œ EC2 ์šฉ๋Ÿ‰ ๊ณต๊ธ‰์ž๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ณ„๋„๋กœ ์˜คํ† ์Šค์ผ€์ผ๋ง ๊ทธ๋ฃน์„ ๋งŒ๋“ค๊ณ  ์ถ”๊ฐ€ํ•ด์•ผํ•œ๋‹ค. ์ด๋•Œ ์˜คํ† ์Šค์ผ€์ผ๋ง ๊ทธ๋ฃน์˜ ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ์— ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์œผ๋กœ Amazon ECS ์ปจํ…Œ์ด๋„ˆ ์—์ด์ „ํŠธ ๊ตฌ์„ฑ(ECS_CLUSTER)์„ ์ง€์ •ํ•ด์•ผํ•œ๋‹ค.

UserData
#!/bin/bash echo "ECS_CLUSTER=$CLUSTER_NAME" >> /etc/ecs/ecs.config

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†์„ฑ์„ ์œ„ํ•œ S3 ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํŒŒ์ผ ๊ถŒํ•œ

ํƒœ์Šคํฌ ์‹คํ–‰ ์—ญํ• (Task Execution Role)์—๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํŒŒ์ผ์ด ์ €์žฅ๋œ S3 ๋ฒ„ํ‚ท์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ํฌํ•จํ•˜๊ณ  ์žˆ์–ด์•ผํ•œ๋‹ค. ์ฒ˜์Œ ECS ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ AmazonS3ReadOnlyAccess ์ •์ฑ…์„ ํฌํ•จํ•˜์—ฌ ํ…Œ์ŠคํŠธํ•ด๋„ ๋œ๋‹ค. ๋” ๋‚˜์•„๊ฐ€ ์™ธ๋ถ€ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ํ† ํฐ์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ๊ฐ™์€ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋“ค์€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํŒŒ์ผ ๋Œ€์‹ ์— Secrets Manager ๋˜๋Š” AWS Systems Manager Parameter Store ์—์„œ ๊ฐ€์ ธ์˜ค๋Š” ๊ฑธ ๊ถŒ์žฅํ•œ๋‹ค.

Amazon ECS ๋กœ๊ทธ๋ฅผ CloudWatch๋กœ ์ „์†ก

Amazon ECS ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋กœ๊ทธ๋ฅผ CloudWatch๋กœ ์ „์†กํ•˜์—ฌ ํ™•์ธํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ํƒœ์Šคํฌ ์ •์˜ ์‹œ awslogs ๋กœ๊ทธ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์„ค์ •ํ•ด์•ผํ•œ๋‹ค. ๋˜ํ•œ, Amazon ECS ์ปจํ…Œ์ด๋„ˆ ์ธ์Šคํ„ด์Šค ์—ญํ• (AmazonEC2ContainerServiceforEC2Role ์ •์ฑ…์„ ๊ฐ€์ง„ ecsInstanceRole)์— CloudWatch๋กœ ๋กœ๊ทธ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ๊ถŒํ•œ์ด ํฌํ•จ๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผํ•œ๋‹ค.

ECS ํƒœ์Šคํฌ ์ปจํ…Œ์ด๋„ˆ ํ—ฌ์Šค ์ฒดํฌ

ํƒœ์Šคํฌ ์ •์˜ ์‹œ ์ปจํ…Œ์ด๋„ˆ ์ƒํƒœ ํ™•์ธ ์˜ต์…˜์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด ์ƒํƒœ ํ™•์ธ์€ __์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€__์—์„œ ์‹คํ–‰๋œ๋‹ค. ๊ทธ๋ž˜์„œ ์ผ๋ฐ˜์ ์ธ ์˜ˆ์‹œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋กœ์ปฌํ˜ธ์ŠคํŠธ๋กœ ์„ค๋ช…ํ•˜๋Š”๋ฐ ์ง์ ‘ ๋งŒ๋“œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฏธ์ง€์˜ ๊ฒฝ์šฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋˜์–ด ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ๋ฅผ ๋ช…ํ™•ํžˆ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

CMD-SHELL, curl -f http://localhost:5000/ || exit 1

Amazon ECS Service Connect ์ปจํ…Œ์ด๋„ˆ๋กœ ์ธํ•œ ๋ฐฐํฌ ์ด์Šˆ

Amazon ECS ์—์„œ Fargate ๋˜๋Š” EC2 ์ธ์Šคํ„ด์Šค์— ํƒœ์Šคํฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๊ฒฝ์šฐ ECS ์—์ด์ „ํŠธ์— ๋Œ€ํ•œ ์ปจํ…Œ์ด๋„ˆ์™€ ์„œ๋น„์Šค ์˜ต์…˜์— ๋”ฐ๋ผ ์„œ๋น„์Šค ์—ฐ๊ฒฐ์„ ์œ„ํ•ด ์‚ฌ์ด๋“œ์นด๋กœ Envoy ๊ธฐ๋ฐ˜์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ•จ๊ป˜ ๊ตฌ๋™๋  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋ง์€ ํ•˜๋‚˜์˜ ์„œ๋ฒ„ ๋‚ด์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ปจํ…Œ์ด๋„ˆ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‚˜๋จธ์ง€ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” CPU์™€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์ธ์Šคํ„ด์Šค ์‚ฌ์–‘์„ ๊ณ ๋ คํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

์ฒ˜์Œ์—๋Š” ECS ํด๋Ÿฌ์Šคํ„ฐ์˜ ์„œ๋ฒ„ ์‚ฌ์–‘์„ ์ตœ๋Œ€ํ•œ ๋‚ฎ์ถ”์–ด ๋งŒ๋“ค๊ฒŒ ๋œ ์ƒํƒœ์—์„œ ์„œ๋น„์Šค ์—ฐ๊ฒฐ์„ ์œ„ํ•œ Instance Connect ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ตฌ๋™๋˜๋ฉด์„œ CPU ์‚ฌ์šฉ๋Ÿ‰์ด 100ํ”„๋กœ๋ฅผ ๋„˜์–ด์„œ๋ฉด์„œ ๋ฐฐํฌ๊ฐ€ ์›ํ™œํ•˜์ง€ ์•Š์€ ์ƒํ™ฉ์„ ๊ฒฝํ—˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

Amazon ECS์— ๋Œ€ํ•œ Fargate ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ์ตœ์ ํ™” ๊ณ ๋ ค

Fargate ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋˜๋Š” ํƒœ์Šคํฌ ์ปจํ…Œ์ด๋„ˆ๋Š” ์ด๋ฏธ์ง€ ์ •๋ณด๋ฅผ ์บ์‹ฑํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ, Fargate ํƒœ์Šคํฌ๋ฅผ ์‹œ์ž‘ํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์—๋Š” ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‹œ๊ฐ„์ด ํฌํ•จ๋˜์–ด์žˆ๋‹ค. EC2 ์šฉ๋Ÿ‰ ๊ณต๊ธ‰์ž๊ฐ€ ์•„๋‹Œ Fargate๋กœ ์šด์šฉํ•˜๋Š” ์„œ๋น„์Šค์˜ ๊ฒฝ์šฐ์—๋Š” ์•„๋ž˜์˜ ํ•ญ๋ชฉ์„ ๊ณ ๋ คํ•ด๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

์ฐธ๊ณ  ๋งํฌ