> For the complete documentation index, see [llms.txt](https://ia-cloud.gitbook.io/cloudia-manual/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ia-cloud.gitbook.io/cloudia-manual/scheduler/schedule.md).

# 일정

**일정** 기능은 프로젝트 내 작업을 지정한 시점 또는 주기로 자동 실행합니다.

현재는 일정 대상 타입으로 **인스턴스(INSTANCE)** 만 지원하며, 인스턴스 관련 작업을 예약할 수 있습니다.

일정 유형은 `CRON`과 `RATE`를 지원하며, 실행 기간과 일정 완료 후 작업을 함께 설정할 수 있습니다.

## 일정 목록

프로젝트에 생성된 일정 목록을 확인할 수 있습니다.

### 주요 작업

* `생성`: 새 일정을 생성합니다.
* `편집`: 선택한 1개 일정을 편집합니다.
* `삭제`: 선택한 1개 일정을 삭제합니다.
* `활성화`: 비활성화된 일정 1개를 활성화합니다.
* `비활성화`: 활성화된 일정 1개를 비활성화합니다.

### 검색

* **검색 조건**: `이름`으로 검색할 수 있습니다.

### 테이블 컬럼

| 컬럼         | 설명                                                                                |
| ---------- | --------------------------------------------------------------------------------- |
| **이름**     | 일정 이름입니다. 클릭 시 상세 화면으로 이동합니다.                                                     |
| **ID**     | 일정의 고유 식별자입니다.                                                                    |
| **활성화 여부** | 현재 일정의 활성/비활성 상태입니다.                                                              |
| **타입**     | 일정 유형(`CRON`/`RATE`)입니다.                                                          |
| **표현식**    | 일정 유형에 맞게 해석된 실행 주기입니다. `CRON`은 사람이 읽을 수 있는 문장으로, `RATE`는 `N분/시간/일마다` 형식으로 표시됩니다. |
| **서비스 이름** | 일정이 실행할 작업 유형입니다.                                                                 |
| **생성 일시**  | 일정이 생성된 날짜와 시간입니다.                                                                |

### 참고 사항

* 일정 목록은 단일 선택으로 동작합니다.
* `편집`, `삭제`, `활성화`, `비활성화`는 1개 선택 시에만 사용할 수 있습니다.
* `활성화` 버튼은 비활성화 일정 선택 시에만, `비활성화` 버튼은 활성화 일정 선택 시에만 활성화됩니다.
* 삭제, 활성화, 비활성화 실행 시 선택한 일정의 요약 정보를 포함한 확인 창이 표시됩니다.

***

## 일정 상세

일정 상세 화면에서는 상단의 일정 상세 정보와 하단의 대상 인스턴스 목록을 확인할 수 있습니다.

### 상세 정보

| 항목             | 설명                                |
| -------------- | --------------------------------- |
| **ID**         | 일정 ID입니다.                         |
| **이름**         | 일정 이름입니다.                         |
| **활성화 여부**     | 현재 일정의 활성/비활성 상태입니다.              |
| **타입**         | 일정 유형(`CRON`/`RATE`)입니다.          |
| **표현식**        | 일정 유형에 맞게 해석된 실행 주기입니다.           |
| **서비스 이름**     | 실행할 작업 유형입니다.                     |
| **생성 일시**      | 일정 생성 일시입니다.                      |
| **시작 시간**      | 일정 시작 시간입니다.                      |
| **종료 시간**      | 일정 종료 시간입니다.                      |
| **일정 완료 후 작업** | 마지막 실행 이후 `없음` 또는 `삭제` 동작을 표시합니다. |
| **설명**         | 일정에 대한 설명입니다.                     |

### 대상 정보

현재 일정 대상은 **인스턴스(INSTANCE)** 타입만 지원합니다.

| 컬럼           | 설명                |
| ------------ | ----------------- |
| **이름**       | 인스턴스 이름입니다.       |
| **ID**       | 인스턴스 ID입니다.       |
| **프로비저닝 소스** | 인스턴스 생성 소스 정보입니다. |
| **IP 주소**    | 인스턴스 IP 주소입니다.    |
| **상태**       | 인스턴스 상태입니다.       |
| **vCPU**     | 인스턴스 vCPU 수입니다.   |
| **메모리**      | 인스턴스 메모리 크기입니다.   |
| **생성 일시**    | 인스턴스 생성 일시입니다.    |

***

## 일정 생성 및 편집

`일정 생성`과 `일정 편집` 화면은 동일한 구성을 사용하며, 편집 화면에서는 기존 설정값이 초기값으로 표시됩니다.

### 기본 정보

* **이름**: 일정 이름을 입력합니다.
* **설명**: 일정 설명을 입력합니다.

### 일정 패턴

* **일정 유형**: `CRON` 또는 `RATE`를 선택합니다.
* **Cron 표현식**: `분`, `시`, `일`, `월`, `요일` 5개 필드를 입력하여 실행 주기를 설정합니다. 초 필드는 입력하지 않으며 내부적으로 `0`으로 고정됩니다.
* **실행 예정 시각 미리보기**: Cron 표현식이 유효하면 다음 실행 예정 시각이 함께 표시됩니다.
* **Rate 표현식**: 실행 주기 숫자와 단위(`분`, `시간`, `일`)를 선택합니다.

### 기간

* **시작 일정**
  * `바로 시작`: 시작 시각을 별도로 지정하지 않습니다.
  * `시작 예약`: 시작 날짜와 시간을 지정합니다.
* **종료 일정**
  * `종료 없음`: 종료 시각을 지정하지 않습니다.
  * `종료 예약`: 종료 날짜와 시간을 지정합니다.

> ⚠️ **주의:** 시작 일정과 종료 일정을 모두 예약한 경우 종료 시각은 시작 시각보다 늦어야 합니다.

### 대상 선택

* **서비스 선택(필수)**: 아래 작업 중 하나를 선택합니다.
  * `인스턴스 실행`
  * `인스턴스 종료`
  * `인스턴스 재부팅`
  * `스냅샷 생성`
* **인스턴스 선택**: `추가` 버튼으로 대상 인스턴스를 선택하고, 목록에서 선택 후 `삭제`로 제외할 수 있습니다.

> 💡 **참고:** 현재 대상 리소스는 인스턴스만 지원합니다.

### 환경설정

* **일정 활성화**: 생성 또는 편집 시 일정 활성화 여부를 설정합니다.
* **일정 완료 후 작업**: `없음` 또는 `삭제`를 선택할 수 있습니다.

> 💡 **참고:** `일정 완료 후 작업`은 `종료 예약`인 경우에만 선택할 수 있습니다. `종료 없음`이면 `없음`으로 고정됩니다.

### 입력 필드 유효성

| 필드             | 허용 값                   | 검증 규칙                                          | 비고             |
| -------------- | ---------------------- | ---------------------------------------------- | -------------- |
| **이름**         | 영문 대/소문자, 숫자, `-`, `_` | 최대 80자                                         | 필수             |
| **설명**         | 문자열                    | 최대 200자                                        | 선택             |
| **일정 유형**      | `CRON` \| `RATE`       | 둘 중 1개 선택                                      | 필수             |
| **Cron 표현식**   | 분/시/일/월/요일 5개 필드 입력    | 모든 필드를 입력하고 유효한 Cron 표현식이어야 함 (초 필드는 `0`으로 고정) | `CRON` 선택 시 필수 |
| **Rate 값**     | 정수                     | 1 이상 정수만 허용                                    | `RATE` 선택 시 필수 |
| **Rate 단위**    | `분` \| `시간` \| `일`     | 단위 선택 필수                                       | `RATE` 선택 시 필수 |
| **시작 예약 일시**   | 날짜/시간                  | `시작 예약` 선택 시 유효한 날짜와 시간 입력                     | 선택             |
| **종료 예약 일시**   | 날짜/시간                  | `종료 예약` 선택 시 유효한 날짜와 시간 입력                     | 선택             |
| **기간 비교**      | 시작/종료 예약 일시            | 시작과 종료를 모두 예약한 경우 종료 > 시작                      | 선택             |
| **서비스 선택**     | 지원 서비스 4종              | 값 선택 필수                                        | 필수             |
| **일정 활성화**     | 활성/비활성                 | 토글로 설정                                         | 선택             |
| **일정 완료 후 작업** | `없음` \| `삭제`           | `종료 예약`일 때만 변경 가능                              | 선택             |

### 생성 및 편집 버튼 활성화 조건

* **생성 버튼**: 기본 정보, 일정 패턴, 기간 입력이 모두 유효하고 서비스가 선택된 경우에만 활성화됩니다.
* **편집 버튼**: 생성 버튼 조건을 만족하면서 실제 변경사항이 1개 이상 있을 때만 활성화됩니다.

### 일정 완료 시 동작

* 종료 시각이 지난 일정은 더 이상 실행되지 않습니다.
* `일정 완료 후 작업 = 없음`이면 마지막 실행 후 일정이 비활성화됩니다.
* `일정 완료 후 작업 = 삭제`이면 마지막 실행 후 일정이 자동 삭제됩니다.

### 일정 실행 결과 확인

각 일정의 실행 결과(성공/실패)는 프로젝트 이벤트로 기록되므로 `모니터링 > 이벤트`에서 확인할 수 있습니다. 인스턴스 실행/종료/재부팅, 스냅샷 생성 등 서비스별로 실행 결과 이벤트가 발생하며, 실패한 경우 실패 이벤트가 함께 기록됩니다. 자세한 내용은 [이벤트](/cloudia-manual/monitoring/event.md) 문서를 참고하세요.

***

## 일정 활성화

목록에서 비활성화 상태 일정을 선택하고 `활성화`를 클릭합니다.

## 일정 비활성화

목록에서 활성화 상태 일정을 선택하고 `비활성화`를 클릭합니다.

## 일정 삭제

목록에서 삭제할 일정을 선택하고 `삭제`를 클릭한 뒤 확인 창에서 삭제를 확정합니다.
