AWS EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ์šด์˜์ฒด์ œ(Operating System)๋ฅผ ์„ ํƒํ•˜๋Š” ๋‹จ๊ณ„์ด๋‹ค.

 

์—ฌ๊ธฐ์„œ ์„ ํƒํ•˜๋Š” ํ•ญ๋ชฉ์„ AMI (Amazon Machine Image)๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ,

์ด๊ฑด ์‰ฝ๊ฒŒ ๋งํ•ด “EC2 ์ธ์Šคํ„ด์Šค์— ์„ค์น˜ํ•  OS ํ…œํ”Œ๋ฆฟ“์ด๋‹ค.

 

 

 AMI ์„ ํƒ

์ƒ๋‹จ ์นดํ…Œ๊ณ ๋ฆฌ

  • Amazon Linux, macOS, Ubuntu, Windows, Red Hat, SUSE Linux, Debian ๋“ฑ ๋‹ค์–‘ํ•œ ์šด์˜์ฒด์ œ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋‰ด์ด๋‹ค.

ํ˜„์žฌ ์„ ํƒ๋œ AMI

  • Amazon Linux 2023 AMI
    • ์ตœ์‹  ๋ฒ„์ „์˜ Amazon Linux ์šด์˜์ฒด์ œ.
    • AWS์—์„œ ์ตœ์ ํ™”๋œ ๊ฒฝ๋Ÿ‰ ๋ฆฌ๋ˆ…์Šค OS.
    • ๋ฌด๋ฃŒ(ํ”„๋ฆฌ ํ‹ฐ์–ด) ์‚ฌ์šฉ ๊ฐ€๋Šฅ.
    • ๋ณด์•ˆ ์—…๋ฐ์ดํŠธ ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™”๊ฐ€ ์ž˜ ๋˜์–ด ์žˆ์Œ.

 

         ํ•ญ๋ชฉ                                                       ์„ค๋ช…

AMI ์ด๋ฆ„ Amazon Linux 2023 AMI
AMI ID ami-0e967ff96936c0c0c (AWS์—์„œ ์ด AMI๋ฅผ ๊ตฌ๋ณ„ํ•˜๋Š” ๊ณ ์œ  ID)
๋ถ€ํŠธ ๋ชจ๋“œ uefi-preferred (๋ถ€ํŒ… ๋ฐฉ์‹)
์•„ํ‚คํ…์ฒ˜ 64๋น„ํŠธ(x86) – ์ผ๋ฐ˜์ ์ธ PC ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ
๋ฃจํŠธ ๋””๋ฐ”์ด์Šค ์œ ํ˜• EBS (Elastic Block Store, ๋””์Šคํฌ ์ €์žฅ ๋ฐฉ์‹)
์„ค๋ช… 5๋…„ ์ง€์›, AWS ์ตœ์ ํ™”, ์•ˆ์ •์„ฑ ๋›ฐ์–ด๋‚จ

 

 

 ๋‚ด๊ฐ€ ์„ ํƒํ•œ ๊ฒƒ์€?

Spring Boot, Java, ๋ฐฐํฌ ํ•™์Šต์„ ํ•˜๊ณ  ์žˆ์–ด์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒƒ์„ ์„ ํƒํ–ˆ๋‹ค.

 

Amazon Linux 2023 AMI

  • ์ด์œ :
    • ํ”„๋ฆฌ ํ‹ฐ์–ด๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ (๊ณผ๊ธˆ ์—†์Œ)
    • ๋ฆฌ์†Œ์Šค ํšจ์œจ์ ์ด๊ณ  AWS์—์„œ ๊ณต์‹ ์ง€์›
    • EC2 ์ž…๋ฌธ์ž ๋ฐ ํ•™์Šต์ž์—๊ฒŒ ๊ฐ€์žฅ ์ ํ•ฉ
    • Java, Spring, Git, Docker, Nginx ๋“ฑ ์„ค์น˜๊ฐ€ ์šฉ์ดํ•จ
  • ์ฃผ์˜์‚ฌํ•ญ:
    • ์šฐ๋ถ„ํˆฌ๋ณด๋‹ค ๋ช…๋ น์–ด ํ™˜๊ฒฝ์ด ์•ฝ๊ฐ„ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์ง€๋งŒ, ํ•™์Šต์— ํฐ ๋ฌธ์ œ ์—†์Œ

 

                             ๋ชฉ์                                                                                           ์ถ”์ฒœ AMI

