Post

[Spring] AWS EC2, Github Actions, Docker, Nginx를 활용한 무중단 배포(1)

무중단 배포 구현하기 - (1)

  1. AWS EC2 인스턴스 생성 및 접속
  2. EC2 Ubuntu에 도커 설치(docker, docker-compose)
  3. 도커 허브 회원가입 후 토큰 발급
  4. 도커 데스크탑 설치

[1] AWS EC2 인스턴스 생성 및 접속- 완료한 상황

  • AWS에서 인스턴스 생성 완료한 상황 (ubuntu, 프리티어)
  • 키페어는 아래와 같이 .ssh 폴더에 관리
    image

  • Ubuntu 22.04.3 LTS > 마우스 우측 클릭 > 관리자 권한으로 실행
  • ssh -i 키페어 위치 끌어다 놓기 ubuntu@탄력적public-ip
  • ssh -i ~/.ssh/eroom_key.pem ubuntu@44.219.159.74
  • 명령어 사용해서 EC2에 접속함

[2] EC2 Ubuntu에 도커 설치

1. 관리자 권한

  • 매번 sudo 명령어 입력을 생략하기 위해서 권한 부여한다
    sudo su
    image

2. ubuntu 시스템 패키지 설치

  • 업데이트
    apt-get update
    image

  • 업그레이드
    apt-get upgrade
    image

3. 필요한 패키지 설치

apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
image

4. Docker의 공식 GPG키를 추가

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
image

5. Docker의 공식 apt 저장소를 추가

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

6. 시스템 패키지 업데이트

apt-get update
image

7. Docker 설치

apt-get install docker-ce docker-ce-cli containerd.io

8. Docker-Compose 설치

curl \ -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" \ -o /usr/local/bin/docker-compose

image

9. Docker-Compose 실행 권한 주기

chmod +x /usr/local/bin/docker-compose
image

  • 기본적인 도커 설치가 완료됐다

10. docker 버전 확인

docker -v image

11. docker-compose 버전 확인

docker-compose -v
image

[3] 도커 허브 회원가입 후 토큰 발급

  • 회원가입- 완료된 상황
  • 도커 허브의 패스워드로 사용될 Access Token 을 발급한다
  • My account > Security image

  • New Access Token > 토큰 이름 설정
    image

  • 토큰은 유출되지 않게 지정된 폴더에 저장해둬야한다
    image

  • 본인은 deploy 폴더에 발급받은 토큰을 저장함
    image

[4] 도커 데스크탑 설치

  • 도커 허브 하단에 Download Docker >
    image

  • Docker Desktop for Windows 설치(환경에 맞게 설치)
    image

  • 도커 데스크탑 실행 후 로그인
    image

  • 터미널로 돌아와서 도커 로그인
    docker login
    image

  • 패스워드는 터미널창에서 보이지 않음 > 아까 발급받은 토큰 넣음
    image

This post is licensed under CC BY 4.0 by the author.