개요
이 페이지에서는 Database Migration Service API를 사용하여 MySQL 소스 데이터베이스의 연결 프로필을 관리하는 방법을 알아봅니다.
Database Migration Service API는 두 가지 방법으로 사용할 수 있습니다. REST API 호출을 수행하거나 Google Cloud CLI(CLI)를 사용할 수 있습니다.
gcloud
를 사용하여 Database Migration Service 연결 프로필을 관리하는 방법에 대한 대략적인 정보를 보려면 여기를 클릭하세요.
MySQL 소스 데이터베이스의 연결 프로필 만들기
다음은 MySQL 소스 데이터베이스의 연결 프로필을 만드는 요청을 보여줍니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: 프로젝트 ID
- region: 프로젝트 리전
- connection-profile-id: 연결 프로필 ID
- connection-profile-display-name: 연결 프로필 표시 이름
- host-ip-address: 소스 IP 주소
- username: 데이터베이스 사용자 이름
- password: 데이터베이스 사용자 비밀번호
- client-key: 클라이언트 인증서와 연결된 암호화되지 않은 PKCS#1 또는 PKCS#8 PEM 인코딩 비공개 키입니다. 이 필드를 사용하는 경우
clientCertificate
필드는 필수입니다. - client-certificate: 복제본이 소스 데이터베이스 서버에 인증할 때 사용할 x509 PEM 인코딩 인증서입니다.이 필드를 사용하면
clientKey
필드가 필수입니다. - ca-certificate: (필수사항) 소스 데이터베이스 서버의 인증서에 서명한 CA의 x509 PEM 인코딩 인증서입니다. 복제본은 이 인증서를 사용하여 올바른 호스트에 연결되는지 확인합니다.
HTTP 메서드 및 URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
JSON 요청 본문:
{ "displayName": "connection-profile-display-name", "mysql": { "host": "host-ip-address", "port": 3306, "username": "username", "password": "password", "ssl": { "clientKey": "client-key", "clientCertificate": "client-certificate", "caCertificate": "ca-certificate" } } }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165", "metadata": { "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata", "createTime": "2020-06-12T14:46:01.744267779Z", "target": "projects/project-id/locations/region/connectionProfiles/connection-profile-id", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
gcloud
를 사용하여 Database Migration Service 연결 프로필을 만드는 방법에 대한 대략적인 정보를 보려면 여기를 클릭하세요.
gcloud
를 사용하여 MySQL 소스 데이터베이스의 연결 프로필을 만드는 방법에 대한 자세한 내용은 여기를 클릭하세요.
생성 후 connectionProfiles/get
메서드를 호출하여 연결 프로필에 관한 정보를 확인할 수 있습니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: 프로젝트 ID
- region: 프로젝트 리전
- connection-profile-id: 연결 프로필 ID
HTTP 메서드 및 URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/project-id/locations/region/connectionProfiles/connection-profile-id", "createTime": "2019-12-22T16:17:37.159786963Z", "updateTime": "2019-12-24T13:13:39.455857411Z", "state": "READY", "displayName": "connection-profile-display-name", "mysql": { "host": "host-ip-address", "port": 3306, "username": "username" } }
gcloud
gcloud
를 사용하여 연결 프로필에 대한 정보를 검색하는 방법에 대한 자세한 내용은 여기를 클릭하세요.
MySQL용 Cloud SQL 소스 데이터베이스의 연결 프로필 만들기
다음은 MySQL용 Cloud SQL 소스 데이터베이스의 연결 프로필을 만드는 요청을 보여줍니다. 이 예에서는 Cloud SQL 관리 레이어가 아닌 MySQL 데이터베이스 엔진에 연결하므로 MySQL 연결 프로필을 사용합니다.
Cloud SQL을 사용하여 소스와 복제본 간에 페어링을 만들려면 Cloud SQL 데이터베이스의 인스턴스 ID를 제공해야 합니다. Cloud SQL Admin API의 databases/list
메서드를 사용하여 인스턴스 ID 값을 찾을 수 있습니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: 프로젝트 ID
- region: 프로젝트 리전
- connection-profile-id: 연결 프로필 ID
- connection-profile-display-name: 연결 프로필 표시 이름
- host-ip-address: 소스 IP 주소
- username: 데이터베이스 사용자 이름
- password: 데이터베이스 사용자 비밀번호
- cloud-sql-instance-id: Cloud SQL 인스턴스 ID
HTTP 메서드 및 URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
JSON 요청 본문:
{ "displayName": "connection-profile-display-name", "mysql": { "host": "host-ip-address", "port": 3306, "username": "username", "password": "password", "cloud_sql_id": "cloud-sql-instance-id" } }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165", "metadata": { "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata", "createTime": "2020-06-12T14:46:01.744267779Z", "target": "projects/project-id/locations/region/connectionProfiles/connection-profile-id", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
gcloud
를 사용하여 Database Migration Service 연결 프로필을 만드는 방법에 대한 대략적인 정보를 보려면 여기를 클릭하세요.
gcloud
를 사용하여 MySQL용 Cloud SQL 소스 데이터베이스의 연결 프로필을 만드는 방법에 대한 자세한 내용은 여기를 클릭하세요.
MySQL용 Cloud SQL 대상의 연결 프로필 만들기
다음은 MySQL용 Cloud SQL 대상의 연결 프로필을 만드는 요청을 보여줍니다. Database Migration Service는 이 요청의 정보를 사용하여 새 MySQL용 Cloud SQL 인스턴스를 만듭니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: 프로젝트 ID
- region: 프로젝트 리전
- connection-profile-id: 연결 프로필 ID
- connection-profile-display-name: 연결 프로필 표시 이름
- database-version: 데이터베이스 버전. 예를 들어 MYSQL_5_7입니다.
- tier: 머신 유형입니다. 예를 들면 db-custom-1-4096입니다.
- data-disk-type: 데이터 디스크 유형입니다. 예를 들면 PD_SSD입니다.
- data-disk-size-gb: 데이터 디스크 크기(GB)입니다. 예를 들어 20입니다.
- zone: 프로젝트 리전의 영역
- cmek_key_name: 선택사항: 고객 관리 암호화 키 (CMEK)의 전체 경로 및 이름입니다. 예: 'projects/project-id/locations/location/keyRings/ring/cryptoKeys/customer-managed-encryption-key'
Google Cloud 내에 저장된 모든 데이터는 암호화된 자체 데이터에 사용되는 것과 동일한 강화된 키 관리 시스템을 사용하여 저장 상태에서 암호화됩니다. 이러한 키 관리 시스템은 엄격한 키 액세스 제어 및 감사 기능을 제공하며 AES-256 암호화 표준을 사용하여 사용자 저장 데이터를 암호화합니다. 설정, 구성 또는 관리가 필요하지 않습니다. Google Cloud의 기본 저장 데이터 암호화는 암호화 자료의 규정 준수 또는 지역과 관련된 특정 요구사항이 없는 사용자에게 가장 적합합니다.
Google Cloud 프로젝트 내에서 저장 데이터를 암호화하는 데 사용되는 키를 더 세밀하게 제어해야 하는 경우 데이터베이스 이전 서비스는 Cloud Key Management Service (KMS) 내에서 사용자가 관리하는 암호화 키를 사용하여 데이터를 보호하는 기능을 제공합니다. 이러한 암호화 키를 고객 관리 암호화 키 (CMEK)라고 합니다. CMEK로 Database Migration Service의 데이터를 보호하면 CMEK를 제어할 수 있습니다.
cmek_key_name
매개변수는 Database Migration Service가 소스에서 대상으로 이전된 데이터를 암호화하는 데 사용할 수 있는 CMEK가 있는지와 관련이 있습니다. CMEK는 customer-managed-encryption-key 자리표시자로 표현됩니다.
ring 자리표시자는 CMEK의 키링을 나타냅니다. 키링은 특정 Google Cloud 위치에 키를 구성하고 키 그룹의 액세스 제어를 관리할 수 있게 해줍니다. 키링 이름은 프로젝트 전체에서 고유할 필요는 없지만 Google Cloud 지정된 위치 내에서 고유해야 합니다. 키링에 대한 자세한 내용은 Cloud KMS 리소스를 참고하세요.
연결 프로필을 만드는 과정에서 Database Migration Service는 CMEK가 존재하며 Database Migration Service에 키를 사용할 권한이 있는지 확인합니다.
이러한 조건 중 하나라도 충족되지 않으면 다음 오류 메시지가 반환됩니다.
CMEK_DOES_NOT_EXIST_OR_MISSING_PERMISSIONS
이 문제를 해결하려면 제공한 키가 존재하는지 그리고 Database Migration Service 서비스 계정에 해당 키에 대한 cloudkms.cryptoKeys.get
권한이 있는지 확인합니다.
CMEK 대신 Google Cloud의 내부 키 관리 시스템을 사용하여 데이터를 암호화하려면 API 요청에 cmek_key_name
매개변수와 값을 포함하지 마세요.
HTTP 메서드 및 URL:
POST https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles?connectionProfileId=connection-profile-id
JSON 요청 본문:
{ "displayName": "connection-profile-display-name", "cloudsql": { "settings": { "databaseVersion": "database-version", "tier": "machine-type", "storageAutoResizeLimit": 0, "activationPolicy": "ALWAYS", "ipConfig": { "authorizedNetworks": [], "enableIpv4": true, "privateNetwork": null }, "autoStorageIncrease": false, "dataDiskType": "data-disk-type", "dataDiskSizeGb": "data-disk-size", "zone": "zone", "sourceId": "projects/project-id/locations/region/connectionProfiles/connection-profile-id", "cmek_key_name": "projects/project-id/locations/location/keyRings/ring/cryptoKeys/customer-managed-encryption-key" } } }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/project-id/locations/region/operations/operation-1591975557292-5a7e4b195623c-e350e3da-713dee7d", "metadata": { "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata", "createTime": "2020-06-12T15:25:57.430715421Z", "target": "projects/project-id/locations/region/connectionProfiles/connection-profile-id", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
gcloud
를 사용하여 Database Migration Service 연결 프로필을 만드는 방법에 대한 대략적인 정보를 보려면 여기를 클릭하세요.
연결 프로필 정보 가져오기
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: 프로젝트 ID
- region: 프로젝트 리전
- connection-profile-id: 연결 프로필 ID
HTTP 메서드 및 URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/project-id/locations/region/connectionProfiles/connection-profile-id", "createTime": "2019-12-22T16:17:37.159786963Z", "updateTime": "2019-12-24T13:13:39.455857411Z", "state": "READY", "displayName": "connection-profile-display-name", "mysql": { "host": "host-ip-address", "port": 3306, "username": "username" } }
gcloud
gcloud
를 사용하여 연결 프로필에 대한 정보를 검색하는 방법에 대한 자세한 내용은 여기를 클릭하세요.
연결 프로필 나열
다음은 모든 연결 프로필에 대한 정보를 검색하는 요청을 보여줍니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: 프로젝트 ID
- region: 프로젝트 리전
orderBy:
이 필터를 사용하면 특정 리전의 모든 연결 프로필 목록을 알파벳순으로 가져올 수 있습니다. 예를 들어orderBy=name
필터는 모든 연결 프로필을 이름순으로 알파벳순으로 반환합니다.-
pageSize:
이 필터를 사용하여 Database Migration Service가 페이지에서 가져와 표시하는 최대 연결 프로필 수를 지정합니다. 예를 들어pageSize=10
를 설정하면 Database Migration Service는 페이지에 대해 최대 10개의 연결 프로필을 반환합니다.
연결 프로필이 10개를 초과하면 다른 페이지에 표시됩니다. 각 페이지 끝에 nextPageToken
매개변수와 고유 식별자가 표시됩니다. 식별자를 사용하여 다음 페이지의 연결 프로필 목록을 가져옵니다.
HTTP 메서드 및 URL:
GET https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "connectionProfiles": [ { "name": "projects/project-id/locations/region/connectionProfiles/name-of-first-connection-profile", "createTime": "2019-12-22T16:17:37.159786963Z", "updateTime": "2019-12-24T13:13:39.455857411Z", "state": "READY", "displayName": "display-name-of-first-connection-profile", "mysql": { "host": "host-ip-address-of-first-connection-profile", "port": port-number-of-first-connection-profile, "username": "username-of-first-connection-profile", "password_set": "true" } } { "name": "projects/project-id/locations/region/connectionProfiles/name-of-second-connection-profile", "createTime": "2020-11-21T19:22:25.153824963Z", "updateTime": "2020-11-11T11:15:14.451046111Z", "state": "READY", "displayName": "display-name-of-second-connection-profile", "mysql": { "host": "host-ip-address-of-second-connection-profile", "port": port-number-of-second-connection-profile, "username": "username-of-second-connection-profile", "password_set": "true" } } ] }
gcloud
gcloud
를 사용하여 모든 연결 프로필에 대한 정보를 검색하는 방법에 대한 자세한 내용은 여기를 클릭하세요.
연결 프로필 업데이트
다음은 기존 연결 프로필의 사용자 이름 및 비밀번호 필드를 업데이트하는 요청을 보여줍니다. 요청에서 updateMask
매개변수를 사용하면 이러한 필드만 요청 본문에 포함하면 됩니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: 프로젝트 ID
- region: 프로젝트 리전
- connection-profile-id: 연결 프로필 ID
- username: 데이터베이스 사용자 이름
- password: 데이터베이스 사용자 비밀번호
HTTP 메서드 및 URL:
PATCH https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id?updateMask=mysql.username,mysql.password
JSON 요청 본문:
{ "mysql" { "username": "username", "password": "password" } }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165", "metadata": { "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata", "createTime": "2020-06-12T14:46:01.744267779Z", "target": "projects/project-id/locations/region/connectionProfiles/connection-profile-id", "verb": "update", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
gcloud
를 사용하여 연결 프로필을 업데이트하는 방법에 대한 자세한 내용은 여기를 클릭하세요.
연결 프로필 삭제
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: 프로젝트 ID
- region: 프로젝트 리전
- connection-profile-id: 연결 프로필 ID
HTTP 메서드 및 URL:
DELETE https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165", "metadata": { "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata", "createTime": "2020-06-12T14:46:01.744267779Z", "target": "projects/project-id/locations/region/connectionProfiles/connection-profile-id", "verb": "delete", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
gcloud
를 사용하여 연결 프로필을 삭제하는 방법에 대한 자세한 내용은 여기를 클릭하세요.
연결 프로필 및 연결된 Cloud SQL 인스턴스 삭제
다음은 대상 연결 프로필을 삭제하고 연결된 Cloud SQL 인스턴스를 연쇄 삭제하는 요청을 보여줍니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: 프로젝트 ID
- region: 프로젝트 리전
- connection-profile-id: 연결 프로필 ID
HTTP 메서드 및 URL:
DELETE https://datamigration.googleapis.com/v1/projects/project-id/locations/region/connectionProfiles/connection-profile-id?force=true
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/project-id/locations/region/operations/operation-1591973161667-5a7e422cb0ba4-3004980d-2ae97165", "metadata": { "@type": "type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata", "createTime": "2020-06-12T14:46:01.744267779Z", "target": "projects/project-id/locations/region/connectionProfiles/connection-profile-id", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
gcloud
gcloud
를 사용하여 연결 프로필과 연결된 Cloud SQL 인스턴스를 모두 삭제하는 방법에 대한 자세한 내용은 여기를 클릭하세요.