AWS ์ž…๋ฌธ + Spring ๋ฐฑ์—”๋“œ ๋ฐฐํฌ ํ•™์Šต โœ… Amazon Linux 2023 AMI (๊ธฐ๋ณธ ์„ ํƒ๋œ ๊ฒƒ)
๋ฆฌ๋ˆ…์Šค ์ต์ˆ™ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์ž๋ฃŒ ์ฐธ๊ณ  ์›ํ•  ๋•Œ Ubuntu 20.04 or 22.04 LTS AMI

 

 


 

์ด ํ™”๋ฉด์€ EC2 ์ธ์Šคํ„ด์Šค์— SSH๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํ‚ค ํŽ˜์–ด(key pair) ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋‹จ๊ณ„์ด๋‹ค. 

 

 ํ‚ค ํŽ˜์–ด(Key Pair)๋ž€?

  • ๊ณต๊ฐœ ํ‚ค(Public Key) ์™€ ๋น„๋ฐ€ ํ‚ค(Private Key) ๋กœ ์ด๋ฃจ์–ด์ง„ ํ•œ ์Œ์˜ ์•”ํ˜ธํ™” ํ‚ค
  • AWS์—์„  ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ ์ด ํ‚ค ํŽ˜์–ด๋ฅผ ๋“ฑ๋กํ•ด ๋‘๊ณ , ์‚ฌ์šฉ์ž๋Š” ๋น„๋ฐ€ ํ‚ค(.pem ๋˜๋Š” .ppk)๋ฅผ ์ด์šฉํ•ด SSH ์ ‘์†์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

์ด ๊ณผ์ •์„ ํ†ตํ•ด ๋น„๋ฐ€๋ฒˆํ˜ธ ์—†์ด๋„ ์•ˆ์ „ํ•˜๊ฒŒ ์ธ์Šคํ„ด์Šค์— ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

           ํ•ญ๋ชฉ                                                                  ์„ค๋ช…

ํ‚ค ํŽ˜์–ด ์ด๋ฆ„ ์ƒ์„ฑํ•  ํ‚ค ํŽ˜์–ด๋ฅผ ๊ตฌ๋ถ„์ง“๋Š” ์‹๋ณ„์ž(์˜ˆ: yeonbi-ec2-key)
ํ‚ค ํŽ˜์–ด ์œ ํ˜• - RSA: ์ „ํ†ต์ ์ธ ๊ณต๊ฐœํ‚ค ์•”ํ˜ธ ๋ฐฉ์‹- ED25519: ์ตœ์‹ ํ˜• ์ปค๋ธŒ ๊ธฐ๋ฐ˜ ๋ฐฉ์‹ (๋” ์งง์€ ํ‚ค ๊ธธ์ด·๋†’์€ ๋ณด์•ˆ)
ํ”„๋ผ์ด๋น— ํ‚ค ํŒŒ์ผ ํ˜•์‹ - .pem: Mac/Linux(OpenSSH)์—์„œ ์‚ฌ์šฉ- .ppk: Windows(PuTTY)์—์„œ ์‚ฌ์šฉ

 

 

์ด ์ž‘์—…์„ ํ•˜๋ฉด…

  1. ๋น„๋ฐ€ ํ‚ค(.pem ๋˜๋Š” .ppk) ํŒŒ์ผ์ด ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ๋‹ค์šด๋กœ๋“œ๋œ๋‹ค.
  2. EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ AWS๋Š” ์ด ํ‚ค์˜ ๊ณต๊ฐœ ํ‚ค๋ฅผ ์ธ์Šคํ„ด์Šค์— ์‹ฌ์–ด๋‘”๋‹ค.
  3. ์ดํ›„ SSH ํด๋ผ์ด์–ธํŠธ์—์„œ
