6974 ๋‹จ์–ด
35 ๋ถ„
๐Ÿ–ฅ๏ธ AWS EC2 (Elastic Compute Cloud)

๐Ÿ–ฅ๏ธ AWS EC2 (Elastic Compute Cloud)#

EC2 = Infrastructure as a Service (IaaS)

๊ฐ€์ƒ ์„œ๋ฒ„๋ฅผ ์˜จ๋””๋งจ๋“œ๋กœ ์ž„๋Œ€ํ•˜์—ฌ ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋น„์Šค


๋ชฉ์ฐจ#

  1. EC2 ๊ฐœ์š”
  2. EC2 ์ธ์Šคํ„ด์Šค ํƒ€์ž…
  3. Security Groups (๋ณด์•ˆ ๊ทธ๋ฃน)
  4. SSH ์ ‘์† ๋ฐฉ๋ฒ•
  5. ๊ตฌ๋งค ์˜ต์…˜ (Purchasing Options)
  6. Spot Instance ์‹ฌํ™”
  7. IP ์ฃผ์†Œ & Elastic IP
  8. ๋ฐฐ์น˜ ๊ทธ๋ฃน (Placement Groups)
  9. ํƒ„๋ ฅ์  ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค (ENI)
  10. EC2 ์ตœ๋Œ€ ์ ˆ์ „ ๋ชจ๋“œ (Hibernate)
  11. Best Practices
  12. ํ•ต์‹ฌ ์š”์•ฝ
  13. ์ฐธ๊ณ  ์ž๋ฃŒ

1. EC2 ๊ฐœ์š”#

โ˜๏ธ EC2๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ#

๊ธฐ๋Šฅ์„œ๋น„์Šค์„ค๋ช…
๊ฐ€์ƒ ์„œ๋ฒ„ ์ž„๋Œ€EC2๋‹ค์–‘ํ•œ OS/์ŠคํŽ™์˜ ๊ฐ€์ƒ ๋จธ์‹ 
๊ฐ€์ƒ ๋“œ๋ผ์ด๋ธŒEBS๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ ๋ธ”๋ก ์Šคํ† ๋ฆฌ์ง€
๋กœ๋“œ ๋ถ„์‚ฐELB์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค์— ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ
์ž๋™ ํ™•์žฅASG์ˆ˜์š”์— ๋”ฐ๋ฅธ ์ธ์Šคํ„ด์Šค ์ˆ˜ ์กฐ์ ˆ

โš™๏ธ EC2 ์„ค์ • ์˜ต์…˜#

EC2 ์ธ์Šคํ„ด์Šค ๊ตฌ์„ฑ ์š”์†Œ
โ”œโ”€โ”€ OS: Linux / Windows / macOS
โ”œโ”€โ”€ CPU: vCPU ์ˆ˜, ํ”„๋กœ์„ธ์„œ ์•„ํ‚คํ…์ฒ˜ (x86, ARM/Graviton)
โ”œโ”€โ”€ RAM: ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ
โ”œโ”€โ”€ Storage
โ”‚ โ”œโ”€โ”€ Network-attached: EBS (Elastic Block Store), EFS (Elastic File System)
โ”‚ โ””โ”€โ”€ Hardware: EC2 Instance Store (์ž„์‹œ, ๊ณ ์†)
โ”œโ”€โ”€ Network: ๋„คํŠธ์›Œํฌ ์นด๋“œ ์†๋„, ๊ณต์ธ IP ์„ค์ •
โ”œโ”€โ”€ Security Group: ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™
โ””โ”€โ”€ User Data: ์ตœ์ดˆ ์‹คํ–‰ ์‹œ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ์Šคํฌ๋ฆฝํŠธ

๐Ÿš€ EC2 User Data (๋ถ€ํŠธ์ŠคํŠธ๋žฉ)#

  • ์ธ์Šคํ„ด์Šค ์ตœ์ดˆ ์‹œ์ž‘ ์‹œ ๋”ฑ ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰
  • root ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰๋จ
  • ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—… ์˜ˆ์‹œ:
#!/bin/bash
# EC2 User Data ์˜ˆ์‹œ
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "<h1>Hello from EC2 $(hostname -f)</h1>" > /var/www/html/index.html

๐Ÿ’ก ํ™œ์šฉ ํŒ: ์†Œํ”„ํŠธ์›จ์–ด ์„ค์น˜, ์„ค์ • ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ, ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ • ๋“ฑ ์ดˆ๊ธฐํ™” ์ž‘์—…์„ ์ž๋™ํ™”ํ•  ๋•Œ ์‚ฌ์šฉ. ๋ณต์žกํ•œ ์„ค์ •์ด ํ•„์š”ํ•˜๋ฉด CloudFormation ๋˜๋Š” Ansible ์—ฐ๊ณ„ ๊ถŒ์žฅ.


2. EC2 ์ธ์Šคํ„ด์Šค ํƒ€์ž…#

๐Ÿท๏ธ ๋ช…๋ช… ๊ทœ์น™#

m 7 g . 2xlarge
โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ํฌ๊ธฐ (nano / micro / small / medium / large / xlarge / 2xlarge ...)
โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ์ถ”๊ฐ€ ์†์„ฑ (g=Graviton, a=AMD, i=Intel, n=๊ณ ์† ๋„คํŠธ์›Œํฌ)
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ์„ธ๋Œ€ (์ˆซ์ž๊ฐ€ ๋†’์„์ˆ˜๋ก ์ตœ์‹ )
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ์ธ์Šคํ„ด์Šค ํŒจ๋ฐ€๋ฆฌ (m=๋ฒ”์šฉ, c=์ปดํ“จํŒ…, r=๋ฉ”๋ชจ๋ฆฌ, i=์Šคํ† ๋ฆฌ์ง€ ๋“ฑ)

๐Ÿ“Š ์ธ์Šคํ„ด์Šค ํŒจ๋ฐ€๋ฆฌ๋ณ„ ์šฉ๋„#

ํŒจ๋ฐ€๋ฆฌ๋Œ€ํ‘œ ํƒ€์ž…ํŠน์ง•์ฃผ์š” Use Case
General Purposem7i, m7g, t3CPU/๋ฉ”๋ชจ๋ฆฌ/๋„คํŠธ์›Œํฌ ๊ท ํ˜•์›น ์„œ๋ฒ„, ์ฝ”๋“œ ์ €์žฅ์†Œ, ์†Œ๊ทœ๋ชจ DB
Compute Optimizedc7i, c7g, c6a๊ณ ์„ฑ๋Šฅ CPU ์ค‘์‹ฌ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ, ๋ฏธ๋””์–ด ํŠธ๋žœ์Šค์ฝ”๋”ฉ, HPC, ML
Memory Optimizedr7i, r7g, x2๋Œ€์šฉ๋Ÿ‰ ๋ฉ”๋ชจ๋ฆฌ์ธ๋ฉ”๋ชจ๋ฆฌ DB, ์‹ค์‹œ๊ฐ„ ๋น…๋ฐ์ดํ„ฐ, SAP HANA
Storage Optimizedi4i, d3, h1๊ณ ์† ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€OLTP, Redis ์บ์‹œ, ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค
Accelerated Computingp4, g5, trn1, inf2GPU/NPU ํƒ‘์žฌAI/ML ํ•™์Šตยท์ถ”๋ก , ๊ฒŒ์ž„ ์ŠคํŠธ๋ฆฌ๋ฐ

โšก Graviton (ARM ๊ธฐ๋ฐ˜) ์ธ์Šคํ„ด์Šค โ€” 2025 ํ•ต์‹ฌ ํŠธ๋ Œ๋“œ#

AWS Graviton ํ”„๋กœ์„ธ์„œ ๊ธฐ๋ฐ˜ EC2 ์ธ์Šคํ„ด์Šค๋Š” x86 ๊ธฐ๋ฐ˜ ์ธ์Šคํ„ด์Šค ๋Œ€๋น„ ์ตœ๋Œ€ 40% ํ–ฅ์ƒ๋œ ๊ฐ€๊ฒฉ ๋Œ€๋น„ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์„ธ๋Œ€์ธ์Šคํ„ด์Šค ์˜ˆ์‹œํŠน์ง•
Graviton2m6g, c6g, r6g1์„ธ๋Œ€ ARM, ๊ฒ€์ฆ๋œ ์•ˆ์ •์„ฑ
Graviton3m7g, c7g, r7g20% ํ–ฅ์ƒ๋œ ๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ
Graviton4m8g (์‹ ๊ทœ)์ตœ์‹  ์„ธ๋Œ€, ์ตœ๊ณ  ํšจ์œจ
WARNING

ARM ์•„ํ‚คํ…์ฒ˜์ด๋ฏ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด x86 ๋ฐ”์ด๋„ˆ๋ฆฌ์— ์˜์กดํ•˜๋Š” ๊ฒฝ์šฐ ๋ฉ€ํ‹ฐ ์•„ํ‚คํ…์ฒ˜ ๋นŒ๋“œ ํ…Œ์ŠคํŠธ ํ•„์š”. Docker ์ด๋ฏธ์ง€๋„ arm64 ์ง€์› ์—ฌ๋ถ€ ํ™•์ธ ํ•„์ˆ˜.


๐Ÿ”€ ๋ฒ„์Šคํ„ฐ๋ธ” ์ธ์Šคํ„ด์Šค (T ์‹œ๋ฆฌ์ฆˆ)#

  • ๊ธฐ์ค€ CPU ์„ฑ๋Šฅ + ํ•„์š” ์‹œ ์ผ์‹œ์ ์œผ๋กœ ๋ฒ„์ŠคํŠธ ๊ฐ€๋Šฅ
  • CPU ํฌ๋ ˆ๋”ง ๋ฐฉ์‹: ํ‰์†Œ์— ํฌ๋ ˆ๋”ง ์ ๋ฆฝ โ†’ ๋ถ€ํ•˜ ์‹œ ์†Œ์ง„
  • ๊ฐœ๋ฐœ/ํ…Œ์ŠคํŠธ, ํŠธ๋ž˜ํ”ฝ ๋ณ€๋™์ด ํฐ ์†Œ๊ทœ๋ชจ ์•ฑ์— ์ ํ•ฉ
