AWS EC2에서 Docker를 활용해 배포해보기
$ 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 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 - 이 값이 이미지 이름이 된다.