A A
[AWS] Amazon EC2 ์ธ์Šคํ„ด์Šค ์ ‘์† ๋ฐฉ๋ฒ• (SSH, EC2 Instance Connect)

Amazon EC2๋Š” AWS์—์„œ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ์„œ๋น„์Šค ์ค‘ ํ•˜๋‚˜๋กœ, ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์˜ ํ•ต์‹ฌ ์š”์†Œ์ž…๋‹ˆ๋‹ค. EC2 ์ธ์Šคํ„ด์Šค์— ์•ˆ์ „ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ ‘์†ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ๋ฐฉ๋ฒ•์ธ SSH์™€ EC2 Instance Connect์— ๋Œ€ํ•ด ์ƒ์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


EC2 ์ธ์Šคํ„ด์Šค ์ ‘์† ๋ฐฉ๋ฒ• ๊ฐœ์š”

Amazon EC2 ์ธ์Šคํ„ด์Šค์— ์ ‘์†ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ฃผ๋กœ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค

  • SSH (Secure Shell): ํ„ฐ๋ฏธ๋„์—์„œ ๋ช…๋ น์ค„์„ ํ†ตํ•ด EC2 ์ธ์Šคํ„ด์Šค์— ์ ‘๊ทผํ•˜๋Š” ์ „ํ†ต์ ์ธ ๋ฐฉ๋ฒ•.
  • EC2 Instance Connect: ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด EC2 ์ธ์Šคํ„ด์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ํ˜„๋Œ€์ ์ธ ๋ฐฉ๋ฒ•.

๊ฐ ๋ฐฉ๋ฒ•์€ ์‚ฌ์šฉ ํ™˜๊ฒฝ๊ณผ ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ ์žฅ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ• ๋ชจ๋‘๋ฅผ ๋‹ค๋ฃจ๊ณ , ๊ฐ ๋ฐฉ๋ฒ•์˜ ์„ค์ • ๋ฐ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

SSH๋ฅผ ์‚ฌ์šฉํ•œ EC2 ์ธ์Šคํ„ด์Šค ์ ‘์†

SSH ๊ฐœ์š”

SSH (Secure Shell)๋Š” ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ๋กœ, ์›๊ฒฉ ์„œ๋ฒ„์— ๋ช…๋ น์ค„์„ ํ†ตํ•ด ์ ‘์†ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
AWS EC2 ์ธ์Šคํ„ด์Šค์— SSH๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ‘์†ํ•˜๋ฉด, ์ธ์Šคํ„ด์Šค์˜ ์šด์˜ ์ฒด์ œ๋ฅผ ์ œ์–ดํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Linux / Mac์—์„œ EC2 ์ธ์Šคํ„ด์Šค์— SSH ์ ‘์†ํ•˜๋Š” ๋ฐฉ๋ฒ•
- SSH์˜ ์ค‘์š”์„ฑ: ์›๊ฒฉ ๋จธ์‹ ์„ ๋ช…๋ น์ค„(Command Line)์„ ํ†ตํ•ด ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.
- OpenSSH ๊ตฌ์„ฑ: ~/.ssh/config ํŒŒ์ผ์„ ์„ค์ •ํ•˜์—ฌ EC2 ์ธ์Šคํ„ด์Šค์— ๋” ์‰ฝ๊ฒŒ SSH์— ์ ‘์†ํ• ์ˆ˜ ์žˆ์Œ

SSH ์ ‘์† ์ค€๋น„

SSH๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ EC2 ์ธ์Šคํ„ด์Šค์— ์ ‘์†ํ•˜๊ธฐ ์ „์— ๋ช‡ ๊ฐ€์ง€ ์ค€๋น„ ๋‹จ๊ณ„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  1. SSH ํด๋ผ์ด์–ธํŠธ ์„ค์น˜:
    • Mac & Linux: ๊ธฐ๋ณธ์ ์œผ๋กœ SSH ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • Windows 10 ์ด์ƒ: ๋‚ด์žฅ๋œ SSH ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • Windows 10 ์ดํ•˜: PuTTY์™€ ๊ฐ™์€ ์™ธ๋ถ€ SSH ํด๋ผ์ด์–ธํŠธ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  2. ํ‚ค ํŽ˜์–ด ์ƒ์„ฑ ๋ฐ ๋‹ค์šด๋กœ๋“œ: EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํ‚ค ํŽ˜์–ด(.pem ํŒŒ์ผ)๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋‹ค์šด๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ‚ค๋Š” ์ธ์Šคํ„ด์Šค์— ์ ‘์†ํ•  ๋•Œ ์ธ์ฆ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  3. ๋ณด์•ˆ ๊ทธ๋ฃน ์„ค์ •: ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์•ˆ ๊ทธ๋ฃน(Security Group)์— SSH(ํฌํŠธ 22) ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•˜๋Š” ๊ทœ์น™์„ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

