Docker-Compose로 EC2에 Spring 배포해보기

YoungHo-Cha·2022년 7월 20일
4

Catch Bug Project

목록 보기
3/12
post-thumbnail

오늘은 EC2에 MySQL을 사용하는 Spring 프로젝트를 배포해볼 예정이다.

🚗 목차

  • Spring 프로젝트 git에 올리기
  • EC2에 Docker 설치
  • EC2에 Docker-Compose 설치
  • EC2에 Git Clone 하기
  • EC2에 Docker 실행하기

🌈 Spring 프로젝트 git에 올리기

먼저 프로젝트는 아주 가볍게 만들었다.

git에 올려보자!

🐳 Git Repository 생성

  1. 프로젝트를 미리 만든다.(원래 git부터 생성하는게 절차다. 필자는 공부하면서 이미 프로젝트를 생성했기때문에 이렇게 하는것)

이 프로젝트는 "/"에 접속하면 index.html이 리턴되고 내용은 3 3 3이 보인다.

  1. 만든 프로젝트를 Git과 연동한다.

정상적으로 올라갔다.

🐳 EC2 생성 및 접속

EC2 생성 및 접속에 관련된 내용은 다음 글에 있다!

✅ EC2 관련 글


🌈 EC2에 도커 설치

EC2에서 도커를 이용하여 프로젝트를 실행할 것이라면 도커가 필요하다.

  • apt 업데이트
sudo apt update
  • apt-transport-https 설치

패키지 관리자가 https를 통해서 데이터 및 패키지에 접근할 수 있도록 하는 모듈

sudo apt install apt-transport-https
  • ca-certificates 설치
    SSL 연결에 관한 모듈
sudo apt install ca-certificates
  • curl 설치
    웹 사이트에서 데이터를 다운받을 때 사용하기 위한 모듈
sudo apt install curl
  • software-properties-common 설치
    PPA 관리 모듈
sudo apt install software-properties-common
  • apt에 도커 추가

도커 파일 다운

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

도커 apt에 추가

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"

apt update

sudo apt update
  • 도커 설치
apt-cache policy docker-ce
  • 도커 apt 설치
sudo apt install docker-ce
  • 도커 설치 확인 (버전 확인)
docker -v

성공!


🌈 EC2에 Docker-Compose 설치

  • Docker-Compose 설치
sudo curl \
    -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" \
    -o /usr/local/bin/docker-compose
  • Docker-Compose 실행권한 주기
sudo chmod +x /usr/local/bin/docker-compose
  • Docker-Compose 설치 및 버전 확인
docker-compose --version

이제 도커와 도커 컴포즈를 이용할 수 있다.


🌈 EC2에 Git Clone 하기

프로젝트의 url을 가지고 온다.

필요하시면 사용하세요!
✅ 프로젝트 git 레포지토리

  • 프로젝트 디렉터리 생성 및 확인

다른 파일이랑 섞이는게 싫기 때문에 폴더를 하나 생성하고, 거기에 클론을 하자!

mkdir projects
ls

  • 이동
cd projects
  • 깃 클론받기
git clone <레포지토리 주소>
  • 다운로드 확인
ls


🌈 EC2에 Docker 실행하기

프로젝트를 만들면서 포함해놓은 Docker-Compose를 실행해보자.

  • 실행방법

프로젝트에 만들어둔 "Docker-compose.yml"을 실행한다.

  • Docker-compose 경로

프로젝트최상위폴더/build/libs/

  • Docker-compose 실행

백그라운드 모드로 돌리자.

docker-compose up -d

🌈 확인

  • AWS에서 해당 EC2 인스턴스의 퍼블릭 IP를 가지고 온다. (인바운드 규칙 열어놓아야함)

  • 주소창에 포트 8080으로 접속

  • 성공!


❗️주의

  • 해당 프로젝트는 미리 java를 미리 build하여 jar를 올리는 형태다. CI/CD를 적용할 때에는 build를 하고 docker를 수행하는 방향으로 수정해야할 듯 하다.

  • 그리고 compose 또한 엄청나게 많아질 수 있기때문에 쉘 스크립트를 짜서 순서대로 수행하는 방향으로 한다.

  • 또 그리고 환경변수를 주로 이용하여 값을 처리한다.

profile
관심많은 영호입니다. 궁금한 거 있으시면 다음 익명 카톡으로 말씀해주시면 가능한 도와드리겠습니다! https://open.kakao.com/o/sE6T84kf

0개의 댓글