πŸš€ AWS κ°€μ΄λ“œ - 핡심 κΈ°λŠ₯ 정리

ν˜„μš°.Β·4일 μ „
1

cloud

λͺ©λ‘ 보기
1/2
post-thumbnail

πŸ“š λͺ©μ°¨

  1. πŸ’» EC2 - 가상 μ„œλ²„
  2. 🌐 Route 53 - 도메인 관리
  3. βš–οΈ ELB - λ‘œλ“œ λ°ΈλŸ°μ„œ
  4. πŸ—„οΈ RDS - κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€
  5. πŸ“¦ S3 - 파일 μŠ€ν† λ¦¬μ§€
  6. ⚑ CloudFront - CDN
  7. πŸ—οΈ 전체 μ•„ν‚€ν…μ²˜
  8. πŸ”„ CI/CD μžλ™ν™”

πŸ’» EC2 - 가상 μ„œλ²„

🎯 κ°œλ…

  • μ •μ˜: ν΄λΌμš°λ“œμ—μ„œ μ œκ³΅ν•˜λŠ” 가상 컴퓨터 (Virtual Machine)
  • μš©λ„: μ›Ή μ„œλ²„, API μ„œλ²„, μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν˜ΈμŠ€νŒ…

πŸ“– 핡심 μš©μ–΄

  • μΈμŠ€ν„΄μŠ€: 가상 μ„œλ²„ 1λŒ€
  • μΈμŠ€ν„΄μŠ€ μœ ν˜•: μ„œλ²„ 사양 (t2.micro, t3.medium λ“±)
  • AMI: Amazon Machine Image, OS ν…œν”Œλ¦Ώ
  • ν‚€ νŽ˜μ–΄: SSH μ ‘μ†μš© λ³΄μ•ˆ ν‚€ (.pem 파일)
  • λ³΄μ•ˆ κ·Έλ£Ή: λ°©ν™”λ²½ κ·œμΉ™
    • μΈλ°”μš΄λ“œ: μ™ΈλΆ€ β†’ EC2
    • μ•„μ›ƒλ°”μš΄λ“œ: EC2 β†’ μ™ΈλΆ€
  • EBS: Elastic Block Storage, 가상 ν•˜λ“œλ””μŠ€ν¬
  • 탄λ ₯적 IP: κ³ μ • 곡인 IP μ£Όμ†Œ

EC2 생성 체크리슀트

βœ… AMI 선택 (Ubuntu, Amazon Linux)
βœ… μΈμŠ€ν„΄μŠ€ μœ ν˜• (t2.micro - 프리티어)
βœ… ν‚€νŽ˜μ–΄ 생성 및 λ‹€μš΄λ‘œλ“œ
βœ… λ³΄μ•ˆ κ·Έλ£Ή μ„€μ •
   - SSH (22번 포트)
   - HTTP (80번 포트)
   - HTTPS (443번 포트)
   - μ»€μŠ€ν…€ (API μ„œλ²„ 포트)
βœ… μŠ€ν† λ¦¬μ§€ μ„€μ • (κΈ°λ³Έ 8GB)
βœ… 탄λ ₯적 IP μ—°κ²° (μ˜΅μ…˜)

μ„œλ²„ ν™˜κ²½ μ„€μ •

# Node.js μ„€μΉ˜ (Ubuntu)
sudo apt-get update
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs

# PM2 μ„€μΉ˜ (ν”„λ‘œμ„ΈμŠ€ 관리)
sudo npm install -g pm2

# μ„œλ²„ μ‹€ν–‰
pm2 start app.js --name api-server
pm2 startup  # μž¬λΆ€νŒ… μ‹œ μžλ™ μ‹œμž‘
pm2 save

μ’…λ£Œ μ‹œ 체크리슀트

βœ… μΈμŠ€ν„΄μŠ€ μ’…λ£Œ
βœ… 탄λ ₯적 IP 릴리즈
βœ… λ³΄μ•ˆ κ·Έλ£Ή μ‚­μ œ (선택)
βœ… ν‚€νŽ˜μ–΄ μ‚­μ œ (선택)

