패스트캠퍼스 캐시백 챌린지 38일차
AWS Cli를 활용해서 fargate cluster를 생성하고 서비스를 실행해주는 클립을 수강하는식으로 챌린지를 진행하였다.
내용이 상당하기에 저번내용에 이어서 두번째 내용으로 이어서 포스팅을 하려고한다. GUI상에서 작업할때와는 다르게 CLI에서 AWS 공식문서를 오가며 작업을 해주는것이 좋은 경험이 된 것 같다. 다음 포스팅은 ECS-CLI Compose를 활용한 다중 Docker Container 배포에 관한 포스팅을 하려고한다.
AWS CLi 실습(2)
지난번 포스팅에 이어서 awscli를 활용하는 내용을 이어가려한다.
해당 에러는 execution role과 관련된 설정을 추가해달라는 의미이다.
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html
aws 공식문서에 executionRoleArn 이라는 내용이 있다. 원래는 필수적인 옵션이 아니지만 직접적으로 ECR에 접근해야하기때문에 필요한 내용이다.
{
"family": "fargate-cli",
"networkMode": "awsvpc",
"executionRoleArn" : "ecrTaskRole",
"containerDefinitions": [
{
"name": "django-cli",
"image": "**ECR URI 주소**",
"portMappings": [
{
"containerPort": 8000,
"protocol": "tcp"
}
],
"essential": true,
"entryPoint": [
"sh",
"-c"
]
}
],
"requiresCompatibilities": [
"FARGATE"
],
"cpu": "256",
"memory": "512"
}
task definition file과 연관된 task1.json에서 ECR에 접근할 수 있는 IAM의 역할로 지정해준 내용을 넣어주면된다. “executionRoleArn”:”ecrTaskRole” json파일에 추가한다.
그렇게되면 ecr 이미지에 접근할 수 있는 권한을 가지고 있다고 가정한다.
task를 정의할때에도 role을 부여해준다고 여기면된다.
지난번에 안됬던 다음과 같은 command를 다시 실행하면 오류없이 정상적으로 실행될 것이다.
aws ecs register-task-definition --cli-input-json file://./task1.json
task definition이 잘 된것을 확인할 수 있다.
이 내용은 다음과같은 command로도 확인할 수 있다.
aws cli list-task-definitions
GUI에서 작업을 실행해줄때와 달리 서비스를 생성해주어야 한다.
퍼블릭 서브넷을 사용하는 예를 활용하자.
aws ecs create-service --cluster fargate-cluster --service-name fargate-service --task-definition fargate-cli:1 --desired-count 1 --launch-type "FARGATE" --network-configuration "awsvpcConfiguration={subnets=[{VPC 서브넷 ID}],securityGroups=[{보안그룹ID}],assignPublicIp=ENABLED}"
여기까지 하면 fargate이기에 서버가 구동되게 된다. 실습을 완료하였으니 서비스와 클러스터를 삭제하는 command는 각각 다음과 같다.
aws ecs delete-service --cluster fargate-cluster --service fargate-service --force
aws ecs delete-cluster --cluster fargate-cluster
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
* 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.