t3.micro: ๊ธฐ์ค€ 20% CPU, ํ•„์š” ์‹œ ์ตœ๋Œ€ 100%๊นŒ์ง€ ๋ฒ„์ŠคํŠธ
t3.large: ๊ธฐ์ค€ 30% CPU, ํ•„์š” ์‹œ ์ตœ๋Œ€ 100%๊นŒ์ง€ ๋ฒ„์ŠคํŠธ
WARNING

ํ”„๋กœ๋•์…˜ ๊ณ ๋ถ€ํ•˜ ํ™˜๊ฒฝ์—์„œ ํฌ๋ ˆ๋”ง ๊ณ ๊ฐˆ ์‹œ ์‹ฌ๊ฐํ•œ ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฐœ์ƒ. unlimited ๋ชจ๋“œ ์„ค์ • ์‹œ ์ถ”๊ฐ€ ๋น„์šฉ ๋ฐœ์ƒ.


3. Security Groups (๋ณด์•ˆ ๊ทธ๋ฃน)#

๐Ÿ”ฅ ๊ฐœ๋…#

  • EC2 ์ธ์Šคํ„ด์Šค ์•ž๋‹จ์˜ ๊ฐ€์ƒ ๋ฐฉํ™”๋ฒฝ
  • Allow ๊ทœ์น™๋งŒ ์กด์žฌ (Deny ๊ทœ์น™ ์—†์Œ โ€” NACL๊ณผ ์ฐจ์ด)
  • IP ๋˜๋Š” ๋‹ค๋ฅธ Security Group์„ ์ฐธ์กฐํ•ด ๊ทœ์น™ ์„ค์ • ๊ฐ€๋Šฅ
์ธํ„ฐ๋„ท
โ”‚
โ–ผ
[Security Group] โ† ์—ฌ๊ธฐ์„œ ํ—ˆ์šฉ๋œ ํŠธ๋ž˜ํ”ฝ๋งŒ ํ†ต๊ณผ
โ”‚
โ–ผ
[EC2 Instance] โ† ์ฐจ๋‹จ๋œ ํŠธ๋ž˜ํ”ฝ์€ ์ธ์Šคํ„ด์Šค๊ฐ€ ์•„์˜ˆ ๋ณผ ์ˆ˜ ์—†์Œ

๐Ÿ“‹ Inbound / Outbound ๊ธฐ๋ณธ๊ฐ’#

ํŠธ๋ž˜ํ”ฝ ๋ฐฉํ–ฅ๊ธฐ๋ณธ๊ฐ’์˜๋ฏธ
Inbound์ „์ฒด ์ฐจ๋‹จ๋ช…์‹œ์ ์œผ๋กœ ํ—ˆ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์™ธ๋ถ€ ์ ‘๊ทผ ๋ถˆ๊ฐ€
Outbound์ „์ฒด ํ—ˆ์šฉ์ธ์Šคํ„ด์Šค์—์„œ ์™ธ๋ถ€๋กœ ๋‚˜๊ฐ€๋Š” ํŠธ๋ž˜ํ”ฝ ์ œํ•œ ์—†์Œ

๐Ÿ“Œ ์ฃผ์š” ํฌํŠธ ๋ฒˆํ˜ธ#

ํฌํŠธํ”„๋กœํ† ์ฝœ์šฉ๋„
22SSHLinux ์ธ์Šคํ„ด์Šค ์›๊ฒฉ ์ ‘์†
22SFTPSSH ๊ธฐ๋ฐ˜ ํŒŒ์ผ ์ „์†ก
21FTPํŒŒ์ผ ์ „์†ก (๋ณด์•ˆ ์ทจ์•ฝ, ๋น„๊ถŒ์žฅ)
80HTTP์›น ์„œ๋ฒ„ (๋น„์•”ํ˜ธํ™”)
443HTTPS์›น ์„œ๋ฒ„ (์•”ํ˜ธํ™”)
3389RDPWindows ์ธ์Šคํ„ด์Šค ์›๊ฒฉ ๋ฐ์Šคํฌํ†ฑ
3306MySQL/AuroraDB ์ ‘์†
5432PostgreSQLDB ์ ‘์†
6379Redis์บ์‹œ ์„œ๋ฒ„ ์ ‘์†

โœ… Security Group ํ™œ์šฉ ํŒ#

1. Security Group ๊ฐ„ ์ฐธ์กฐ (IP ๋Œ€์‹ )

[App Server SG] โ†’ Inbound: MySQL(3306) from [DB Server SG]

โ†’ IP ๋ณ€๊ฒฝ ์‹œ์—๋„ ์ž๋™ ์ ์šฉ, IP ๊ด€๋ฆฌ ๋ถˆํ•„์š”

2. ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ๊ฐ€์ด๋“œ

์ฆ์ƒ์›์ธํ•ด๊ฒฐ
์•ฑ์— ์•„์˜ˆ ์ ‘๊ทผ ์•ˆ ๋จ (timeout)Security Group ์ฐจ๋‹จInbound ๊ทœ์น™ ํ™•์ธ
์ ‘๊ทผ์€ ๋˜๋Š”๋ฐ Connection refused์•ฑ์ด ์•ˆ ๋–ด๊ฑฐ๋‚˜ ํฌํŠธ ๋ถˆ์ผ์น˜์•ฑ ์ƒํƒœ ํ™•์ธ
ํŠน์ • IP๋งŒ ์•ˆ ๋จInbound IP ๋ฒ”์œ„ ์„ค์ • ์˜ค๋ฅ˜CIDR ํ™•์ธ
๐Ÿ’ก Best Practice

SSH์šฉ Security Group์„ ๋ณ„๋„๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ด€๋ฆฌ. 0.0.0.0/0 (์ „์ฒด ํ—ˆ์šฉ)์€ ์ ˆ๋Œ€ ํ”„๋กœ๋•์…˜์— ์‚ฌ์šฉ ๊ธˆ์ง€.


4. SSH ์ ‘์† ๋ฐฉ๋ฒ•#

ํ”Œ๋žซํผ๋ณ„ ์ง€์› ํ˜„ํ™ฉ#

๋ฐฉ๋ฒ•MacLinuxWindows < 10Windows โ‰ฅ 10
SSHโœ…โœ…โŒโœ…
PuTTYโŒโŒโœ…โœ…
EC2 Instance Connectโœ…โœ…โœ…โœ…
AWS Systems Manager (SSM)โœ…โœ…โœ…โœ…

SSH ์ ‘์† ์˜ˆ์‹œ#

Terminal window
# ํ‚ค ํŒŒ์ผ ๊ถŒํ•œ ์„ค์ • (์ตœ์ดˆ 1ํšŒ)
chmod 400 my-key.pem
# ์ ‘์†
ssh -i my-key.pem ec2-user@<๊ณต์ธIP>
# Amazon Linux: ec2-user
# Ubuntu: ubuntu
# CentOS: centos

๐ŸŒŸ EC2 Instance Connect vs SSM Session Manager#

๊ตฌ๋ถ„EC2 Instance ConnectSSM Session Manager
SSH ํ‚ค ํ•„์š”โŒ (๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜)โŒ
๊ณต์ธ IP ํ•„์š”โœ…โŒ (ํ”„๋ผ์ด๋น— ์„œ๋ธŒ๋„ท ๊ฐ€๋Šฅ)
ํฌํŠธ 22 ์˜คํ”ˆ ํ•„์š”โœ…โŒ
๊ฐ์‚ฌ ๋กœ๊ทธ์ œํ•œ์ CloudTrail + S3 ์™„์ „ ๊ธฐ๋ก
๋ณด์•ˆ ์ˆ˜์ค€๋ณดํ†ต์ตœ๊ณ  (Best Practice)

AWS Systems Manager Session Manager

  • SSH ํฌํŠธ๋ฅผ ์—ด๊ฑฐ๋‚˜ Bastion ํ˜ธ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  EC2 ์ธ์Šคํ„ด์Šค, ์˜จํ”„๋ ˆ๋ฏธ์Šค ์„œ๋ฒ„, VM ๋“ฑ์„ ์—‘์„ธ์Šค ํ•  ์ˆ˜ ์žˆ๋Š” ์•ˆ์ „ํ•˜๊ณ (secure), ๊ฐ์‚ฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ(audited), ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜(browser-based) ์‰˜
  • Benefits
    • ๋ณด์•ˆ (Security) : SSH ํฌํŠธ๋‚˜ RDP (3389) ํฌํŠธ๋ฅผ ์—ด์ง€ ์•Š์•„๋„ ๋˜์–ด์„œ ๋†’์€ ๋ณด์•ˆ ์ˆ˜์ค€ ์œ ์ง€ ๊ฐ€๋Šฅ
    • ์ ‘๊ทผ ์ œ์–ด (Access Control) : IAM ์ •์ฑ…์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ์ ‘๊ทผ ์ œ์–ด ๊ฐ€๋Šฅ
    • ๊ฐ์‚ฌ ์ถ”์  ๊ฐ€๋Šฅ์„ฑ (Auditability) : ๋ชจ๋“  ์„ธ์…˜ ๋ช…๋ น์–ด๋Š” ๋กœ๊น… โ†’ CloudWatch Logs๊ฐ€ Amazon S3 ๋“ฑ์—์„œ ๋กœ๊ทธ ์ค‘์•™ ๊ด€๋ฆฌ ์ง€์›
    • SSH Key ๊ด€๋ฆฌ โŒ : SSH ํ‚ค ๊ด€๋ฆฌ, ์ €์žฅ ๋ฐ ๋กœํ…Œ์ด์…˜์ด ๋ถˆํ•„์š”
    • ํฌ๋กœ์Šค ํ”Œ๋žซํผ (Cross-Platform) : Windows์™€ Linux ์ธ์Šคํ„ด์Šค ๋‘˜๋‹ค ์ง€์› ๊ฐ€๋Šฅ
  • How to setup?
    • SSM Agent ์„ค์น˜
    • IAM Role Configuration : AmazonSSMManagedInstanceCore ์ •์ฑ… ์„ค์ •์„ ํ†ตํ•ด์„œ System Manager service์™€ ํ†ต์‹  ๊ฐ€๋Šฅํ•˜๋„๋ก ํ—ˆ์šฉ
    • Network Connectivity : ์ธ์Šคํ„ด์Šค๋Š” HTTPS (443) ์•„์›ƒ๋ฐ”์šด๋“œ ์ •์ฑ… ํ—ˆ์šฉ
