

# AWS CloudFormation을 사용하여 RDS Custom for Oracle 배포
<a name="custom-oracle-multiaz-deployment"></a>

**참고**  
지원 종료 공지: 2027년 3월 31일에 AWS는 Amazon RDS Custom for Oracle에 대한 지원을 종료합니다. 2027년 3월 31일 이후에는 RDS Custom for Oracle 콘솔 또는 RDS Custom for Oracle 리소스에 더 이상 액세스할 수 없습니다. 자세한 내용은 [RDS Custom for Oracle 지원 종료](RDS-Custom-for-Oracle-end-of-support.md) 섹션을 참조하세요.

제공된 AWS CloudFormation 템플릿을 사용하여 RDS Custom for Oracle 배포를 자동화합니다. 리소스를 배포하기 전에 다음 사전 조건을 충족합니다.

## 사전 조건
<a name="custom-oracle-prerequisites"></a><a name="custom-oracle-required-files"></a>

**필수 Oracle 파일 다운로드**

CloudFormation 템플릿을 생성하려면 먼저 특정 Oracle 설치 파일이 필요합니다. 배포하기 전에 이러한 파일을 다운로드하세요.

1. [Oracle Database 19c (19.3)](https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html)로 이동합니다.

1. `LINUX.X64_193000_db_home.zip` 파일을 찾아 다운로드합니다.

1. 파일 이름을 `V982063-01.zip`으로 변경합니다.

1. **플랫폼 또는 언어**를 `Linux x86-64`로 선택하여 나머지 패치를 다운로드합니다.

### 최신 OPatch 유틸리티
<a name="custom-oracle-opatch"></a>

[Patch 6880880](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=6880880)

### 2023년 1월 PSU 패치
<a name="custom-oracle-jan-2023-patches"></a>

**데이터베이스 PSU 및 RU 패치**
+ [Patch 34765931](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=34765931)
+ [Patch 34786990](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=34786990)

**추가 필수 패치**
+ [Patch 35099667](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35099667)
+ [Patch 35099674](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35099674)
+ [Patch 28730253](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=28730253)
+ [Patch 29213893](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=29213893)
+ [Patch 35012866](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35012866)

### 2023년 4월 PSU 패치
<a name="custom-oracle-apr-2023-patches"></a>

**데이터베이스 PSU 및 RU 패치**
+ [Patch 35042068](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35042068)
+ [Patch 35050341](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35050341)

**추가 필수 패치**
+ [Patch 28730253](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=28730253)
+ [Patch 29213893](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=29213893)
+ [Patch 33125873](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=33125873)
+ [Patch 35220732](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35220732)
+ [Patch 35239280](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35239280)

### Amazon S3 버킷 설정
<a name="custom-oracle-s3-setup"></a>

1. AWS 계정에서 Amazon S3 버킷을 생성하거나 기존 버킷을 선택합니다.

1. 아래 예시와 유사한 폴더 구조를 버킷에 생성합니다.

   ```
   <bucket-name>/
   └── oracle_cev/
       ├── V982063-01.zip
       ├── p6880880_190000_Linux-x86-64.zip
       ├── p34765931_190000_Linux-x86-64.zip
       ├── p34786990_190000_Linux-x86-64.zip
       ├── p35099667_190000_Linux-x86-64.zip
       ├── p35099674_190000_Generic.zip
       ├── p28730253_190000_Linux-x86-64.zip
       ├── p29213893_1918000DBRU_Generic.zip
       ├── p35012866_1918000DBRU_Linux-x86-64.zip
       ├── p35042068_190000_Linux-x86-64.zip
       ├── p35050341_190000_Linux-x86-64.zip
       ├── p29213893_1919000DBRU_Generic.zip
       ├── p33125873_1919000DBRU_Linux-x86-64.zip
       ├── p35220732_190000_Linux-x86-64.zip
       └── p35239280_190000_Generic.zip
   ```

1. 이전에 다운로드한 모든 Oracle 파일을 적절한 폴더에 업로드합니다.

## AWS CloudFormation을 사용하여 RDS Custom for Oracle 배포
<a name="custom-oracle-deployment-steps"></a>

### 1단계: CloudFormation 템플릿 준비
<a name="custom-oracle-step1-prereqs"></a>

RDS Custom for Oracle을 배포하려면 먼저 필요한 사전 조건을 생성하는 CloudFormation 템플릿을 다운로드하고 구성해야 합니다.

**템플릿 복사 및 저장**

