๐Ÿ’ป AWS EC2 ์‹œ์ž‘๊ณผ ์ข…๋ฃŒ CLI๋กœ ์‰ฝ๊ฒŒํ•˜๊ธฐ.

ALL AWS Posted by Sunio on January 17, 2021 · 5 mins read

๋‚ด ์ง€๊ฐ‘์—์„œ ์•„๋งˆ์กด์ด ๋ˆ์„ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜๋„ ์žˆ๋‹ค.

Tools

  • Windows 10 , Ubuntu 18.04 / AWS , EC2 , IAM , CLI

1. Prologue & Issue


์•„๋งˆ์กด EC2 ํด๋ผ์šฐ๋“œ ์ปดํ“จํ„ฐ๋Š” ์ œํ•œ๋œ ์‹œ๊ฐ„(750 h/m, ๊ฐ€๊ฒฉ ์ •์ฑ…)๋งŒํผ ๋ฌด๋ฃŒ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
๋‚˜๋Š” ํ˜„์žฌ (1) ์Šฌ๋ž™์— ์‹๋‹จ ๋ด‡์„ ๋งค ์˜ค์ „ 10์‹œ๋งˆ๋‹ค cronlab ์Šค์ผ€์ฅด๋Ÿฌ๋กœ ์‹คํ–‰์‹œํ‚ค๋Š” ์„œ๋ฒ„์™€ (2) 0์ฃผ์ฐจ ํ”„๋กœ์ ํŠธ์˜ ์›น์„œ๋น„์Šค๋ฅผ ์ž‘๋™์‹œํ‚ฌ ์„œ๋ฒ„, (3) ํ˜„์žฌ mallocLab์„ ์ง„ํ–‰ํ•˜๋Š” ์„œ๋ฒ„ ์ด 3๊ฐœ์˜ ์„œ๋ฒ„๋ฅผ ์ž‘๋™์‹œํ‚ค๊ณ  ์žˆ๋‹ค. ๊ณง ์ฒญ๊ตฌ์„œ๊ฐ€ ๋‚ ๋ผ์˜ฌ ๊ฒƒ๋งŒ ๊ฐ™์€ ์ƒํƒœ์ด๋‹ค.

๋‚˜๋Š” "EC2 ์„œ๋ฒ„๋ฅผ ์“ฐ์ง€ ์•Š์„ ๋•Œ๋Š” ์ข…๋ฃŒํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋งŒ ์ผœ๊ณ  ์‹ถ๋‹ค" ๋ผ๋Š” ์ƒ๊ฐ์œผ๋กœ Instance Scheduler๋ฅผ ์ฐพ์•„๋ณด์•˜์œผ๋‚˜ ๋‚˜์˜ ์ž‘์—… ์‹œ๊ฐ„์ด ๋ฌด์ž‘์œ„์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜๋™์œผ๋กœ ์ง์ ‘ ์ผœ๊ณ  ๊บผ์ฃผ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผํ–ˆ๋‹ค. ์ฝ˜์†”์˜ GUI๋ฅผ ํ†ตํ•ด ์ง์ ‘ ์ด๋ฅผ ๊ตฌ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋„ˆ๋ฌด ๋น„ํšจ์œจ์ ์ด๊ณ  ๋ฒˆ๊ฑฐ๋กœ์› ๋‹ค. ๐Ÿ˜จ ๊ทธ ์ž‘์€ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ด๊ณ ์ž ์—ฌ๊ธฐ์„œ๋Š” AWS CLI๋ฅผ ์ด์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

2. AWS CLI ์„ค์น˜ํ•˜๊ธฐ


AWS CLI๋Š” ๋ง๊ทธ๋Œ€๋กœ AWS๊ฐ€ ์ œ๊ณตํ•˜๋Š” Commnad Line Interface์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ํ„ฐ๋ฏธ๋„์„ ํ†ตํ•ด AWS Console์—์„œ ์ œ๊ณตํ•˜๋Š” ๋งŽ์€ ๊ธฐ๋Šฅ๋“ค์„ ๋ช…๋ น์–ด๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

