CloudFormation에서 만드는 ECS와 AutoScaling의 3분 요리
4219 단어 CloudFormationECSAWS
전제
요리 시작
먼저 다음 리포지토리를 복제합니다.
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.yaml
의 ECSTaskDefinition
의 ContainerDefinitions
를 다음과 같이 수정하고
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이 다시 만들어 준다고 생각합니다.
Reference
이 문제에 관하여(CloudFormation에서 만드는 ECS와 AutoScaling의 3분 요리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/y4u0t2a1r0/items/de024f485c204115724c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ aws cloudformation create-stack --stack-name sampleECRRepository --template-body file://ecrRepository.yaml --no-disable-rollback --parameters ParameterKey=RepositoryName,ParameterValue=php_demo_image
git clone https://github.com/aws-samples/ecs-demo-php-simple-app.git
cd ecs-demo-php-simple-app
<?php echo "HealthCheck TEST";
$ docker build -t php_demo_image .
$ 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
$ docker push ${AWS.AccountId}.dkr.ecr.${AWS.Region}.amazonaws.com/php_demo_image:latest
ECSTaskDefinition:
Type: AWS::ECS::TaskDefinition
Properties:
ContainerDefinitions:
- Image: '${さっきイメージをプッシュしたECRのARN}:latest'
$ aws cloudformation create-stack --stack-name sampleECSClusterWithAutoScaling --template-body file://microservices.yaml --no-disable-rollback --capabilities CAPABILITY_NAMED_IAM
리소스의 설정 값을 다양하게 만져보고 자신에게 있던 구성을 시도해보십시오.
예를 들어, 태스크나 AutoScalingGroup에 포함된 EC2 인스턴스를 의도적으로 삭제해 보거나 등.
태스크는 ECS의 Service가 자동 복구해주고, EC2 인스턴스도 ALB가 인식하고 AutoScaling이 다시 만들어 준다고 생각합니다.
Reference
이 문제에 관하여(CloudFormation에서 만드는 ECS와 AutoScaling의 3분 요리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/y4u0t2a1r0/items/de024f485c204115724c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)