CloudFormation에서 만드는 ECS와 AutoScaling의 3분 요리

4219 단어 CloudFormationECSAWS

전제


  • git이 설치되어 있습니다
  • docker가 설치되어 있습니다
  • aws-cli가 설치되어 있습니다

  • 요리 시작



    먼저 다음 리포지토리를 복제합니다.
    htps : // 기주 b. 코 m / 유타로 1204 / 에 cs - 어쨌든 s ぃ ん g -

    그런 다음 제공된 ecrRepository.yaml를 사용하여 AWS에 스택을 생성합니다.
    parameter에 지정하는 RepositoryName은 이후에 작성하는 이미지와 일치해야 합니다.
    $ aws cloudformation create-stack --stack-name sampleECRRepository --template-body file://ecrRepository.yaml --no-disable-rollback --parameters ParameterKey=RepositoryName,ParameterValue=php_demo_image
    

    이 스택에는 ECR 리포지토리가 포함되며 여기에 직접 만든 이미지를 푸시합니다.

    스스로 이미지를 만드는 것이 귀찮은 분은,
    git clone https://github.com/aws-samples/ecs-demo-php-simple-app.git
    cd ecs-demo-php-simple-app
    

    에 PHP 데모 앱을 복제하고 안으로 들어가,
    src 안에 다음 내용의 healthcheck.php를 배치하고( src/healthcheck.php 를 헬스 체크의 대상으로 합니다),
    <?php echo "HealthCheck TEST";
    
    $ docker build -t php_demo_image .
    

    에서 이 이미지를 만듭니다.
    처음 ECR 리포지토리를 만들 때 지정한 RepositoryName과 같은 이름으로 빌드합니다.

    그런 다음 이 이미지를 ECR 리포지토리로 푸시합니다.
    $ aws ecr get-login --no-include-email --region ${AWS.Region}
    

    로 로그인 명령을 가져와서 그대로 실행합니다 (아래 예).
    $ docker login -u AWS -p XXXXXX.......
    

    그래서 방금 만든 이미지에 태그를 지정하고,
    $ docker tag php_demo_image:latest ${AWS.AccountId}.dkr.ecr.${AWS.Region}.amazonaws.com/php_demo_image:latest
    

    태그가 지정된 이미지를 ECR로 푸시합니다.
    $ docker push ${AWS.AccountId}.dkr.ecr.${AWS.Region}.amazonaws.com/php_demo_image:latest
    

    AWS 콘솔 등에서 이미지가 제대로 푸시되었는지 확인해 보세요.

    나머지는 microservices.yamlECSTaskDefinitionContainerDefinitions 를 다음과 같이 수정하고
    ECSTaskDefinition:
      Type: AWS::ECS::TaskDefinition
      Properties:
        ContainerDefinitions:
          - Image: '${さっきイメージをプッシュしたECRのARN}:latest'
    

    다음 명령으로 CloudFormation 스택을 만듭니다.
    $ aws cloudformation create-stack --stack-name sampleECSClusterWithAutoScaling --template-body file://microservices.yaml --no-disable-rollback --capabilities CAPABILITY_NAMED_IAM
    

    몇 분 안에 로드 밸런서의 DNSName에서 PHP 데모 페이지로 날아갈 수 있을까 생각합니다!



    쿠킹 종료



    리소스의 설정 값을 다양하게 만져보고 자신에게 있던 구성을 시도해보십시오.
    예를 들어, 태스크나 AutoScalingGroup에 포함된 EC2 인스턴스를 의도적으로 삭제해 보거나 등.

    태스크는 ECS의 Service가 자동 복구해주고, EC2 인스턴스도 ALB가 인식하고 AutoScaling이 다시 만들어 준다고 생각합니다.

    좋은 웹페이지 즐겨찾기