22. ์๋ฒ ๊ตฌ์ฑ์ ์๋ํํ๋ CloudFormation
22. ์๋ฒ ๊ตฌ์ฑ์ ์๋ํํ๋ CloudFormation ๊ด๋ จ
CloudFormation์ ๋ฏธ๋ฆฌ ๋ง๋ ํ ํ๋ฆฟ์ ์ด์ฉํ์ฌ AWS ๋ฆฌ์์ค ์์ฑ๊ณผ ๋ฐฐํฌ๋ฅผ ์๋ํํฉ๋๋ค. CloudFormation์ ์ค์ ๋ก ์๋น์ค๋ฅผ ์ ๊ณตํ๋ AWS ๋ฆฌ์์ค๊ฐ ์๋๋ผ์ ์ฌ์ฉ ์๊ธ์ด ์์ต๋๋ค. ๋ง์ฝ EC2 ์ธ์คํด์ค 1,000๊ฐ๋ฅผ ์์ฑํ๊ณ ์น ์๋ฒ๋ฅผ ์ค์นํ ๋ค ์์ค ์ฝ๋๋ฅผ ๋ณต์ฌํ์ฌ ์น ์๋น์ค๋ฅผ ์์ํด์ผ ํ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? AMI ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์ด๋๊ณ EC2 ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ฉด ๋ฉ๋๋ค. ํ์ง๋ง, ์์ค ์ฝ๋๊ฐ ๋ฐ๋ ๋๋ง๋ค AMI ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ EC2 ์ธ์คํด์ค๋ฟ๋ง ์๋๋ผ EBS ๋ณผ๋ฅจ๊ณผ S3 ๋ฒํท, RDS ์ธ์คํด์ค, ELB ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ํจ๊ป ์์ฑํด์ผ ํ๋ค๋ฉด AMI๋ก๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์๋น์ค์ ํ์ํ EC2 ์ธ์คํด์ค, EBS ๋ณผ๋ฅจ, S3 ๋ฒํท, RDS ์ธ์คํด์ค๋ฅผ ๋ฏธ๋ฆฌ ๊ตฌ์ฑํ๋๋ก ์๋ ์์ฑํ๋ ๊ธฐ๋ฅ์ด CloudFormation์ ๋๋ค. CloudFormation์์ ์ง์ํ๋ AWS ๋ฆฌ์์ค๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Auto Scaling | RDS | CloudFront |
---|---|---|
Redshift | CloudWatch | Route 53 |
DynamoDB | S3 | EC2 |
SimpleDB | ElastiCache | SNS |
Elastic Beanstalk | SQS | Elastic Load Balancing |
VPC | IAM |
์ฌ์ฉ์๊ฐ ๊ตฌ์ฑํ ์์คํ ๊ตฌ์กฐ๋ฅผ CloudFormation ํ ํ๋ฆฟ์ผ๋ก ๋ง๋ค๋ฉด ๋ณต์กํ๊ณ ๋ฐ๋ณต์ ์ธ ์์ ์ ๊ฐ๋จํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ํ ํ๋ฆฟ ํ์ผ์ JSONJavaScript Object Notation ํ์์ ํ ์คํธ ํ์ผ์ ๋๋ค. AWS์์ ์ ๊ณตํ๋ ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ํ ํ๋ฆฟ์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
CloudFormation ํ ํ๋ฆฟ์ AWS ๋ฆฌ์์ค ์์ฑ ๋ฐ ์ค์ ๋ฟ๋ง ์๋๋ผ EC2 ์ธ์คํด์ค์ ์ํํธ์จ์ด๋ฅผ ์ค์นํ๊ณ ์ค์ ํ ์ ์์ต๋๋ค. ์ํํธ์จ์ด ์ค์น ์๋ํ์ Chef, Puppet, cloud-init์ ์ง์ํฉ๋๋ค(Chef์ Puppt์ cfn-init์ ํตํด ์คํ๋ฉ๋๋ค).
Chef, Puppet, cloud-init
Chef์ Puppet์ ๋ฃจ๋น ์์ฑ๋ ์คํ์์ค ์๋ํ ์๋ฃจ์ ์ ๋๋ค. ์ํํธ์จ์ด ์ค์น, ์ค์ , ๋น๋, ๋ฐฐํฌ๋ฅผ ์๋ํํฉ๋๋ค.
cloud-init
์ ํด๋ผ์ฐ๋ ์ธ์คํด์ค์ ์ด๊ธฐํ๋ฅผ ์ํ ์คํฌ๋ฆฝํธ์
๋๋ค. Ubuntu Linux๋ฅผ ๋ง๋ ์บ๋
ธ๋์ปฌ์์ ๊ฐ๋ฐํ์ต๋๋ค.
CloudFormation ํ ํ๋ฆฟ์ผ๋ก ์์ฑํ AWS ๋ฆฌ์์ค ์กฐํฉ์ CloudFormation ์คํStack์ด๋ผ๊ณ ํฉ๋๋ค. ์ด ์คํ์ ์ญ์ ํ๋ฉด ๊ด๋ จ๋ AWS ๋ฆฌ์์ค๋ ๋ชจ๋ ์ญ์ ๋ฉ๋๋ค.