[Docker] EC2 인스턴스에 도커(Docker) 설치 및 설정

이번 포스팅에선 스프링 프로젝트를 도커로 컨테이너화한 후, 이를 AWS EC2 인스턴스에 배포하여 클라우드 환경에서 애플리케이션을 운영하는 방법을 알아보겠습니다.

 

1. AWS EC2 인스턴스 준비

이 과정은 기존에 있던 블로그를 참고하시면 감사하겠습니다 :)

2024.07.01 - [백엔드/AWS] - [AWS] EC2를 이용한 서버 구축 1 (Ubuntu 24.04 LTS 인스턴스 생성 및 연결)

 

[AWS] EC2를 이용한 서버 구축 1 (Ubuntu 24.04 LTS 인스턴스 생성 및 연결)

자 먼저 EC2가 무엇인지에 대해서 살펴 봅시다 EC2란 AWS에서 제공하는 클라우드 컴퓨팅 서비스입니다.쉽게 말해, 아마존으로 부터 컴퓨터 한대를 임대한다고 생각 하시면 됩니다. AWS가 제공하는

mike705114.tistory.com

 

2. 도커 설치

EC2 인스턴스에 도커를 설치하고 설정합니다.

a. 시스템 업데이트

  • 시스템의 패키지 목록을 업데이트하고, 설치된 패키지를 최신 상태로 유지합니다.
sudo apt update
sudo apt upgrade -y

b. 도커 설치

  • 도커를 설치합니다. -y 옵션은 모든 프롬프트에 자동으로 'yes'를 응답하게 합니다.
sudo apt install -y docker.io

c. 도커 서비스 시작 및 활성화

  • 도커 서비스를 시작하고, 시스템 부팅 시 자동으로 도커가 실행되도록 설정합니다.
sudo systemctl start docker
sudo systemctl enable docker

d. 도커 설치 확인

  • 도커가 정상적으로 설치되었는지 확인합니다.
docker --version

 

3. 도커 사용자 권한 설정

도커 명령어를 sudo 없이 실행할 수 있도록 현재 사용자를 도커 그룹에 추가합니다.

a. 현재 사용자 도커 그룹에 추가

  • 현재 사용자를 도커 그룹에 추가합니다.
sudo usermod -aG docker $USER

b. 변경 사항 적용을 위해 로그아웃 및 재로그인

  • SSH 세션을 종료하고 다시 접속합니다.
exit
  • 다시 SSH로 접속합니다.
ssh -i your-key-pair.pem ec2-user@your-ec2-public-dns

c. 도커 명령어 실행 확인

  • 도커가 정상적으로 작동하는지 확인합니다.
docker run hello-world

4. 도커 허브에서 이미지 가져오기

도커 허브에 푸시한 이미지를 EC2 인스턴스로 가져옵니다.

a. 도커 허브 로그인

  • 도커 허브 사용자명과 비밀번호를 입력하여 로그인합니다.
docker login -u your-dockerhub-username
  • Password 입력

b. 도커 이미지 풀

  • 도커 허브에서 도커 이미지를 가져옵니다.
docker pull your-dockerhub-username/your-app-name:latest

5. 도커 컨테이너 실행

a. 컨테이너 실행

docker run -d --name your-app-name -p 8080:8080 your-dockerhub-username/your-app-name:latest

 

  • -d: 백그라운드에서 실행
  • --name your-app-name: 컨테이너 이름 설정
  • -p 8080:8080: 호스트의 8080 포트를 컨테이너의 8080 포트와 매핑

※ 저는 8080포트에 이미 실행하고있는 프로젝트가 있어서 8081포트를 사용하겠습니다!!!

※ (파란 부분만 변경하시면 됩니다)

b. 컨테이너 상태 확인

docker ps

예상 출력: 실행 중인 컨테이너 목록에 babylion 컨테이너가 표시됩니다.

c. 컨테이너 로그 확인

  • 애플리케이션 로그를 확인하여 정상적으로 실행되고 있는지 검증합니다.
docker logs babylion

6. 보안 그룹 설정

a. AWS 콘솔로 돌아가기

  • EC2 대시보드에서 해당 인스턴스를 선택합니다.

b. 보안 그룹 편집

 

  • 인스턴스 세부 정보에서 보안 그룹을 클릭합니다.
  • 인바운드 규칙 편집을 선택합니다.
  • 저는 아까 말한대로 8081포트를 사용할 것이기 때문에 8081도 추가해주었습니다.

 

7. 애플리케이션 확인

a. 브라우저에서 접근

웹 브라우저를 열고 다음 URL로 이동합니다:

 

  • 애플리케이션의 정상 동작을 확인합니다.
  • 정상적으로 접근된다면 배포가 성공한 것입니다.

 

http://<EC2_PUBLIC_IP>:8080

결론

이번 파트에서는 AWS EC2 인스턴스에 도커를 설치하고, 도커 허브에서 이미지를 가져와 컨테이너를 실행하는 과정을 상세히 다루었습니다. 이를 통해 스프링 애플리케이션을 클라우드 환경에서 안정적으로 배포할 수 있게 되었습니다.

마무리 이번 포스팅을 통해 스프링 프로젝트를 도커로 컨테이너화하고, 이를 AWS EC2 인스턴스에 배포하는 과정을 익혔습니다. 클라우드 환경에서 애플리케이션을 운영함으로써 유연성과 확장성을 확보할 수 있으며, 더 나은 사용자 경험을 제공할 수 있습니다. 다음 포스팅에서는 CI/CD 파이프라인 구축을 통해 배포 과정을 자동화하는 방법을 다루겠습니다. 감사합니다! 😊