SSH ์ ‘์† ์ ˆ์ฐจ

๋‹ค์Œ์€ SSH๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ EC2 ์ธ์Šคํ„ด์Šค์— ์ ‘์†ํ•˜๋Š” ๋‹จ๊ณ„๋ณ„ ์ ˆ์ฐจ์ž…๋‹ˆ๋‹ค.

1. ํ‚ค ํŽ˜์–ด ํŒŒ์ผ ์ค€๋น„

๋‹ค์šด๋กœ๋“œํ•œ .pem ํ‚ค ํŒŒ์ผ์„ ์•ˆ์ „ํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ์˜ .ssh ํด๋”์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ํผ๋ธ”๋ฆญ IP ์ฃผ์†Œ ํ™•์ธ

EC2 ๋Œ€์‹œ๋ณด๋“œ์—์„œ ํ•ด๋‹น ์ธ์Šคํ„ด์Šค์˜ ํผ๋ธ”๋ฆญ IPv4 ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฃผ์†Œ๋กœ ์›๊ฒฉ ํ„ฐ๋ฏธ๋„์„ ์—ด๊ธฐ ์œ„ํ•จ ์ž…๋‹ˆ๋‹ค.


3. ๋ณด์•ˆ ๊ทธ๋ฃน์—์„œ SSH ํฌํŠธ ํ™•์ธ

๋ณด์•ˆ ๊ทธ๋ฃน(Security Group)์—์„œ ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™์— SSH(ํฌํŠธ 22)๊ฐ€ ํ—ˆ์šฉ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋งŒ์•ฝ ์—†๋‹ค๋ฉด, ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™์—์„œ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.


4. ํ„ฐ๋ฏธ๋„์—์„œ SSH ์ ‘์† ๋ช…๋ น์–ด ์‹คํ–‰

ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ , ํ‚ค ํŒŒ์ผ์ด ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•œ ํ›„ SSH ์ ‘์† ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

ssh ec2-uesr@43.201.66.115
ec2-uesr@43.201.66.115: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
sh ec2-user๋ผ๊ณ  ํ•˜๋Š” ์ด์œ ๋Š” Amazon Linux 2 AMI์—๋Š” ์ด๋ฏธ ์‚ฌ์šฉ์ž ํ•˜๋‚˜๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๊ณ , ๊ทธ ์‚ฌ์šฉ์ž์˜ ์ด๋ฆ„์ด ec2-user์ด๊ธฐ ๋•Œ๋ฌธ.

 

  • ์ฃผ์˜: ec2-user๋Š” Amazon Linux 2 AMI์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ AMI๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ์ด๋ฆ„์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (์˜ˆ: Ubuntu์˜ ๊ฒฝ์šฐ ubuntu).

5. ํ‚ค ํŒŒ์ผ ๊ถŒํ•œ ์„ค์ •

์ ‘์† ์‹œ "Permissions 0644 for 'EC2Tutorial.pem' are too open." ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ํ‚ค ํŒŒ์ผ์˜ ๊ถŒํ•œ์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:
  • ๊ถŒํ•œ ๋ณ€๊ฒฝ์„ ์•ˆํ•˜๊ณ  ์ ‘์†์„ ์‹œ๋„ํ•˜๋ฉด? ์•„๋ž˜์™€ ๊ฐ™์ด ๋œน๋‹ˆ๋‹ค.
  • ์ด๋ ‡๊ฒŒ ๋œจ๋Š” ์ด์œ ๋Š” EC2Tutorial.pem์ด๋ผ๋Š” ํŒŒ์ผ์„ ์šฐ๋ฆฌ์˜ ๋ช…๋ น ์•ˆ์œผ๋กœ ์ฐธ์กฐ์•ˆํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
ssh -i EC2Tutorial.pem ec2-user@43.201.66.115
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'EC2Tutorial.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "EC2Tutorial.pem": bad permissions
ec2-uesr@43.201.66.115: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
  • ํ‚คํŒŒ์ผ์˜ ๊ถŒํ•œ์„ ๋ณ€๊ฒฝ ํ•ฉ๋‹ˆ๋‹ค.