ssh -i /path/to/your-key.pem ec2-user@EC2-ํผ๋ธ”๋ฆญIP

 

  1. ์™€ ๊ฐ™์ด ๋ช…๋ น์„ ๋‚ด๋ ค ๋น„๋ฐ€ ํ‚ค๊ฐ€ ๊ณต๊ฐœ ํ‚ค์™€ ์ผ์น˜ํ•˜๋ฉด ๋กœ๊ทธ์ธ ํ—ˆ์šฉ!

 

 ๋น„๋ฐ€๋ฒˆํ˜ธ ์—†์ด, ์ค‘๊ฐ„ ๊ฐ€๋กœ์ฑ„๊ธฐ ์œ„ํ—˜ ์—†์ด,์•ˆ์ „ํ•˜๊ฒŒ ์ธ์Šคํ„ด์Šค ์ฝ˜์†”์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋‹ค

 


 

 ์–ธ์ œ, ์™œ ํ•„์š”ํ•œ๊ฐ€?

  • SSH ์ ‘์† ์—ฐ์Šต: ํ„ฐ๋ฏธ๋„์„ ํ†ตํ•ด ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„ ์ปค๋งจ๋“œ๋ฅผ ์ง์ ‘ ์‹คํ–‰ํ•  ๋•Œ
  • ๋ฐฐํฌ ์ž๋™ํ™”: CI/CD(์˜ˆ: GitHub Actions)์—์„œ EC2์— ์ฝ”๋“œ ๋ฐฐํฌ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ
  • ๋ณด์•ˆ ๊ฐ•ํ™”: ํŒจ์Šค์›Œ๋“œ ๋Œ€์‹  ํ‚ค ๊ธฐ๋ฐ˜ ์ธ์ฆ์œผ๋กœ ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๊ณต๊ฒฉ(๋ธŒ๋ฃจํŠธํฌ์Šค)์„ ๋ฐฉ์–ด

 

์š”์•ฝ

ํ‚ค ํŽ˜์–ด ์ƒ์„ฑ → ๋น„๋ฐ€ ํ‚ค ํŒŒ์ผ(.pem/.ppk) ๋‹ค์šด๋กœ๋“œ์ธ์Šคํ„ด์Šค์— ๊ณต๊ฐœ ํ‚ค ์‹ฌ๊ธฐSSH ํด๋ผ์ด์–ธํŠธ์—์„œ ํ‚ค๋กœ ๋กœ๊ทธ์ธ์•ˆ์ „ํ•˜๊ณ  ํŽธ๋ฆฌํ•˜๊ฒŒ EC2 ์ฝ˜์†” ์ ‘๊ทผ ๊ฐ€๋Šฅ

 

Tip. ์ƒ์„ฑํ•œ .pem ํŒŒ์ผ์€ ๋ถ„์‹ค ๋ถˆ๊ฐ€·์ ˆ๋Œ€ ๋…ธ์ถœ ๊ธˆ์ง€!
์•ˆ์ „ํ•œ ๊ณณ(์˜ˆ: ~/.ssh/)์— ์ €์žฅํ•˜๊ณ , ํผ๋ฏธ์…˜์„ chmod 400 your-key.pem์œผ๋กœ ์ž ๊ฐ€์•ผ ํ•œ๋‹ค..

 

 


 

 

 

 

1. ๋ณด์•ˆ ๊ทธ๋ฃน(Security Group)์ด๋ž€?

  • AWS ํด๋ผ์šฐ๋“œ์—์„œ ์ธ์Šคํ„ด์Šค(์„œ๋ฒ„) ๋ ˆ๋ฒจ์˜ ๊ฐ€์ƒ ๋ฐฉํ™”๋ฒฝ(Virtual Firewall) ์—ญํ• ์„ ํ•จ
  • ์ธ๋ฐ”์šด๋“œ(Inbound): ์™ธ๋ถ€์—์„œ ์ธ์Šคํ„ด์Šค๋กœ ๋“ค์–ด์˜ค๋Š” ํŠธ๋ž˜ํ”ฝ์„ ์ œ์–ด
  • ์•„์›ƒ๋ฐ”์šด๋“œ(Outbound): ์ธ์Šคํ„ด์Šค์—์„œ ์™ธ๋ถ€๋กœ ๋‚˜๊ฐ€๋Š” ํŠธ๋ž˜ํ”ฝ์„ ์ œ์–ด

 

EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ง‘, ๋ณด์•ˆ ๊ทธ๋ฃน์„ ์šธํƒ€๋ฆฌ์™€ ๋Œ€๋ฌธ, ๊ทœ์น™์€ ๊ทธ ๋Œ€๋ฌธ์— ์„ธ์›Œ์ง„ ๋ณด์•ˆ ์š”์›์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋‹ค.

 

 

2. ๋ณด์•ˆ ๊ทธ๋ฃน์˜ ์ฃผ์š” ํŠน์ง•

              ๊ตฌ๋ถ„                                                                                                          ์„ค๋ช…

์ ์šฉ ๋‹จ์œ„ ์ธ์Šคํ„ด์Šค ๋‹จ์œ„๋กœ ์—ฌ๋Ÿฌ ๊ฐœ ์ ์šฉ ๊ฐ€๋Šฅ– ๋™์ผํ•œ ๋ณด์•ˆ ๊ทธ๋ฃน์„ ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค์— ๋ฌถ์–ด์„œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ
์ƒํƒœ ๊ธฐ๋ฐ˜(Stateful) ์ธ๋ฐ”์šด๋“œ ์š”์ฒญ์„ ํ—ˆ์šฉํ•˜๋ฉด ๊ทธ์— ๋Œ€ํ•œ ์‘๋‹ต ํŠธ๋ž˜ํ”ฝ์€ ๋ณ„๋„ ๊ทœ์น™ ์—†์ด ์ž๋™ ํ—ˆ์šฉ
๊ทœ์น™ ์ถ”๊ฐ€๋งŒ ๊ฐ€๋Šฅ ํ—ˆ์šฉ(Allow) ๊ทœ์น™๋งŒ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ, ์ฐจ๋‹จ(Deny) ๊ทœ์น™์€ ์ œ๊ณตํ•˜์ง€ ์•Š์Œ– ๋ชจ๋“  ๋น„ํ—ˆ์šฉ ํŠธ๋ž˜ํ”ฝ์€ ๊ธฐ๋ณธ ์ฐจ๋‹จ ์ƒํƒœ

 

 

 

 

3. ์ธ๋ฐ”์šด๋“œ / ์•„์›ƒ๋ฐ”์šด๋“œ ๊ทœ์น™ ๊ตฌ์„ฑ

3.1 ์ธ๋ฐ”์šด๋“œ(Inbound) ๊ทœ์น™

  ์„œ๋น„์Šค.            ํ”„๋กœํ† ์ฝœ.    ํฌํŠธ                       ๋ฒ”์œ„                                                               ์†Œ์Šค์„ค๋ช…

SSH TCP 22 0.0.0.0/0 ๋˜๋Š” ๋‚ด IP(/32) ๋ฆฌ๋ˆ…์Šค ํ„ฐ๋ฏธ๋„ ์ ‘์†์šฉ ํฌํŠธ
HTTP TCP 80 0.0.0.0/0 ๋ธŒ๋ผ์šฐ์ €๋กœ ์ ‘์†ํ•  ์›น ์„œ๋ฒ„(ํฌํŠธ 80)
HTTPS TCP 443 0.0.0.0/0 ๋ณด์•ˆ ์›น(SSL) ์ ‘์†(์„ ํƒ ์‚ฌํ•ญ)

 

  • 0.0.0.0/0: ์ „ ์„ธ๊ณ„ ๋ชจ๋“  IP ํ—ˆ์šฉ (๊ฐœ๋ฐœ·ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ๋งŒ ์‚ฌ์šฉ ๊ถŒ์žฅ)
  • ๋‚ด IP(/32): SSH๋งŒ ๋‚ด IP๋กœ ์ œํ•œํ•˜์—ฌ ๋ณด์•ˆ์„ ๊ฐ•ํ™”

 

 

