5

Django 웹 사이트에서 사용할 사용자 정의 Docker 컨테이너를 연결하는 동안 일반적인 Elastic Beanstalk 방식으로 Django 서버를 실행하고 싶습니다.연결하기 전에 EC2 인스턴스에서 Elastic Beanstalk 명령을 실행하는 방법 리소스

packages: 
    yum: 
    ecs-init: [] 

files: 
    /etc/ecs/ecs.config: 
    mode: "000644" 
    owner/group: root 
    content: ECS_CLUSTER=${Ref: MyCluster} 

commands: 
    01_start_docker: sudo service docker start 
    02_start_ecs: sudo start ecs 

Resources: 
    MyCluster: 
    Type: AWS::ECS::Cluster 
    MyService: 
    Type: AWS::ECS::Service 
    Properties: 
     Cluster: ${Ref: MyCluster} 
     DesiredCount: 1 
     TaskDefinition: ${Ref: MyTask} 
    MyTask: 
    Type: AWS::ECS::TaskDefinition 
    Properties: 
     ContainerDefinitions: 
     - ... 

문제는 ECS 서비스가 탄성 콩나무 제공하는 EC2 인스턴스를 클러스터에 등록되기 전에 시작하려고하는 것입니다 : 지금까지, 나는 기본적으로 다음과 같은 .ebextensions 구성 파일이 있습니다. 결과적으로 Elastic Beanstalk에 배치가 중단됩니다. 수동으로 SSH로 EC2 인스턴스에 넣고 ecs-init을 수동으로 설치하고 ecs.config을 만들고 명령을 실행하면 서비스가 계속 생성되고 EB 환경이 성공적으로 만들어집니다.

EB의 자동 확장 그룹으로 만든 EC2 인스턴스가 클러스터에 등록 될 때까지 대기하도록 서비스를 알리는 방법이 있습니까?

더 많은 상황 :

  • 우리는 장고 서버가 로컬 호스트와 부두 노동자의 컨테이너에 액세스 할 수 있도록하려면,하지만 난이 특히 도커 컨테이너를 호스트하기 위해 자원의 EC2 인스턴스를 포함에 반대되지 않을 것이다 자동 스케일 된 EC2 인스턴스에서 참조하기 쉬운 경우
  • 우리는 멀티 도커 컨테이너 접근 방식을 시도했지만이 방법은 EB 사용에 더 가깝게 보입니다 (웹 서버 파일을 도커를 만드는 대신 직접 환경에 두는 것 같습니다 실행할 환경에 대한 이미지)

답변

0

더 자세히 생각한 후에 직접 해결했습니다.

Elastic Beanstalk이 (자동 크기 조정을 통해) 회전하는 모든 EC2 인스턴스를 ECS 클러스터에 등록하는 것은 의미가 없습니다. ECS 작업의 인스턴스는 하나만 있어야합니다. 따라서 ECS 클러스터에 연결하는 별도의 EC2 인스턴스를 만드는 것이 실제로 필요합니다.이 서비스는 이제 EC2 인스턴스에 의존 할 수 있습니다.

1

다음과 같이 시도해보십시오. EB는 단지 CloudFormation 스택이므로 awseb-로 시작하는 스택을보고 자신의 스택을 찾습니다. 그런 다음 EB 응용 프로그램이 배포하면서 CF 자원을 살펴보면 .ebextensions에 지정하지 않은 미리 정의 된 EB 자원에서 사용 된 이름을 볼 수 있습니다. AWSEBInstanceLaunchWaitCondition이 초기 인스턴스 실행과 관련이있는 것처럼 보입니다.

Resources: 
    MyService: 
    Type: AWS::ECS::Service 
    Properties: 
     Cluster: ${Ref: MyCluster} 
     DesiredCount: 1 
     TaskDefinition: ${Ref: MyTask} 
    DependsOn: AWSEBInstanceLaunchWaitCondition 
+0

불행히도 기다려야 할 조건은 EC2 인스턴스를 시작하기위한 것입니다. 'commands' 후크가 실행될 때까지 대기하는 대기 조건이 필요합니다. –

+0

아마도 자신의 CreationPolicy 리소스를 의존성 (또는 WaitCondition)으로 추가하고 cfn-signal을 명령 03으로 호출해야 할 것입니다. http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide /aws-attribute-creationpolicy.html – NHol