์ด ๋ถ€๋ถ„์„ ์ง„ํ–‰ํ•˜๊ธฐ ์ด์ „์— OS ๋ณ„๋กœ ์„ค์ •์ด ํ•„์š”๋กœ ํ•  ๊ฒƒ ๊ฐ™๋‹ค. ๋‚˜๋Š” ํ˜„์žฌ Local์˜ Windows ์—์„œ EC2 instance์˜ Ubuntu ๋ฅผ "์‹คํ–‰"ํ•  ๋•Œ์™€ EC2 instance์˜ Ubuntu ์ƒ์—์„œ "์ค‘์ง€"๋ฅผ ํ•˜๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ์ ˆ์ฐจ๋ฅผ ๋”ฐ๋ฅด๊ธฐ ์œ„ํ•ด ๋‚ด Local ๊ณผ EC2 instance ๋ชจ๋‘์— awscli ๋ฅผ ์ธ์Šคํ†จ ํ•˜๋„๋ก ํ•œ๋‹ค. ๋ฒ„์ „์ด ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ์ง€๋งŒ CLI2 ๋ฅผ ๋ฐ›์•˜๋‹ค

  • windows env

    msi ํŒŒ์ผ์„ ๋‹ค์šด๋ฐ›์•„ ์„ค์น˜ํ•ด๋ถ„๋‹ค.

  • ubuntu env

    sudo apt-get update
    sudo apt-get install awscli
    

    ์ธ์Šคํ†จ์ด ์™„๋ฃŒ๋˜๋ฉด CLI๋ฅผ ์‚ฌ์šฉํ•  ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋œ๋‹ค.๐Ÿ˜

    aws --version # ๋ฌด์–ธ๊ฐ€ ๋ฒ„์ ผ๋ฒˆํ˜ธ๊ฐ€ ์ถœ๋ ฅ๋˜๋ฉด ์„ค์น˜๊ฐ€ ๋œ ๊ฒƒ์ด๋‹ค.
    

    ์ด์™ธ์˜ ํ™˜๊ฒฝ์€ ๋‹ค์Œ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ๋œ๋‹ค.

3. AWS IAM ๋ณด์•ˆ ์ž๊ฒฉ ์ฆ๋ช…!


CLI๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ aws IAM์ด๋ž€ ๊ฒƒ์„ ํ†ตํ•ด ๋ณด์•ˆ ์ž๊ฒฉ ์ฆ๋ช…์„ ํ•˜๊ฒŒ ๋œ๋‹ค. AWS Management Console๋กœ ์ด๋™ํ•˜์—ฌ ๋‹ค์Œ์˜ ํ๋ฆ„์„ ๋”ฐ๋ผ๊ฐ€์ž.

  1. AWS Management Console์˜ ์šฐ์ธก ์ƒ๋‹จ์˜ ์ด๋ฆ„์„ ํด๋ฆญํ•œ๋‹ค.
  2. ๋‚ด ๋ณด์•ˆ ์ž๊ฒฉ ์ฆ๋ช…์„ ์„ ํƒํ•œ๋‹ค.
  3. ์ด ์ค‘ โ€œ์•ก์„ธ์Šค ํ‚คโ€๋ฅผ ์„ ํƒํ•œ๋‹ค.
  4. โ€œ์ƒˆ ์•ก์„ธ์Šค ํ‚ค ๋งŒ๋“ค๊ธฐโ€๋ฅผ ์„ ํƒํ•˜๊ณ  *.csv ํŒŒ์ผ์„ ๋ณด๊ด€ํ•œ๋‹ค. (AccessKeyID์™€ SecretKey๊ฐ€ ๋‹ด๊ฒจ์žˆ๋”ฐ.)
  5. ๋‹ค์Œ์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.
    aws configure
    
  6. ์š”์ฒญํ•˜๋Š” AccessKey, SecretKey, Region, Output Format์„ ํ• ๋‹นํ•ด์ค€๋‹ค. (region์€ ์„œ์šธ, format์€ json์œผ๋กœ ํ–ˆ๋‹ค.)
    ํ™”๋ฉด ์บก์ฒ˜ 2021-01-17 194121

