EB 배포 방법 정리

김지용·2022년 4월 13일
0

<EB 배포 및 추가>

  1. 장고 실행

    • django-admin startproject test .
  2. settings.py 가서 ALLOWED_HOSTS = ['*'] 설정 / 나중엔 본인 도메인으로 호스트 설정해주기 / 로컬 말고 서버배포사용시 DEBUG = False로 하기

  3. .ebextensions 폴더 생성 / 하위 파일로 django.config 생성
    - 플라스크는 안 만들어줘도 상관없으나 장고는 꼭 만들어줘야함. 정확이 어떤 앱을 실행해야하는지 빈스톡에게 명시하기 위해서임.
    - wsgi.py 가 어떤 앱을 실행할지 걸쳐서 진행해주는데, 이 역할을 위의 django.config파일이 실행해줌
    - 아래를 django.config에 넣어주기
    option_settings:
    aws:elasticbeanstalk:container:python:
    WSGIPath:본인프로젝트이름그대로 붙여줄 부분.wsgi:application

3.5 . eb-cli 설치 (최초 설치만 하면 됨. 설치한 사람들은 패스하고 4번으로 ㄱㄱ )
1. git clone https://github.com/aws/aws-elastic-beanstalk-cli-setup.git
2. pip install virtualenv
3. python .\aws-elastic-beanstalk-cli-setup\scripts\ebcli_installer.py / 윈도우 설정
3. python ./aws-elastic-beanstalk-cli-setup/scripts/ebcli_installer.py / 맥 설정

  1. eb init 명령어 입력 / code-commit 만 no 하고 나머지 그냥 진행하면 무난히 진행됨.

  2. eb create -i t2.micro 명령어 입력

    • application 로드밸런서 사용시 http를 자동으로 https 로 리다이렉션 해줌. 따로 설정하는 수고가 없음.
    • Would you like to enable Spot Fleet requests for this environment? (y/N): N 해주기

<ROUTE 53> / 도메인 구매 및 설정

<ACM 설정> / SSL 인증을 위해서 유저가 인증하는 부분(회원가입 시 이메일인증같은 거라고 보면 됨.)
1. 우측상단 지역설정
- 아시아 태평양(서울) 으로 바꿔주기

  1. 인증서요청 클릭

  2. 구매한 도메인 이름 등록

    • ROUTE53 에서 구매한 도메인 입력
    • DNS 검증 으로 하고 요청
    • 상태가 검증대기중일텐데 기다리면 나중에 발급됨으로 바뀜(아래의 설정 다 하고 나면)
    • 유형 CNAME / CNAME 이름 / CNAME 값이 뜰 거임.
  3. Route 53에서 레코드 생성 클릭

    • ROUTE 53에 도메인이 있냐는 질문에 예 가 떠있으면 레코드 생성 클릭 눌러서 생성
  4. Route 53에 가서 해당 도메인 클릭 시 레코드가 2개에서 DNS 등록하면서 3개로 바뀌어 있는 거 체크

  5. ACM가서 상태에 발급됨 으로 바뀌었는지 체크

체크

  1. Elastic Beanstalk 으로 가서 왼쪽 환경의 구성으로 들어간다.

  2. 로드밸런서 편집 클릭

    • 위로 스크롤 올려서 리스너 추가
    • https 443포트로 추가
    • 인증서는 아까 ACM 인증 받은 인증서 선택
    • SSL 정책은 빈값으로 두면 AWS가 친절하게 자동으로 설정해줄 거임.
    • 위의 설정 다 하고 꼭 스크롤 맨 아래로 내려서 '적용' 버튼 눌러주기
    • Elastic Beanstalk의 환경의 상태에서 빙글빙글 돌면서 업데이트가 될 거임.
  3. https 는 해당 도메인에만 적용 / Elastic Beanstalk 경로에서는 적용 안됨.

