AWS ECS/Fargate 작업 기억

4599 단어 FargateECRECSAWS
버지니아 북부 +aws/docker 커맨드 치는 환경에서 ECS/Fargate 동작 확인한 메모 쓰기
네이밍의 일관성이 없는 것은 애교w

※2018/10/3 추기 : 본제에 들어가기 전에 ECR/ECS의 전체적인 흐름을 그림으로 해 보았습니다
기타 정보를 추가했습니다.

전체 흐름



ECR : AWS에서 자체 리포지토리를 만들 때까지


ECS : Cluster를 만들고 실행 환경을 구축 할 때까지 (ELB에 대해서는 할애)


이것을 근거로, 실제로 구축해 봅시다.

ECR에 이미지 등록


  • 리포지토리 만들기

  • 여기 ecraisi로 작성 : XXXXX.dkr.ecr.us-east-1.amazonaws.com/ecraisi
    사용 권한으로 대상 IAM에 대한 사용 권한을 추가해야 합니다.

    docker login 명령 얻기

    $aws ecr get-login --no-include-email --region us-east-1
    docker login -u AWS -p eyJwYXl....NDIzMTkxMn0= htps : // 홉 x. dkr. 에cr. 으아아 st-1. 아마조나 ws. 이 m

    ↑에서 얻은 docker login 명령을 복사하여 실행

    $ sudo docker login -u AWS -p eyJwYXl....NDIzMjM2Mn0= htps : // 홉 x. dkr. 에cr. 음 음 st-1. 아마조나 ws. 이 m

    시도에 docker.io/nginx를 기반으로 Hello world를 시도하십시오.

    $ sudo docker image pull nginx

    Dockerfile 및

    index.html 만들기


    build

    $ sudo docker build -t mynginx.

    리포지토리 ecraisi로 이미지를 푸시 할 수 있도록 이미지에 태그 지정

    $ sudo docker image tag mynginx XXXXX.dkr.ecr.us-east-1.amazonaws.com/ecraisi:mynginx

    새로 생성된 AWS 리포지토리에 이 이미지를 푸시

    $ sudo docker image push XXXXX.dkr.ecr.us-east-1.amazonaws.com/ecraisi:mynginx

    ECS 리포지토리에 등록되어 있는지 확인합시다.



    로드 밸런서 생성



    * LB 신규 작성

    -로드 밸런서 메뉴에서 "NLB"(Network Load Balancer) 생성
    이름은 이번 ECSLB로 설정되었습니다.
    - 타겟 그룹의 명칭 설정
    여기서는 AISITG , 타겟 유형 = ip, port = 80

    ※ "리스너 설정", "타겟 등록"은 이 시점에서는 필요하지 않습니다만
    ECS에서 클러스터를 만들 때 풀다운에서 선택할 수 있으므로 설정하는 것이 좋습니다.
    ※Fargate 한다면 리스너 설정/타겟 그룹은 여기서 일단 삭제해, "서비스 작성"의 단계에서
    새로 설정하는 것이 더 쉽습니다.

    ※컨테이너 서비스에의 액세스는 로드 밸런서의 DNS명으로 액세스합니다(EIP 불필요)

    ECS/Fargate 설정


  • 작업 정의 : 저장소에 push 한 docker image를 새 작업에 등록
    (ECR에서 containar 등록하지 않으면 후술하는 ECR 설정을 먼저 실행)

  • -Fargate 선택
    여기에서 작업 이름 : MyTask
    - 컨테이너 ecraisi:mynginx 추가
    - 포트 매핑을 tcp:80으로 설정


  • 클러스터 만들기

  • - 클러스터를 "Networking Only"로 생성
    여기서는 클러스터 이름 : MyECS입니다.


  • 서비스 만들기

  • 클러스터의 "서비스"탭에서 생성
    - FARGATE 선택
    - 작업 정의 : MyTask 선택
    - 서비스 이름: MyService
    - 태스크 수를 설정 (서비스를 삭제할 때는 태스크 수 = 0으로 하는 것)
    - VPC/Subnet/SG 선택
    - ELB는 당연히 NLB 선택 > ECSLB 선택
    - 대상 컨테이너를 ELB에 추가
    - 리스너 포트 port=80을 선택하면 타겟 그룹명으로 "AISITG"가 자동 선택
    (리스너 포트/TG ​​함께 삭제하면 여기에서 신규 등록으로 OK)


  • 확인

  • 서비스의
    "자세히"로로드 밸런스 TG = AISITG로 설정
    "작업"에 MyTask가 등록
    되어 있는지 확인

    몇 분 기다리면 대상 AISITG에 시작된 컨테이너의 각 IP가 자동으로 할당되므로
    http://NLB의 FQDN에서 액세스 할 수 있으면 완성!

    좋은 웹페이지 즐겨찾기