반응형
Docker란?
개발서버(로컬, 맥북)에서 개발한 다음에 배포를 하는데 갑자기 잘 안될 수가 있다. 환경이나 버전이 동일하지 않아서..
도커는 컨테이너 형태로 환경을 구분해준다.
도커는 이미지를 통해 같은 환경의 컨테이너를 무한히 생성할 수 있다 (AutoScaling)
Docker Compose란?
각각 컨테이너별로 포트가 다르다
컨테이너별로 Dependency를 지정해줄 수 있다
ECR이란?
Elastic Container Registry의 줄임말이 ECR이다
도커 이미지가 저장소에 저장이 되어 있으면 Registry에서 가져와서 도커를 만들수 있어서 저장소를 서버 외부에 두는 것이다
AWS가 있기 전에도 도커 자체에서 만들어둔 도커 레지스트리가 있었지만, 유사한 기능을 AWS ECR이 제공한다
< Option 1 > 고전적인 방법
내 컴퓨터에서 개발을 한 다음, 도커를 만든 다음에 도커 이미지를 Registry에 등록한다.
그리고 ECS (Elastic Container Service) 라는 서비스를 통해서 도커를 여러개의 EC2에 쉽게 배포할 수 있다
이게 약간 고전적인 방법이다. 이미지도 관리해야하고, EC2 서버도 관리해야하기 때문에 관리 포인트가 늘어난다.
예전에는 ECR과 ECS이 다른 개념이었는데, 최근에는 ECS 내부에 ECR 기능이 포함된 개념으로 사용하고 있다.
따라서 AWS 콘솔에서는 ECS라고 검색해야 한다
< Option 2 >
지금까지는 배포를 한다고 했을때 EC2를 활용했는데, 이제는 EC2를 사용하지 않고 Fargate를 활용한다.
개발한 것을 도커에 올려서 저장하고, 저장한 것을 Fargate에 올려두기만 하면 된다
실습1
1. django가 있는 폴더 만들고 안에 django 파일과 docker 설치
2. nginx가 있는 폴더 만들고 안에 nginx 파일과 docker 설치
3. docker-compose.yml 파일을 만들고 명령어를 적기
- 중요한 부분 : nginx depends on django
실습2 (docker 서비스는 비싸니까 바로 삭제 필요)
1. AWS 콘솔에서 ECS 들어감
2. Private 리포지토리 생성
3. 콘솔에서 repository 이름 붙여서 명령어를 써줌
docker tag a10e595f7ae2 110665471724.dkr.ecr.us-east-2.amazonaws.com/fargate_django
4. AWS CLI 설치 sudo apt install awscli
5. IAM > 사용자 > 사용자 추가 > 프로그래밍 방식 액세스 > 기존 정책 직접 연결 AdministratorAccess
6. aws configure 명령어 치고 IAM에서 받은 액세스 키 아이디로 나를 인증하기
7 ECR에 접근하는 명령어
aws ecr get-login --no-include-email region us-east-2
8. 이미지 파일을 푸쉬 docker push 110665471724.dkr.ecr.us-east-2.amazonaws.com/fargate_django
9. ECS 리포지토리 안에 들어가면 확인할 수 있다
< Fargate로 배포하기 >
1. ECS에 클러스터를 네트워크 전용으로 생성해야 한다. (클러스터 : 구분된 영역)
2. 작업 정의 Fargate로 생성 (작업 : 클러스터 내부에 있는 세부적인 행위. 작업 안에 컨테이너가 섞여있다)
3. 작업 실행
EC2가 필요가 없고 매우 간편해진다
반응형
'DevOps > AWS' 카테고리의 다른 글
[AWS] 모놀리식/마이크로서비스 아키텍처 장단점 (0) | 2023.04.02 |
---|---|
[AWS] CodeCommit & CodeDeploy (0) | 2023.03.31 |
[AWS] 오토스케일링 설정 (Autoscaling Group) (0) | 2023.03.30 |
[AWS] CloudFront의 역할과 사용해보기 (Route53와 ALB 사이에 추가) (0) | 2023.03.30 |
[AWS] Route53에서 도메인등록하고 Certificate Manager에서 인증서 발급받고 https 설정하기 (0) | 2023.03.30 |