3.2 ์•„์›ƒ๋ฐ”์šด๋“œ(Outbound) ๊ทœ์น™

  • ๊ธฐ๋ณธ๊ฐ’: ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ ํ—ˆ์šฉ(All traffic, 0.0.0.0/0)
  • ํ•„์š” ์‹œ ํŠน์ • ๋ชฉ์ ์ง€(์˜ˆ: ์‚ฌ๋‚ด๋ง, ์™ธ๋ถ€ API)๋งŒ ํ—ˆ์šฉํ•˜๋„๋ก ์ขํž ์ˆ˜ ์žˆ์Œ

 

 

4. EC2 ์ƒ์„ฑ ์‹œ ๋ณด์•ˆ ๊ทธ๋ฃน ์„ค์ • ๋ฐฉ๋ฒ•

  1. “๋ณด์•ˆ ๊ทธ๋ฃน ์ƒ์„ฑ” ์„ ํƒ
  2. ์ด๋ฆ„(Name), ์„ค๋ช…(Description) ์ž…๋ ฅ
  3. ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™ ์ถ”๊ฐ€
    • ์œ ํ˜•(Type) → SSH, HTTP
    • ํ”„๋กœํ† ์ฝœ(Protocol) → TCP
    • ํฌํŠธ(Port Range) → 22, 80
    • ์†Œ์Šค(Source) → ์œ„์น˜ ๋ฌด๊ด€(0.0.0.0/0) ๋˜๋Š” ๋‚ด IP(/32)
  4. ์•„์›ƒ๋ฐ”์šด๋“œ ๊ทœ์น™ ํ™•์ธ (๊ธฐ๋ณธ “๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ ํ—ˆ์šฉ”)
  5. EC2 ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์™„๋ฃŒ ํ›„, ํ•ด๋‹น ๋ณด์•ˆ ๊ทธ๋ฃน์ด ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐ(attach) ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ

 

 

5. ๊ถŒ์žฅ ๋ณด์•ˆ ๋ชจ๋ฒ” ์‚ฌ๋ก€

  1. SSH(22๋ฒˆ ํฌํŠธ) ์ ‘๊ทผ์€ ๋‚ด IP๋กœ๋งŒ ์ œํ•œ
    • 203.XX.XX.XX/32 ์‹์œผ๋กœ ์„ค์ •
    • ํผ๋ธ”๋ฆญํ•˜๊ฒŒ ์—ด์–ด๋‘๋ฉด ๋ฌด์ฐจ๋ณ„ ๊ณต๊ฒฉ ์œ„ํ—˜
  2. ๋ถˆํ•„์š”ํ•œ ํฌํŠธ๋Š” ์—ด์ง€ ์•Š๊ธฐ
    • ์˜ˆ: FTP(21), SMTP(25) ๋“ฑ ์„œ๋น„์Šค๊ฐ€ ์—†์œผ๋ฉด ์‚ญ์ œ
  3. ์šด์˜ ํ™˜๊ฒฝ๊ณผ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ๋ถ„๋ฆฌ
    • ํ…Œ์ŠคํŠธ์šฉ SG, ์šด์˜์šฉ SG๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด ๊ด€๋ฆฌ
  4. ์ •๊ธฐ์ ์œผ๋กœ ์ธ๋ฐ”์šด๋“œ/์•„์›ƒ๋ฐ”์šด๋“œ ๊ทœ์น™ ๊ฒ€ํ† 
    • ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ทœ์น™์€ ์ฆ‰์‹œ ์ œ๊ฑฐ

 

๋ณด์•ˆ ๊ทธ๋ฃน์€ EC2 ์ธ์Šคํ„ด์Šค ์•ž์— ์„ธ์›Œ์ง„ ๋ฐฉํ™”๋ฒฝ์ด๋ฉฐ,
์ธ๋ฐ”์šด๋“œ(๋“ค์–ด์˜ค๋Š”)์™€ ์•„์›ƒ๋ฐ”์šด๋“œ(๋‚˜๊ฐ€๋Š”) ํŠธ๋ž˜ํ”ฝ์„ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ œ์–ดํ•˜์—ฌ
์„œ๋ฒ„ ๋ณด์•ˆ์„ ํ™•๋ณดํ•˜๋Š” ํ•ต์‹ฌ ์ˆ˜๋‹จ์ด๋‹ค.

+ Recent posts