๐Ÿ’ก 2025 Best Practice

ํฌํŠธ 22๋ฅผ ์•„์˜ˆ ์—ด์ง€ ์•Š๊ณ  SSM Session Manager๋กœ ์ ‘์†ํ•˜๋Š” ๊ฒƒ์ด ๋ณด์•ˆ์ƒ ๊ฐ€์žฅ ๊ถŒ์žฅ๋˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.


5. ๊ตฌ๋งค ์˜ต์…˜ (Purchasing Options)#

๐Ÿจ ํ˜ธํ…” ๋น„์œ ๋กœ ์ดํ•ดํ•˜๊ธฐ#

๊ตฌ๋งค ์˜ต์…˜ํ˜ธํ…” ๋น„์œ ํŠน์ง•
On-Demand์˜ˆ์•ฝ ์—†์ด ์ •๊ฐ€๋กœ ์ฒดํฌ์ธ์œ ์—ฐ, ๋‹จ๊ธฐ, ๊ฐ€์žฅ ๋น„์Œˆ
Reserved1~3๋…„ ์žฅ๊ธฐ ๊ณ„์•ฝ ํ• ์ธ์ตœ๋Œ€ 72% ํ• ์ธ, ์•ˆ์ •์  ์›Œํฌ๋กœ๋“œ
Savings Plans์ผ์ • ๊ธˆ์•ก ์„ ๋ถˆ, ์–ด๋А ๋ฐฉ์ด๋“  OK์œ ์—ฐํ•œ ํ• ์ธ ์•ฝ์ •
Spot๋นˆ ๋ฐฉ ๊ฒฝ๋งค, ์–ธ์ œ๋“  ํ‡ด์‹ค ๊ฐ€๋Šฅ์ตœ๋Œ€ 90% ํ• ์ธ, ์ค‘๋‹จ ๊ฐ€๋Šฅ
Dedicated Host๊ฑด๋ฌผ ์ „์ฒด ์ž„๋Œ€๋ฌผ๋ฆฌ ์„œ๋ฒ„ ๋‹จ๋… ์‚ฌ์šฉ, ๋ผ์ด์„ ์Šค
Dedicated Instance๊ฐ™์€ ๊ฑด๋ฌผ ๋‚ด ๋‚จ๊ณผ ๊ณต์œ  ์—†์Œ๋…ผ๋ฆฌ์  ๊ฒฉ๋ฆฌ
Capacity Reservation๋ฐฉ ์˜ˆ์•ฝ๋งŒ ํ•ด๋‘๊ธฐ (์•ˆ ์จ๋„ ์š”๊ธˆ)์šฉ๋Ÿ‰ ๋ณด์žฅ, ํŠน์ • AZ

๐Ÿ’ฐ ๋น„์šฉ ๋น„๊ต ๋ฐ ์‚ฌ์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค#

๋น„์šฉ (๋†’์Œ โ†’ ๋‚ฎ์Œ)
On-Demand > Dedicated Host > Reserved > Savings Plans > Spot
์œ ์—ฐ์„ฑ (๋†’์Œ โ†’ ๋‚ฎ์Œ)
On-Demand > Spot > Savings Plans > Reserved > Dedicated Host

On-Demand#

  • Linux/Windows: ์ดˆ ๋‹จ์œ„ ๊ณผ๊ธˆ (์ตœ์ดˆ 1๋ถ„ ์ดํ›„)
  • ๊ธฐํƒ€ OS: ์‹œ๊ฐ„ ๋‹จ์œ„ ๊ณผ๊ธˆ
  • ์˜ˆ์ธก ๋ถˆ๊ฐ€ํ•œ ๋‹จ๊ธฐ ์›Œํฌ๋กœ๋“œ, ์‹ ๊ทœ ์•ฑ ํ…Œ์ŠคํŠธ์— ์ ํ•ฉ

Reserved Instances (RI)#

  • ์ตœ๋Œ€ 72% ํ• ์ธ (3๋…„ ์ „์•ก ์„ ๋ถˆ ์‹œ ์ตœ๋Œ€)
  • ๊ณ ์ • ์กฐ๊ฑด: ์ธ์Šคํ„ด์Šค ํƒ€์ž…, ๋ฆฌ์ „, OS, ํ…Œ๋„Œ์‹œ
๊ฒฐ์ œ ๋ฐฉ์‹ํ• ์ธ์œจ
No Upfront (์„ ๋ถˆ ์—†์Œ)๋‚ฎ์Œ
Partial Upfront (์ผ๋ถ€ ์„ ๋ถˆ)์ค‘๊ฐ„
All Upfront (์ „์•ก ์„ ๋ถˆ)์ตœ๋Œ€
  • Convertible RI: ์ธ์Šคํ„ด์Šค ํƒ€์ž… ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ, ์ตœ๋Œ€ 66% ํ• ์ธ
  • Reserved Instance Marketplace์—์„œ ๋‚จ์€ ๊ธฐ๊ฐ„ ํŒ๋งค ๊ฐ€๋Šฅ

Savings Plans#

  • ์‹œ๊ฐ„๋‹น ์‚ฌ์šฉ ๊ธˆ์•ก ์•ฝ์ • ($X/์‹œ๊ฐ„ ํ˜•ํƒœ)
  • RI๋ณด๋‹ค ์œ ์—ฐ: ์ธ์Šคํ„ด์Šค ํฌ๊ธฐ, OS, ํ…Œ๋„Œ์‹œ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
  • ์•ฝ์ • ์ดˆ๊ณผ๋ถ„์€ On-Demand ์š”๊ธˆ ์ ์šฉ
  • ์ทจ์†Œ ๋ถˆ๊ฐ€ (1๋…„ ๋˜๋Š” 3๋…„ ์•ฝ์ •)

๋Œ€๋ถ€๋ถ„์˜ ํŒ€์—๊ฒŒ๋Š” Compute Savings Plans๊ฐ€ ์ ˆ๊ฐ์•ก๊ณผ ์œ ์—ฐ์„ฑ์˜ ๊ฐ€์žฅ ์ข‹์€ ๊ท ํ˜•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. AWS๋Š” ์ƒˆ๋กœ์šด ์•ฝ์ •์— ๋Œ€ํ•ด Savings Plans๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

Spot Instances#

  • ์ตœ๋Œ€ 90% ํ• ์ธ โ€” AWS์—์„œ ๊ฐ€์žฅ ์ €๋ ด
  • ํ˜„์žฌ Spot ๊ฐ€๊ฒฉ์ด ์„ค์ •ํ•œ ์ตœ๋Œ€ ๊ฐ€๊ฒฉ ์ดˆ๊ณผ ์‹œ 2๋ถ„ ๊ฒฝ๊ณ  ํ›„ ์ธ์Šคํ„ด์Šค ์ข…๋ฃŒ
  • ์ค‘๋‹จ์— ๊ฒฌ๋”œ ์ˆ˜ ์žˆ๋Š” ์›Œํฌ๋กœ๋“œ์—๋งŒ ์ ํ•ฉ:
โœ… ์ ํ•ฉ: ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ, ๋ฐ์ดํ„ฐ ๋ถ„์„, ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ, ML ํ•™์Šต, CI/CD
โŒ ๋ถ€์ ํ•ฉ: ์šด์˜ DB, ๊ฒฐ์ œ ์‹œ์Šคํ…œ, ์‹ค์‹œ๊ฐ„ ์„œ๋น„์Šค

Dedicated Hosts vs Dedicated Instances#

ํ•ญ๋ชฉDedicated InstanceDedicated Host
๋ฌผ๋ฆฌ ์„œ๋ฒ„ ์ „์šฉ ์‚ฌ์šฉโŒ (๊ณ„์ • ๋‚ด ๊ณต์œ  ๊ฐ€๋Šฅ)โœ…
์†Œ์ผ“/์ฝ”์–ด ์ˆ˜ ๊ฐ€์‹œ์„ฑโŒโœ…
์ธ์Šคํ„ด์Šค ๋ฐฐ์น˜ ์ œ์–ดโŒโœ…
๊ธฐ์กด ๋ผ์ด์„ ์Šค ํ™œ์šฉ (BYOL)โŒโœ…
๋น„์šฉ๋น„์Œˆ๊ฐ€์žฅ ๋น„์Œˆ

๐Ÿ’ก Dedicated Host ์‚ฌ์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค: Oracle, Microsoft SQL Server ๋“ฑ ์†Œ์ผ“/์ฝ”์–ด ๊ธฐ๋ฐ˜ ๋ผ์ด์„ ์Šค๊ฐ€ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ํด๋ผ์šฐ๋“œ๋กœ ์ด์ „(Lift & Shift)ํ•  ๋•Œ.


6. Spot Instance ์‹ฌํ™”#

๐ŸŽฏ Spot Instance ์ž‘๋™ ๋ฐฉ์‹#

์‚ฌ์šฉ์ž๊ฐ€ max price ์„ค์ •
โ”‚
โ–ผ
ํ˜„์žฌ Spot ๊ฐ€๊ฒฉ < max price โ†’ ์ธ์Šคํ„ด์Šค ์‹คํ–‰ ์œ ์ง€
โ”‚
ํ˜„์žฌ Spot ๊ฐ€๊ฒฉ > max price โ†’ 2๋ถ„ ๊ฒฝ๊ณ 
โ”‚
โ”œโ”€โ”€ Stop: Spot ๊ฐ€๊ฒฉ์ด ๋‚ฎ์•„์ง€๋ฉด ์ž๋™ ์žฌ์‹œ์ž‘ (Persistent)
โ””โ”€โ”€ Terminate: ์™„์ „ ์ข…๋ฃŒ (One-time)

๐Ÿ“‹ Spot Request ์œ ํ˜•#

