aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin 725601756882.dkr.ecr.ap-northeast-2.amazonaws.com
docker pull mongo
docker tag mongo:latest 725601756882.dkr.ecr.ap-northeast-2.amazonaws.com/velog-mongo:latest
docker push 725601756882.dkr.ecr.ap-northeast-2.amazonaws.com/velog-mongo:latest
An error occurred (UnrecognizedClientException) when calling the GetAuthorizationToken operation: The security token included in the request is invalid. Error: Cannot perform an interactive login from a non TTY device
해당 오류가 발생할시 해결법 링크
주의! 하나의 가용영역 즉 az 하나에 한개의 서브넷만 사용하도록 한다
이미지 URL은 위에서 생성한 ECR의 URL을 입력해주고
포트 매핑을 추가하여 mongo의 포트인 27017을 입력해준다.
앱 프로토콜은 NONE으로 설정해준다.
환경 변수를 추가하여 mongoDB의 사용자와 비밀번호를 적어준다.
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
CPU와 메모리는 기본값으로 사용하고 태스크역할과 실행역할만 설정하고 넘어간다.
처음 생성하는 경우 역할이 뜨지 않을 수 있다. 그경우에는 비우고 넘어간다.
가용영역 전부 선택
로드밸런서에서는 하나의 가용영역(az)안에 하나의 서브넷만 사용가능하므로 주의한다.
보안그룹에는 80포트와 27017포트를 허용하는 보안그룹을 사용한다.
backend 코드에서 MONGO_URL로 환경변수를 받아와서 사용하기에 MONGODB 연결 URL을 담아준다.
이미지 URL은 위에서 생성한 ECR의 URL을 입력해주고
포트 매핑을 추가하여 사용중인 포트를 입력해준다.
키는 실제로 애플리케이션에서 사용할 환경 변수 이름입니다.
값 유형은 ValueFrom으로 설정해 둡니다.
값은 Secrets Manager에 저장되어 있는 보안 암호의 키/값의 ARN으로 지정합니다. 다음과 같은 형식입니다.
arn:aws:secretsmanager:ap-northeast-2:725601756882:secret:VELOG_MONGO_URL-Rpur08:MONGO_URL::
VELOG_MONGO_URL 은 보안 암호 이름입니다.
Rpur08 일종의 해시값으로 ARN에서 확인할 수 있습니다.
MONGO_URL은 보안 암호의 키입니다. 우리는 MONGO_USERNAME 등으로 지정하면 됩니다.
다음 옵션은 기본값으로 설정하고 생성한다.
SecretsManagerReadWrite을 추가해준다.
보안그룹은 포트 3000이 열려있는 보안그룹을 선택해준다.
로드밸런서는 ALB로 서비스와 함께 새로 생성해준다.