minguri brain is busy

AWS ECS에 Next.js 애플리케이션 스테이징으로 배포 시 환경 변수 구성하기 본문

FE/개발환경

AWS ECS에 Next.js 애플리케이션 스테이징으로 배포 시 환경 변수 구성하기

minguri.k 2023. 11. 28. 23:36
반응형

문제상황

  • 현재 프로젝트의 배포 환경은 3가지(dev, staging, production)
    • process.env.NODE_ENV에 따라 해당 환경에 맞는 config값을 사용하고 있음
    • 작업 시 빌드 스크립트에 따라 dev, staging, production으로 띄우면 각각 환경에 맞는 confing 값을 잘 불러옴
  • 그러나 실제 배포된 staging에서 staging.config 값이 아닌 production.config 값을 셋팅함
    • staging 이라는 환경도 배포가 된 상황에서 아무런 셋팅이 없으면 production 상태이기 때문
  • ECS에 배포된 staging 애플리케이션의 환경 변수 구성을 어떻게 할 수 있을까?

해결

  • staging을 띄우는 빌드 스크립트에서 NODE_ENV=staging 값을 주입하고 이 값으로 publicRuntimeConfig를 구분하고 있으니 배포 환경에서도 staging이라는 환경 변수를 주입해주면 되지 않을까?
  • 현재 프로젝트에서의 task-definition 파일은  task-definition.jsontask-definition-stg.json로 나누어져있다.
  • staging 용 task-definition 파일에서만 아래와 같이 환경 변수 설정한다.
  • 배포된 스테이징 환경에서 staging.config에 셋팅된 값을 잘 가져오는 것 확인!🙆‍♀️
{
  "containerDefinitions": [
    {
      "name": "container-name",
      "image": "docker-image",
      "environment": [
         { "name": "NODE_ENV", "value": "staging" },
      ],
      // 다른 컨테이너 설정...
    }
  ],
  // 다른 task definition 설정...
}

 

 

반응형
Comments