🌐 Route 53 - 도메인 관리

κ°œλ…

  • μ •μ˜: AWS의 DNS(Domain Name System) μ„œλΉ„μŠ€
  • μš©λ„: 도메인 ꡬ맀, IP와 도메인 μ—°κ²°, DNS 관리

핡심 μš©μ–΄

  • ν˜ΈμŠ€νŒ… μ˜μ—­: λ„λ©”μΈμ˜ DNS λ ˆμ½”λ“œλ₯Ό κ΄€λ¦¬ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆ
  • λ ˆμ½”λ“œ νƒ€μž…:
    • A λ ˆμ½”λ“œ: 도메인 β†’ IPv4 μ£Όμ†Œ
    • AAAA λ ˆμ½”λ“œ: 도메인 β†’ IPv6 μ£Όμ†Œ
    • CNAME: 도메인 β†’ λ‹€λ₯Έ 도메인
    • MX: 메일 μ„œλ²„ μ§€μ •
    • NS: λ„€μž„μ„œλ²„
  • TTL: Time To Live, DNS μΊμ‹œ μ‹œκ°„

도메인 μ„€μ • ν”„λ‘œμ„ΈμŠ€

1. 도메인 ꡬ맀 (Route 53 λ˜λŠ” μ™ΈλΆ€)
2. ν˜ΈμŠ€νŒ… μ˜μ—­ 생성
3. λ ˆμ½”λ“œ μΆ”κ°€
   - api.domain.com β†’ EC2 λ˜λŠ” ELB
   - www.domain.com β†’ CloudFront
4. λ„€μž„μ„œλ²„ 확인

μ’…λ£Œ μ‹œ 체크리슀트

βœ… 도메인 이전 λ˜λŠ” μ‚­μ œ
βœ… ν˜ΈμŠ€νŒ… μ˜μ—­ λ‚΄ λ ˆμ½”λ“œ μ‚­μ œ
βœ… ν˜ΈμŠ€νŒ… μ˜μ—­ μ‚­μ œ

βš–οΈ ELB - λ‘œλ“œ λ°ΈλŸ°μ„œ

κ°œλ…

  • μ •μ˜: Elastic Load Balancer, νŠΈλž˜ν”½ λΆ„μ‚° μž₯치
  • μš©λ„: λΆ€ν•˜ λΆ„μ‚°, HTTPS 적용, ν—¬μŠ€μ²΄ν¬, κ³ κ°€μš©μ„±

μ’…λ₯˜

  • ALB (Application Load Balancer): HTTP/HTTPS, λ ˆμ΄μ–΄ 7
  • NLB (Network Load Balancer): TCP/UDP, λ ˆμ΄μ–΄ 4
  • CLB (Classic Load Balancer): λ ˆκ±°μ‹œ

핡심 κ΅¬μ„±μš”μ†Œ

  • λ¦¬μŠ€λ„ˆ: μš”μ²­μ„ λ°›λŠ” ν¬νŠΈμ™€ ν”„λ‘œν† μ½œ μ •μ˜
  • λŒ€μƒ κ·Έλ£Ή: νŠΈλž˜ν”½μ„ 받을 EC2 μΈμŠ€ν„΄μŠ€ κ·Έλ£Ή
  • ν—¬μŠ€μ²΄ν¬: μΈμŠ€ν„΄μŠ€ μƒνƒœ λͺ¨λ‹ˆν„°λ§
  • λ³΄μ•ˆ κ·Έλ£Ή: ELB μ „μš© λ°©ν™”λ²½ κ·œμΉ™

ELB μ„€μ • ν”„λ‘œμ„ΈμŠ€

1. λ‘œλ“œλ°ΈλŸ°μ„œ 생성 (ALB 선택)
2. λ„€νŠΈμ›Œν¬ λ§€ν•‘ (κ°€μš© μ˜μ—­ 선택)
3. λ³΄μ•ˆ κ·Έλ£Ή μ„€μ •
   - HTTP (80)
   - HTTPS (443)