chmod 0400 EC2Tutorial.pem
  • ๊ทธ ํ›„, ๋‹ค์‹œ SSH ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
ssh -i EC2Tutorial.pem ec2-user@43.201.66.115
  • ๊ทธ๋Ÿฌ๋ฉด, ์ธ์Šคํ„ด์Šค๋ฅผ ์‹ ๋ขฐํ•˜๋Š”์ง€ ๋ฌป๋Š” ํ”„๋กฌํ”„ํŠธ๊ฐ€ ๋‚˜์˜ค๋Š” ํ™”๋ฉด์„ ๋ณด๋ฉด, yes๋ผ๊ณ  ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
ssh -i EC2Tutorial.pem ec2-user@43.201.66.115

   ,     #_
   ~\_  ####_        Amazon Linux 2
  ~~  \_#####\
  ~~     \###|       AL2 End of Life is 2025-06-30.
  ~~       \#/ ___
   ~~       V~' '->
    ~~~         /    A newer version of Amazon Linux is available!
      ~~._.   _/
         _/ _/       Amazon Linux 2023, GA and supported until 2028-03-15.
       _/m/'           https://aws.amazon.com/linux/amazon-linux-2023/

-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
[ec2-user@ip-172-31-45-53 ~]$

6. ์ ‘์† ํ™•์ธ

์„ฑ๊ณต์ ์œผ๋กœ ์ ‘์†๋˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค:

Welcome to Amazon Linux 2!
[ec2-user@ip-172-31-45-53 ~]$
์ด์ œ, IP์˜ ec2-user๋ผ๊ณ  ๋‚˜์˜ค๋Š”๋ฐ์š”, ์ด๊ฑด ์ด์ œ ๋ชจ๋“  ๋ช…๋ น์ด ์ œ๊ฐ€ ์•ž์—์„œ ์‹คํ–‰ํ•œ Amazon Linux 2 AMI EC2 ์ธ์Šคํ„ด์Šค๋กœ๋ถ€ํ„ฐ ๋‚ด๋ ค์งˆ ๊ฒƒ์ด๋ผ๋Š” ๊ฑธ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ๋ช…๋ น์–ด ์‹คํ–‰

whoami๋ผ๊ณ  ํ•ด๋ณด๋ฉด ec2-user๋ผ๊ณ  ๋‚˜์˜ค๊ณ ์š”,
google.com์„ ํ•‘์ž‰์„ ํ•ด๋ณด๋ฉด google.com์ด ํ•‘์ž‰์— ์‘๋‹ตํ•˜๋Š” ๊ฑธ ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
[ec2-user@ip-172-31-45-53 ~]$ whoami
ec2-user

[ec2-user@ip-172-31-45-53 ~]$ ping google.com
PING google.com (172.217.161.238) 56(84) bytes of data.
64 bytes from kix06s05-in-f14.1e100.net (172.217.161.238): icmp_seq=1 ttl=48 time=34.9 ms
64 bytes from kix06s05-in-f14.1e100.net (172.217.161.238): icmp_seq=2 ttl=48 time=35.1 ms
  • ์ธ์Šคํ„ด์Šค ์ž์ฒด์—์„œ ๋‚˜๊ฐ€๋ ค๋ฉด, exit์ด๋ผ๊ณ  ์ž…๋ ฅ.
[ec2-user@ip-172-31-45-53 ~]$ exit
logout
Connection to 43.201.66.115 closed.

SSH Trouble Shooting (๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•)

SSH๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณผ์ •์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์™€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

1. ์—ฐ๊ฒฐ ์‹œ๊ฐ„ ์ดˆ๊ณผ (Timeout)

์›์ธ: ๋ณด์•ˆ ๊ทธ๋ฃน ์„ค์ • ๋ฌธ์ œ ๋˜๋Š” ๋ฐฉํ™”๋ฒฝ ์ฐจ๋‹จ.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

  • ๋ณด์•ˆ ๊ทธ๋ฃน์—์„œ ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™์— SSH(ํฌํŠธ 22)๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ํผ๋ธ”๋ฆญ IP ์ฃผ์†Œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ ACL์ด ํŠธ๋ž˜ํ”ฝ์„ ์ฐจ๋‹จํ•˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.


2. ์—ฐ๊ฒฐ ๊ฑฐ๋ถ€ (Connection Refused)