<ROUTE 53>
1. 레코드 생성
- cafe.naver.com / blog.naver.com 같은 것들이 도메인 새로 파는 게 아니라 기존 도메인에서 레코드 파서 생성하는 거임.
- 별칭 설정 누르고
- Elastic Beanstalk 환경에 대한 별칭
- region은 아시아태평양(서울)
- Elastic Beanstalk 경로 선택

  1. 도메인 주소 (https 추가해서) url 입력해서 들어가보기
    • 잠금표시가 뜨는지 체크
    • http로 접속하면 주의요함이 뜸 ( https로 redirection 설정이 안 되어있음. )
1. 왼쪽에 로드밸런서 클릭해서 들어가기
  1. Elastic Beanstalk에 묶여있는 로드밸런서 찾기
    • 맞는지 확인하려면 리스너를 봐도 되고, url 경로로 들어가봐서 확인해봐도 됨.

3.아래의 리스너 HTTP 80 체크박스 클릭 후에 편집 누르기
- Remove 클릭
- add action 클릭
- (Redirect 설정에서) 프로토콜 https 클릭 443 입력
- save changes 클릭
- 도메인 입력해서 https에서 s 빼고 redirect 잘 되는지 보기

<github repositoy 생성> 자동 푸쉬

  1. git init 명령어 입력
  2. git remote add origin + 깃 주소 명령어 입력
    1.5 . SSH 설정할 거면 git remote set-url origin + 깃 주소 명령어 입력
  1. 깃헙 연결 되어 있으면 바로 진행

    • .gitignore 는 엘라스틱 빈스톡을 init 하면 자동으로 생성되는데 eb관련 ignore를 분리하고 싶으면 .ebignore를 따로 만들 것
    • 빈스톡은 우리의 컴퓨터 파일을 올리는 게 아니라 git commit 된 기록을 올리는 것.
    • 그래서 파일 수정후에는 꼭 git commit을 해야 빈스톡 서버에 반영이 됨.(.gitignore도 반영이 됨)
    • 결론 시크릿을 깃헙에는 올리고 싶지않은데 서버에는 올리고싶다. 그러면 .gitignore 에는 시크릿을 써놓고 .ebignore에는 시크릿을 써놓지 않아야함.
  2. 적용할 브랜치로 생성 및 이동

    • 커밋 푸쉬하기

/ 과금 월 1달러

  1. 파이프라인 생성 클릭
    -이름 적고 다음 클릭

    • 소스공급자에 깃헙 버전2 설정
    • 깃헙에 연결 눌러서 깃헙 레파지토리랑 연결 진행하기
    • 연결 이름 설정
    • 새앱 설치 클릭
    • 깃헙에 로그인된 계정과 연동 가능
    • 깃헙에 가서 Repository access 에 'All repository' 로 해놔서 모든 레파지토리 연동 가능하게 하기
    • 이후 연결번호가 뜨면 연결 버튼 클릭
    • AWS와 깃헙이 연결되었고, AWS가 알아서 깃헙에서 풀 받아서 배포할 권한이 생긴 거임.
    • 프로젝트 진행시 dev 브랜치, deploy 브랜치 등 상황에 맞춰 만들고, deploy 브랜치에 PR 날렸을 때 올라갈 수 있게 설정하면 좋음.
    • 그래서 레파지토리 이름이랑 브랜치 설정에서 서버배포용 브랜치를 설정(브랜치 이름 : deploy 등등) 하고 다음버튼 클릭
    • 빌드스테이지 건너뛰기 누르기 ( 다른 프레임워크 사용할 시 필요)
    • 배포에서 배포공급자에 엘라스틱빈스톡 선택 / 아시아 태평양(서울) / 전에 만든 앱이름, 환경이름 설정 후 다음버튼 클릭
    • 파이프라인 생성 클릭
  2. 프로젝트 가서

    • 수정하고 Debug = False로 두고 / git add . / git commit / git push 하기
    • 10초정도 기다리고 도메인 url 가보면 수정 되어있음.

CodePipeline 설정

profile
김죵입니당 ^^

0개의 댓글