์œ ํ˜•์„ค๋ช…์ข…๋ฃŒ ํ›„
One-timeํ•œ ๋ฒˆ๋งŒ ์š”์ฒญ, ์ข…๋ฃŒ ์‹œ ๋์žฌ์‹œ์ž‘ ์—†์Œ
Persistent๊ฐ€๊ฒฉ ์กฐ๊ฑด ์ถฉ์กฑ ์‹œ ์ž๋™ ์žฌ์‹œ์ž‘์ž๋™ ์žฌ์‹คํ–‰

์˜ฌ๋ฐ”๋ฅธ ์ข…๋ฃŒ ์ˆœ์„œ:

1๏ธโƒฃ Spot Request ์ทจ์†Œ (Cancel) โ€” ๋จผ์ €!
2๏ธโƒฃ ์—ฐ๊ฒฐ๋œ ์ธ์Šคํ„ด์Šค ์ข…๋ฃŒ (Terminate)
โš ๏ธ ์ธ์Šคํ„ด์Šค๋งŒ ์ข…๋ฃŒํ•˜๋ฉด Persistent ์š”์ฒญ์ด ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘์‹œํ‚ด

๐Ÿšข Spot Fleet โ€” ๋” ์Šค๋งˆํŠธํ•œ Spot ํ™œ์šฉ#

Spot Fleet = Spot ์ธ์Šคํ„ด์Šค ์ง‘ํ•ฉ + (์„ ํƒ) On-Demand ์ธ์Šคํ„ด์Šค

Spot Fleet
โ”œโ”€โ”€ Launch Pool A: c5.xlarge, Linux, us-east-1a
โ”œโ”€โ”€ Launch Pool B: c5.2xlarge, Linux, us-east-1b
โ””โ”€โ”€ Launch Pool C: c5a.xlarge, Linux, us-east-1c
โ†’ ๋ชฉํ‘œ ์šฉ๋Ÿ‰์— ๋งž์ถฐ ๊ฐ€์žฅ ์œ ๋ฆฌํ•œ ํ’€์—์„œ ์ž๋™์œผ๋กœ ์ธ์Šคํ„ด์Šค ์š”์ฒญ

Spot Fleet ํ• ๋‹น ์ „๋žต:

์ „๋žต์„ค๋ช…์ ํ•ฉํ•œ ์ƒํ™ฉ
lowestPrice๊ฐ€์žฅ ์ €๋ ดํ•œ ํ’€ ์šฐ์„ ๋น„์šฉ ์ตœ์šฐ์„  ๋‹จ๊ธฐ ์ž‘์—…
diversified์—ฌ๋Ÿฌ ํ’€์— ๋ถ„์‚ฐ๊ฐ€์šฉ์„ฑ ์ค‘์‹œ, ์žฅ๊ธฐ ์‹คํ–‰
capacityOptimized์šฉ๋Ÿ‰ ์—ฌ์œ  ์žˆ๋Š” ํ’€ ์šฐ์„ ์ค‘๋‹จ ์ตœ์†Œํ™”
priceCapacityOptimized โญ์šฉ๋Ÿ‰ ์—ฌ์œ  ํ’€ ์ค‘ ์ตœ์ €๊ฐ€๋Œ€๋ถ€๋ถ„์˜ ์›Œํฌ๋กœ๋“œ์— ๊ถŒ์žฅ

7. IP ์ฃผ์†Œ & Elastic IP#

๐ŸŒ ๊ณต์ธ IP (Public IP) vs ์‚ฌ์„ค IP (Private IP)#

๊ตฌ๋ถ„๊ณต์ธ IP (Public IP)์‚ฌ์„ค IP (Private IP)
์‹๋ณ„ ๋ฒ”์œ„์ธํ„ฐ๋„ท ์ „์ฒดํ•ด๋‹น ์‚ฌ์„ค ๋„คํŠธ์›Œํฌ ๋‚ด๋ถ€๋งŒ
์œ ์ผ์„ฑ์ „ ์„ธ๊ณ„์—์„œ ์œ ์ผ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ๋งŒ ์œ ์ผ
์ค‘๋ณต๋ถˆ๊ฐ€์„œ๋กœ ๋‹ค๋ฅธ ํšŒ์‚ฌ ๊ฐ„์—๋Š” ์ค‘๋ณต ๊ฐ€๋Šฅ
์™ธ๋ถ€ ์ ‘๊ทผ์ง์ ‘ ๊ฐ€๋ŠฅNAT + ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด ๊ฒฝ์œ  ํ•„์š”
์œ„์น˜ ์ถ”์ ๊ฐ€๋Šฅ (Geo-location)๋ถˆ๊ฐ€
[์‚ฌ์„ค ๋„คํŠธ์›Œํฌ A] [์‚ฌ์„ค ๋„คํŠธ์›Œํฌ B]
192.168.1.10 192.168.1.10 โ† ์‚ฌ์„ค IP ์ค‘๋ณต ๊ฐ€๋Šฅ
โ”‚ โ”‚
[NAT/IGW] [NAT/IGW]
โ”‚ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ์ธํ„ฐ๋„ท โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
(๊ณต์ธ IP๋Š” ์œ ์ผ)
TIP

EC2 ์ธ์Šคํ„ด์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์„ค IP๋Š” ๊ณ ์ •์ด์ง€๋งŒ, ๊ณต์ธ IP๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ค‘์ง€(Stop) ํ›„ ์žฌ์‹œ์ž‘(Start)ํ•˜๋ฉด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.


๐Ÿ”’ IPv4 vs IPv6#

ํ•ญ๋ชฉIPv4IPv6
์˜ˆ์‹œ1.160.10.2403ffe:1900:4545:3:200:f8ff:fe21:67cf
์ฃผ์†Œ ์ˆ˜์•ฝ 37์–ต ๊ฐœ (๊ณ ๊ฐˆ ์ค‘)์‚ฌ์‹ค์ƒ ๋ฌด์ œํ•œ
ํ˜„์žฌ ์ƒํƒœ์ธํ„ฐ๋„ท์˜ ์ฃผ๋ฅ˜ ๋ฐฉ์‹IoT ๋“ฑ ์‹ ๊ทœ ๊ธฐ๊ธฐ ํ™•์‚ฐ์œผ๋กœ ์ฆ๊ฐ€ ์ค‘

๐Ÿ“Œ Elastic IP (ํƒ„๋ ฅ์  IP)#

  • EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ค‘์ง€(Stop) ํ›„ ์‹œ์ž‘(Start)ํ•˜๋ฉด ๊ณต์ธ IP๊ฐ€ ๋ฐ”๋€Œ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ณ ์ • ๊ณต์ธ IPv4 ์ฃผ์†Œ
  • ์‚ญ์ œํ•˜์ง€ ์•Š๋Š” ํ•œ ๊ณ„์† ์†Œ์œ  ๊ฐ€๋Šฅ
  • ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค์—๋งŒ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ
  • ์ธ์Šคํ„ด์Šค ๋˜๋Š” ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ์žฅ์•  ์‹œ, ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค๋กœ ๋น ๋ฅด๊ฒŒ ์žฌ๋งคํ•‘(Remap)ํ•˜์—ฌ ์žฅ์• ๋ฅผ ๋งˆ์Šคํ‚น(Masking)ํ•˜๋Š” ์šฉ๋„๋กœ ํ™œ์šฉ ๊ฐ€๋Šฅ
  • ๊ณ„์ •๋‹น ๊ธฐ๋ณธ 5๊ฐœ ์ œํ•œ (AWS์— ์ฆ๊ฐ€ ์š”์ฒญ ๊ฐ€๋Šฅ)
  • ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ Elastic IP์—๋Š” ์š”๊ธˆ ๋ถ€๊ณผ (๋‚ญ๋น„ ๋ฐฉ์ง€์šฉ)

โš ๏ธ Elastic IP ์‚ฌ์šฉ์„ ํ”ผํ•ด์•ผ ํ•˜๋Š” ์ด์œ #

Elastic IP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜๋Š” ์ข…์ข… ์„ค๊ณ„๊ฐ€ ์ž˜๋ชป๋œ ์‹ ํ˜ธ์ž…๋‹ˆ๋‹ค (often reflect poor architectural decisions).

๋Œ€์‹  ๊ถŒ์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•:

์ƒํ™ฉ๊ถŒ์žฅ ๋ฐฉ๋ฒ•
๊ณ ์ • ์ฃผ์†Œ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐDNS ์ด๋ฆ„(Route 53)์„ ๊ณต์ธ IP์— ์—ฐ๊ฒฐ
์™ธ๋ถ€ ํŠธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ(ELB) ์‚ฌ์šฉ โ†’ ์ธ์Šคํ„ด์Šค์— ๊ณต์ธ IP ๋ถˆํ•„์š”
์žฅ์•  ๋ณต๊ตฌAuto Scaling + ELB ์กฐํ•ฉ์œผ๋กœ IP ์˜์กด์„ฑ ์ œ๊ฑฐ

8. ๋ฐฐ์น˜ ๊ทธ๋ฃน (Placement Groups)#

  • EC2 ์ธ์Šคํ„ด์Šค๊ฐ€ AWS ์ธํ”„๋ผ ๋‚ด์— ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜๋ ์ง€๋ฅผ ์ œ์–ดํ•˜๋Š” ๊ธฐ๋Šฅ
  • ์„ธ ๊ฐ€์ง€ ์ „๋žต ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜์—ฌ ๊ทธ๋ฃน ์ƒ์„ฑ

๐Ÿ“Š ๋ฐฐ์น˜ ์ „๋žต ๋น„๊ต#

์ „๋žตํ•ต์‹ฌ ๋ชฉํ‘œ์ œ์•ฝ์ฃผ์š” Use Case
Cluster์ดˆ์ €์ง€์—ฐ, ๊ณ ๋Œ€์—ญํญ๋‹จ์ผ AZ, ๋‹จ์ผ ๋ž™HPC, ๋น…๋ฐ์ดํ„ฐ, ์ดˆ๊ณ ์† ํ†ต์‹ 
Spread์ตœ๋Œ€ ๊ฐ€์šฉ์„ฑ, ๋ฌผ๋ฆฌ์  ๊ฒฉ๋ฆฌAZ๋‹น ์ตœ๋Œ€ 7 ์ธ์Šคํ„ด์Šค๋ฏธ์…˜ ํฌ๋ฆฌํ‹ฐ์ปฌ, ๊ณ ๊ฐ€์šฉ์„ฑ ์•ฑ
Partition๋Œ€๊ทœ๋ชจ ๋ถ„์‚ฐ, ํŒŒํ‹ฐ์…˜ ๋‹จ์œ„ ๊ฒฉ๋ฆฌAZ๋‹น ์ตœ๋Œ€ 7 ํŒŒํ‹ฐ์…˜, ์ˆ˜๋ฐฑ ์ธ์Šคํ„ด์Šค๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ์‹œ์Šคํ…œ (Hadoop, Kafka)

