개발이 좋아서/Docker가 좋아서

AWS EC2에서 Docker를 활용해 배포해보기

zoaseo 2025. 1. 23. 17:15
$ sudo apt-get update && \
	sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common && \
	curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \
	sudo apt-key fingerprint 0EBFCD88 && \
	sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" && \
	sudo apt-get update && \
	sudo apt-get install -y docker-ce && \
	sudo usermod -aG docker ubuntu && \
	newgrp docker && \
	sudo curl -L "https://github.com/docker/compose/releases/download/2.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && \
	sudo chmod +x /usr/local/bin/docker-compose && \
	sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

- Ubuntu에서 Docker, Docker Compose 설치하기

 

$ docker -v # Docker 버전 확인
$ docker compose version # Docker Compose 버전 확인

- 잘 설치 되었는지 확인

 

AWS ECR(Elastic Container Registry) - Dockerhub와 동일한 역할을 한다.

- 최근에는 AWS 클라우드 환경에서 인프라를 구축하는 일이 많아졌다. AWS ECR을 사용하면 다른 AWS Resource와의 연동이 편하고, AWS 내에서 한번에 관리할 수 있기에 편하다는 장점이 있다. (Dockerhub를 사용해도 크게 문제는 없다.)

 

AWS CLI 설치

https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html

 

최신 버전의 AWS CLI 설치 또는 업데이트 - AWS Command Line Interface

이전 버전에서 업데이트하는 경우 unzip 명령을 실행하면 기존 파일을 덮어쓸지 묻는 메시지가 표시됩니다. 스크립트 자동화와 같은 경우에 이러한 프롬프트를 건너뛰려면 unzip에 대한 -u 업데이

docs.aws.amazon.com

 

- 맥(Mac OS)

$ brew install awscli
$ aws --version # 잘 출력된다면 정상 설치된 상태

 

 

- 윈도우(Windows)

$ aws --version # 잘 출력된다면 정상 설치된 상태

 

 

- 우분투(Ubuntu)

$ sudo apt install unzip
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ sudo ./aws/install
$ aws --version # 잘 출력된다면 정상 설치된 상태

 

 

IAM 생성하기 (AWS 참고)

1. IAM에서 사용자 생성하기

2. Access Key 발급받기

3. AWS CLI로 액세스 키 등록하기

$ aws configure
AWS Access Key ID [None]: <위에서 발급한 Key id>
AWS Secret Access Key [None]: <위에서 발급한 Secret Access Key>
Default region name [None]: ap-northeast-2
Default output format [None]:

 

 

AWS ECR(Elastic Container Registry) 셋팅하기

 

 

이미지 빌드해서 AWS ECR에 Push, Pull 해보기

 

1. Dockerfile 작성하기

FROM openjdk:17-jdk

ENTRYPOINT ["/bin/bash", "-c", "sleep 500"]

 

2. 이미지 빌드 및 push 하기

AWS ECR에 들어가서 푸시 명령 보기를 누르면 된다.

$ aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin 002177417362.dkr.ecr.ap-northeast-2.amazonaws.com
$ docker build -t instagram-server .
$ docker tag instagram-server:latest 002177417362.dkr.ecr.ap-northeast-2.amazonaws.com/instagram-server:latest
$ docker push 002177417362.dkr.ecr.ap-northeast-2.amazonaws.com/instagram-server:latest

 

3. 이미지 Pull 받아보기

$ docker image rm -f [Container ID] # 기존 갖고있던 이미지 지우기
$ docker pull 002177417362.dkr.ecr.ap-northeast-2.amazonaws.com/instagram-server
$ docker image ls

- 002177417362.dkr.ecr.ap-northeast-2.amazonaws.com/instagram-server - 이 값이 이미지 이름이 된다.

댓글수0