본문 바로가기
Cloud/Docker | K8s + CI, CD

[#2] AWS EC2, Docker Compose를 이용한 프로젝트 배포

by HelloJudy 2022. 4. 14.

 

Docker Compose를 이용하여 EC2환경에서 배포해볼 것이다.

해당 실습은 프로젝트 생성, Dockerfile, docker-compose.yml, docker hub push, 리눅스 환경 접속

모두 완료되었음을 가정하에 진행한다.

 


1. EC2 인스턴스 생성 및 리눅스 머신 접속

 

https://github.com/ParkJungYoon/TIL-Data_Study/blob/main/Cloud/AWS_3.md

 

GitHub - ParkJungYoon/TIL-Data_Study: ✍ 데이터분석, 데이터베이스, 클라우드 컴퓨팅 등을 공부하고 기록

✍ 데이터분석, 데이터베이스, 클라우드 컴퓨팅 등을 공부하고 기록하는 저장소 입니다. Contribute to ParkJungYoon/TIL-Data_Study development by creating an account on GitHub.

github.com

 

 

EC2 인스턴스를 생성하고 접속환경을 구성하는 것에 대한 내용은 해당 깃허브에 정리해두었다.

보안그룹 설정에서 백엔드 5001번 포트와 프론트 80번 포트를 열어주었다.

 

나는 윈도우 환경이기 때문에 PuTTY와 PuTTYgen을 통해 SSH 접속했다. (이때, 인스턴드의 IP 주소와 key pair가 필요하다.) 맥 환경은 Terminal에서 접속하면 된다.

 

이제 본격 클라우드 환경에서 Docker 실습을 진행해보자! 

 

 


2.   AWS에 Container 띄우기

 

리눅스 머신에 접속한 후 Docker를 설치하고 컨테이너를 띄워보자.

 

 

1) 관리자 권한

우선 Docker 사용에서 관리자 권한으로 실행할 일이 많아 관리자 권한으로 전환한다.

 

sudo su -

 

2) oh my bash 설치 (필수X)

 

* 리눅스를 편하게 쓰는 방법으로 'Oh my Bash' 를 설치할 수 있다.

 

$ bash -c "$(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)"

 

다운 완료

 

3) Docker, Docker-Compose 설치

 

도커 설치

* 공식 문서

 

문서를 따라 명령어를 실행하자.

docker 명령어를 실행해보면 설치가 정상적으로 되었음을 확인할 수 있다.

 

 

 

도커 컴포즈 설치
sudo curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose // 컴포즈 설치
sudo chmod +x /usr/local/bin/docker-compose // 권한설정
docker-compose --version // 버전확인

 

* 공식 문서

(문서에서 Linux 명령어로 확인해서 입력해야한다.)

 

버전을 확인했을 때 다음과 같이 나오면 설치가 완료된 것이다.

 

 

4) 프로젝트 실행

 

git clone을 통해 프로젝트를 복사해온다.

저장소 유저아이디와 비밀번호를 입력하면 clone 완료!

 

ls 명령어로 폴더를 확인할 수 있다.

cd 명령어로 해당 폴더로 들어가자.

 

 

그 다음 프로젝트를 도커 컴포즈 컨테이너로 만든다. 

 

sudo docker-compose up

 

 

 

5) 배포 완료

 

AWS 인스턴스에서 퍼블릭 IPv4 DNS를 주소창에 입력하면 local이 아닌 어떤 환경에서도 사이트 접속이 되는 것을 확인할 수 있다. 😀🎉😊🎉

 

Docker compose를 이용한 멀티 컨테이너 관리를 실습해보았다.

 

기존 프로젝트에서는 VM을 사용했었는데 Docker가 모든 실행환경을 컨테이너로 배포하고 VM 보다 효율적으로 동작한다는 것을 알게 되었다.

 

이제 컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 K8s를 사용해보겠다! 다음 포스팅에서 만나보자!

 

 

 

📌 지난 포스팅

반응형

댓글