본문 바로가기
AWS/AWS - Field Notes

[AWS] ECS 예약된 작업 설정 관련 필요 IAM 권한

by ymkim 2026. 1. 30.

ECS 서비스의 AutoScaling 탭(Tab)에서 예약된 작업 옵션을 통해 특정 시간에만 ECS Task를 구동하도록 설정할 수 있다. STG 자원의 경우 업무 시간 이외에 구동이 필요하지 않기 때문에, 2개의 이벤트(운영 시간/운영 시간 x)를 생성하여 처리한다.

01-1. ECS 예약된 작업 생성 실패

ECS 서비스 > 서비스 오토 스케일링 > 예약된 작업 > 예약된 작업 생성

위와 같은 흐름으로 ECS 예약된 작업(Task)를 생성하는 과정중에 PutScheduledAction 권한이 부족하다는 권한 오류(ERROR)가 발생하였다. 현재 콘솔 접속의 경우 특정 역할(Role)로 접속을 한 상태이며, 부족한 해당 권한은 접속한 역할(Role)에 부여해줘야 콘솔 상에서의 작업이 가능해진다. 필요한 권한은 아래와 같으며 자세한 내용은 아래에서 살펴보자.

01-2. 정책(Policy) 권한 추가

1. ECS_AUTOSCALING_POLICY

{
  "Effect": "Allow",
  "Action": [
    "application-autoscaling:PutScheduledAction",
    "application-autoscaling:DeleteScheduledAction",
    "application-autoscaling:DescribeScheduledActions"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "application-autoscaling:service-namespace": "ecs",
      "application-autoscaling:scalable-dimension": "ecs:service:DesiredCount"
    }
  }
}

위에서 말했다시피 현재 특정 역할(Role)로 콘솔 로그인이 되어 있다. 그렇기에 해당 역할(test-role)에 위와 같이 신규 정책을 추가한다. 관련 옵션은 아래와 같다.

  • Effect(여부) : 권한의 허용(Allow), 거부(Deny) 여부를 결정한다
  • Action(행위) : 실행을 허락하거나 거부할 구체적인 행위(API)를 정의한다
  • Resource(대상) : 권한이 적용되는 대상 리소스(AWS 자원)를 지정한다
  • Condition(조건) : 저책이 효력을 발휘하기 위해 만족해야 하는 전제 조건
  • StringEquals: 문자열이 완벽하게 일치해야 한다는 비교 연산자이다. 대소문자까지 동일해야 권한이 부여된다.
  • application-autoscaling:service-namespace: ecs
    • 오토스케일링 대상이 ECS 서비스 카테고리 내에서만 가능함을 의미한다
  • application-autoscaling:scalable-dimension: ecs:service:DesiredCount
    • ECS 내에서도 CPU나 메모리 같은 다른 설정들이 아니라, 원하는 작업 개수(DesiredCount)를 조정하는 권한만 허용

02. ECS 예약된 작업 생성

위에서 권한을 모두 부여하였으면 이제 ECS 예약된 작업 생성이 가능해진다. 자세한 설명 옵션은 아래 내용을 참고하면 된다.

02-1. ECS 서비스 업데이트

ECS 서비스 > 서비스 오토 스케일링 > 예약된 작업 > 예약된 작업 생성

  1. 예약된 작업 생성 클릭
  2. 작업 이름 : 예약된 작업 Task명
  3. 시간대 : Asia/Seoul
  4. 시작 시간(GMT+9) : 이벤트를 시작할 날짜 지정
  5. 반복 : cron 표현식
  6. 용량 조정
    1. 최소 태스크 개수 : 해당 이벤트 발생 시 유지할 최소 태스크 개수 지정
    2. 최대 태스트 개수 : 해당 이벤트 발생 시 유지할 최대 태스크 개수 지정