๐Ÿš€ Cluster Placement Group (ํด๋Ÿฌ์Šคํ„ฐ ๋ฐฐ์น˜ ๊ทธ๋ฃน)#

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Availability Zone โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๋‹จ์ผ ๋ž™ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚ [EC2] [EC2] [EC2] [EC2] [EC2] โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  • ์žฅ์ : Enhanced Networking (ํ–ฅ์ƒ๋œ ๋„คํŠธ์›Œํ‚น) ํ™œ์„ฑํ™” ์‹œ ์ธ์Šคํ„ด์Šค ๊ฐ„ 10Gbps ๋Œ€์—ญํญ
  • ๋‹จ์ : AZ ์ „์ฒด ์žฅ์•  ์‹œ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ๋™์‹œ์— ์ค‘๋‹จ๋จ
  • Use Case: ๋น ๋ฅด๊ฒŒ ์™„๋ฃŒํ•ด์•ผ ํ•˜๋Š” ๋น…๋ฐ์ดํ„ฐ ์ž‘์—… (Big Data job), ์ดˆ์ €์ง€์—ฐยท๊ณ ์ฒ˜๋ฆฌ๋Ÿ‰์ด ํ•„์š”ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

๐Ÿ›ก๏ธ Spread Placement Group (๋ถ„์‚ฐ ๋ฐฐ์น˜ ๊ทธ๋ฃน)#

โ”Œโ”€โ”€ AZ 1 โ”€โ”€โ” โ”Œโ”€โ”€ AZ 2 โ”€โ”€โ” โ”Œโ”€โ”€ AZ 3 โ”€โ”€โ”
โ”‚ [๋ž™1] โ”‚ โ”‚ [๋ž™2] โ”‚ โ”‚ [๋ž™3] โ”‚
โ”‚ [EC2] โ”‚ โ”‚ [EC2] โ”‚ โ”‚ [EC2] โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  • ์žฅ์ : ๊ฐ ์ธ์Šคํ„ด์Šค๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฌผ๋ฆฌ ํ•˜๋“œ์›จ์–ด(๋ž™)์— ๋ฐฐ์น˜ โ†’ ๋™์‹œ ์žฅ์•  ์œ„ํ—˜ ์ตœ์†Œํ™”, ์—ฌ๋Ÿฌ AZ์— ๊ฑธ์ณ ๋ฐฐ์น˜ ๊ฐ€๋Šฅ
  • ๋‹จ์ : AZ๋‹น ์ตœ๋Œ€ 7๊ฐœ ์ธ์Šคํ„ด์Šค ์ œํ•œ (์†Œ๊ทœ๋ชจ ๋ฐฐํฌ์—๋งŒ ์ ํ•ฉ)
  • Use Case: ๊ฐ ์ธ์Šคํ„ด์Šค๊ฐ€ ์„œ๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ์žฅ์•  ๊ฒฉ๋ฆฌ(Isolated from failure)๋˜์–ด์•ผ ํ•˜๋Š” ๊ณ ๊ฐ€์šฉ์„ฑ ๋ฏธ์…˜ ํฌ๋ฆฌํ‹ฐ์ปฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

๐Ÿ—‚๏ธ Partition Placement Group (ํŒŒํ‹ฐ์…˜ ๋ฐฐ์น˜ ๊ทธ๋ฃน)#

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ AZ 1 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ โ”Œโ”€ํŒŒํ‹ฐ์…˜1โ”€โ” โ”Œโ”€ํŒŒํ‹ฐ์…˜2โ”€โ” โ”Œโ”€ํŒŒํ‹ฐ์…˜3โ”€โ” โ”‚
โ”‚ โ”‚ [EC2] โ”‚ โ”‚ [EC2] โ”‚ โ”‚ [EC2] โ”‚ โ”‚
โ”‚ โ”‚ [EC2] โ”‚ โ”‚ [EC2] โ”‚ โ”‚ [EC2] โ”‚ โ”‚
โ”‚ โ”‚ [EC2] โ”‚ โ”‚ [EC2] โ”‚ โ”‚ [EC2] โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚ (์„œ๋กœ ๋‹ค๋ฅธ ๋ž™, ํŒŒํ‹ฐ์…˜ ๊ฐ„ ๋ž™ ๊ณต์œ  ์—†์Œ) โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  • AZ๋‹น ์ตœ๋Œ€ 7๊ฐœ ํŒŒํ‹ฐ์…˜, ๋™์ผ ๋ฆฌ์ „ ๋‚ด ์—ฌ๋Ÿฌ AZ์— ๊ฑธ์ณ ๋ฐฐ์น˜ ๊ฐ€๋Šฅ
  • ๊ทธ๋ฃน๋‹น ์ˆ˜๋ฐฑ ๊ฐœ์˜ EC2 ์ธ์Šคํ„ด์Šค ์ง€์›
  • ํŒŒํ‹ฐ์…˜ ๊ฐ„ ๋ž™์„ ์ ˆ๋Œ€ ๊ณต์œ ํ•˜์ง€ ์•Š์Œ โ†’ ํ•œ ํŒŒํ‹ฐ์…˜ ์žฅ์• ๊ฐ€ ๋‹ค๋ฅธ ํŒŒํ‹ฐ์…˜์— ์˜ํ–ฅ ์—†์Œ
  • ์ธ์Šคํ„ด์Šค ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ(Instance Metadata)๋กœ ์ž์‹ ์ด ์†ํ•œ ํŒŒํ‹ฐ์…˜ ์ •๋ณด ์ ‘๊ทผ ๊ฐ€๋Šฅ โ†’ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ† ํด๋กœ์ง€ ์ธ์‹(Topology-aware) ๋ฐฐํฌ ๊ฐ€๋Šฅ
  • Use Case: HDFS, HBase, Cassandra, Kafka ๋“ฑ ๋Œ€๊ทœ๋ชจ ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ์‹œ์Šคํ…œ

9. ํƒ„๋ ฅ์  ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค (ENI)#

๐Ÿ”Œ ENI๋ž€?#

  • ENI (Elastic Network Interface, ํƒ„๋ ฅ์  ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค): VPC (Virtual Private Cloud, ๊ฐ€์ƒ ์‚ฌ์„ค ํด๋ผ์šฐ๋“œ) ๋‚ด์—์„œ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ์นด๋“œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋…ผ๋ฆฌ์  ์ปดํฌ๋„ŒํŠธ
  • EBS ๋ณผ๋ฅจ์„ ํ•„์š”์— ๋”ฐ๋ผ EC2์— ๋ถ™์ด๋“ฏ, ๋„คํŠธ์›Œํ‚น ๊ณ„์ธต๋„ ์ธ์Šคํ„ด์Šค์™€ ๋…๋ฆฝ์ ์œผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ณ„๋„๋กœ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ
  • ํŠน์ • AZ (Availability Zone, ๊ฐ€์šฉ ์˜์—ญ)์— ์ข…์†๋จ โ€” AZ ๊ฐ„ ์ด๋™ ๋ถˆ๊ฐ€

๐Ÿ’ก AWS ๊ณต์‹ ๋ธ”๋กœ๊ทธ ํ•ต์‹ฌ ์ธ์‚ฌ์ดํŠธ: ENI ๋„์ž… ์ด์ „์—๋Š” EC2 ์ธ์Šคํ„ด์Šค๊ฐ€ ํŠน์ • ์„œ๋ธŒ๋„ท(Subnet)์— ์†ํ•˜๋Š” ๊ฐœ๋…์ด์—ˆ์œผ๋‚˜, ENI ๋„์ž… ์ดํ›„ ์„œ๋ธŒ๋„ท ๊ท€์† ๋‹จ์œ„๋Š” ์ธ์Šคํ„ด์Šค๊ฐ€ ์•„๋‹Œ ENI ๋กœ ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค์— ์„œ๋กœ ๋‹ค๋ฅธ ์„œ๋ธŒ๋„ท์˜ ENI ๋‘ ๊ฐœ๋ฅผ ๋ถ™์—ฌ ๋“€์–ผ ํ™ˆ(Dual-homed) ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ“‹ ENI ์†์„ฑ (Attributes)#

์†์„ฑ์„ค๋ช…
๊ธฐ๋ณธ ์‚ฌ์„ค IPv4 (Primary Private IPv4)๋ฐ˜๋“œ์‹œ 1๊ฐœ, ์„œ๋ธŒ๋„ท ๋Œ€์—ญ ๋‚ด ํ• ๋‹น
๋ณด์กฐ ์‚ฌ์„ค IPv4 (Secondary Private IPv4)1๊ฐœ ์ด์ƒ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ
ํƒ„๋ ฅ์  IP (Elastic IP)์‚ฌ์„ค IPv4๋‹น ์ตœ๋Œ€ 1๊ฐœ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ
๊ณต์ธ IPv4 (Public IPv4)1๊ฐœ
๋ณด์•ˆ ๊ทธ๋ฃน (Security Groups)1๊ฐœ ์ด์ƒ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ
MAC ์ฃผ์†Œ (MAC Address)๊ณ ์œ  ์‹๋ณ„์ž, BYOL ๋ผ์ด์„ ์Šค์— ํ™œ์šฉ
์†Œ์Šค/๋ชฉ์ ์ง€ ํ™•์ธ ํ”Œ๋ž˜๊ทธ (Source/Destination Check Flag)NATยทํ”„๋ก์‹œ ์„œ๋ฒ„ ๊ตฌ์„ฑ ์‹œ ๋น„ํ™œ์„ฑํ™” ํ•„์š”
์ข…๋ฃŒ ์‹œ ์‚ญ์ œ ํ”Œ๋ž˜๊ทธ (Delete on Termination Flag)๊ธฐ๋ณธ ENI๋Š” ์ธ์Šคํ„ด์Šค ์ข…๋ฃŒ ์‹œ ์ž๋™ ์‚ญ์ œ

