AWS CloudFormation์ผ๋ก ์ธํ๋ผ ์๋ํ ๋ฐ ๊ด๋ฆฌ
๐ฃ AWS CloudFormation์ผ๋ก ์ธํ๋ผ ์๋ํ ๋ฐ ๊ด๋ฆฌ
๐งญ ์ ์ธํ๋ผ ์๋ํ๊ฐ ํ์ํ ๊น?
์ ํ๋ฆฌ์ผ์ด์
์ ์ด์ํ๋ค ๋ณด๋ฉด, ์๋ฒ, DB, ๋คํธ์ํฌ ๊ตฌ์ฑ ๋ฑ ์ธํ๋ผ๋ฅผ ๋งค๋ฒ ์๋์ผ๋ก ์ค์ ํ๋ ๊ฑด ๋๋ฌด ๋นํจ์จ์ ์
๋๋ค.
์ธํ๋ผ ์๋ํ๋ ํ๊ฒฝ์ ํ
ํ๋ฆฟ์ผ๋ก ๊ด๋ฆฌํ๊ณ , ํด๋ฆญ ๋ช ๋ฒ์ผ๋ก ๋์ผํ ์ธํ๋ผ๋ฅผ ๋ฐ๋ณต ๊ตฌ์ถํ ์ ์๊ฒ ํด์ค๋๋ค.
๊ทธ ์ค์ฌ์ ์๋ ๊ฒ์ด ๋ฐ๋ก AWS CloudFormation์ ๋๋ค.
โ 1. AWS CloudFormation์ด๋?
โถ AWS ๋ฆฌ์์ค(EC2, RDS, S3, VPC ๋ฑ)๋ฅผ **์ฝ๋ ํํ์ ํ
ํ๋ฆฟ(YAML/JSON)**์ผ๋ก ์ ์ํ๊ณ ,
ํด๋น ํ
ํ๋ฆฟ์ ๊ธฐ๋ฐ์ผ๋ก ์ธํ๋ผ๋ฅผ ์๋์ผ๋ก ์์ฑ, ๋ณ๊ฒฝ, ์ญ์ ํ ์ ์๊ฒ ํด์ฃผ๋ ์๋น์ค์
๋๋ค.
- Infrastructure as Code (IaC) ์คํ
- ์๋ ์ค์ ์์ด ๋์ผํ ํ๊ฒฝ์ ๋ฐ๋ณต ๊ตฌ์ถ ๊ฐ๋ฅ
- ๋ณ๊ฒฝ ์ด๋ ฅ ์ถ์ ๋ฐ ์๋ ๋กค๋ฐฑ ๊ธฐ๋ฅ ์ ๊ณต
๐ฆ 2. ํ ํ๋ฆฟ์ ๊ตฌ์กฐ ์ดํดํ๊ธฐ
CloudFormation์ YAML ๋๋ JSON ํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ์๋ํฉ๋๋ค. ์ฃผ์ ๊ตฌ์ฑ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
[yaml]
AWSTemplateFormatVersion: '2010-09-09'
Description: My first CloudFormation Template
Resources:
MyBucket:
Type: 'AWS::S3::Bucket'
Properties:
BucketName: my-sample-bucket
- Resources: ์์ฑํ AWS ๋ฆฌ์์ค ์ ์
- Parameters: ์ฌ์ฉ์ ์ ๋ ฅ๊ฐ ์ ์ (์: ๋ฆฌ์ , ์ธ์คํด์ค ํ์ )
- Outputs: ์์ฑ๋ ๋ฆฌ์์ค ์ ๋ณด ์ถ๋ ฅ
๐ก 3. ์ค์ ์ฌ์ฉ ํ๋ฆ
- ํ
ํ๋ฆฟ ์์ฑ
- YAML ๋๋ JSON์ผ๋ก AWS ๋ฆฌ์์ค๋ฅผ ์ ์ธ
- ์คํ(Stack) ์์ฑ
- AWS ์ฝ์ ๋๋ CLI์์ ์คํ ์์ฑ → ๋ฆฌ์์ค ์๋ ์์ฑ
- ์
๋ฐ์ดํธ & ๋ฐฐํฌ
- ํ ํ๋ฆฟ ์์ → ์คํ ์ ๋ฐ์ดํธ → ๋ณ๊ฒฝ ์ฌํญ๋ง ๋ฐ์๋จ
- ๋กค๋ฐฑ ๋ฐ ์ญ์
- ์ค๋ฅ ๋ฐ์ ์ ์๋ ๋กค๋ฐฑ
- ์คํ ์ญ์ ์ ๋ฆฌ์์ค๋ ์๋ ์ ๊ฑฐ
๐ฌ 4. CloudFormation vs ์๋ ์ค์
๋ฐ๋ณต ๊ฐ๋ฅ์ฑ | O (ํ ํ๋ฆฟ ์ฌ์ฌ์ฉ) | X (๋งค๋ฒ ์ง์ ์ค์ ) |
์ค์ ๋ฐฉ์ง | O (์๋ํ, ์ฝ๋ ๊ธฐ๋ฐ) | X (์ฌ๋์ด ํ๋ค ๋ณด๋ฉด ์ค๋ฅ) |
๋ฒ์ ๊ด๋ฆฌ | O (Git์ผ๋ก ๊ด๋ฆฌ ๊ฐ๋ฅ) | X (์ค์ ๋ด์ญ ์ถ์ ์ด๋ ค์) |
ํ์ฅ์ฑ | O (๋งค์ฐ ๋์) | โณ (๊ด๋ฆฌ ํฌ์ธํธ ๋ง์์ง) |
โจ 5. ์ค์ ์: EC2 + RDS ๊ตฌ์ฑ ํ ํ๋ฆฟ
[yaml]
Resources:
MyEC2Instance:
Type: AWS::EC2::Instance
Properties:
InstanceType: t2.micro
ImageId: ami-xxxxxxxx
MyRDS:
Type: AWS::RDS::DBInstance
Properties:
DBInstanceClass: db.t3.micro
Engine: mysql
MasterUsername: admin
MasterUserPassword: password123
→ ์ด ํ ํ๋ฆฟ ํ๋๋ก EC2์ RDS๊ฐ ์๋์ผ๋ก ์์ฑ๋ฉ๋๋ค!
๐ ๋ง๋ฌด๋ฆฌ
AWS CloudFormation์ ์ฌ์ฉํ๋ฉด, โ๏ธ ์ธํ๋ผ ๊ตฌ์ถ ์๋๋ฅผ ๋์ด๊ณ
โ๏ธ ๋์ผํ ํ๊ฒฝ์ ์์ ์ ์ผ๋ก ๋ณต์ ํ๊ณ
โ๏ธ ์ค๋ฅ๋ฅผ ์ต์ํํ ์ ์์ต๋๋ค.
์ธํ๋ผ๋ ์ด์ ํด๋ฆญ์ด ์๋๋ผ ์ฝ๋๋ก!
CloudFormation์ DevOps ๋ฌธํ์ ์๋ํ์ ํต์ฌ ๋๊ตฌ์
๋๋ค ๐