

이 가이드에서는 Wickr Enterprise에 대한 설명서를 제공합니다. AWS Wickr를 사용하는 경우 [AWS Wickr 관리 안내서](https://docs.aws.amazon.com/wickr/latest/adminguide/what-is-wickr.html) 또는 [AWS Wickr 사용 설명서를](https://docs.aws.amazon.com/wickr/latest/userguide/what-is-wickr.html) 참조하세요.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 데이터베이스 설정
<a name="database-settings"></a>

Wickr Enterprise에는 MySQL 8.0 데이터베이스가 필요합니다. MySQL 5.7을 사용하는 경우를 참조하여 업그레이드[MySQL 8.0으로 업그레이드](#upgrade-database)하세요. Amazon RDS와 같이 Kubernetes 클러스터 외부에 있는 데이터베이스를 사용하는 것이 좋지만 설치의 일부로 Kubernetes 클러스터 내부에 **내부** MySQL 데이터베이스를 배포하는 옵션도 있습니다.

## 외부 데이터베이스 설정
<a name="external-database-settings"></a>
+ **호스트 이름**: 데이터베이스 서버의 호스트 이름 또는 IP 주소입니다.
+ **리더 호스트 이름**: 데이터베이스 서버에 대한 읽기 전용 엔드포인트의 호스트 이름 또는 IP 주소(사용 가능한 경우).
+ **포트**: MySQL에 액세스할 포트입니다.
+ **데이터베이스 이름**: 서버에서 생성된 데이터베이스의 이름입니다.
+ **사용자 이름**: 데이터베이스에 액세스할 수 있는 권한이 있는 사용자입니다.
+ **암호**: 해당 사용자의 암호입니다.
+ **CA 인증서**: TLS를 통해 데이터베이스에 연결하기 위한 PEM 인증서입니다.

**참고**  
MySQL 설치에서 latin1\$1swedish\$1ci 데이터 정렬과 함께 기본 latin1 문자 세트를 사용하고 있는지 확인합니다. MySQL 서버가 다음 플래그로 시작되었는지 확인하여이 작업을 수행할 수 있습니다.  
`"--character-set-server latin1", "--collation-server latin1_swedish_ci"`

## 내부 데이터베이스 설정
<a name="internal-database-settings"></a>

내부 데이터베이스 유형은 이진 복제를 사용하는 MySQL 기본 및 보조에 대해 클러스터에 StatefulSets 2개를 배포합니다. 보조는 트래픽을 수신하지 않으며 재해 복구 및 백업에만 사용할 수 있습니다.

**스토리지 크기**: 데이터베이스 포드의 영구 볼륨 크기(기비바이트)입니다.

**MySQL 스토리지 크기 늘리기**

**참고**  
스토리지 크기를 늘리려면 StorageClass의 볼륨 유형이 볼륨 확장을 지원해야 합니다. 자세한 내용은 [볼륨 확장](https://kubernetes.io/docs/concepts/storage/storage-classes/#allow-volume-expansion)을 참조하세요.

Wickr Enterprise에서 사용되는 MySQL 서비스는 Kubernetes에서 StatefulSet 리소스로 배포됩니다. StatefulSets는 영구 볼륨 클레임 템플릿을 포함하여 리소스의 많은 속성을 변경할 수 없습니다. StatefulSets의 불변성을 해결하기 위한 차선책으로 MySQL에서 사용하는 볼륨의 크기를 늘리려면 다음 작업을 수행해야 합니다.

1. `data-mysql-primary-0` 및에 대한 영구 볼륨 클레임을 편집합니다`data-mysql-secondary-0`.

   1. `kubectl -n wickr edit pvc data-mysql-primary-0. Set spec.resources.requests.storage` 원하는 스토리지 크기로 변경합니다.

   1. `kubectl -n wickr edit pvc data-mysql-secondary-0. Set spec.resources.requests.storage` 원하는 스토리지 크기로 변경합니다.

1. 기존 StatefulSets를 삭제하되 `--cascade=orphan` 플래그를 전달하여 포드를 그대로 둡니다.

   `kubectl -n wickr delete statefulset --cascade=orphan mysql-primary mysql-secondary`.

1. KOTS UI에서 스토리지 크기 설정을 1단계에서 설정한 값과 일치하도록 업데이트합니다. 이 구성을 저장하고 배포합니다.

1. StatefulSets를 다시 시작하여 볼륨을 확장하고 MySQL 서비스를 다시 온라인 상태로 전환합니다.

   `kubectl -n wickr rollout restart statefulset mysql-primary mysql-secondary`.

## MySQL 8.0으로 업그레이드
<a name="upgrade-database"></a>

**외부 데이터베이스(RDS)**

Wickr 백엔드를 오프라인으로 전환하려면 다음 단계를 완료합니다.

1. 수신 네임스페이스 찾기 `kubectl get deployments --all-namespaces`

   아래 예제에서 네임스페이스는 Wickr이고 복제본은 3입니다.

   ```
   NAMESPACE     NAME                       READY   UP-TO-DATE   AVAILABLE   AGE
   ...
   wickr         ingress-nginx-controller   3/3     3            3           43h
   ...
   ```

1. 수신 축소 `kubectl scale deployment/ingress-nginx-controller --replicas=0 -n wickr`

1. 스냅샷을 생성하여 DB를 백업합니다. 자세한 내용은 *Amazon Relational Database Service 사용 설명서*의 [ 수동 백업 관리를 참조하세요](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ManagingManualBackups.html).

1. 엔진 버전을 MySQL 8.0.x로 업그레이드합니다(MySQL 8.4는 지원되지 않음). 자세한 내용은 *Amazon Relational Database Service 사용 설명서*의 [ DB 인스턴스 엔진 버전 업그레이드를](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html) 참조하세요.

Wickr 백엔드를 온라인 상태로 전환하려면 수신을 축소합니다. `kubectl scale deployment/ingress-nginx-controller --replicas=3 -n wickr` 

**내부 데이터베이스**

자세한 내용은 [ MySQL 백업 및 복원](https://github.com/aws-samples/sample-packages-for-aws-wickr/blob/main/docs/mysql-backup.md)을 참조하세요.