4. λŒ€μƒ κ·Έλ£Ή 생성
   - ν”„λ‘œν† μ½œ: HTTP
   - ν—¬μŠ€μ²΄ν¬ 경둜: /health
5. EC2 μΈμŠ€ν„΄μŠ€ 등둝
6. λ¦¬μŠ€λ„ˆ κ·œμΉ™ μ„€μ •

HTTPS 적용

1. ACMμ—μ„œ SSL μΈμ¦μ„œ λ°œκΈ‰
   - 도메인 검증 (DNS 검증 μΆ”μ²œ)
2. ELB λ¦¬μŠ€λ„ˆ μΆ”κ°€
   - 포트: 443
   - ν”„λ‘œν† μ½œ: HTTPS
   - μΈμ¦μ„œ 선택
3. HTTP β†’ HTTPS λ¦¬λ‹€μ΄λ ‰μ…˜ μ„€μ •

μ’…λ£Œ μ‹œ 체크리슀트

βœ… λ‘œλ“œλ°ΈλŸ°μ„œ μ‚­μ œ
βœ… λŒ€μƒ κ·Έλ£Ή μ‚­μ œ
βœ… ACM μΈμ¦μ„œ μ‚­μ œ (선택)

πŸ—„οΈ RDS - κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€

κ°œλ…

  • μ •μ˜: Relational Database Service, κ΄€λ¦¬ν˜• DB μ„œλΉ„μŠ€
  • 지원 DB: MySQL, PostgreSQL, MariaDB, Oracle, SQL Server

핡심 μ„€μ •

  • DB μΈμŠ€ν„΄μŠ€ 클래슀: μ„œλ²„ 사양
  • μŠ€ν† λ¦¬μ§€: SSD νƒ€μž…κ³Ό μš©λŸ‰
  • Multi-AZ: κ³ κ°€μš©μ„± (μŠ€νƒ λ°”μ΄ 볡제본)
  • λ°±μ—…: μžλ™ λ°±μ—… κΈ°κ°„ μ„€μ •
  • λ³΄μ•ˆ κ·Έλ£Ή: DB μ ‘κ·Ό μ œμ–΄
  • νŒŒλΌλ―Έν„° κ·Έλ£Ή: DB μ—”μ§„ μ„€μ •
  • μ„œλΈŒλ„· κ·Έλ£Ή: VPC λ‚΄ μœ„μΉ˜

RDS 생성 ν”„λ‘œμ„ΈμŠ€

1. DB μ—”μ§„ 선택 (MySQL 8.0)
2. ν…œν”Œλ¦Ώ 선택 (프리티어)
3. μΈμŠ€ν„΄μŠ€ μ„€μ •
   - DB μΈμŠ€ν„΄μŠ€ μ‹λ³„μž
   - λ§ˆμŠ€ν„° μ‚¬μš©μž/μ•”ν˜Έ
4. μ—°κ²° μ„€μ •
   - VPC
   - μ„œλΈŒλ„· κ·Έλ£Ή
   - 퍼블릭 μ•‘μ„ΈμŠ€ (개발: 예, 운영: μ•„λ‹ˆμš”)
5. λ³΄μ•ˆ κ·Έλ£Ή μ„€μ • (3306 포트)
6. νŒŒλΌλ―Έν„° κ·Έλ£Ή 생성 및 적용

νŒŒλΌλ―Έν„° κ·Έλ£Ή μ„€μ • (MySQL)

character_set_client: utf8mb4
character_set_connection: utf8mb4
character_set_database: utf8mb4
character_set_filesystem: utf8mb4
character_set_results: utf8mb4
character_set_server: utf8mb4
collation_connection: utf8mb4_unicode_ci
collation_server: utf8mb4_unicode_ci
time_zone: Asia/Seoul

μ—°κ²° 방법

// Node.js + TypeORM
{
  type: "mysql",
  host: "your-rds-endpoint.amazonaws.com",
  port: 3306,
  username: "admin",
  password: "password",
  database: "mydb"
}

