[6/3 TIL]AWS Elastic Beanstalk으로 배포하기

haegnim·2023년 6월 3일
0

TIL

목록 보기
3/52
post-thumbnail

[배운내용]

  1. AWS Elastic Beanstalk으로 배포하기

1. AWS Elastic Beanstalk으로 배포하기

내 웹서비스를 런칭하는 것이란

내 컴퓨터 대신 계속 켜있는 컴퓨터를 빌린다. (인터넷 환경에서 컴퓨터를 대여한다.)
인터넷에 있는 컴퓨터를 클라우드 컴퓨터 라고 부른다.
배포 과정은 원래는 쉽지 않아 얼개를 이해하고 다시 찾아보면서 배포하게 된다.

배포에 필요한 준비물

  • AWS 계정 가입 → 액세스 키 생성 → 액세스 키 복사해서 준비

    📎 AWS? : AWS 아마존이라는 큰 회사에서 운영하는 클라우드 서비스 : 가입시 해외결제를 위한 카드가 필요함
  • 터미널 명령어

    - 터미널 준비하기 -
    mkdir deploy
    cp app.py deploy/application.py
    cp -r templates deploy/templates
    pip freeze > deploy/requirements.txt
    cd deploy

    - application.py 세팅하기 -
    application = app = Flask(name)
    app.run()

    - 패키지 설치하기 -
    pip install awsebcli

    - 보안 자격증명 -
    eb init

    - 초기 설정 -
    eb create myweb

    - 코드 수정 & 업데이트 -
    eb deploy myweb


배포 Start!

  1. 터미널 준비하기

    mkdir deploy - deploy라는 폴더를 만들기

    cp [app.py](http://app.py) deploy/application.py - app.py라는 파일을 deploy 폴더에 application.py라는 이름으로 복사하기

    cp -r templates deploy/templates - templates라는 폴더를 deploy 폴더 안에 통째로 복사하기

    pip freeze > deploy/requirements.txt - requirements에 내가 사용한 라이브러리만 적어줘

    cd deploy - deploy로 들어갔다.(거기서 명령을 치고 있다)

  2. appication.py 세팅하기

    application = app = Flask(**name**)

    app.run()

    • 아래처럼 수정
      #before
      from flask import Flask, render_template, request, jsonify
      app = Flask(__name__)
      .
      .
      .
      if __name__ == '__main__':
          app.run('0.0.0.0', port=5000, debug=True)
      #after
      from flask import Flask, render_template, request, jsonify
      application = app = Flask(__name__)
      .
      .
      .
      if __name__ == '__main__':
         app.run()
  3. 패키지 설치하기

    pip install awsebcli

    • [오류]Could not build wheels for bcrypt, pynacl which use PEP 517 and cannot be installed directly pip 업그레이드로 해결가능
  4. 보안 자격증명
    eb init

    Select a default region : 10 (seoul)
    
    AWS Access Key ID [None]: 발급된 액세스 키 ID (복사 붙여넣기)
    AWS Secret Access Key [None]: 발급된 비밀 액세스 키 (복사 붙여넣기)
    
    Enter Application Name (default is "deploy") : enter
    It appears you are using Python. Is this correct? : Y
    Select a platform branch (default is 1) : enter
    
    Do you want use Codecommit? : N
    
    Cannot setup CodeCommit because there is no Source Control setup, continuing with initialization
    Do you want to set up SSH for your instances? : Y
    
    Select a keypair : [Create new Keypair]
    
    Type a keypair name : enter
    Enter passphrase : enter
    Enter same passphrase again : enter

    AWS 배포중 eb init 에러
    eb init --interactive : 세팅을 다시 시작하기

  1. 초기 설정
    eb create myweb
    이렇게 끝났다면 배포 성공
  2. 코드 수정 & 업데이트
    eb deploy myweb

주의!

eb create를 할 때마다 서버를 구매한다는 사실

1년이 지나면 과금이 되니까 삭제를 해놔야 한다.

0개의 댓글