๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Spring Boot/์Šคํ”„๋ง ๋ถ€ํŠธ์™€ AWS๋กœ ํ˜ผ์ž ๊ตฌํ˜„ํ•˜๋Š” ์›น ์„œ๋น„์Šค

6์žฅ: AWS ์„œ๋ฒ„ ํ™˜๊ฒฝ ๋งŒ๋“ค๊ธฐ

by oliviarla 2022. 6. 27.

Table of Contents

     

    ํด๋ผ์šฐ๋“œ

    ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค

    ํด๋ผ์šฐ๋“œ๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„, ์Šคํ† ๋ฆฌ์ง€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๋„คํŠธ์›Œํฌ, ์†Œํ”„ํŠธ์›จ์–ด, ๋ชจ๋‹ˆํ„ฐ๋ง ๋“ฑ ์ปดํ“จํŒ… ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ

     

    ํด๋ผ์šฐ๋“œ ํ˜•ํƒœ

    • IaaS (Infrastructure as a Service)
      • ๊ธฐ์กด ๋ฌผ๋ฆฌ ์žฅ๋น„๋ฅผ ๋ฏธ๋“ค์›จ์–ด์™€ ํ•จ๊ป˜ ๋ฌถ์–ด IT ์ธํ”„๋ผ๋ฅผ ๋Œ€์—ฌํ•ด์ฃผ๋Š” ์ถ”์ƒํ™” ์„œ๋น„์Šค
      • AWS EC2, S3๋“ฑ์ด ํ•ด๋‹น๋จ
    • PaaS (Platform as a Service)
      • IaaS๋ฅผ ํ•œ๋ฒˆ ๋” ์ถ”์ƒํ™”ํ•˜์—ฌ ๋งŽ์€ ๊ธฐ๋Šฅ์ด ์ž๋™ํ™”๋œ ์„œ๋น„์Šค
      • Beanstalk, Heroku๋“ฑ์ด ํ•ด๋‹น๋จ
    • Saas (Software as a Service)
      • ์†Œํ”„ํŠธ์›จ์–ด ์„œ๋น„์Šค
      • ๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ, ๋“œ๋ž๋ฐ•์Šค ๋“ฑ์ด ํ•ด๋‹น๋จ

    EC2 ์ธ์Šคํ„ด์Šค ๋งŒ๋“ค๊ธฐ

    AWS์—์„œ ์ œ๊ณตํ•˜๋Š” ์„ฑ๋Šฅ, ์šฉ๋Ÿ‰ ๋“ฑ์„ ์œ ๋™์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„

     

    1. ๋ฆฌ์ „ ์„ ํƒ

    ์„œ์šธ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ

     

    2. EC2 ์ธ์Šคํ„ด์Šค ์‹œ์ž‘

    ์ธ์Šคํ„ด์Šค: ๊ฐ€์ƒ ๋จธ์‹ ์— ์šด์˜์ฒด์ œ ๋“ฑ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์›Œ ๋„ฃ์€ ์ด๋ฏธ์ง€

     

    3. AMI ์„ ํƒ

    ์ธ์Šคํ„ด์Šค ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค์–ด ๋‘” ๊ฒƒ

    Amazon Linux AMI ์‚ฌ์šฉ

     

    4. ์ธ์Šคํ„ด์Šค ์œ ํ˜• ์„ ํƒ

    t2.micro ์‚ฌ์šฉ

     

    T์‹œ๋ฆฌ์ฆˆ์˜ ํŠน์ง•

    - ์ผ์ • ๋น„์œจ๋กœ CPU ํฌ๋ ˆ๋”ง์„ ๋ฐ›๊ฒŒ ๋˜๋ฉฐ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋•Œ๋Š” ํฌ๋ ˆ๋”ง ์ถ•์ , ํ•„์š”ํ•  ๋•Œ ํฌ๋ ˆ๋”ง ์‚ฌ์šฉ

    - ํฌ๋ ˆ๋”ง์ด ๋ชจ๋‘ ์‚ฌ์šฉ๋˜๋ฉด ๋”์ด์ƒ EC2 ์ด์šฉ ๋ถˆ๊ฐ€ํ•˜๋‹ค๋Š” ๋‹จ์  ์กด์žฌ

     

    5. ์ธ์Šคํ„ด์Šค ์„ธ๋ถ€ ์ •๋ณด ๊ตฌ์„ฑ

    VPC, ์„œ๋ธŒ๋„ท ๋“ฑ์˜ ์„ค์ •์€ ์Šคํ‚ตํ•จ

     

    6. ์Šคํ† ๋ฆฌ์ง€ ์„ ํƒ

    ์„œ๋ฒ„์˜ ์šฉ๋Ÿ‰ ์„ค์ •

    30GB๊นŒ์ง€ ํ”„๋ฆฌํ‹ฐ์–ด๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

     

    7. ํƒœ๊ทธ ์ถ”๊ฐ€

    Name ํƒœ๊ทธ๋ฅผ ๋“ฑ๋กํ•ด EC2์˜ ์ด๋ฆ„ ์„ค์ •

     

    8. ๋ณด์•ˆ ๊ทธ๋ฃน ์ถ”๊ฐ€

    ๋ณด์•ˆ ๊ทธ๋ฃน ์ด๋ฆ„์„ ์ ์ ˆํžˆ ์ƒ์„ฑํ•œ ํ›„ (ex. freelec-springboot2-webservice-ec2)

    ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™์— ๋‹ค์Œ ์œ ํ˜• ์ถ”๊ฐ€ํ•˜๊ธฐ

    ์œ ํ˜•: SSH, ํฌํŠธ ๋ฒ”์œ„: 22, ์†Œ์Šค: ๋‚ด IP

    ์œ ํ˜•: ์‚ฌ์šฉ์ž ์ง€์ • TCP, ํฌํŠธ ๋ฒ”์œ„: 8080, ์†Œ์Šค: ์‚ฌ์šฉ์ž ์ง€์ •

    ์œ ํ˜•: ์‚ฌ์šฉ์ž ์ง€์ • TCP, ํฌํŠธ ๋ฒ”์œ„: 443, ์†Œ์Šค: ์‚ฌ์šฉ์ž ์ง€์ •

     

     

    9. ์ธ์Šคํ„ด์Šค ๊ฒ€ํ† 

    pem ํ‚ค ํŽ˜์–ด ์ƒ์„ฑ ํ›„ ๋‹ค์šด๋กœ๋“œํ•˜๊ธฐ

    ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ๋˜์–ด IP, ๋„๋ฉ”์ธ์ด ํ• ๋‹น๋จ

     

    10. ๊ณ ์ • IP ํ• ๋‹น

    Elastic IP: AWS์˜ ๊ณ ์ • IP

    ์ƒˆ ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•œ ํ›„ ๋ฐ”๋กœ EC2 ์„œ๋ฒ„์˜ ์ฃผ์†Œ์— ์—ฐ๊ฒฐํ•จ

    ๐Ÿšจ ์ฃผ์˜: ํƒ„๋ ฅ์  IP๋Š” ์ƒ์„ฑํ•˜๊ณ  ๋ฐ”๋กœ EC2์— ์—ฐ๊ฒฐํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•  ์ธ์Šคํ„ด์Šค๊ฐ€ ์—†์œผ๋ฉด ๋น„์šฉ ์ฒญ๊ตฌ๊ฐ€ ๋จ

     

    EC2 ์„œ๋ฒ„ ์ ‘์†ํ•˜๊ธฐ (Mac)

    pem ํ‚ค ํŒŒ์ผ์„ ~/.ssh/์— ๋ณต์‚ฌ

    cp pemํ‚ค๊ฒฝ๋กœ ~/.ssh/

    pem ํ‚ค ๊ถŒํ•œ ๋ณ€๊ฒฝ

    chmod 600 ~/.ssh/pemํ‚ค์ด๋ฆ„

    config ํŒŒ์ผ ์ƒ์„ฑ

    vim ~/.ssh/config
    HOST ์„œ๋น„์Šค๋ช…
        HostName ํƒ„๋ ฅ์ IP์ฃผ์†Œ
        User ec2-user
        IdentifyFile ~/.ssh/pemํ‚ค์ด๋ฆ„

    config ํŒŒ์ผ ๊ถŒํ•œ ๋ณ€๊ฒฝ

    chmod 700 ~/.ssh/config

    ssh ์ ‘์†

    ssh config์˜์„œ๋น„์Šค๋ช…

     

    EC2 ์„œ๋ฒ„ ์„ค์ •ํ•˜๊ธฐ

    • Java8 ์„ค์น˜
    sudo yum install -y java-1.8.0-openjdk-devel.x86_64
    sudo /usr/sbin/alternatives --config java
    sudo yum remove java-1.7.0-openjdk
    • ํƒ€์ž„์กด ๋ณ€๊ฒฝ
    sudo rm /etc/localtime
    sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

    date ๋ช…๋ น์–ด๋กœ ํƒ€์ž„์กด ํ™•์ธ ๊ฐ€๋Šฅ

    • ํ˜ธ์ŠคํŠธ๋„ค์ž„ ๋ณ€๊ฒฝ
    sudo vim /etc/sysconfig/network

    HOSTNAME ๋ถ€๋ถ„์„ ์›ํ•˜๋Š” ์„œ๋น„์Šค๋ช…์œผ๋กœ ๋ณ€๊ฒฝ

    sudo reboot

     

    hostname์„ ํŒŒ์ผ์— ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•ด ์ ‘๊ทผ ํ›„ 127.0.0.1 ๋“ฑ๋กํ•œHOSTNAME ์ž…๋ ฅ

    sudo vim /etc/hosts

     

    ํ˜ธ์ŠคํŠธ๋„ค์ž„ ๋“ฑ๋ก ์—ฌ๋ถ€ ํ™•์ธ

    curl ํ˜ธ์ŠคํŠธ์ด๋ฆ„

    failed to connect to ...๊ฐ€ ๋‚˜์™€์•ผ ์„ฑ๊ณต์ž„

     

     

     

     

     

     

     

    ๋Œ“๊ธ€