μ’…λ£Œ μ‹œ 체크리슀트

βœ… μ΅œμ’… μŠ€λƒ…μƒ· 생성 μ—¬λΆ€ κ²°μ •
βœ… μžλ™ λ°±μ—… 보쑴 체크 ν•΄μ œ
βœ… DB μΈμŠ€ν„΄μŠ€ μ‚­μ œ
βœ… νŒŒλΌλ―Έν„° κ·Έλ£Ή μ‚­μ œ
βœ… μ„œλΈŒλ„· κ·Έλ£Ή μ‚­μ œ

πŸ“¦ S3 - 파일 μŠ€ν† λ¦¬μ§€

κ°œλ…

  • μ •μ˜: Simple Storage Service, 객체 μŠ€ν† λ¦¬μ§€ μ„œλΉ„μŠ€
  • μš©λ„: 파일 μ €μž₯, 정적 μ›Ή ν˜ΈμŠ€νŒ…, λ°±μ—…

핡심 μš©μ–΄

  • 버킷: μ €μž₯μ†Œ λ‹¨μœ„ (μ „μ—­μ μœΌλ‘œ μœ λ‹ˆν¬ν•œ 이름)
  • 객체: 버킷에 μ €μž₯된 파일
  • ν‚€: 객체의 고유 μ‹λ³„μž (파일 경둜)
  • 리전: 버킷이 μƒμ„±λœ μ§€μ—­
  • μŠ€ν† λ¦¬μ§€ 클래슀: Standard, IA, Glacier λ“±

S3 버킷 μ •μ±…

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublicReadGetObject",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::bucket-name/*"
    }
  ]
}

정적 μ›Ή ν˜ΈμŠ€νŒ… μ„€μ •

1. 버킷 생성
2. 퍼블릭 μ•‘μ„ΈμŠ€ 차단 ν•΄μ œ
3. 버킷 μ •μ±… μΆ”κ°€
4. 정적 μ›Ή ν˜ΈμŠ€νŒ… ν™œμ„±ν™”
   - 인덱슀 λ¬Έμ„œ: index.html
   - 였λ₯˜ λ¬Έμ„œ: error.html
5. 파일 μ—…λ‘œλ“œ

IAM κΆŒν•œ μ„€μ • (ν”„λ‘œκ·Έλž˜λ° 방식)

1. IAM μ‚¬μš©μž 생성
2. AmazonS3FullAccess μ •μ±… μ—°κ²°
3. μ•‘μ„ΈμŠ€ ν‚€ λ°œκΈ‰
4. SDK둜 연동

파일 μ—…λ‘œλ“œ κ΅¬ν˜„

// Multer-S3 μ„€μ •
const upload = multer({
  storage: multerS3({
    s3: s3Client,
    bucket: 'my-bucket',
    key: (req, file, cb) => {
      cb(null, Date.now() + '-' + file.originalname)
    }
  })
})

μ’…λ£Œ μ‹œ 체크리슀트

βœ… 버킷 λ‚΄ λͺ¨λ“  객체 μ‚­μ œ
βœ… 버킷 μ‚­μ œ
βœ… IAM μ‚¬μš©μž 및 μ•‘μ„ΈμŠ€ ν‚€ μ‚­μ œ

⚑ CloudFront - CDN

κ°œλ…

  • μ •μ˜: Content Delivery Network, μ½˜ν…μΈ  전솑 λ„€νŠΈμ›Œν¬
  • μš©λ„: 정적 μ½˜ν…μΈ  캐싱, μ„±λŠ₯ ν–₯상, HTTPS 제곡

핡심 μš©μ–΄

  • 배포(Distribution): CloudFront μ„€μ • λ‹¨μœ„
  • μ˜€λ¦¬μ§„: 원본 μ„œλ²„ (S3, ELB, EC2 λ“±)
  • μ—£μ§€ λ‘œμΌ€μ΄μ…˜: μ „ 세계 μΊμ‹œ μ„œλ²„
  • Behaviors: κ²½λ‘œλ³„ 캐싱 κ·œμΉ™
  • Invalidation: μΊμ‹œ λ¬΄νš¨ν™”

