Code States/TIL

[0430] Section 2. 프로젝트 - AWS 배포 Day 2 - 마일스톤 5-2(서버 이미지 ECS 배포 자동화)

ki1111m2 2023. 4. 30. 18:00

연습과제: ECS에서 민감 정보 다루기

 

Goal

  • 데이터베이스 연결 등에 필요한 민감정보를 어떻게 컨테이너에 주입시키는지 알아봅니다.

helloworld-was/route/root.js 파일 수정

AWS Secerets Manager 이용하여 보안 암호 생성

환경 변수 등록

기존 태스크 정의에서 새 개정 생성

환경 변수에 secrets manager arn 주소 복사

값 유형은 valuefrom 으로 설정해줘야 함

새로 만든 개정으로 서비스 업데이트

트러블슈팅

Secerets Manager 접근 권한 없음(ResourceInitializationError: unable to pull secrets or registry auth)

태스크 정의에서 시크릿 매니저에 등록해놓은 보안 암호에 접근하기 위해서는 권한 설정을 해줘야 한다

IAM에 들어가 역할을 생성해준다

SeceretsAccessPolicy 권한을 추가해야 한다

태스크 정의에서 새로 만든 역할로 설정해주면 정상적으로 환경변수를 불러오는 것을 확인할 수 있다

트러블슈팅

mongoDB 접속 주소를 찾지 못하는 오류 발생(MongoServerSelecionErroro: getaddrinfo ENOTFOUND)

접속하고자 하는 몽고디비의 주소를 올바르게 설정해야 한다

로컬에서 실행했을 때는 127.0.0.1 혹은 host.docker.internal 등의 주소로 접근했지만

지금 접근하고자 하는 몽고디비는 nlb 주소로 접근할 수 있으므로

MONGO_HOSTNAME 환경변수의 값을 nlb 주소로 변경한 후 해결됐다

태스크가 성공적으로 실행되는 것을 확인할 수 있다

새로운 개정으로 태스크가 동작하고 있다

환경변수 값 또한 제대로 나오는 것을 알 수 있다