| name | aws-wa-sustainability |
| description | AWS Well-Architected Sustainability Pillar review. Checks energy efficiency, resource optimization, and sustainable practices in IaC code. |
Sustainability Pillar
ํ๊ฒฝ ์ํฅ ์ต์ํ, ์๋์ง ํจ์จ ๊ด์ ์์ IaC ์ฝ๋๋ฅผ ๊ฒํ ํฉ๋๋ค.
ํต์ฌ ์์น
- ์ํฅ ์ดํด: ํ์ ๋ฐ์๊ตญ ์ธก์
- ์ง์ ๊ฐ๋ฅ์ฑ ๋ชฉํ ์๋ฆฝ: ํ๊ฒฝ ๋ชฉํ ์ค์
- ํ์ฉ ๊ทน๋ํ: ๋ฆฌ์์ค ํจ์จ์ฑ ์ต๋ํ
- ๋ ํจ์จ์ ์ธ ํ๋์จ์ด/์ํํธ์จ์ด ์ฑํ: Graviton, Serverless
- ๊ด๋ฆฌํ ์๋น์ค ์ฌ์ฉ: ๊ณต์ ์ธํ๋ผ ํ์ฉ
- ๋ค์ด์คํธ๋ฆผ ์ํฅ ์ถ์: ๋ฐ์ดํฐ ์ ์ก ์ต์ ํ
๊ฒํ ํญ๋ชฉ
SUS-01: Graviton ์ธ์คํด์ค ์ฌ์ฉ
| ์ฌ๊ฐ๋ | ํ์ง ์ ํ |
|---|
| Low | ์๋ ํ์ง |
๊ฒํ ๋ด์ฉ: ์๋์ง ํจ์จ์ ์ธ Graviton ํ๋ก์ธ์ ์ฌ์ฉ ์ฌ๋ถ
Graviton ์ฅ์ :
- ์ต๋ 60% ์๋์ง ํจ์จ ํฅ์
- ๋์ผ ์ฑ๋ฅ ๋๋น ๋ฎ์ ๋น์ฉ
Terraform ํจํด:
# ๊ถ์ฅ - Graviton ์ธ์คํด์ค
resource "aws_instance" "sustainable" {
instance_type = "t4g.medium" # Graviton2
}
resource "aws_instance" "sustainable_v3" {
instance_type = "m7g.large" # Graviton3
}
SUS-02: Serverless ํ์ฉ
| ์ฌ๊ฐ๋ | ํ์ง ์ ํ |
|---|
| Low | ์๋ ํ์ง |
๊ฒํ ๋ด์ฉ: Lambda, Fargate ๋ฑ ์๋ฒ๋ฆฌ์ค ์๋น์ค ํ์ฉ ์ฌ๋ถ
๊ถ์ฅ ์๋น์ค:
- AWS Lambda
- AWS Fargate
- Amazon Aurora Serverless
- Amazon DynamoDB On-Demand
Terraform ํจํด:
# ๊ถ์ฅ - Lambda ์ฌ์ฉ
resource "aws_lambda_function" "sustainable" {
function_name = "my-function"
runtime = "python3.11"
# ์ฌ์ฉํ์ง ์์ ๋ ๋ฆฌ์์ค ์๋น ์์
}
# ๊ถ์ฅ - Fargate ์ฌ์ฉ
resource "aws_ecs_service" "sustainable" {
launch_type = "FARGATE"
}
SUS-03: ๊ด๋ฆฌํ ์๋น์ค ํ์ฉ
| ์ฌ๊ฐ๋ | ํ์ง ์ ํ |
|---|
| Low | ์๋ ํ์ง |
๊ฒํ ๋ด์ฉ: ์์ฒด ๊ด๋ฆฌ ๋์ ๊ด๋ฆฌํ ์๋น์ค ์ฌ์ฉ ์ฌ๋ถ
๊ถ์ฅ ์๋น์ค:
- Amazon RDS (vs ์์ฒด ๊ด๋ฆฌ DB)
- Amazon ElastiCache (vs ์์ฒด ๊ด๋ฆฌ Redis)
- Amazon OpenSearch Service
- Amazon MQ
SUS-04: ๋ฆฌ์์ค ์ ์ ๊ท๋ชจ
| ์ฌ๊ฐ๋ | ํ์ง ์ ํ |
|---|
| Low | ์๋ ํ์ง |
๊ฒํ ๋ด์ฉ: ๊ณผ๋ํ ํฌ๊ธฐ์ ์ธ์คํด์ค ์ฌ์ฉ ์ฌ๋ถ (Cost Pillar์ ์ฐ๊ณ)
SUS-05: ์ ํ์ ๋ฆฌ์
| ์ฌ๊ฐ๋ | ํ์ง ์ ํ |
|---|
| Low | ์๋ ํ์ธ ํ์ |
๊ฒํ ๋ด์ฉ: ์ง์ ๊ฐ๋ฅํ ์๋์ง๋ฅผ ์ฌ์ฉํ๋ ๋ฆฌ์ ์ ํ ์ฌ๋ถ
AWS ์ ํ์ ๋ฆฌ์ (์ฌ์ ์๋์ง ๋น์จ ๋์):
- eu-north-1 (Stockholm)
- eu-west-1 (Ireland)
- us-west-2 (Oregon)
- ca-central-1 (Canada)
SUS-06: ๋ฏธ์ฌ์ฉ ๋ฆฌ์์ค ์ ๋ฆฌ
| ์ฌ๊ฐ๋ | ํ์ง ์ ํ |
|---|
| Low | ์๋ ํ์ง |
๊ฒํ ๋ด์ฉ: ๋ฏธ์ฌ์ฉ ๋ฆฌ์์ค ๋ฐฉ์น ์ฌ๋ถ (Cost Pillar์ ์ฐ๊ณ)
์ฒดํฌ ํญ๋ชฉ:
- ๋ฏธ์ฌ์ฉ EBS ๋ณผ๋ฅจ
- ์ค๋๋ ์ค๋
์ท
- ๋ฏธ์ฌ์ฉ Elastic IP
- ์ ํด ๋ก๋ ๋ฐธ๋ฐ์
SUS-07: ๋ฐ์ดํฐ ์ ์ฅ ์ต์ ํ
| ์ฌ๊ฐ๋ | ํ์ง ์ ํ |
|---|
| Low | ์๋ ํ์ง |
๊ฒํ ๋ด์ฉ: ๋ฐ์ดํฐ ์๋ช
์ฃผ๊ธฐ ์ ์ฑ
, ์์ถ ์ฌ์ฉ ์ฌ๋ถ
Terraform ํจํด:
# ๊ถ์ฅ - ์๋ช
์ฃผ๊ธฐ ์ ์ฑ
resource "aws_s3_bucket_lifecycle_configuration" "sustainable" {
bucket = aws_s3_bucket.example.id
rule {
id = "cleanup"
status = "Enabled"
expiration {
days = 365
}
noncurrent_version_expiration {
noncurrent_days = 30
}
}
}
SUS-08: ํจ์จ์ ์ธ ์ฝ๋
| ์ฌ๊ฐ๋ | ํ์ง ์ ํ |
|---|
| Low | ์๋ ํ์ธ ํ์ |
๊ฒํ ๋ด์ฉ: ํจ์จ์ ์ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด/๋ฐํ์ ์ฌ์ฉ ์ฌ๋ถ
์๋์ง ํจ์จ ์์ (์ผ๋ฐ์ ):
- Rust, C, C++
- Go, Java
- Python, Node.js, Ruby
IaC ํ๋ซํผ๋ณ ํจํด
์์ธ ํจํด์ ๋ค์ ์ฐธ์กฐ:
์ ์ ์ฐ์
| ํญ๋ชฉ | ๊ฐ์ค์น |
|---|
| Graviton ์ฌ์ฉ | 25% |
| Serverless ํ์ฉ | 25% |
| ๊ด๋ฆฌํ ์๋น์ค | 20% |
| ๋ฆฌ์์ค ์ ์ ๊ท๋ชจ | 15% |
| ๋ฐ์ดํฐ ์ต์ ํ | 15% |
AWS ์ง์ ๊ฐ๋ฅ์ฑ ๋ฆฌ์์ค