1. [Deploying RDS Custom for Oracle with single and multiple Availability Zones](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbinstance.html#aws-resource-rds-dbinstance--examples--Deploying_RDS_Custom_for_Oracle_with_single_and_multiple_Availability_Zones)으로 이동합니다.

1. 원하는 형식(YAML 또는 JSON)으로 템플릿을 복사합니다.

1. 파일을 YAML 또는 JSON 형식으로 저장합니다. 예: `rds-custom-oracle-prereqs.yaml`

**AWS Console에서 스택 시작**

1. AWS Console을 열고 AWS CloudFormation으로 이동합니다.

1. **스택 생성** > **새 리소스 사용(표준)**을 선택합니다.

1. **기존 템플릿 선택**을 선택합니다.

1. **템플릿 파일 업로드** > **파일 선택**을 선택합니다.

1. 이전에 다운로드한 템플릿 파일을 선택합니다.

1. 기본 파라미터 값을 유지합니다.

1. **다음**을 선택하여 스택을 생성합니다.

**대안: AWS CLI 사용**

콘솔을 사용하는 대신 AWS CLI를 사용하여 스택을 생성할 수 있습니다.

```
aws cloudformation create-stack \
  --stack-name rds-custom-oracle \
  --template-body file://rds-custom-oracle-prereqs.yaml \
  --capabilities CAPABILITY_NAMED_IAM
```

### 2단계: 사용자 지정 엔진 버전(CEV) 및 Amazon RDS 인스턴스 생성
<a name="custom-oracle-step2-cev-rds"></a>

**템플릿 복사 및 저장**

1. [Deploying RDS Custom for Oracle with single and multiple Availability Zones](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbinstance.html#aws-resource-rds-dbinstance--examples--Deploying_RDS_Custom_for_Oracle_with_single_and_multiple_Availability_Zones)으로 이동합니다.

1. 원하는 형식(YAML 또는 JSON)으로 템플릿을 복사합니다.

1. 필요한 경우 템플릿에서 다음 파라미터를 업데이트합니다.
   + `BucketName`
   + `CEVS3Prefix`
   + 데이터베이스 마스터 암호(\*\*\*\*\*\*\*\*\*\*\*\*\* 대체)

1. 파일을 YAML 또는 JSON 형식으로 저장합니다.

### 3단계: AWS Console을 사용하여 배포
<a name="custom-oracle-step3-console-deploy"></a>

1. AWS Console을 열고 AWS CloudFormation으로 이동합니다.

1. **스택 생성** > **새 리소스 사용(표준)**을 선택합니다.

1. **기존 템플릿 선택**을 선택합니다.

1. **템플릿 파일 업로드** > **파일 선택**을 선택합니다.

1. 이전에 다운로드한 템플릿 파일을 선택합니다.

1. 파라미터를 기본값으로 둡니다.

1. 다음과 같이 파라미터를 입력합니다:

   ```
   BucketName: {{rds-custom-id}}
   CEVS3Prefix: oracle_cev
   CEVCreation: Yes
   ```

1. 구성을 검토하고 **다음**을 선택하여 스택을 생성합니다.

**선택 사항: AWS CLI를 사용하여 배포**

```
aws cloudformation create-stack \
  --stack-name rds-custom-oracle \
  --template-body file://rds-custom-oracle.yaml \
  --parameters \
    ParameterKey=BucketName,ParameterValue=rds-custom-id \
    ParameterKey=CEVS3Prefix,ParameterValue=oracle_cev \
    ParameterKey=CEVCreation,ParameterValue=Yes \
  --capabilities CAPABILITY_NAMED_IAM
```

## 배포 리소스 생성됨
<a name="custom-oracle-deployment-resources"></a>

 템플릿은 다음 리소스를 만듭니다.
+ 퍼블릭 및 프라이빗 서브넷이 있는 Amazon VPC
+ 보안 그룹
+ Amazon VPC 엔드포인트
+ IAM 역할 및 정책
+ 암호화를 위한 AWS KMS 키
+ 사용자 지정 엔진 버전(CEV)
+ 단일 AZ 및 다중 AZ 구성 모두에 대한 RDS Custom for Oracle 인스턴스

## 배포 진행 상황 모니터링
<a name="custom-oracle-monitoring-deployment"></a>

CloudFormation 스택을 생성한 후 진행 상황을 모니터링하여 배포가 성공했는지 확인합니다. 배포 프로세스에는 사용자 지정 엔진 버전(CEV) 및 RDS 인스턴스 생성이 포함됩니다.

배포 진행 상황을 모니터링하는 방법:

1. CloudFormation 콘솔을 엽니다.

1. 스택 이름을 선택합니다.

1. **이벤트** 탭을 선택하여 진행 상황을 보고 오류를 식별합니다.

**참고**  
CEV 생성에는 일반적으로 2\~3시간이 소요됩니다. CEV 생성이 성공적으로 완료되면 Amazon RDS는 Amazon RDS 인스턴스 생성을 자동으로 시작합니다.

## 배포 후
<a name="custom-oracle-post-deployment"></a>

스택 생성 프로세스가 완료되면 다음 배포 후 확인 및 구성 단계를 수행합니다.

1. Amazon RDS 콘솔 페이지에서 **사용자 지정 엔진 버전**으로 이동하여 CEV 생성을 확인합니다.

1. Amazon RDS 인스턴스가 생성되고 사용 가능한지 확인합니다.

1. Amazon RDS 인스턴스에 대한 연결을 테스트합니다.

1. 필요에 따라 모니터링 및 백업 전략을 설정합니다.

## 정리
<a name="custom-oracle-cleanup"></a>

모든 리소스를 제거하려면 다음 AWS CLI 명령을 실행합니다.

```
aws cloudformation delete-stack --stack-name rds-custom-oracle
```

## 문제 해결
<a name="custom-oracle-troubleshooting"></a>

배포 중에 문제가 발생하면 다음 솔루션을 사용하여 일반적인 문제를 해결하세요.

CEV 생성 실패  
+ 필요한 모든 패치가 Amazon S3에 업로드되었는지 확인합니다.
+ IAM 권한을 확인합니다.
+ 패치 버전이 올바른지 확인합니다. 필요한 패치 목록은 [사전 조건](#custom-oracle-prerequisites) 섹션을 참조하세요.

Amazon RDS 인스턴스 생성 실패  
+ VPC/서브넷 구성을 확인합니다.
+ 보안 그룹 규칙을 확인합니다.
+ CEV를 사용할 수 있는지 확인합니다.