도커 이미지를 만들고
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
감사합니다.