2017-09-04 5 views
2

나는 여러 서비스, 웹 및 작업자가있는 nodejs 프로젝트를 가지고 있습니다. 이 모든 서비스는 동일한 repo에 있으며 스크립트를 호출하는 데 사용되는 차이점 만 있습니다.탄력적 인 beanstalk에서 다중 Nodej 응용 프로그램

각 서비스마다 다른 설정이 필요하지만 1 개 미만의 Repo를 유지하려고합니다. 환경을 사용할 수는 있지만 생산, 준비 등 실제 환경이 엉망이됩니다. 이러한 종류의 아키텍처에는 어떻게 탄 성적 콩을 사용할 수 있습니까? 환경을 구성하는 것이 최상의 솔루션입니까?

답변

1

각각의 장단점을 처리 할 수있는 방법이 많이 있습니다. 내가 과거에 한 일은 일반적으로 공개적으로 읽을 수없는 특정 S3 버켓에 구성을 업로드하는 것이 었습니다. 그런 다음 서명 된 URL (다음 몇 년 동안 또는 그 이상)을 작성하고 Beanstalk 구성에서 환경 변수로 설정합니다. .ebextensions/01-setup.config (또는 어딘가에 이와 유사한 것), 나는이 가지고 내에서 그런 :

{ 
    "container_commands": { 
    "copy_config": { 
     "command": "curl $CONFIG_URL > conf/config.json" 
    } 
    } 
} 

시작시, 컨테이너가 S3 버킷에서 설정의 사본을하다가 것 로컬로 복사 한 다음 응용 프로그램이 시작 것 이 구성으로

유지 관리가 매우 간단합니다.

+0

콩나무에서 건축은 어떠했을까요? 각 서비스마다 여러 환경이 존재합니까? 그렇다면 스테이징, 찌르다 등의 환경을 어떻게 처리합니까? – sidoshi

+0

@sidoshi 예, 각 환경에 대해 별도의 Beanstalk 응용 프로그램을 만들 것입니다. 여러분이 그것을 beanstalk에서 설정할 때, 당신은'CONFIG_URL' 환경 변수를 지정합니다. 해당 URL은 해당 환경에 적합한 구성을 가리키는 서명 된 URL입니다. S3 버킷에는'appname-config-prod.json','appname-config-dev.json' 등과 같은 것이 있습니다. – Brad