CloudFront μ„€μ • ν”„λ‘œμ„ΈμŠ€

1. 배포 생성
2. μ˜€λ¦¬μ§„ μ„€μ •
   - S3 정적 μ›Ήμ‚¬μ΄νŠΈ μ—”λ“œν¬μΈνŠΈ
   - λ˜λŠ” ELB/EC2
3. κΈ°λ³Έ μΊμ‹œ λ™μž‘ μ„€μ •
   - Viewer Protocol Policy: Redirect HTTP to HTTPS
   - Allowed HTTP Methods: GET, HEAD
4. 배포 μ„€μ •
   - λŒ€μ²΄ 도메인 이름 (CNAME)
   - SSL μΈμ¦μ„œ (ACM - λ²„μ§€λ‹ˆμ•„ 뢁뢀)
   - 기본 루트 객체: index.html
5. 였λ₯˜ νŽ˜μ΄μ§€ μ„€μ • (SPA용)
   - 403 β†’ /index.html (200)
   - 404 β†’ /index.html (200)

μΊμ‹œ λ¬΄νš¨ν™”

aws cloudfront create-invalidation \
  --distribution-id E1234567890ABC \
  --paths "/*"

μ’…λ£Œ μ‹œ 체크리슀트

βœ… CloudFront 배포 λΉ„ν™œμ„±ν™”
βœ… 배포 μ‚­μ œ (λΉ„ν™œμ„±ν™” ν›„ κ°€λŠ₯)
βœ… ACM μΈμ¦μ„œ μ‚­μ œ

πŸ—οΈ 전체 μ•„ν‚€ν…μ²˜

ν’€μŠ€νƒ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ꡬ성

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      μ‚¬μš©μž                           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                     β”‚
              β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”
              β”‚  Route 53   β”‚ (DNS)
              β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚                       β”‚
    β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”
    β”‚CloudFrontβ”‚          β”‚   ELB    β”‚
    β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜
         β”‚                      β”‚
    β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”
    β”‚S3 (Web) β”‚          β”‚   EC2    β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜
                               β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚          β”‚          β”‚
               β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β” β”Œβ”€β”€β”€β–Όβ”€β”€β”€β” β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”
               β”‚  RDS   β”‚ β”‚  S3   β”‚ β”‚ ElastiCacheβ”‚
               β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

νŠΈλž˜ν”½ 흐름

  1. 정적 μ½˜ν…μΈ : CloudFront β†’ S3
  2. API μš”μ²­: ELB β†’ EC2 β†’ RDS/S3
  3. 파일 μ—…λ‘œλ“œ: EC2 β†’ S3
  4. μ„Έμ…˜ 관리: EC2 β†’ ElastiCache (μ˜΅μ…˜)

λ³΄μ•ˆ κ·Έλ£Ή μ„€μ •

ELB λ³΄μ•ˆ κ·Έλ£Ή:
  μΈλ°”μš΄λ“œ: 80 (HTTP), 443 (HTTPS) - 0.0.0.0/0
  μ•„μ›ƒλ°”μš΄λ“œ: All traffic

EC2 λ³΄μ•ˆ κ·Έλ£Ή:
  μΈλ°”μš΄λ“œ: 80 (HTTP) - ELB λ³΄μ•ˆ κ·Έλ£Ή
  μΈλ°”μš΄λ“œ: 22 (SSH) - λ‚΄ IP
  μ•„μ›ƒλ°”μš΄λ“œ: All traffic

RDS λ³΄μ•ˆ κ·Έλ£Ή:
  μΈλ°”μš΄λ“œ: 3306 (MySQL) - EC2 λ³΄μ•ˆ κ·Έλ£Ή
  μ•„μ›ƒλ°”μš΄λ“œ: All traffic

πŸ”„ CI/CD μžλ™ν™”

GitHub Actions μ„€μ •

1. EC2 μžλ™ 배포