์›์ธ: ์ธ์Šคํ„ด์Šค์—์„œ SSH ์„œ๋น„์Šค๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ ํฌํŠธ ์‚ฌ์šฉ.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

  • ์ธ์Šคํ„ด์Šค๋ฅผ ์žฌ์‹œ์ž‘ํ•˜์—ฌ SSH ์„œ๋น„์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ์ธ์Šคํ„ด์Šค์— ์˜ฌ๋ฐ”๋ฅธ ํฌํŠธ๊ฐ€ ์—ด๋ ค ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณด์•ˆ ๊ทธ๋ฃน ์„ค์ •์„ ๋‹ค์‹œ ๊ฒ€ํ† ํ•ฉ๋‹ˆ๋‹ค.

3. ๊ถŒํ•œ ๊ฑฐ๋ถ€ (Permission Denied)

์›์ธ: ์ž˜๋ชป๋œ ํ‚ค ํŒŒ์ผ ์‚ฌ์šฉ ๋˜๋Š” ์ž˜๋ชป๋œ ์‚ฌ์šฉ์ž ์ด๋ฆ„.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

  • ์˜ฌ๋ฐ”๋ฅธ ํ‚ค ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ํ‚ค ํŒŒ์ผ์˜ ๊ถŒํ•œ์„ ์ ์ ˆํžˆ ์„ค์ •ํ–ˆ๋Š”์ง€ (chmod 0400) ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ์ž ์ด๋ฆ„ (ec2-user, ubuntu ๋“ฑ)์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
์ž˜๋ชป๋œ ์‚ฌ์šฉ์ž๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ์—๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.  Amazon Linux 2 EC2 ์ธ์Šคํ„ด์Šค ์—์„œ ์‹คํ–‰ํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , 
ec2-user ์‚ฌ์šฉ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. 
SSH ๋ช…๋ น์–ด ๋˜๋Š” PuTTY ๊ตฌ์„ฑ์—์„œ ec2-user@<public-ip> (ex:ec2-user@35.180.242.162)
์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ง€์ •ํ•ด์•ผํ•˜๋Š” ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

EC2 Instance Connect๋ฅผ ์‚ฌ์šฉํ•œ ์ ‘์†

EC2 Instance Connect ๊ฐœ์š”

EC2 Instance Connect๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด EC2 ์ธ์Šคํ„ด์Šค์— SSH ์ ‘์†์„ ์ œ๊ณตํ•˜๋Š” AWS์˜ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

์ด ๋ฐฉ๋ฒ•์€ ๋ณ„๋„์˜ SSH ํด๋ผ์ด์–ธํŠธ๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ ๋„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ธ์Šคํ„ด์Šค์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.


EC2 Instance Connect ์ ‘์† ์ ˆ์ฐจ

๋‹ค์Œ์€ EC2 Instance Connect๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์Šคํ„ด์Šค์— ์ ‘์†ํ•˜๋Š” ์ ˆ์ฐจ์ž…๋‹ˆ๋‹ค:

1. EC2 ๋Œ€์‹œ๋ณด๋“œ์—์„œ ์ธ์Šคํ„ด์Šค ์„ ํƒ

AWS Management Console์— ๋กœ๊ทธ์ธํ•œ ํ›„, EC2 ์„œ๋น„์Šค๋ฅผ ์„ ํƒํ•˜๊ณ  ์ ‘์†ํ•˜๋ ค๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

2. ์ธ์Šคํ„ด์Šค ์—ฐ๊ฒฐ ๋ฒ„ํŠผ ํด๋ฆญ

์ธ์Šคํ„ด์Šค ๊ฐœ์š” ํŽ˜์ด์ง€ ์ƒ๋‹จ์—์„œ Connect ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.


3. EC2 Instance Connect ์„ ํƒ

์—ฌ๋Ÿฌ ์—ฐ๊ฒฐ ์˜ต์…˜ ์ค‘์—์„œ EC2 Instance Connect๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

SSH Client ๋“ฑ ๋งŽ์€ ์˜ต์…˜์ด ์žˆ์ฃ , ํ•˜์ง€๋งŒ EC2 Instance Connect ์œผ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ์ด๊ฑธ ์‚ฌ์šฉํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜์œผ๋กœ EC2 ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ SSH ์„ธ์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

4. ์ ‘์† ์„ค์ • ํ™•์ธ

  • ๊ณต์šฉ IP ์ฃผ์†Œ ํ™•์ธ: ์—ฐ๊ฒฐ์— ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ์ด๋ฆ„: ec2-user (Amazon Linux 2์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ์ด๋ฆ„).
  • SSH ํ‚ค ์˜ต์…˜ ์—†์Œ: AWS๊ฐ€ ์ž„์‹œ SSH ํ‚ค๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜์—ฌ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ํ‚ค๋ฅผ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

