1. IAM 에 AmazonECS_FullAccess / CloudWatchLogFullAccess 와 ECR 권한을 추가합니다.
2. 만들어진 User의 Third-Party Service AccessKey 를 생성한다. (Github 시크릿에 등록)
3. AWS ECR (private) 계정 생성
4. VPC(VPC and more) 및 ALB 세팅(보안그룹- Inboud트래픽제어, 타켓그룹 - ALB가 요청을 분배하는 기준설정)
5. ECS 세팅 -Fargate 클러스터 생성 (Task Definition 작업정의)
6. 작업정의로 서비스 생성(서비스, 네트워크-서브넷,시큐리티그룹, 로드밸런스- 리스너, 타켓그룹)
7. ALB의 주소를 이용해 접근하면 Target Group에 의해 포트포워딩 되어 ECS의 서비스에 연결할 수 있다.
8. 깃헙 액션스 배포 자동화
env:
# 본인의 Region 에 맞게 설정
AWS_REGION:
# 본인의 ECR URI 를 지정
ECR_REGISTRY:
# 본인의 ECR Repository 명을 지정
ECR_REPOSITORY:
task-definition.json 파일을 생성
{
"family": "{ Task Definition 이름 }",
"containerDefinitions": [
{
"name": "{ 컨테이너 명 }",
"image": "{ 실행할 ECR 이미지 주소 ( 이건 스크립트를 통해 매번 자동 변경할 것 ) }",
"cpu": 0,
"portMappings": [
{
"containerPort": 3000,
"hostPort": 3000,
"protocol": "tcp"
}
],
"essential": true,
"environment": [],
"environmentFiles": [],
"mountPoints": [],
"volumesFrom": [],
"ulimits": [],
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-create-group": "true",
"awslogs-group": "/ecs/task-hhplus-nest-prod",
"awslogs-region": "ap-northeast-2",
"awslogs-stream-prefix": "ecs"
},
"secretOptions": []
}
}
],
"taskRoleArn": "arn:aws:iam::200073956152:role/role-ecs-tasks",
"executionRoleArn": "arn:aws:iam::200073956152:role/role-ecs-tasks",
"networkMode": "awsvpc",
"requiresCompatibilities": [
"FARGATE"
],
"cpu": "512",
"memory": "1024",
"runtimePlatform": {
"cpuArchitecture": "X86_64",
"operatingSystemFamily": "LINUX"
}
}
깃헙 배포 파일에서 ECS task-definiton 경로 지정
- name: Render ECS task-definition
id: render-task-definition
uses: aws-actions/amazon-ecs-render-task-definition@v1
with:
task-definition: { 내 task definition 경로 }
container-name: { 내 task definition container-name }
image: ${{ steps.build-image.outputs.image }}
- name: Deploy Amazon ECS task-definition
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
with:
task-definition: ${{ steps.render-task-definition.outputs.task-definition }}
cluster: { 내 서버가 위치할 ECS 클러스터 명 }
service: { 내 서버를 실행시킬 ECS 서비스 명 }
wait-for-service-stability: true
LIST
'4차산업혁명의 일꾼 > Java&Spring웹개발과 서버 컴퓨터' 카테고리의 다른 글
장애대응 WIL (2) | 2024.01.14 |
---|---|
AWS CloudWatch 모니터링 (0) | 2024.01.08 |
프롬프트 엔지니어링 (0) | 2024.01.07 |
모니터링 WIL (0) | 2024.01.07 |
[장애대응 시나리오] JMeter 모니터링 (0) | 2024.01.07 |