ECS 튜토리얼을 보면서 시도했습니다.

6114 단어 ECSAWS
자습서: ECS CLI를 사용하여 EC2 작업의 클러스터 만들기 을 참고로 학습을 해 보았다. 나름대로 해석을 추가했기 때문에, 잘못되어 있는 경우도 있으므로 그 때는, 지적해 주세요.

ECS 개요



이 그림을 빌려 ...

ECS Getting Start



Cluster : ECS를 묶는 것, 일반적인 서버 군의 보통 Cluster를 상상하면 좋다

서비스 : ECS의 태스크 정의에서 지정된 수의 인스턴스를 시작하고 동시에 실행하고 유지합니다. 예를 들어 Task가 떨어지면 Service에서 지정한 수보다 작아지기 때문에 자동으로 하나의 태스크가 자동 시작

Task definition: Docker 이미지나 CPU 메모리, link 등을 정의하는 것

사전 작업



미리 다음 두 가지를 만들어 둡니다.
· VPC 1개
- 이번에는 10.0.0.0/16로 만들었다

· 생성 된 VPC 내에 두 개의 서브넷 (다른 AZ에서)
- ap-northeast-1a10.0.0.0/24ap-northeast-1c10.0.1.0/24를 만들었습니다.

Amazon ECS 클러스터 이름 설정



먼저 Amazon ECS CLI에서 사용할 Amazon ECS 클러스터 이름을 설정합니다. 이 정보는 로컬 환경 (이번에는 MAC)의 ~./ecs/config에 저장됩니다.
$ ecs-cli configure --cluster ClusterA --region ap-northeast-1 --default-launch-type EC2 --config-name clustername
--config-nameclustername는 나중에 사용할 것이므로 기억하십시오. 잊으면 ~./ecs/config의 내용을 본다

클러스터 만들기



【전제 조건】
· keypair는 "webkey.pem"(이것은 미리 aws console에서 작성해 두는 것)
・2대의 t2.medium를 작성한다.
$ ecs-cli up --keypair webkey.pem \
--capability-iam \
--size 2 \
--instance-type t2.medium \
--cluster-config clustername \
--vpc vpc-0fcXXXXXXXXXXXXXX \
--subnets subnet-0eef76fXXXXXXXXX,subnet-07a826YYYYYYYYYY 


INFO[0000] Using recommended Amazon Linux AMI with ECS Agent 1.20.1 and Docker version 18.03.1-ce
INFO[0000] Created cluster                               cluster=ClusterA region=ap-northeast-1
INFO[0001] Waiting for your cluster resources to be created...
INFO[0001] Cloudformation stack status                   stackStatus=CREATE_IN_PROGRESS
INFO[0062] Cloudformation stack status                   stackStatus=CREATE_IN_PROGRESS
INFO[0122] Cloudformation stack status                   stackStatus=CREATE_IN_PROGRESS
Security Group created: sg-0a599d11111111111
Cluster creation succeeded.

이것은 Cloudformation에서 창조된다.

덧붙여서 상기는 1대로 만들었지만 4대로 하고 싶은 경우는, scale 옵션으로 변경을 실시한다.scale를 사용하여 변경할 수있는 내용은 ECS Scale을 참조하십시오.
$ ecs-cli scale --size 4 --capability-iam

와 같이 scale를 붙인다. 이 경우 처음 생성한 EC2 인스턴스는 다운되지 않고 추가 2대에서 총 4대가 됩니다.

docker-compose.yml 만들기



이제 Docker 컨테이너를 만들고 docker-compose.yml를 만듭니다.
이것은 Docker에 익숙한 파일이다. 이것과 Dockerfile를 조합해 다음번은 해 보려고 한다.
version: '3'
services:
  wordpress:
    image: wordpress
    ports:
      - "80:80"
    links:
      - mysql
    logging:
      driver: awslogs
      options: 
        awslogs-group: kumonavi-wordpress
        awslogs-region: ap-northeast-1
        awslogs-stream-prefix: wordpress
  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: password
    logging:
      driver: awslogs
      options: 
        awslogs-group: kumonavi-mysql
        awslogs-region: ap-northeast-1
        awslogs-stream-prefix: mysql

그런 다음 ecs-param.yml를 만듭니다. 이것은 CPU나 메모리의 정보를 기록한 것으로 docker-compose.yml가 Version3의 경우는 작성할 필요가 있다.
version: 1
task_definition:
  services:
    wordpress:
      cpu_shares: 100
      mem_limit: 524288000
    mysql:
      cpu_shares: 100
      mem_limit: 524288000

서비스를 만듭니다.



이번에는 docker-compose.yml에 기재한 wordpress의 WEB+DB를 작성한다.

아래의 up 명령은 createstart의 조합 기술입니다. create에서 서비스 정의를 만들고 start에서 작업 정의에서 하나의 Amazon ECS 작업을 시작합니다.
$ ecs-cli compose service  up  --cluster-config kumonavicluster

INFO[0000] Using ECS task definition                     TaskDefinition="ecs:2"
INFO[0000] Created an ECS service                        service=ecs taskDefinition="ecs:2"
INFO[0000] Updated ECS service successfully              desiredCount=1 serviceName=ecs
INFO[0015] (service ecs) has started 1 tasks: (task AAAA-22222ー333333
-1111111111).  timestamp="2018-08-15 00:52:25 +0000 UTC"
INFO[0090] Service status                                desiredCount=1 runningCount=1 serviceName=ecs
INFO[0090] (service ecs) has reached a steady state.     timestamp="2018-08-15 00:53:42 +0000 UTC"
INFO[0090] ECS Service has reached a stable state        desiredCount=1 runningCount=1 serviceName=ecs


서비스를 두 가지로 만들기


$ ecs-cli compose service scale 2

확인 작업


$ ecs-cli ps
Name                                            State                Ports                     TaskDefinition
485cb1ed-1e40-11111-2222-a5e47aw31253a/mysql      RUNNING                                        ecs:3
485cb1ed-1e40-11111-2222-a5e47a22223a/wordpress  RUNNING              1.1.2.2:80->80/tcp  ecs:3
4f4d1431-df3d-11111-2222-69f432222268/mysql      RUNNING                                        ecs:3
4f4d1431-df3d-4616-a9a8-69f43b22228/wordpress  RUNNING              1.1.3.3:80->80/tcp   ecs:3

청소



마지막은 청소합니다.

우선 서비스를 삭제합니다.
ecs-cli compose service rm --cluster-config cluster-name

그런 다음 클러스터를 삭제합니다.
ecs-cli down --force --cluster-config cluster-name

좋은 웹페이지 즐겨찾기