๐Ÿ”„ ENI์˜ ๋…๋ฆฝ์  ์ƒ๋ช…์ฃผ๊ธฐ (Independent Lifetime)#

EBS ๋ณผ๋ฅจ์ฒ˜๋Ÿผ ENI๋„ ํŠน์ • EC2 ์ธ์Šคํ„ด์Šค์™€ ๋…๋ฆฝ์ ์ธ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

ENI ์ƒ์„ฑ (๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋†“๊ธฐ ๊ฐ€๋Šฅ)
โ”‚
โ”œโ”€โ”€ ์ธ์Šคํ„ด์Šค ์‹œ์ž‘ ์‹œ ์—ฐ๊ฒฐ (Launch-time attach)
โ”œโ”€โ”€ ์‹คํ–‰ ์ค‘์ธ ์ธ์Šคํ„ด์Šค์— ์ฆ‰์‹œ ์—ฐ๊ฒฐ (Hot attach, ํ•ซ ์–ดํƒœ์น˜)
โ””โ”€โ”€ ์ธ์Šคํ„ด์Šค ์ข…๋ฃŒ ํ›„์—๋„ ENI๋Š” ์œ ์ง€ (Delete on Termination = false ์‹œ)

๐Ÿ—๏ธ ENI ์ฃผ์š” ํ™œ์šฉ ํŒจํ„ด#

1. ๊ด€๋ฆฌ ๋„คํŠธ์›Œํฌ ๋ถ„๋ฆฌ (Management Network / Backnet)

EC2 ์ธ์Šคํ„ด์Šค
โ”œโ”€โ”€ ENI 1 (๊ณต์šฉ ์„œ๋ธŒ๋„ท) โ”€โ†’ ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด โ†’ ์™ธ๋ถ€ ํŠธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ (ํฌํŠธ 80/443)
โ””โ”€โ”€ ENI 2 (์‚ฌ์„ค ์„œ๋ธŒ๋„ท) โ”€โ†’ VPN ๊ฒŒ์ดํŠธ์›จ์ด โ†’ SSH ์ ‘์†ยท๋กœ๊ทธยท๊ด€๋ฆฌ ํŠธ๋ž˜ํ”ฝ (ํฌํŠธ 22)

๊ฐ ENI์— ๋‹ค๋ฅธ ๋ณด์•ˆ ๊ทธ๋ฃน์„ ์ ์šฉํ•ด ํŠธ๋ž˜ํ”ฝ์„ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ œ์–ด ๊ฐ€๋Šฅ.

2. ๋ฉ€ํ‹ฐ ์ธํ„ฐํŽ˜์ด์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ (Multi-Interface Applications)

๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ(Load Balancer), ํ”„๋ก์‹œ ์„œ๋ฒ„(Proxy Server), NAT ์„œ๋ฒ„ ๊ตฌ์„ฑ ์‹œ ๋‘ ์„œ๋ธŒ๋„ท ์‚ฌ์ด์—์„œ ํŠธ๋ž˜ํ”ฝ์„ ์ „๋‹ฌ. ์ด ๊ฒฝ์šฐ ์†Œ์Šค/๋ชฉ์ ์ง€ ํ™•์ธ(Source/Destination Check)์„ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•จ.

3. MAC ์ฃผ์†Œ ๊ธฐ๋ฐ˜ ๋ผ์ด์„ ์Šค (MAC-Based Licensing)

ํŠน์ • MAC ์ฃผ์†Œ์— ๋ฌถ์ธ ์ƒ์šฉ ์†Œํ”„ํŠธ์›จ์–ด ๋ผ์ด์„ ์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ต์ฒดยทํƒ€์ž… ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋„ ๋™์ผํ•œ ENI(MAC ์ฃผ์†Œ ์œ ์ง€)๋ฅผ ์ƒˆ ์ธ์Šคํ„ด์Šค์— ์žฌ์—ฐ๊ฒฐํ•˜์—ฌ ๋ผ์ด์„ ์Šค ์žฌ๋ฐœ๊ธ‰ ์—†์ด ๊ณ„์† ์‚ฌ์šฉ ๊ฐ€๋Šฅ.

4. ์ €๋น„์šฉ ๊ณ ๊ฐ€์šฉ์„ฑ (Low-Budget High Availability)

1๏ธโƒฃ ENI๋ฅผ ์ธ์Šคํ„ด์Šค A์— ์—ฐ๊ฒฐ
2๏ธโƒฃ ์ธ์Šคํ„ด์Šค A ์žฅ์•  ๋ฐœ์ƒ
3๏ธโƒฃ ์ƒˆ ์ธ์Šคํ„ด์Šค B ์‹œ์ž‘
4๏ธโƒฃ ENI๋ฅผ ์ธ์Šคํ„ด์Šค B์— ์žฌ์—ฐ๊ฒฐ โ†’ ์ˆ˜ ์ดˆ ๋‚ด ํŠธ๋ž˜ํ”ฝ ๋ณต๊ตฌ

IP ์ฃผ์†Œ์™€ ๋ณด์•ˆ ๊ทธ๋ฃน ์„ค์ •์ด ENI์— ์ข…์†๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ, ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ฐ”๋€Œ์–ด๋„ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ์ด ๊ทธ๋Œ€๋กœ ์œ ์ง€๋จ.


๐Ÿ” ์žฅ์•  ๋ณต๊ตฌ ์‹œ๋‚˜๋ฆฌ์˜ค (Failover)#

[ENI: 10.0.1.50]โ”€โ”€โ†’ [์ธ์Šคํ„ด์Šค A: ์ •์ƒ]
โ”‚ ์žฅ์• !
โ–ผ
[ENI: 10.0.1.50]โ”€โ”€โ†’ [์ธ์Šคํ„ด์Šค B: ๊ต์ฒด๋จ]
(๋™์ผ IP ์œ ์ง€) (์ˆ˜ ์ดˆ ๋‚ด ํŠธ๋ž˜ํ”ฝ ์ „ํ™˜)
TIP

ENI๋Š” ํŠน์ • AZ์— ์ข…์†(Bound to a specific AZ)๋ฉ๋‹ˆ๋‹ค. AZ ๊ฐ„ ์ด๋™์€ ๋ถˆ๊ฐ€ํ•˜๋ฏ€๋กœ, ๋ฉ€ํ‹ฐ AZ ๊ณ ๊ฐ€์šฉ์„ฑ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ELB(Elastic Load Balancer)๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


10. EC2 ์ตœ๋Œ€ ์ ˆ์ „ ๋ชจ๋“œ (Hibernate)#

๐Ÿ’ค ์ธ์Šคํ„ด์Šค ์ƒํƒœ ์ „ํ™˜ ๋น„๊ต#

์ƒํƒœEBS ๋ฐ์ดํ„ฐRAM ์ƒํƒœ๋‹ค์Œ ์‹œ์ž‘ ์‹œ
Stop (์ค‘์ง€)โœ… ์œ ์ง€โŒ ์†Œ๋ฉธOS ๋ถ€ํŒ… + ์•ฑ ์ดˆ๊ธฐํ™” ํ•„์š”
Terminate (์ข…๋ฃŒ)โŒ ์†Œ๋ฉธ (๋ฃจํŠธ ๋ณผ๋ฅจ ๊ธฐ๋ณธ ์‚ญ์ œ)โŒ ์†Œ๋ฉธ์ƒˆ ์ธ์Šคํ„ด์Šค ์‹œ์ž‘ ํ•„์š”
Hibernate (์ตœ๋Œ€ ์ ˆ์ „)โœ… ์œ ์ง€โœ… EBS์— ์ €์žฅ ํ›„ ๋ณต์›ํ›จ์”ฌ ๋น ๋ฅธ ์žฌ์‹œ์ž‘

๐Ÿ”ง Hibernate ์ž‘๋™ ์›๋ฆฌ#

Hibernate ์‹คํ–‰
โ”‚
โ–ผ
RAM ์ „์ฒด ๋‚ด์šฉ์„ ๋ฃจํŠธ EBS ๋ณผ๋ฅจ ํŒŒ์ผ์— ๋คํ”„(Dump)
โ”‚
โ–ผ
์ธ์Šคํ„ด์Šค ์ค‘์ง€ (OS๊ฐ€ ์™„์ „ํžˆ ์ข…๋ฃŒ๋˜์ง€ ์•Š์Œ)
โ”‚
โ–ผ
์žฌ์‹œ์ž‘ ์‹œ โ†’ EBS์—์„œ RAM ์ƒํƒœ ๋ณต์› โ†’ ์ค‘๋‹จ ์ง€์ ๋ถ€ํ„ฐ ์ฆ‰์‹œ ์žฌ๊ฐœ
IMPORTANT

OS ์žฌ๋ถ€ํŒ…(OS booting)์ด ์—†์œผ๋ฏ€๋กœ ์‹œ์ž‘ ์‹œ๊ฐ„์ด ๋งค์šฐ ๋น ๋ฆ„. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์บ์‹œ ์›Œ๋ฐ(Cache Warming)์„ ๋‹ค์‹œ ํ•  ํ•„์š” ์—†์Œ.


โœ… ์ง€์› ์กฐ๊ฑด (Requirements)#