4. EC2 ์‹œ์ž‘/์ค‘์ง€ํ•˜๊ธฐ


  • ์šฐ๋ฆฌ๊ฐ€ ํ‰์†Œ AWS์˜ GUI Console์—์„œ ํ•˜๋˜ ์‹œ์ž‘๊ณผ ์ค‘์ง€์˜ ์ปค๋งจ๋“œ ์ž…๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
    aws ec2 start-instances --instance-ids "instance-id" # ์‹œ์ž‘ํ•˜๊ธฐ
    aws ec2 stop-instances --instance-ids "instance-id" # ์ค‘์ง€ํ•˜๊ธฐ
    
  • ์ด๋•Œ, instance-id ๋ฅผ ๋ณด๋ ค๊ณ  ๋˜ ์ฝ˜์†”์„ ๋ด์•ผํ•˜๋Š” ์ˆ˜๊ณ ๋ฅผ ์ค„์—ฌ๋ณด์ž.

    AWS์—๋Š” Elastic IP๋ผ๋Š” ๊ฒƒ์ด ์žˆ๋‹ค. ํ•œ๊ธ€ Console์—๋Š” ํƒ„๋ ฅ์  IP๋ผ๊ณ  ํ‘œํ˜„ํ•œ๋‹ค
    AWS Management Console์—์„œ ์ขŒ์ธก์— โ€œํƒ„๋ ฅ์  IP ์ฃผ์†Œ ํ• ๋‹นโ€์„ ํด๋ฆญํ•œ๋‹ค. ์ด ํ›„ ๊ฐ„๋‹จํ•˜๊ฒŒ IP ์ฃผ์†Œ ํ•˜๋‚˜๋ฅผ ํ• ๋‹น ๋ฐ›์„ ์ˆ˜ ์žˆ๊ณ , ์ด๋ฅผ ์šฐ๋ฆฌ๊ฐ€ ํ™œ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” instance์— ์—ฐ๊ฒฐํ•ด์ฃผ๋ฉด ๋์ด๋‹ค.

  • ์ด ํ›„, ์•„๋ž˜์˜ ์ปค๋งจ๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด instance-id, PublicKey๋“ฑ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๊ณ  ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์œ„ ์ปค๋งจ๋“œ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋œ๋‹ค.
    ์ถ”๊ฐ€๋กœ, ์ด ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๋งค๋ฒˆ ์‹œ์ž‘/์ค‘์ง€ ๊ณผ์ •์—์„œ publicIP ์ฃผ์†Œ๊ฐ€ ๋ณ€ํ•˜๋Š” ๊ฒƒ์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค.
    aws ec2 describe-addresses --public-ips # ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” Elastic IP ๋“ค์ด ๋‚˜์˜จ๋‹ค.
    

5. Additional


๐Ÿ“Œ New Issue

instance ๊ฐ€ ์ค‘์ง€๋˜์—ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ์‹คํ–‰๋˜๋ฉด public IP๊ฐ€ ๋ณ€๊ฒฝ์ด ๋˜๋Š”๋ฐ, ์ด์— ๋งž๊ฒŒ config ๋˜์–ด์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ๋“ค์— ๋Œ€ํ•ด ๋ณ€๊ฒฝํ•ด์•ผํ•  ์†Œ์š”๊ฐ€ ์ƒ๊ธด๋‹ค.

โ“ ์˜ˆ๋ฅผ๋“ค๋ฉด, ํ˜„์žฌ VSC ์ƒ์—์„œ simple-ftp extension์œผ๋กœ 22๋ฒˆ ํฌํŠธ๋ฅผ ํ†ตํ•ด ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ณ  ์žˆ๋Š”๋ฐ simple-ftp configuration ํŒŒ์ผ์— ์žˆ๋Š” public IP ์ฃผ์†Œ๋ฅผ ๋งค๋ฒˆ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ๋‹ค.
โ— ํ•ด๊ฒฐ๋ฐฉ์•ˆ :: (4.)์˜ Elastic IP ์‚ฌ์šฉ

6. Epilogue


๐ŸŽ‰์ด์ œ CLI์„ ํ†ตํ•ด EC2๋ฅผ ์‹œ์ž‘/์ค‘์ง€ํ•  ์ˆ˜ ์žˆ์–ด, ์ฝ˜์†”์„ ๋‹ค์‹œ ๋ณผ์ผ์ด ์—†๋‹ค!!๐ŸŽ‰

7. Reference


AWS CLI Command Reference :: amazon AWS
AWS S3 CLI - Could not connect to the endpoint URL :: StackOverFlow
Get public IP address via awscli :: StackExchange


โ€ข 0 Comments