5. ์ ‘์† ๋ฒ„ํŠผ ํด๋ฆญ

๋ชจ๋“  ์„ค์ •์„ ํ™•์ธํ•œ ํ›„, Connect ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์›น ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜์˜ SSH ์„ธ์…˜์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

  • ์—ฌ๊ธฐ์„œ ๋งŒ์•ฝ์— ๋ณด์•ˆ๊ทธ๋ฃน์—์„œ SSH ํฌํŠธ๋ฅผ ์‚ญ์ œํ•˜๋ฉด? ์—ฐ๊ฒฐ์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ณด์•ˆ ๊ทธ๋ฃน์—์„œ SSH ํฌํŠธ(22๋ฒˆ)๋ฅผ ์‚ญ์ œํ•˜๋ฉด ์—ฐ๊ฒฐ์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
SSH ํฌํŠธ๋ฅผ ์—ด์–ด ๋‘์–ด์•ผ EC2 Instance Connect๊ฐ€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

EC2 Instance Connect ์ œํ•œ์‚ฌํ•ญ

  • ์ง€์› AMI: ํ˜„์žฌ Amazon Linux 2์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
  • ๋ณด์•ˆ ๊ทธ๋ฃน ์„ค์ •: ๋ณด์•ˆ ๊ทธ๋ฃน์—์„œ SSH ํฌํŠธ(22๋ฒˆ)๊ฐ€ ์—ด๋ ค ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • IAM ๊ถŒํ•œ: ์‚ฌ์šฉ์ž๊ฐ€ EC2 Instance Connect๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ ์ ˆํ•œ IAM ๊ถŒํ•œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

EC2 Instance ๋ณด์•ˆ ๊ณ ๋ ค์‚ฌํ•ญ

IAM ์—ญํ•  ์‚ฌ์šฉ ๊ถŒ์žฅ

IAM ์—ญํ• (IAM Roles)์„ ์‚ฌ์šฉํ•˜์—ฌ EC2 ์ธ์Šคํ„ด์Šค์— ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
์ด๋Š” IAM ์‚ฌ์šฉ์ž๋‚˜ API ํ‚ค๋ฅผ ์ง์ ‘ ์ธ์Šคํ„ด์Šค์— ์ €์žฅํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.
  • IAM ๋ช…๋ น
[ec2-user@ip-172-31-45-53 ~]$ aws --version
aws-cli/1.18.147 Python/2.7.18 Linux/5.10.230-223.885.amzn2.x86_64 botocore/1.18.6
[ec2-user@ip-172-31-45-53 ~]$ aws iam list-users
Unable to locate credentials. You can configure credentials by running "aws configure".
  • ์ด๋ ‡๊ฒŒ, ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด, ์ž๊ฒฉ ์ฆ๋ช…์„ ์ฐพ์„ ์ˆ˜ ์—†์œผ๋‹ˆ ์ž๊ฒฉ ์ฆ๋ช…์„ ์œ„ํ•ด aws configure ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
[ec2-user@ip-172-31-45-53 ~]$ aws configure

 

๊ทผ๋ฐ, ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•˜๊ฒŒ ์•Œ์•„์•ผํ•  ์‚ฌ์‹ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ ˆ๋Œ€ IAM API Key๋ฅผ ์ ˆ๋Œ€ ์ž…๋ ฅํ•˜๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค.

aws configure ๋ช…๋ น์„ ํ†ตํ•ด ์ด EC2 ์ธ์Šคํ„ด์Šค์— ์ƒ์„ธ ๊ฐœ์ธ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•ด ๋‘๋ฉด,
์ด ๊ณ„์ • ์ƒ์˜ ๋ˆ„๊ตฌ๋ผ๋„ ๋‹ค์‹œ EC2 ์ธ์Šคํ„ด์Šค ์ปค๋„ฅํŠธ ๋“ฑ์„ ํ†ตํ•ด EC2 ์ธ์Šคํ„ด์Šค์— ์ ‘์†์„ ํ•ด์„œ ์ธ์Šคํ„ด์Šค์— ์ž…๋ ฅ๋œ ์ž๊ฒฉ ์ฆ๋ช… ์ •๋ณด๋ฅผ ํšŒ์ˆ˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๊ณ , ๊ณ„์ •์ •๋ณด๊ฐ€ ๋…ธ์ถœ๋ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