ํ•ญ๋ชฉ์กฐ๊ฑด
์ธ์Šคํ„ด์Šค ํŒจ๋ฐ€๋ฆฌ (Instance Family)C3, C4, C5, I3, M3, M4, R3, R4, T2, T3 ๋“ฑ
RAM ํฌ๊ธฐ (RAM Size)150 GB ๋ฏธ๋งŒ
์ธ์Šคํ„ด์Šค ํฌ๊ธฐ (Instance Size)๋ฒ ์–ด ๋ฉ”ํƒˆ(Bare Metal) ์ธ์Šคํ„ด์Šค ๋ฏธ์ง€์›
AMIAmazon Linux 2, Linux AMI, Ubuntu, Windows ๋“ฑ
๋ฃจํŠธ ๋ณผ๋ฅจ (Root Volume)๋ฐ˜๋“œ์‹œ EBS, ์•”ํ˜ธํ™”(Encrypted) ํ•„์ˆ˜, Instance Store ๋ถˆ๊ฐ€, RAM์„ ๋‹ด์„ ์ถฉ๋ถ„ํ•œ ์šฉ๋Ÿ‰ ํ•„์š”
๊ตฌ๋งค ์˜ต์…˜On-Demand, Reserved, Spot ์ธ์Šคํ„ด์Šค ๋ชจ๋‘ ์ง€์›
์ตœ๋Œ€ ์ ˆ์ „ ์œ ์ง€ ๊ธฐ๊ฐ„60์ผ์„ ์ดˆ๊ณผํ•  ์ˆ˜ ์—†์Œ (cannot be hibernated more than 60 days)

๐Ÿ’ก Hibernate ์ฃผ์š” Use Case#

Use Case์„ค๋ช…
์žฅ์‹œ๊ฐ„ ์‹คํ–‰ ํ”„๋กœ์„ธ์Šค (Long-running processing)์žฌ์‹œ์ž‘ ์—†์ด ์ž‘์—… ์ƒํƒœ ๊ทธ๋Œ€๋กœ ์œ ์ง€
RAM ์ƒํƒœ ๋ณด์กด (Saving the RAM state)์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐยท์บ์‹œ ์œ ์ง€
์ดˆ๊ธฐํ™”๊ฐ€ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์„œ๋น„์Šค (Services that take time to initialize)๋ถ€ํŒ…ยท์บ์‹œ ์›Œ๋ฐ ๋น„์šฉ ์—†์ด ์ฆ‰์‹œ ์žฌ๊ฐœ
WARNING

โš ๏ธ ๋ฃจํŠธ ๋ณผ๋ฅจ ์•”ํ˜ธํ™”๊ฐ€ ํ•„์ˆ˜์ธ ์ด์œ : RAM ๋‚ด์šฉ(๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ ํฌํ•จ ๊ฐ€๋Šฅ)์ด EBS ๋””์Šคํฌ์— ํ‰๋ฌธ์œผ๋กœ ์“ฐ์ด๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•จ.


11. Best Practices#

๐Ÿ’ก ์ธ์Šคํ„ด์Šค ์„ ํƒ#

1. ์›Œํฌ๋กœ๋“œ ํŠน์„ฑ ๋จผ์ € ํŒŒ์•…

CPU ์ง‘์•ฝ์  โ†’ Compute Optimized (c ๊ณ„์—ด)
๋ฉ”๋ชจ๋ฆฌ ์ง‘์•ฝ์  โ†’ Memory Optimized (r, x ๊ณ„์—ด)
์Šคํ† ๋ฆฌ์ง€ I/O โ†’ Storage Optimized (i, d ๊ณ„์—ด)
๊ท ํ˜• ์žกํžŒ ์ผ๋ฐ˜ โ†’ General Purpose (m, t ๊ณ„์—ด)
AI/ML ํ•™์Šต โ†’ GPU (p, g ๊ณ„์—ด) ๋˜๋Š” Trn1
AI/ML ์ถ”๋ก  โ†’ Inf2 (๊ฐ€์žฅ ์ €๋ ดํ•œ ์ถ”๋ก  ์ „์šฉ)

2. Graviton(ARM) ์šฐ์„  ๊ฒ€ํ† 

Graviton(arm64)์€ x86 ๋Œ€๋น„ ์ตœ๋Œ€ 40% ํ–ฅ์ƒ๋œ ๊ฐ€๊ฒฉ ๋Œ€๋น„ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ ์•„ํ‚คํ…์ฒ˜ ๋นŒ๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋กค์•„์›ƒ ์ „์— p95/p99 ์„ฑ๋Šฅ์„ ์ธก์ •ํ•˜์„ธ์š”.


๐Ÿ’ฐ ๋น„์šฉ ์ตœ์ ํ™” ์ „๋žต#

1. Right-Sizing (์ ์ • ๊ทœ๋ชจ ์กฐ์ •)

2~4์ฃผ ๋™์•ˆ ํ™œ์šฉ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ , AWS Compute Optimizer ๋˜๋Š” Cost Explorer๋ฅผ ํ†ตํ•ด ๊ณผ์†Œ ํ™œ์šฉ ์ธ์Šคํ„ด์Šค๋ฅผ ํŒŒ์•…ํ•œ ๋’ค ์ ์ ˆํ•œ ํฌ๊ธฐ๋กœ ์กฐ์ •ํ•˜์„ธ์š”.

Terminal window
# AWS Compute Optimizer๋กœ ์šฐ์„  ๋ถ„์„
# โ†’ CloudWatch ์ง€ํ‘œ ๊ธฐ๋ฐ˜ ๊ถŒ์žฅ ์ธ์Šคํ„ด์Šค ํƒ€์ž… ์ œ์•ˆ

2. ๊ตฌ๋งค ์˜ต์…˜ ํ˜ผํ•ฉ (Blended Pricing)

์•ˆ์ •์  ๊ธฐ๋ณธ ๋ถ€ํ•˜ โ†’ Reserved Instances ๋˜๋Š” Savings Plans (72% ์ ˆ๊ฐ)
๋ณ€๋™์  ์ถ”๊ฐ€ ๋ถ€ํ•˜ โ†’ Spot Instances (์ตœ๋Œ€ 90% ์ ˆ๊ฐ)
์˜ˆ์ธก ๋ถˆ๊ฐ€ ํ”ผํฌ โ†’ On-Demand (๋ฐฑ์—…)

๊ธฐ์ค€ ๋ถ€ํ•˜์—๋Š” Savings Plans/Reserved Instance๋กœ ์ปค๋ฒ„ํ•˜๊ณ , ๊ธฐ์ค€ ์ดˆ๊ณผ์˜ ๋ณ€๋™ ๋ถ€ํ•˜์—๋Š” Spot Instance๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. Spot ์šฉ๋Ÿ‰ ๋ถ€์กฑ ์‹œ์—๋Š” ์ค‘์š” ์›Œํฌ๋กœ๋“œ๋ฅผ ์œ„ํ•ด On-Demand๋กœ ์ž๋™ ํด๋ฐฑํ•˜๋„๋ก ๊ตฌ์„ฑํ•˜์„ธ์š”.

3. ์Šค์ผ€์ค„๋ง์œผ๋กœ ์œ ํœด ๋น„์šฉ ์ ˆ๊ฐ

๊ฐœ๋ฐœ/ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ: ์—…๋ฌด ์‹œ๊ฐ„(09:00-19:00)์—๋งŒ ์‹คํ–‰
โ†’ ํƒœ๊ทธ ๊ธฐ๋ฐ˜ ์ž๋™ ์‹œ์ž‘/์ข…๋ฃŒ โ†’ ์ตœ๋Œ€ 65% ๋น„์šฉ ์ ˆ๊ฐ
๊ถŒ์žฅ ํƒœ๊ทธ ์ฒด๊ณ„:
Environment = dev | staging | prod
Schedule = OfficeHours | AlwaysOn
Owner = team-name
CostCenter = CC-1234

4. EBS ๋ณผ๋ฅจ ๋น„์šฉ ์ตœ์ ํ™”

CloudWatch ๋˜๋Š” Compute Optimizer๋ฅผ ํ†ตํ•ด ์ผ๊ด€๋˜๊ฒŒ ๋‚ฎ์€ IOPS ๋˜๋Š” ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋ณด์ด๋Š” ๋ณผ๋ฅจ์„ ์‹๋ณ„ํ•˜๊ณ , ๋” ์ €๋ ดํ•œ gp3 ๋˜๋Š” st1 ๋ณผ๋ฅจ ํƒ€์ž…์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๊ฒ€ํ† ํ•˜์„ธ์š”.

๋ณผ๋ฅจ ํƒ€์ž…ํŠน์ง•์ ํ•ฉํ•œ ์šฉ๋„
gp3๋น„์šฉ ํšจ์œจ ๋†’์Œ โญ๋Œ€๋ถ€๋ถ„์˜ ์›Œํฌ๋กœ๋“œ
gp2๊ตฌํ˜•, gp3๋ณด๋‹ค ๋น„์Œˆ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ณ ๋ ค
io2๊ณ IOPS, ๊ณ ๋น„์šฉ๋ฏธ์…˜ ํฌ๋ฆฌํ‹ฐ์ปฌ DB
st1์ €๋น„์šฉ, ์ˆœ์ฐจ ์ฝ๊ธฐ๋กœ๊ทธ, ๋น…๋ฐ์ดํ„ฐ
sc1๊ฐ€์žฅ ์ €๋ ด์ฝœ๋“œ ๋ฐ์ดํ„ฐ
TIP

gp2 โ†’ gp3 ์ „ํ™˜ ์‹œ ๋™์ผ ์„ฑ๋Šฅ์— ์•ฝ 20% ๋น„์šฉ ์ ˆ๊ฐ ๊ฐ€๋Šฅ.


๐Ÿ” EC2 ๋ณด์•ˆ Best Practice#

1. ์ธ์Šคํ„ด์Šค ์ ‘๊ทผ

  • ํฌํŠธ 22(SSH)๋ฅผ 0.0.0.0/0์œผ๋กœ ์—ฌ๋Š” ๊ฒƒ ์ ˆ๋Œ€ ๊ธˆ์ง€
  • ๊ฐ€๋Šฅํ•˜๋ฉด SSM Session Manager ์‚ฌ์šฉ (ํฌํŠธ 22 ๋ถˆํ•„์š”)
  • ๋ถˆ๊ฐ€ํ”ผํ•œ ๊ฒฝ์šฐ ํšŒ์‚ฌ IP ๋˜๋Š” VPN IP๋งŒ ํ—ˆ์šฉ

2. IAM Role ์‚ฌ์šฉ

# โŒ ์ ˆ๋Œ€ ๊ธˆ์ง€: Access Key๋ฅผ EC2์— ์ง์ ‘ ์ €์žฅ
export AWS_ACCESS_KEY_ID="AKIA..."
export AWS_SECRET_ACCESS_KEY="..."
# โœ… ๊ถŒ์žฅ: EC2 IAM Role ์‚ฌ์šฉ (์ž๋™์œผ๋กœ ์ž„์‹œ ์ž๊ฒฉ์ฆ๋ช… ๊ด€๋ฆฌ)
# ์ธ์Šคํ„ด์Šค์— Role๋งŒ ๋ถ™์ด๋ฉด ์ฝ”๋“œ์—์„œ ์ž๊ฒฉ์ฆ๋ช… ๋ถˆํ•„์š”
import boto3
s3 = boto3.client('s3') # Role์ด ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ

3. Auto Scaling ํ™œ์šฉ

Auto Scaling Group
โ”œโ”€โ”€ Minimum: 2 (์ตœ์†Œ ๊ฐ€์šฉ์„ฑ ๋ณด์žฅ)
โ”œโ”€โ”€ Desired: 4 (ํ‰์†Œ ์šด์˜ ์ˆ˜๋Ÿ‰)
โ””โ”€โ”€ Maximum: 10 (ํŠธ๋ž˜ํ”ฝ ๊ธ‰์ฆ ๋Œ€๋น„)
โ†’ CloudWatch ์ง€ํ‘œ(CPU 70% ์ดˆ๊ณผ ์‹œ) ๊ธฐ๋ฐ˜ ์ž๋™ Scale Out
โ†’ CloudWatch ์ง€ํ‘œ(CPU 30% ๋ฏธ๋งŒ ์‹œ) ๊ธฐ๋ฐ˜ ์ž๋™ Scale In

๐Ÿšจ ์ž์ฃผ ํ•˜๋Š” ์‹ค์ˆ˜ (Anti-Patterns)#

์‹ค์ˆ˜๋ฌธ์ œํ•ด๊ฒฐ์ฑ…
์ธ์Šคํ„ด์Šค ํƒ€์ž… ๊ณ ๋ ค ์—†์ด m5.xlarge ๊ณ ์ •๋น„์šฉ ๋‚ญ๋น„ ๋˜๋Š” ์„ฑ๋Šฅ ๋ถ€์กฑCompute Optimizer๋กœ ๋ถ„์„ ํ›„ ์„ ํƒ
๋ชจ๋“  ์›Œํฌ๋กœ๋“œ์— On-Demand๋ถˆํ•„์š”ํ•œ ๋น„์šฉRI + Savings Plans + Spot ํ˜ผํ•ฉ
Security Group์—์„œ 0.0.0.0/0:22 ํ—ˆ์šฉ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๊ณต๊ฒฉ ๋…ธ์ถœSSM ๋˜๋Š” ํŠน์ • IP๋งŒ ํ—ˆ์šฉ
๊ฐœ๋ฐœ ํ™˜๊ฒฝ 24์‹œ๊ฐ„ ๊ฐ€๋™๋ถˆํ•„์š”ํ•œ ๋น„์šฉ์Šค์ผ€์ค„ ๊ธฐ๋ฐ˜ ์ž๋™ ์ค‘์ง€
Access Key๋ฅผ EC2 ๋‚ด ํŒŒ์ผ๋กœ ์ €์žฅํ‚ค ํƒˆ์ทจ ์œ„ํ—˜IAM Role๋กœ ๋Œ€์ฒด
์ธ์Šคํ„ด์Šค ์Šคํ† ์–ด์— ์ค‘์š” ๋ฐ์ดํ„ฐ ์ €์žฅ์ข…๋ฃŒ ์‹œ ๋ฐ์ดํ„ฐ ์†Œ๋ฉธEBS ๋˜๋Š” S3์— ์ €์žฅ
๊ตฌ๋ฒ„์ „ ์ธ์Šคํ„ด์Šค ํƒ€์ž… ๋ฐฉ์น˜๊ฐ€๊ฒฉ ๋Œ€๋น„ ์„ฑ๋Šฅ ๋‚ฎ์Œ์‹ ์„ธ๋Œ€๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

12. ํ•ต์‹ฌ ์š”์•ฝ#

EC2 ๊ตฌ์„ฑ ํ•ต์‹ฌ
โ”œโ”€โ”€ ์ธ์Šคํ„ด์Šค ํƒ€์ž…: ์›Œํฌ๋กœ๋“œ์— ๋งž๊ฒŒ ์„ ํƒ (m=๋ฒ”์šฉ, c=์ปดํ“จํŒ…, r=๋ฉ”๋ชจ๋ฆฌ, i=์Šคํ† ๋ฆฌ์ง€)
โ”œโ”€โ”€ User Data: ์ตœ์ดˆ 1ํšŒ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ (root ๊ถŒํ•œ)
โ”œโ”€โ”€ Security Group: ์ƒํƒœ ๊ธฐ๋ฐ˜ ๊ฐ€์ƒ ๋ฐฉํ™”๋ฒฝ (Allow๋งŒ, ๊ธฐ๋ณธ Inbound ์ฐจ๋‹จ)
โ””โ”€โ”€ ์ ‘์†: SSH / EC2 Instance Connect / SSM Session Manager
IP ์ฃผ์†Œ
โ”œโ”€โ”€ Public IP: ์ธํ„ฐ๋„ท์—์„œ ์‹๋ณ„, ์ธ์Šคํ„ด์Šค ์žฌ์‹œ์ž‘ ์‹œ ๋ณ€๊ฒฝ๋จ
โ”œโ”€โ”€ Private IP: ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ์ „์šฉ, ์žฌ์‹œ์ž‘ํ•ด๋„ ๊ณ ์ •
โ””โ”€โ”€ Elastic IP: ๊ณ ์ • ๊ณต์ธ IP, 5๊ฐœ ์ œํ•œ, ๋ฏธ์—ฐ๊ฒฐ ์‹œ ๊ณผ๊ธˆ
๋ฐฐ์น˜ ๊ทธ๋ฃน (Placement Groups)
โ”œโ”€โ”€ Cluster: ๋‹จ์ผ AZ, ๋‹จ์ผ ๋ž™ โ†’ ์ดˆ์ €์ง€์—ฐยท๊ณ ๋Œ€์—ญํญ (10Gbps), ๋™์‹œ ์žฅ์•  ์œ„ํ—˜
โ”œโ”€โ”€ Spread: ์„œ๋กœ ๋‹ค๋ฅธ ๋ž™ โ†’ ์ตœ๋Œ€ ๊ฐ€์šฉ์„ฑ, AZ๋‹น 7๊ฐœ ์ œํ•œ
โ””โ”€โ”€ Partition: ํŒŒํ‹ฐ์…˜ ๋‹จ์œ„ ๊ฒฉ๋ฆฌ โ†’ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ (Hadoop, Kafka, Cassandra)
ENI (Elastic Network Interface)
โ”œโ”€โ”€ VPC ๋‚ด ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ์นด๋“œ (๋…ผ๋ฆฌ์  ์ปดํฌ๋„ŒํŠธ)
โ”œโ”€โ”€ ํŠน์ • AZ์— ์ข…์†, AZ ๊ฐ„ ์ด๋™ ๋ถˆ๊ฐ€
โ”œโ”€โ”€ ์ธ์Šคํ„ด์Šค์™€ ๋…๋ฆฝ์  ์ƒ๋ช…์ฃผ๊ธฐ (Hot attach ๊ฐ€๋Šฅ)
โ””โ”€โ”€ ํ™œ์šฉ: ๊ด€๋ฆฌ๋ง ๋ถ„๋ฆฌ, MAC ๋ผ์ด์„ ์Šค, ์ €๋น„์šฉ ๊ณ ๊ฐ€์šฉ์„ฑ Failover
Hibernate (์ตœ๋Œ€ ์ ˆ์ „ ๋ชจ๋“œ)
โ”œโ”€โ”€ RAM ์ƒํƒœ๋ฅผ ์•”ํ˜ธํ™”๋œ EBS์— ์ €์žฅ โ†’ ๋น ๋ฅธ ์žฌ์‹œ์ž‘
โ”œโ”€โ”€ ๋ฃจํŠธ EBS ์•”ํ˜ธํ™”(Encrypted) ํ•„์ˆ˜
โ”œโ”€โ”€ RAM 150GB ๋ฏธ๋งŒ, ์ตœ๋Œ€ 60์ผ ์ œํ•œ
โ””โ”€โ”€ ๊ตฌ๋งค ์˜ต์…˜: On-Demand / Reserved / Spot ๋ชจ๋‘ ์ง€์›
๊ตฌ๋งค ์˜ต์…˜ ์„ ํƒ ๊ฐ€์ด๋“œ
โ”œโ”€โ”€ ๋‹จ๊ธฐยท๋ถˆ๊ทœ์น™ โ†’ On-Demand
โ”œโ”€โ”€ ์•ˆ์ •์  ์žฅ๊ธฐ โ†’ Reserved Instances ๋˜๋Š” Savings Plans (72% ์ ˆ๊ฐ)
โ”œโ”€โ”€ ์ค‘๋‹จ ํ—ˆ์šฉ โ†’ Spot Instances (90% ์ ˆ๊ฐ)
โ”œโ”€โ”€ ๋ผ์ด์„ ์Šค ์ œ์•ฝ โ†’ Dedicated Host
โ””โ”€โ”€ ์šฉ๋Ÿ‰ ๋ณด์žฅ โ†’ Capacity Reservation
๋น„์šฉ ์ตœ์ ํ™” 3๋‹จ๊ณ„
1๏ธโƒฃ Right-Sizing: Compute Optimizer๋กœ ์ ์ • ๊ทœ๋ชจ ๋ถ„์„
2๏ธโƒฃ ๊ตฌ๋งค ํ˜ผํ•ฉ: ๊ธฐ๋ณธ ๋ถ€ํ•˜ โ†’ RI/SP, ๋ณ€๋™ ๋ถ€ํ•˜ โ†’ Spot
3๏ธโƒฃ ์Šค์ผ€์ค„๋ง: ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์—…๋ฌด์‹œ๊ฐ„๋งŒ ๊ฐ€๋™

๐Ÿ“š ์ฐธ๊ณ  ์ž๋ฃŒ#