실습 일부 가능, 도커 이미지 별도 준비 필요함
ECR에 있는 도커 이미지를 이용하여, ECS로 사이트를 띄워보자
ECR (Amazon Elastic Container Registry) 사용
관리형 AWS 도커 레지스트리 서비스 사용
순서
<1> 선행 작업 - 도커 이미지 준비
<2> ECR 리포지토리를 만들자
<3> 리눅스 EC2 접속하기
<4> 도커 이미지 pull
<5> 새 이미지로 ECS 만들기
<6> 서비스 만들기
<1> 선행 작업
여기 실습에서 도커 이미지는 별도로 준비해야 한다.
1
도커 이미지 만들어 ECR 에 올리자
https://brunch.co.kr/@topasvga/1363
2
일반 계정으로 ECS사용시 할당 해야 할 권한
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_managed_policies.html
3
주요 작업
ECR 리포지토리 만들고
도커 이미지를 가져오고
도커 이미지를 AWS에 올리자. ECR 에 Image에 있어야 한다.
새 이미지로 ECS만들자
<2> ECR 리포지토리를 만들자
EC2InstanceRole 이 필요 하다.
1
Services > ECR > 리포지토리 > 리포지토리 생성 > 리포지토리 이름
seo-repo
> 리포지토리 생성
2
URI 복사해 놓자.
5555555555.dkr.ecr.us-west-2.amazonaws.com/myrepo
3
seorepo 클릭 > 왼쪽 > 권한 > 편집 > 설명문 추가 > 설명문 이름
seo-statement
4
> IAM 개체
EC2InstanceRole
// role이 필요하다.
정책을 만들고 ec2 role을 만든다.
5
> 작업
모든 이름 선택
> 저장
4
EC2InstanceRole 의 정책 내용 4가지
EC2 읽기
ECR 읽기
ECS 쓰기
Cloudwatch log에 저장하므로 쓰기
5
EC2InstanceRole role 필요
{
"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> 리눅스 EC2 접속하기
<4> 도커 이미지 pull
ECR 리파지토리에서 ECS 이미지 가져오기
1
docker pull amazon/amazon-ecs-sample
2
형식
REPOSITORY=your-repository-uri (받아놓은 리포지토리 링크 )
실행
REPOSITORY=111199397329.dkr.ecr.us-west-2.amazonaws.com/myrepo
3
태그
docker tag amazon/amazon-ecs-sample:latest $REPOSITORY
4
로그인
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
PUSH하기
docker push $REPOSITORY
이미지 만들고 Push 하기
https://brunch.co.kr/@topasvga/1363
6. aws 에서 확인
ecr > 리포지토리 > myrepo 클릭 > images 에 이미지가 있는지 확인
<5> 새 이미지로 ECS 만들기
1
작업 정의하기
Serives > ECS > 작업 정의 > 새작업 정의 생성 > EC2 > Next
맨아래 Configure JSON
// JSON 코드
// YOUR-REPO URI 수정하기 ,
581442942746.dkr.ecr.us-west-2.amazonaws.com/myrepo
> 생성
<6> 서비스 만들기
1
Clusters > ECSClusters 클릭 > 생성 > Ec2 > 서비스 이름
seo-serivce1
Number of task
1
다음
2
로드 밸런서 유형
Network Load Balancer
Service IAM role
ecsServiceRole
로드밸런서 추가
80:TCP
> 다음
> 다음
> 서비스 생성
3
작업 결과 확인하기
세부정보 탭 보기
작업 탭 보기
이벤트 탭 보기
4
세부정보 탭 > 대상 그룹 이름 클릭 > 대상 탭 보기
그룹 세부정보 탭 보기 > MyLoadBalancer 클릭
5
load balancer > DNS네임 복사
6
사이트 접속
<7> 참고
일반 계정으로 ECS사용시 할당 해야 할 권한
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_managed_policies.html
https://docs.aws.amazon.com/ko_kr/AmazonECR/latest/userguide/what-is-ecr.html
https://aws.amazon.com/ko/ecs/features/
https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-install-extras-library-software/
https://brunch.co.kr/@topasvga/1230
감사합니다.