name: Deploy to EC2
on:
  push:
    branches: [main]
    paths: ['api-server/**']

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Deploy to EC2
      uses: appleboy/ssh-action@v1.0.0
      with:
        host: ${{ secrets.EC2_HOST }}
        username: ubuntu
        key: ${{ secrets.EC2_SSH_KEY }}
        script: |
          cd /home/ubuntu/app
          git pull origin main
          npm install
          npm run build
          pm2 restart api-server

2. S3/CloudFront μžλ™ 배포

name: Deploy to S3/CloudFront
on:
  push:
    branches: [main]
    paths: ['web-client/**']

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - uses: actions/setup-node@v3
      with:
        node-version: '18'
    - run: npm ci
    - run: npm run build
    - uses: aws-actions/configure-aws-credentials@v2
      with:
        aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }}
        aws-secret-access-key: ${{ secrets.AWS_SECRET_KEY }}
        aws-region: ap-northeast-2
    - run: |
        aws s3 sync dist/ s3://${{ secrets.S3_BUCKET }} --delete
        aws cloudfront create-invalidation \
          --distribution-id ${{ secrets.CF_DISTRIBUTION_ID }} \
          --paths "/*"

GitHub Secrets μ„€μ •

EC2_HOST: EC2 IP λ˜λŠ” 도메인
EC2_SSH_KEY: .pem 파일 λ‚΄μš©
AWS_ACCESS_KEY: IAM μ•‘μ„ΈμŠ€ ν‚€
AWS_SECRET_KEY: IAM μ‹œν¬λ¦Ώ ν‚€
S3_BUCKET: S3 버킷 이름
CF_DISTRIBUTION_ID: CloudFront 배포 ID

λΉ„μš© μ΅œμ ν™” 팁

프리티어 ν™œμš©

  • EC2 t2.micro: μ›” 750μ‹œκ°„
  • RDS t3.micro: μ›” 750μ‹œκ°„
  • S3: 5GB μŠ€ν† λ¦¬μ§€, 20,000 GET, 2,000 PUT
  • CloudFront: 50GB 전솑, 2,000,000 μš”μ²­

λΉ„μš© 절감 방법

  1. 개발 ν™˜κ²½μ€ ν•„μš”μ‹œλ§Œ μ‹€ν–‰
    • EC2/RDS 쀑지 (Stop, μ‚­μ œ X)
  2. 탄λ ₯적 IP λ―Έμ‚¬μš© μ‹œ 릴리즈
    • μ—°κ²°λ˜μ§€ μ•Šμ€ 탄λ ₯적 IPλŠ” μš”κΈˆ λ°œμƒ
  3. S3 라이프사이클 μ •μ±…
    • 였래된 파일 μžλ™ μ‚­μ œ λ˜λŠ” Glacier 이동
  4. CloudWatch 둜그 보관 κΈ°κ°„ μ„€μ •
  5. 리전 선택
    • μ„œμšΈ(ap-northeast-2)이 도쿄보닀 μ €λ ΄

λͺ¨λ‹ˆν„°λ§

  • AWS μ˜ˆμ‚° μ„€μ •: μ›” μ˜ˆμ‚° 초과 μ‹œ μ•Œλ¦Ό
  • Cost Explorer: μ„œλΉ„μŠ€λ³„ λΉ„μš© 뢄석
  • Trusted Advisor: λΉ„μš© μ΅œμ ν™” μΆ”μ²œ

이 κ°€μ΄λ“œλŠ” μ‹€μ œ ν”„λ‘œμ νŠΈ κ²½ν—˜μ„ λ°”νƒ•μœΌλ‘œ μž‘μ„±λ˜μ—ˆμœΌλ©°, AWS μ„œλΉ„μŠ€λ₯Ό ν™œμš©ν•œ ν’€μŠ€νƒ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ꡬ좕에 ν•„μš”ν•œ 핡심 λ‚΄μš©μ„ λ‹΄κ³  μžˆμŠ΅λ‹ˆλ‹€.

profile
ν•™μŠ΅ 기둝.

0개의 λŒ“κΈ€