ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS EB Docker 배포
    카테고리 없음 2022. 2. 17. 16:17

    이번엔 개발한 백엔드를 aws elastic beanstalk에 Docker 로 배포 해보는 방법에 대하여 포스팅 해보려 한다.

     

    필자는 Macos 기준으로 하였다.

     

     

    AWS CLI  설정


    먼저 aws cli 를 설치하여 로컬 pc에 기본적인 환경을 셋팅 한다.

    brew install awscli

    그 다음으론 AWS 콘솔에 Iam 탭에서 새로운 사용자를 프로그래밍 방식 엑세스로 추가 한다.

    권한 설정은 AWSElasticBeanstalk 관리자 권한을 주어 생성 한다.

    태깅영역은 건너뛰어도 되고 추가적으로 작업이 필요하면 작업을 해도 된다.

    이렇게 엑세스키와 비밀 엑세스키를 주는데 잘 보관을 하도록 한다.

     

    eb-deploy 계정을 생성 했으면 터미널에서 aws iam user 값을 셋팅 해준다.

    AWS Access Key ID는 엑세스 키 ID를 입력 해주고

    AWS Secret Access Key는 비밀 엑세스키를 입력 해주면 된다.

     

     

     

    Dockerfile 작성 및 테스트


    간단하게 도커 파일을 작성하도록 하겠다.

     

    경로는 package.json이 있는 경로에 Dockerfile로 생성해주면 된다.

    FROM node:14
    WORKDIR /app
    COPY package*.json /app
    RUN npm install
    RUN npm run build
    COPY . /app
    EXPOSE 4000
    CMD ["npm", "run", "start:dev"]

    도커 스크립트를 작성하였으면 도커를 빌드 시킨다.

    docker build -t node-docker .

    도커가 빌드되는 과정이 잘 보인다.

    빌드가 다 되었으면 빌드 된 이미지를 확인 한다.

    docker images

     

    이미지가 정상적으로 빌드 되었으면 컨테이너를 실행 시킨다.

    docker run -p 5000:4000 node-docker

    host 포트 5000로 들어오는 트래픽을 container의 포트 4000으로 포워딩 시킨다.

     

    정상실행을 확인 하였으면 5000 번 포트로 들어가 스웨거가 잘 보이는지 확인 해보겠다.

     

    정상 동작을 확인 하였다.

     

    그리고 몇가지 도커 명령어를 기록해놓겠다.

    docker ps  // 실행중인 컨테이너 조회 
    docker ps -a  // 중지중인 컨테이너까지 모두 조회 
    docker images  // 이미지 조회 
    docker rm 컨테이너ID  // 컨테이너 삭제, 중지된 것만 삭제가능 
    docker stop 컨테이너ID  // 컨테이너 중지 
    docker rmi 이미지명  // 이미지 삭제 
    docker start 컨테이너ID  // 컨테이너 시작 
    docker restart 컨테이너ID  // 컨테이너 재부팅 
    docker attatch 컨테이너ID  // 실행 중인 컨테이너에 접속​

    Elastic Beanstalk 에  배포


    이제 elastic beanstalk에 배포 하기 위해 awsebcli를 설치 한다.

    brew install awsebcli

    그 다음 eb init을 한다.

    eb init --profile eb-deploy

    아까 콘솔과 awscli에 eb-deploy 계정으로 셋팅하여서 프로필을 eb-deploy로 한다.

    그러면 region을 고르는데 서울이니 10번으로 한다.

     

    그 다음은 배포할 어플리케이션을 선택한다.

    새로운 어플리케이션을 생성해도 된다.

    도커 쓰고 있는거 같다고 메시지를 준다.

     

    이제 elasticbeanstalk의 기본적인 초기화는 했고 EB Enviornment를 셋팅 하겠다.

     

    eb create

     

    이렇게 하면 알아서 eb에 배포가 된다.

     

    지금은 처음 배포하는거여서 eb create 로 하였지만 추후에 배포할 때는 

     

    eb deploy

    를 사용하면 되겠다.

     

     

    댓글

Designed by Tistory.