리셋 되지 말자

[CSAPI] rabbitmq 인스턴스 생성 본문

프로젝트

[CSAPI] rabbitmq 인스턴스 생성

kyeongjun-dev 2021. 12. 1. 13:42

AMI 준비

amazon linux를 만들고 docker, docker-compose 만 설치된 상태의 AMI를 생성

sudo amazon-linux-extras install docker
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker ec2-user
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

 

IAM 계정 생성

아래 3가지의 권한만 부여한 IAM 사용자를 추가하여 access key, secret key를 확인한다. 3가지 권한으로는 ecr login, image pull 작업만 가능하다.

 

ECR에 이미지 준비

rqbbitmq:3 이미지를 push 해놓은 상태에서 진행

 

인스턴스 생성 시, rabbitmq 컨테이너 실행

- 사용자 데이터 입력 단계

 

- 입력하는 데이터 예시

#!/bin/bash
export AWS_ACCESS_KEY_ID=<IAM 엑세스키>
export AWS_SECRET_ACCESS_KEY=<IAM 시크릿키>
export AWS_DEFAULT_REGION=ap-northeast-2
echo "export AWS_ACCESS_KEY_ID=<IAM 엑세스키>" >> /etc/bashrc
echo "export AWS_SECRET_ACCESS_KEY=<IAM 시크릿키>" >> /etc/bashrc
echo "export AWS_DEFAULT_REGION=ap-northeast-2" >> /etc/bashrc
echo "aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin <계정 ID>.dkr.ecr.ap-northeast-2.amazonaws.com" >> /etc/bashrc
aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin <계정 ID>.dkr.ecr.ap-northeast-2.amazonaws.com
docker run -d -p 5672:5672 -e RABBITMQ_USER=guest -e RABBITMQ_PASSWORD=guest--name rabbit <계정 ID>.dkr.ecr.ap-northeast-2.amazonaws.com/rabbitmq:3

이렇게 하는 이유는 입력한 사용자 데이터가 root 계정으로 실행되기 때문이다. 그래서 서비스 버전 업데이트 등의 이유로 인해 ec2-user로 접속했을 때, ec2-user 계정에서 ECR Private registry에서 이미지를 pull 받을 수 있도록 하기 위함이다.

더 우아한 방법이 있겠지만 지금은 이렇게 하는게...

 

보안그룹 지정

rabbitmq 서비스를 위해 5672 port, 나머지 작업을 위해 80 443 22 port를 보안그룹에 지정하여 열어준다.

 

서비스 동작 확인

 

현재 완성된 구성도

Comments