๋Œ€์‹  IAM ์—ญํ• ๋กœ ์ง€์ •์„ ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.


IAM ์—ญํ• ๋กœ ์ƒ์„ธ ๊ฐœ์ธ์ •๋ณด ์ง€์ •

์˜ˆ์‹œ: DemoRoleForEC2: IAMReadOnlyAccess ์ •์ฑ…์„ ์—ฐ๊ฒฐํ•˜์—ฌ ์ธ์Šคํ„ด์Šค๊ฐ€ IAM ์‚ฌ์šฉ์ž ๋ชฉ๋ก์„ ์ฝ์„ ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

  • ์—ฌ๊ธฐ์„œ ์—ฐ๊ฒฐ๋œ ์ •์ฑ…์€ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ๋œ ์ •์ฑ…์€ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค IAMReadOnlyAccess
  • ์ด ์—ญํ• ์„ EC2 ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•ด์„œ ์ž๊ฒฉ ์ฆ๋ช…์„ ์ œ๊ณตํ•˜๊ฒŒ๋” ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

EC2 ์ธ์Šคํ„ด์Šค์— ์ž๊ฒฉ์ฆ๋ช… ํ• ๋‹น

  • EC2 ๋Œ€์‹œ๋ณด๋“œ์—์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ์„ ํƒํ•œ ํ›„ Actions > Security > Modify IAM role์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒ์„ฑํ•œ ์—ญํ• (DemoRoleForEC2)์„ ์„ ํƒํ•˜๊ณ  Update IAM role์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  • DemoRoleForEC2๋ฅผ ํด๋ฆญํ•˜๊ณ  Save๋กœ ์ €์žฅ์„ ํ•˜๋ฉด, ์ธ์Šคํ„ด์Šค์— IAM ์—ญํ• ์ด ์—ฐ๊ฒฐ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • ๊ทธํ›„, ํ„ฐ๋ฏธ๋„ ์ฐฝ์— aws iam list-users๋ฅผ ์ž…๋ ฅํ•œ ํ›„ Enter๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.
[ec2-user@ip-172-31-45-53 ~]$ aws iam list-users
{
    "Users": 
        {
            "UserName": "toby",
            "PasswordLastUsed": "2025-01-24T06:47:19Z",
            "CreateDate": "2025-01-20T06:03:13Z",
            "UserId": "AIDA6JQ44VCUSKEUKYQRN",
            "Path": "/",
            "Arn": "arn:aws:iam::982534367401:user/toby"
        }
    ]
}
  • ์ด๋ ‡๊ฒŒ, IAM์œผ๋กœ๋ถ€ํ„ฐ ์œ ์ €์— ๊ด€ํ•œ ์‘๋‹ต์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.
  • aws configure ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์ง€๋Š” ์•Š์•˜๋Š”๋ฐ๋„ IAM ์—ญํ• ์„ ์—ฐ๊ฒฐ ํ›„์— ์ด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋‹ˆ ์ž‘๋™์ด ๋œ๋‹ค๋Š”๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ EC2 ์ธ์Šคํ„ด์Šค์— AWS ์ž๊ฒฉ ์ฆ๋ช…์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๊ณ  ๋ฐ˜๋“œ์‹œ IAM ์—ญํ• ์„ ์‚ฌ์šฉํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Amazon EC2 ์ธ์Šคํ„ด์Šค์— ์ ‘์†ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ SSH์™€ EC2 Instance Connect๋ฅผ ์†Œ๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ• ๋ชจ๋‘ SSH ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ์‚ฌ์šฉ ํ™˜๊ฒฝ๊ณผ ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SSH๋Š” ์ „ํ†ต์ ์ด๊ณ  ์œ ์—ฐํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ๊ณตํ•˜๋ฉฐ, EC2 Instance Connect๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•œ ๊ฐ„ํŽธํ•œ ์ ‘์†์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

๋ณด์•ˆ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์ค€์ˆ˜ํ•˜์—ฌ ์ธ์Šคํ„ด์Šค์— ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘์†ํ•˜๊ณ , IAM ์—ญํ• ์„ ํ™œ์šฉํ•˜์—ฌ ๊ถŒํ•œ์„ ๊ด€๋ฆฌํ•จ์œผ๋กœ์จ ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ์˜ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


 

์ฐธ๊ณ  ์ž๋ฃŒ