brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Aug 02. 2021

(1시간 공부) ECR 이미지로 ECS에서 서비스 하기


도커 이미지를 만들고

AWS ECR에 올려 놓고

ECR에 올라온 도커 이미지를 ECS에서 서비스 해보자


<1> ECR 만들기

<2> EC2에서 docker 만들어  ECR에 올리기

<3> ECR에 올라온 이미지로 ECS 서비스 하기

<10> 같이 보면 좋은 사이트




<1> ECR 만들기


1

ECS > ECR 생성


2

만든후 사용을 위해  iam role 필요

EC2InstanceRole

ec2

ec2 , ecs ,logs 권한이 필요하네요


{

    "Version": "2012-10-17",

    "Statement": [

        {

            "Effect": "Allow",

            "Action": [

                "ec2:DescribeTags",

                "ecs:CreateCluster",

                "ecs:DeregisterContainerInstance",

                "ecs:DiscoverPollEndpoint",

                "ecs:Poll",

                "ecs:RegisterContainerInstance",

                "ecs:StartTelemetrySession",

                "ecs:UpdateContainerInstancesState",

                "ecs:Submit*",

                "ecr:GetAuthorizationToken",

                "ecr:BatchCheckLayerAvailability",

                "ecr:GetDownloadUrlForLayer",

                "ecr:BatchGetImage",

                "logs:CreateLogStream",

                "logs:PutLogEvents"

            ],

            "Resource": "*"

        }

    ]

}


3

정책 모두 추가




<2> EC2에서 docker 만들어  ECR에 올리기


1

ec2 접속

ec2에는 필요한 role이 부여되어 있어야 한다.

ec2 보안 >  role 적용


2

docker pull amazon/amazon-ecs-sample


ec2에 docker가 설치되어 있어야 명령어는  실행된다.

https://brunch.co.kr/@topasvga/1638



3

ecs > ecr  에서 확인

REPOSITORY=your-repository-uri

REPOSITORY=111111111.dkr.ecr.us-west-2.amazonaws.com/myrepo



4

docker tag amazon/amazon-ecs-sample:latest $REPOSITORY


EC2_REGION=`wget -q -O - http://169.254.169.254/latest/meta-data/placement/availability-zone | sed s/.$//`

`aws ecr get-login --region $EC2_REGION --no-include-email`

// 로그인 성공


5

docker push $REPOSITORY

// ERC에 push


6

AWS 콘솔 > ECR  >  올라온 이미지 확인

이미지 테그 

latest 



<3> ECR에 올리온 이미지로 ECS에서 작업 정의 하기


1

ecs 

작업 정의

새 작업 정의

EC2 기반

JSON파일로 생성

// 레파지토리 URL은 변경해야 함.


"readonlyRootFilesystem": null,

"image": "YOUR-REPOSITORY-URI:latest",

"command": null,

"user": null,



<4> 서비스 만들기


1

클러스터

서비스

생성 

EC2

seo-service1


2

lb

ecs servicerole


3

ec2 >  타켓 그룹 > health 체크  상태  helathy 확인 

(10분 소요)


4

lb에서  dns 확인


5

웹 접속 확인




<10> 같이 보면 좋은 사이트


https://brunch.co.kr/@topasvga/1638


https://brunch.co.kr/@topasvga/1646


https://brunch.co.kr/@topasvga/1749



감사합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari