인스턴스 만들기

이 페이지에서는 SQL Server용 Cloud SQL 인스턴스를 만드는 방법을 설명합니다.

모든 인스턴스 설정에 관한 자세한 내용은 인스턴스 설정을 참조하세요.

새로 생성된 인스턴스에는 sqlserver 데이터베이스가 있습니다.

SQL Server용 Cloud SQL 인스턴스를 만든 후 데이터베이스를 만들거나 가져오는 방식으로 추가합니다.

단일 프로젝트에 보유할 수 있는 최대 인스턴스 수는 인스턴스의 네트워크 아키텍처에 따라 다릅니다.

  • 새 SQL 네트워크 아키텍처: 프로젝트당 최대 1,000개의 인스턴스를 보유할 수 있습니다.
  • 이전 SQL 네트워크 아키텍처: 프로젝트당 최대 100개의 인스턴스를 만들 수 있습니다.
  • 두 아키텍처 모두 사용: 두 아키텍처에 걸쳐 인스턴스가 배포되는 방식에 따라 한도는 100~1,000 사이입니다.

상향을 요청하려면 지원 케이스를 접수하세요. 읽기 복제본은 인스턴스로 계산됩니다.

Cloud SQL Enterprise Plus 버전과 Cloud SQL Enterprise 버전 중에서 선택

SQL Server용 Cloud SQL 인스턴스를 만들 때 Cloud SQL 버전에 따라 여러 머신 계열 중에서 머신 구성을 선택합니다.

Cloud SQL Enterprise Plus 버전을 사용하면 다음 두 가지 머신 계열 중에서 선택할 수 있습니다.

  • 성능 최적화: 메모리 대 컴퓨팅 비율이 vCPU 1개:8GB RAM으로 다양한 SQL Server 워크로드에 균형 잡힌 가격 대비 성능을 제공합니다.
  • 메모리 최적화: 메모리 집약적인 워크로드를 위한 높은 메모리 대 컴퓨팅 비율인 vCPU 1개:32GB RAM을 제공합니다. 메모리 최적화 머신은 데이터 처리 중에 더 큰 데이터 세트를 메모리에 저장하는 것이 유리한 복잡한 쿼리, 분석, 비즈니스 인텔리전스 보고가 필요한 SQL Server 워크로드에 적합합니다.

Cloud SQL Enterprise 버전을 사용하면 vCPU 및 메모리 요구사항에 따라 여러 머신 구성을 선택할 수 있습니다. 다음 섹션에서는 각 데이터베이스 버전 및 머신 유형의 vCPU 및 메모리 구성을 보여줍니다.

머신 유형 vCPU/메모리
해당 없음
  • vCPU 1개, 3.75GB
  • vCPU 2개, 8GB
  • vCPU 4개, 16GB
  • vCPU 8개, 32GB
커스텀 vCPU 1~8개, 3.75~52GB

머신 유형 vCPU/메모리
해당 없음
  • vCPU 1개, 3.75GB
  • vCPU 2개, 8GB
  • vCPU 4개, 16GB
  • vCPU 8개, 32GB
커스텀 vCPU 1~32개, 3.75~208GB
머신 유형 vCPU/메모리
해당 없음
  • vCPU 1개, 3.75GB
  • vCPU 2개, 8GB
  • vCPU 4개, 16GB
  • vCPU 8개, 32GB
커스텀 vCPU 1~48개, 3.75~312GB
머신 유형 vCPU/메모리
해당 없음
  • vCPU 1개, 3.75GB
  • vCPU 2개, 8GB
  • vCPU 4개, 16GB
  • vCPU 8개, 32GB
커스텀 vCPU 2~96개, 3.75~624GB
성능 최적화
(Cloud SQL Enterprise Plus만 해당)
  • vCPU 2개, 16GB
  • vCPU 4개, 32GB
  • vCPU 8개, 64GB
  • vCPU 16개, 128GB
  • vCPU 32개, 256GB
  • vCPU 48개, 384GB
  • vCPU 64개, 512GB
  • vCPU 80개, GB 640개
  • vCPU 96개, GB 768개
  • vCPU 128개, 864GB
메모리 최적화
(Cloud SQL Enterprise Plus만 해당)
  • vCPU 4개, 128GB
  • vCPU 8개, 256GB
  • vCPU 16개, 512GB

동시 멀티스레딩

SQL Server용 Cloud SQL의 동시 멀티스레딩 (SMT)을 사용하면 하나의 물리적 코어에서 2개의 가상 CPU (vCPU)를 독립적인 개별 스레드로 실행할 수 있습니다. SMT는 기본적으로 사용 설정됩니다. 그러나 라이선스 비용을 줄이기 위해 이를 중지할 수 있습니다.

SMT를 사용 중지하면 인스턴스 성능에 영향을 줄 수 있습니다. SMT를 중지하면 인스턴스 성능에 미치는 영향을 파악하려면 인스턴스에서 부하 테스트를 수행하는 것이 좋습니다.

시작하기 전에

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Install the Google Cloud CLI.
  5. To initialize the gcloud CLI, run the following command:

    gcloud init
  6. 사용자 계정에 Cloud SQL 관리자 및 Compute 뷰어 역할이 있는지 확인합니다.

    IAM 페이지로 이동

    역할 및 권한에 대해 자세히 알아보기

SQL Server 인스턴스 만들기

  1. Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. 인스턴스 만들기를 클릭합니다.
  3. 인스턴스 만들기 페이지의 데이터베이스 엔진 선택 패널에서 SQL Server 선택을 클릭합니다.
  4. SQL Server 인스턴스 만들기 페이지의 Cloud SQL 버전 선택 섹션에서 인스턴스의 Cloud SQL 버전(Enterprise 또는 Enterprise plus)을 선택합니다.

    Cloud SQL 버전에 대한 자세한 내용은 Cloud SQL 버전 소개를 참고하세요.

  5. 인스턴스의 버전 사전 설정을 선택합니다. 사용 가능한 사전 설정을 보려면 버전 사전 설정 메뉴를 클릭합니다.
  6. 인스턴스 정보 섹션에서 인스턴스의 데이터베이스 버전을 선택합니다. 사용 가능한 버전을 보려면 데이터베이스 버전 메뉴를 클릭합니다.
  7. 인스턴스 정보 창의 인스턴스 ID 필드에 인스턴스 ID를 입력합니다.

    인스턴스 이름에 프로젝트 ID를 포함하지 않아도 됩니다. 필요한 경우 자동으로 포함됩니다(예: 로그 파일에서).

  8. 비밀번호 필드에 사용자의 비밀번호를 입력합니다.
  9. 비밀번호를 일반 텍스트로 보려면 비밀번호 표시 아이콘을 클릭합니다.

    비밀번호를 직접 입력하거나 생성을 클릭하여 Cloud SQL에서 자동으로 비밀번호를 만들도록 할 수 있습니다.

  10. 리전 및 영역 가용성 선택 섹션에서 인스턴스의 리전 및 영역을 선택합니다. 리전 가용성은 SQL Server용 Cloud SQL 버전에 따라 다를 수 있습니다. 자세한 내용은 인스턴스 설정 정보를 참고하세요.

    인스턴스를 인스턴스에 액세스하는 리소스와 같은 리전에 배치합니다. 선택한 리전은 나중에 수정할 수 없습니다. 대부분의 경우 영역을 지정할 필요가 없습니다.

    인스턴스를 고가용성으로 구성하는 경우 기본 영역과 보조 영역을 모두 선택할 수 있습니다.

    인스턴스를 만드는 동안 보조 영역이 사용되면 다음 조건이 적용됩니다.

    • 영역이 기본 영역은 Any로 보조 영역은 Any (different from primary)로 기본 설정됩니다.
    • 기본 영역과 보조 영역을 모두 지정할 경우 서로 별도의 영역이어야 합니다.
  11. 인스턴스 맞춤설정 섹션에서 인스턴스의 설정을 업데이트합니다. 구성 옵션 표시를 클릭하여 설정 그룹을 표시합니다. 그런 다음 설정을 검토하고 맞춤설정할 그룹을 펼칩니다. 선택한 모든 옵션의 요약이 오른쪽에 표시됩니다. 이러한 인스턴스 설정의 맞춤설정은 선택사항입니다. 맞춤설정이 수행되지 않는 모든 경우에 기본값이 할당됩니다.

    다음 표는 인스턴스 설정에 대한 빠른 참조입니다. 각 설정에 대한 자세한 내용은 인스턴스 설정 페이지를 참조하세요.

    설정 참고
    머신 유형
    머신 유형 경량, 표준(가장 일반적), 고성능 메모리 중에서 선택합니다. 각 머신 유형은 CPU(코어) 수와 인스턴스 메모리 양에 따라 분류됩니다.
    코어 인스턴스의 vCPU 수입니다. 자세히 알아보기
    메모리 인스턴스의 메모리 양(GB)입니다. 자세히 알아보기
    커스텀 전용 코어 머신 유형의 경우 사전 정의된 구성을 선택하는 대신 커스텀 버튼을 선택하여 커스텀 구성으로 인스턴스를 만듭니다. 이 옵션을 선택할 때는 인스턴스의 코어 수와 메모리 양을 선택해야 합니다. 자세히 알아보기.
    스토리지
    스토리지 유형 인스턴스 스토리지 유형(SSD 또는 HDD)을 결정합니다. 자세히 알아보기
    스토리지 용량 인스턴스에 제공된 저장용량입니다. 자세히 알아보기
    스토리지 자동 증가 사용 설정 인스턴스에 여유 공간이 부족할 때 Cloud SQL에서 자동으로 스토리지를 제공할지 여부를 결정합니다 자세히 알아보기
    암호화
    Google 관리 암호화기본 옵션입니다.
    고객 키 관리 암호화 키(CMEK)Google Cloud Key Management Service에서 자체 키를 사용하려면 선택합니다. 자세히 알아보기
    연결
    비공개 IP 인스턴스의 비공개 IP 주소를 추가합니다. 인스턴스에 연결하려면 추가 구성이 필요합니다.
    필요한 경우 연결에 사용할 인스턴스에 할당된 IP 범위를 지정할 수 있습니다.
    1. 할당된 IP 범위 옵션 표시를 펼칩니다.
    2. 드롭다운 메뉴에서 IP 범위를 선택합니다.

    인스턴스에는 공개 및 비공개 IP 주소가 모두 포함될 수 있습니다.

    공개 IP 인스턴스의 공개 IP 주소를 추가합니다. 그런 다음 승인된 네트워크를 추가하여 인스턴스에 연결하면 됩니다.

    인스턴스에는 공개 및 비공개 IP 주소가 모두 포함될 수 있습니다.

    공개 IP 사용에 대해 자세히 알아보세요.

    승인된 네트워크

    새로운 네트워크 이름과 네트워크 주소를 추가합니다. 여기서 자세히 알아보세요.

    데이터 보호
    백업 자동화 백업을 시작할 시간
    백업을 저장할 위치를 선택하세요.대부분의 사용 사례에서 멀티 리전을 선택하세요. 특정 리전에 백업을 저장해야 하는 경우(예를 들어 규정 상 그렇게 해야 할 이유가 있는 경우) 리전을 선택하고 위치 드롭다운 메뉴에서 리전을 선택합니다.
    저장할 자동 백업 수 선택보관할 자동 백업의 수입니다(1~365일). 자세히 알아보기
    PITR(point-in-time recovery) 사용 설정 point-in-time recovery 및 트랜잭션 로깅을 사용 설정합니다. 자세히 알아보기
    삭제 보호 사용 설정 실수로 인한 인스턴스 삭제를 보호할지 여부를 결정합니다. 자세히 알아보기
    로그 보관 일수 선택 미리 쓰기 로그 보관 기간을 1~7일로 구성합니다. 기본 설정은 7일입니다. 자세히 알아보기
    유지보수
    선호 기간 Cloud SQL이 인스턴스에 서비스 중단 유지보수 작업을 수행할 시간(1시간)을 설정합니다. 이 시간을 설정하지 않으면 예상치 못한 때에 업무에 차질을 줄 수 있는 유지보수 작업이 발생할 수 있습니다. 자세히 알아보기
    업데이트 순서 동일한 프로젝트의 다른 인스턴스와 비교하여 선호하는 업데이트 시간을 설정합니다. 자세히 알아보기
    플래그
    플래그 추가 데이터베이스 플래그를 사용하여 인스턴스의 설정과 매개변수를 제어할 수 있습니다. 자세히 알아보기
    라벨
    라벨 추가추가하는 각 라벨의 키와 값을 추가합니다. 라벨을 사용하면 인스턴스를 정리할 수 있습니다.
  12. 인스턴스 만들기를 클릭합니다.

    참고: 인스턴스를 만드는 데 몇 분 정도 걸릴 수 있습니다. 그러나 인스턴스가 생성되는 동안 인스턴스에 대한 정보를 볼 수 있습니다.

gcloud CLI 설치 및 시작에 대한 자세한 내용은 gcloud CLI 설치를 참조하세요. Cloud Shell 시작에 대한 자세한 내용은 Cloud Shell 문서를 참조하세요.

gcloud 버전 243.0.0 이상을 사용해야 합니다.

  1. gcloud sql instances create 명령어를 사용하여 인스턴스를 만듭니다.
  2. Cloud SQL Enterprise Plus 버전 인스턴스의 경우:

          gcloud sql instances create INSTANCE_NAME \
          --database-version=DATABASE_VERSION \
          --region=REGION \
          --tier=TIER \
          --root-password=ROOT_PASSWORD \
          --edition=ENTERPRISE_PLUS
        

    Cloud SQL Enterprise 버전 인스턴스의 경우:

          gcloud sql instances create INSTANCE_NAME \
          --database-version=DATABASE_VERSION \
          --region=REGION \
          --cpu=NUMBER_OF_vCPUs \
          --memory=MEMORY_SIZE \
          --root-password=ROOT_PASSWORD \
          --edition=ENTERPRISE
        

    인스턴스 이름에 프로젝트 ID를 포함하지 않아도 됩니다. 필요한 경우 자동으로 포함됩니다(예: 로그 파일에서).

    Cloud SQL Enterprise 버전의 경우 vCPU 및 메모리 크기 값이 제한됩니다. 자세한 내용은 Cloud SQL Enterprise Plus 버전과 Cloud SQL Enterprise 버전 중에서 선택하기를 참고하세요.

    예를 들어 다음 문자열은 vCPU가 2개 있고 메모리가 7,680MB인 인스턴스를 만듭니다.

        gcloud sql instances create myinstance \
        --database-version=SQLSERVER_2017_STANDARD \
        --region=us-central1 \
        --cpu=2 \
        --memory=7680MB \
        --root-password=EXAMPLE_PASSWORD \
        --edition=ENTERPRISE
        

    샘플 값을 보려면 샘플 머신 유형을 참고하세요.

    인스턴스 설정의 매개변수에 관한 자세한 내용은 gcloud sql instances create를 참고하세요.

    REGION의 기본값은 us-central1입니다.

    인스턴스 이름은 외부에 공개되므로 민감한 정보나 개인 식별 정보를 포함하지 마세요.
    인스턴스 이름에 프로젝트 ID를 포함하지 않아도 됩니다. 필요한 경우 자동으로 포함됩니다(예: 로그 파일에서).

    고가용성 인스턴스를 만드는 경우 --zone 매개변수와 --secondary-zone 매개변수를 사용하여 기본 영역과 보조 영역을 모두 지정할 수 있습니다. 인스턴스를 만들거나 수정하는 동안 보조 영역이 사용되는 경우에는 다음 조건이 적용됩니다.

    • 영역이 유효한 영역이어야 합니다.
    • 보조 영역이 지정된 경우 기본 영역도 지정해야 합니다.
    • 기본 영역과 보조 영역을 지정할 경우 서로 별도의 영역이어야 합니다.
    • 기본 영역과 보조 영역을 지정할 경우 두 영역이 같은 리전에 있어야 합니다.

    매개변수를 더 추가하여 다른 인스턴스 설정을 결정할 수 있습니다.

    설정 매개변수 참고
    필수 매개변수
    데이터베이스 버전 --database-version 데이터베이스 버전은 Cloud SQL 버전을 기반으로 합니다.
    리전 --region 유효한 값 알아보기
    연결
    비공개 IP --network

    --no-assign-ip(선택사항)

    --allocated-ip-range-name(선택사항)

    --enable-google-private-path(선택사항)

    --network: 이 인스턴스에 사용할 VPC 네트워크의 이름을 지정합니다. 비공개 서비스 액세스가 이미 네트워크에 구성되어 있어야 합니다. 베타 명령어(gcloud beta sql instances create)에서만 사용할 수 있습니다.

    --no-assign-ip: 인스턴스에 비공개 IP 주소만 있습니다.

    --allocated-ip-range-name: 지정하면 IP 범위가 할당되는 범위 이름이 설정됩니다. 예를 들면 google-managed-services-default입니다. 범위 이름은 RFC-1035를 준수해야 하며 1~63(영문 기준)자 이내여야 합니다. (gcloud alpha sql instances create).

    공개 IP --authorized-networks 공개 IP 연결의 경우 승인된 네트워크의 연결만 인스턴스에 연결됩니다. 자세히 알아보기
    서버 CA 모드 --server-ca-mode

    --server-ca-mode 플래그는 인스턴스의 서버 인증 기관 (CA) 유형을 구성합니다. 다음 옵션 중 하나를 선택할 수 있습니다.

    • GOOGLE_MANAGED_INTERNAL_CA: 기본값입니다. 이 옵션을 사용하면 각 Cloud SQL 인스턴스에 전용된 내부 CA가 해당 인스턴스의 서버 인증서에 서명합니다.
    • GOOGLE_MANAGED_CAS_CA: 이 옵션을 사용하면 Cloud SQL에서 관리되고 Google Cloud Certificate Authority Service (CA 서비스)에서 호스팅되는 루트 CA 및 하위 서버 CA로 구성된 CA 계층 구조가 사용됩니다. 리전의 하위 서버 CA는 서버 인증서에 서명하고 리전의 인스턴스 간에 공유됩니다.

      --server-ca-mode 플래그 사용은 미리보기에 있습니다.

      이 옵션은 미리보기에 있습니다.
    • CUSTOMER_MANAGED_CAS_CA: 이 옵션을 사용하면 CA 계층 구조를 정의하고 CA 인증서의 순환을 관리할 수 있습니다. 인스턴스와 동일한 리전에 있는 CA Service에서 CA 풀을 만듭니다. 풀의 CA 중 하나가 서버 인증서에 서명하는 데 사용됩니다. 이 옵션은 미리보기에 있습니다. 자세한 내용은 고객 관리 CA 사용을 참고하세요.
    머신 유형 및 스토리지
    머신 유형 --tier
    스토리지 유형 --storage-type 인스턴스 스토리지 유형(SSD 또는 HDD)을 결정합니다. 자세히 알아보기
    스토리지 용량 --storage-size 인스턴스에 제공된 스토리지 용량(GB)입니다. 자세히 알아보기
    저장용량 자동 증가 --storage-auto-increase 인스턴스에 여유 공간이 부족할 때 Cloud SQL에서 자동으로 저장용량을 제공할지 여부를 결정합니다. 자세히 알아보기
    스토리지 자동 증가 한도 --storage-auto-increase-limit Cloud SQL이 자동으로 스토리지를 늘릴 수 있는 정도를 결정합니다. 베타 명령어(gcloud beta sql instances create)에서만 사용할 수 있습니다. 자세히 알아보기
    자동 백업 및 고가용성
    고가용성 --availability-type 고가용성 인스턴스의 경우 REGIONAL로 설정합니다. 자세히 알아보기.
    보조 영역 --secondary-zone 고가용성 인스턴스를 만드는 경우 --zone--secondary-zone parameters를 사용하여 기본 영역과 보조 영역을 모두 지정할 수 있습니다. 인스턴스를 만들거나 수정하는 동안 보조 영역이 사용되는 경우에는 다음 제한 사항이 적용됩니다.
    • 영역이 유효한 영역이어야 합니다.
    • 보조 영역이 지정된 경우 기본 영역도 지정해야 합니다.
    • 기본 영역과 보조 영역을 지정할 경우 서로 별도의 영역이어야 합니다.

      기본 영역과 보조 영역을 지정할 경우 두 영역이 같은 리전에 있어야 합니다.

    자동 백업 --backup-start-time 백업을 시작할 시간
    자동 백업 보관 설정 --retained-backups-count 보관할 자동 백업 수입니다. 자세히 알아보기
    트랜잭션 로그 보관 설정 --retained-transaction-log-days point-in-time recovery를 위해 트랜잭션 로그를 보관할 일 수입니다. 자세히 알아보기
    point-in-time recovery --enable-point-in-time recovery point-in-time recovery 및 트랜잭션 로그를 사용 설정합니다. 자세히 알아보기
    데이터베이스 플래그 추가
    데이터베이스 플래그 --database-flags 데이터베이스 플래그를 사용하여 인스턴스의 설정과 매개변수를 제어할 수 있습니다. 데이터베이스 플래그 자세히 알아보기
    유지보수 일정
    유지보수 기간 --maintenance-window-day,
    --maintenance-window-hour
    Cloud SQL이 인스턴스에 방해가 되는 유지보수 작업을 수행할 기간(1시간)을 설정합니다. 이 기간을 설정하지 않으면 서비스 중단을 초래하는 유지보수 작업이 언제든지 발생할 수 있습니다. 자세히 알아보기
    유지보수 시점 --maintenance-release-channel 동일한 프로젝트의 다른 인스턴스와 비교하여 선호하는 업데이트 시간을 설정합니다. 이전 업데이트에는 preview를 사용하고 이후 업데이트에는 production을 사용합니다. 자세히 알아보기
    맞춤 SAN
    맞춤 주체 대체 이름 (SAN) 추가 --custom-subject-alternative-names=DNS_NAMES

    IP 주소를 사용하는 대신 커스텀 DNS 이름을 사용하여 Cloud SQL 인스턴스에 연결하려면 인스턴스를 만들 때 커스텀 서브젝트 대체 이름 (SAN) 설정을 구성합니다. 맞춤 SAN 설정에 삽입한 맞춤 DNS 이름이 인스턴스의 서버 인증서의 SAN 필드에 추가됩니다. 이렇게 하면 호스트 이름 유효성 검사와 함께 커스텀 DNS 이름을 안전하게 사용할 수 있습니다.

    클라이언트와 애플리케이션에서 맞춤 DNS 이름을 사용하려면 먼저 DNS 이름과 IP 주소 간의 매핑을 설정해야 합니다. 이를 DNS 확인이라고 합니다. 맞춤 SAN 설정에 쉼표로 구분된 최대 3개의 맞춤 DNS 이름 목록을 추가할 수 있습니다.

  3. 자동 할당된 IP 주소를 기록합니다.

    Cloud SQL 인증 프록시를 사용하지 않는 경우 이 주소를 호스트 주소로 사용하여 애플리케이션 또는 도구에서 인스턴스로 연결합니다.

  4. 사용자의 비밀번호를 설정합니다.
          gcloud sql users set-password sqlserver no-host --instance=[INSTANCE_NAME] \
           --password=[PASSWORD]
          

인스턴스를 만들려면 Terraform 리소스를 사용합니다.

resource "google_sql_database_instance" "instance" {
  name             = "sqlserver-instance"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    tier = "db-custom-2-7680"
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

변경사항 적용

Google Cloud 프로젝트에 Terraform 구성을 적용하려면 다음 섹션의 단계를 완료하세요.

Cloud Shell 준비

  1. Cloud Shell을 실행합니다.
  2. Terraform 구성을 적용할 기본 Google Cloud 프로젝트를 설정합니다.

    이 명령어는 프로젝트당 한 번만 실행하면 되며 어떤 디렉터리에서도 실행할 수 있습니다.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Terraform 구성 파일에서 명시적 값을 설정하면 환경 변수가 재정의됩니다.

디렉터리 준비

각 Terraform 구성 파일에는 자체 디렉터리(루트 모듈이라고도 함)가 있어야 합니다.

  1. Cloud Shell에서 디렉터리를 만들고 해당 디렉터리 내에 새 파일을 만드세요. 파일 이름에는 .tf 확장자가 있어야 합니다(예: main.tf). 이 튜토리얼에서는 파일을 main.tf라고 합니다.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 튜토리얼을 따라 하는 경우 각 섹션이나 단계에서 샘플 코드를 복사할 수 있습니다.

    샘플 코드를 새로 만든 main.tf에 복사합니다.

    필요한 경우 GitHub에서 코드를 복사합니다. 이는 Terraform 스니펫이 엔드 투 엔드 솔루션의 일부인 경우에 권장됩니다.

  3. 환경에 적용할 샘플 매개변수를 검토하고 수정합니다.
  4. 변경사항을 저장합니다.
  5. Terraform을 초기화합니다. 이 작업은 디렉터리당 한 번만 수행하면 됩니다.
    terraform init

    원하는 경우 최신 Google 공급업체 버전을 사용하려면 -upgrade 옵션을 포함합니다.

    terraform init -upgrade

변경사항 적용

  1. 구성을 검토하고 Terraform에서 만들거나 업데이트할 리소스가 예상과 일치하는지 확인합니다.
    terraform plan

    필요에 따라 구성을 수정합니다.

  2. 다음 명령어를 실행하고 프롬프트에 yes를 입력하여 Terraform 구성을 적용합니다.
    terraform apply

    Terraform에 '적용 완료' 메시지가 표시될 때까지 기다립니다.

  3. 결과를 보려면 Google Cloud 프로젝트를 엽니다. Google Cloud 콘솔에서 UI의 리소스로 이동하여 Terraform이 리소스를 만들었거나 업데이트했는지 확인합니다.

변경사항 삭제

변경사항을 삭제하려면 다음 단계를 따르세요.

  1. Terraform 구성 파일에서 삭제 보호를 사용 중지하려면 deletion_protection 인수를 false로 설정합니다.
    deletion_protection =  "false"
  2. 다음 명령어를 실행하고 프롬프트에 yes를 입력하여 업데이트된 Terraform 구성을 적용합니다.
    terraform apply
  1. 다음 명령어를 실행하고 프롬프트에 yes를 입력하여 이전에 Terraform 구성에 적용된 리소스를 삭제합니다.

    terraform destroy

1. 인스턴스 만들기

다음 기본 API 호출에는 가능한 모든 필드가 표시되지는 않습니다. JSON 요청의 프로토타입은 설정을 참조하세요.

Instances:insert 페이지도 참조하세요. 리전에 따른 유효값을 포함한 인스턴스 설정은 인스턴스 설정을 참조하세요. 머신 유형에 대한 자세한 내용은 커스텀 인스턴스 구성을 참조하세요.

instance-id는 외부에 공개되므로 민감한 정보나 개인 식별 정보를 포함하지 마세요.

인스턴스 이름에 프로젝트 ID를 포함하지 않아도 됩니다. 필요한 경우 자동으로 포함됩니다(예: 로그 파일에서).

collation 필드 (다음 기본 API 호출에는 표시되지 않음)를 사용하면 인스턴스의 데이터베이스에 사용되는 데이터 정렬 유형의 기본값을 설정할 수 있습니다. 이 데이터 정렬 기본값은 인스턴스 수준에서는 영구적이지만 데이터베이스 수준에서는 그렇지 않습니다. 데이터베이스 관리 도구를 사용하여 이 기본값을 변경할 수 있지만 생성 또는 업데이트 중인 특정 데이터베이스의 경우에만 변경할 수 있습니다. 인스턴스를 다시 만들지 않는 한 인스턴스를 만든 후에는 인스턴스의 기본 콜레이션 값을 변경할 수 없습니다. SQL Server의 콜레이션에 대한 자세한 내용은 콜레이션 및 유니코드 지원을 참조하세요. JSON 요청의 프로토타입은 설정을 참조하세요. collation 매개변수에 다음과 같은 문자열 예시를 지정할 수 있습니다. SQL_Latin1_General_CP1_CI_AS

timeZone 필드 (다음 기본 API 호출에는 표시되지 않음)를 사용하면 인스턴스의 시간대를 설정할 수 있습니다. 인스턴스를 만든 후에 인스턴스의 시간대를 변경할 수 있습니다. 자세한 내용과 허용되는 문자열 목록은 설정을 참조하세요. timeZone 필드에 지정할 수 있는 문자열의 예시에는 "Pacific Standard Time"이 있습니다. 더보기

관리형 Microsoft AD와 통합되는 인스턴스를 만들려면 domain 필드에 subdomain.mydomain.com과 같은 도메인을 지정합니다. 자세한 내용은 Windows 인증을 사용하여 인스턴스 만들기를 참고하세요. 또한 다른 프로젝트에서 관리형 Microsoft AD 도메인과 통합하기 위한 절차 및 제약조건을 참고하세요.

요청 본문에서 machine-type 값을 설정하는 방법은 커스텀 인스턴스 구성을 참고하세요.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • INSTANCE_ID: 인스턴스 ID입니다.
  • REGION: 리전 이름
  • DATABASE_VERSION: 데이터베이스 버전의 enum 문자열. 예를 들면 SQLSERVER_2017_STANDARD입니다.
  • PASSWORD: root 사용자의 비밀번호
  • MACHINE_TYPE: 머신 (등급) 유형의 enum 문자열. 예를 들면 다음과 같습니다.
    db-perf-optimized-N-4
  • EDITION_TYPE: Cloud SQL 버전. 기본값은 ENTERPRISE입니다.
  • DATA_CACHE_ENABLED: (선택사항) 인스턴스에 데이터 캐시를 사용 설정하려면 이 파라미터의 값을 true로 설정합니다.
  • PRIVATE_NETWORK: 이 인스턴스에 사용하려는 Virtual Private Cloud(VPC) 네트워크 이름을 지정합니다. 비공개 서비스 액세스가 이미 네트워크에 구성되어 있어야 합니다.
  • AUTHORIZED_NETWORKS: 공개 IP 연결의 경우 인스턴스에 연결할 수 있는 승인된 네트워크의 연결을 지정합니다.
  • CA_MODE: 인스턴스의 인증 기관 계층 구조(GOOGLE_MANAGED_INTERNAL_CA 또는 GOOGLE_MANAGED_CAS_CA)를 지정합니다. serverCaMode을 지정하지 않으면 기본 구성은 GOOGLE_MANAGED_INTERNAL_CA입니다. 이 기능은 미리보기 버전으로 제공됩니다.
  • DNS_NAMES: Cloud SQL 인스턴스의 서버 인증서에 최대 3개의 DNS 이름을 쉼표로 구분하여 추가합니다. 단일 인증서로 여러 DNS 이름을 보호할 수 있습니다. 이 기능은 미리보기에서 CUSTOMER_MANAGED_CAS_CA 인스턴스에만 사용할 수 있습니다.

HTTP 메서드 및 URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

JSON 요청 본문:

{
  "name": "INSTANCE_ID",
  "region": "REGION",
  "databaseVersion": "DATABASE_VERSION",
  "rootPassword": "PASSWORD",
  "settings": {
    "tier": "MACHINE_TYPE",
    "edition": "EDITION_TYPE",
    "backupConfiguration": {
      "enabled": true
    },
    "dataCacheConfig" = {
      "dataCacheEnabled": DATA_CACHE_ENABLED
    },
    "ipConfiguration": {
      "privateNetwork": "PRIVATE_NETWORK",
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      "ipv4Enabled": false,
      "serverCaMode": "CA_MODE",
      "customSubjectAlternativeNames": "DNS_NAMES"
    }
  }
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances"

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-01T19:13:21.834Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

인스턴스가 생성되면 기본 사용자 계정을 구성할 수 있습니다.

2. 인스턴스의 IPv4 주소 검색

필요한 경우 자동으로 할당된 IPv4 주소를 검색할 수 있습니다. 이 주소는 응답의 ipAddress 필드에 있습니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • INSTANCE_ID: 이전 단계에서 생성한 인스턴스 ID

HTTP 메서드 및 URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음 명령어를 실행합니다.

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID"

다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "DATABASE_VERSION",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "MACHINE_TYPE",
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "ipv4Enabled": true
    },
    "locationPreference": {
      "zone": "ZONE",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "19:00",
      "kind": "sql#backupConfiguration",
      "enabled": true
    },
    "settingsVersion": "1",
    "dataDiskSizeGb": "10"
  },
  "etag": "--redacted--",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    ...
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "PROJECT_ID",
  "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com",
  "backendType": "BACKEND_TYPE",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "connectionName": "PROJECT_ID:REGION:INSTANCE_ID",
  "name": "INSTANCE_ID",
  "region": "REGION",
  "gceZone": "ZONE"
}

1. 인스턴스 만들기

다음 기본 API 호출에는 가능한 모든 필드가 표시되지는 않습니다. JSON 요청의 프로토타입은 설정을 참고하세요.

Instances:insert 페이지도 참고하세요. 리전에 따른 유효값을 포함한 인스턴스 설정에 대한 자세한 내용은 인스턴스 설정을 참고하세요. 머신 유형에 대한 자세한 내용은 커스텀 인스턴스 구성을 참고하세요.

instance-id는 외부에 공개되므로 민감한 정보나 개인 식별 정보를 포함하지 마세요.

인스턴스 이름에 프로젝트 ID를 포함하지 않아도 됩니다. 필요한 경우 자동으로 포함됩니다(예: 로그 파일에서).

collation 필드 (다음 기본 API 호출에는 표시되지 않음)를 사용하면 인스턴스의 데이터베이스에 사용되는 콜레이션 유형의 기본값을 설정할 수 있습니다. 이 콜레이션 기본값은 인스턴스 수준에서는 영구적이지만 데이터베이스 수준에서는 그렇지 않습니다. 데이터베이스 관리 도구를 사용하여 이 기본값을 변경할 수 있지만 생성 또는 업데이트 중인 특정 데이터베이스의 경우에만 변경할 수 있습니다. 인스턴스를 다시 만들지 않는 한 인스턴스를 만든 후에는 인스턴스의 콜레이션 기본값을 변경할 수 없습니다. SQL Server의 데이터 정렬에 대한 자세한 내용은 데이터 정렬 및 유니코드 지원을 참고하세요. JSON 요청의 프로토타입은 설정을 참고하세요. collation 매개변수에 다음과 같은 문자열 예시를 지정할 수 있습니다. SQL_Latin1_General_CP1_CI_AS

timeZone 필드 (다음 기본 API 호출에는 표시되지 않음)를 사용하면 인스턴스의 시간대를 설정할 수 있습니다. 인스턴스를 만든 후에 인스턴스의 시간대를 변경할 수 있습니다. 자세한 내용과 허용되는 문자열 목록은 설정을 참고하세요. timeZone 필드에 다음과 같은 문자열 예시를 지정할 수 있습니다. "Pacific Standard Time" 더보기

관리형 Microsoft AD와 통합되는 인스턴스를 만들려면 domain 필드에 subdomain.mydomain.com과 같은 도메인을 지정합니다. 자세한 내용은 Windows 인증을 사용하여 인스턴스 만들기를 참고하세요. 또한 다른 프로젝트에서 관리형 Microsoft AD 도메인과 통합하기 위한 절차 및 제약조건을 참고하세요.

요청 본문에서 machine-type 값을 설정하는 방법은 커스텀 인스턴스 구성을 참고하세요.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • INSTANCE_ID: 인스턴스 ID입니다.
  • REGION: 리전 이름
  • DATABASE_VERSION: 데이터베이스 버전의 enum 문자열.
  • MACHINE_TYPE: 머신 (등급) 유형의 enum 문자열. 예를 들면 다음과 같습니다.
    db-perf-optimized-N-4
  • PASSWORD: root 사용자의 비밀번호
  • MACHINE_TYPE : db-custom-[CPUS]-[MEMORY_MBS]와 같은 머신 (등급) 유형의 enum 문자열.
  • EDITION_TYPE: Cloud SQL 버전. 기본값은 ENTERPRISE입니다.
  • DATA_CACHE_ENABLED: (선택사항) 인스턴스에 데이터 캐시를 사용 설정하려면 이 파라미터의 값을 true로 설정합니다.
  • PRIVATE_NETWORK: 이 인스턴스에 사용하려는 Virtual Private Cloud (VPC) 네트워크 이름을 지정합니다. 비공개 서비스 액세스가 이미 네트워크에 구성되어 있어야 합니다.
  • AUTHORIZED_NETWORKS: 공개 IP 연결의 경우 인스턴스에 연결할 수 있는 승인된 네트워크의 연결을 지정합니다.
  • CA_MODE: 인스턴스의 인증 기관 계층 구조(GOOGLE_MANAGED_INTERNAL_CA 또는 GOOGLE_MANAGED_CAS_CA)를 지정합니다. serverCaMode을 지정하지 않으면 기본 구성은 GOOGLE_MANAGED_INTERNAL_CA입니다. 이 기능은 미리보기 버전으로 제공됩니다.
  • DNS_NAMES: Cloud SQL 인스턴스의 서버 인증서에 최대 3개의 DNS 이름을 쉼표로 구분하여 추가합니다. 단일 인증서로 여러 DNS 이름을 보호할 수 있습니다. 이 기능은 미리보기에서 CUSTOMER_MANAGED_CAS_CA 인스턴스에만 사용할 수 있습니다.

HTTP 메서드 및 URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances

JSON 요청 본문:

{
  "name": "INSTANCE_ID",
  "region": "REGION",
  "databaseVersion": "DATABASE_VERSION",
  "rootPassword": "PASSWORD",
  "settings": {
    "tier": "MACHINE_TYPE",
    "edition": "EDITION_TYPE",
    "backupConfiguration": {
      "enabled": true
    },
    "dataCacheConfig" = {
      "dataCacheEnabled": DATA_CACHE_ENABLED
    },
    "ipConfiguration": {
      "privateNetwork": "PRIVATE_NETWORK",
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      "ipv4Enabled": false,
      "serverCaMode": "CA_MODE",
      "customSubjectAlternativeNames": "DNS_NAMES"
    }
  }
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances"

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-01T19:13:21.834Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

인스턴스가 생성되면 기본 사용자 계정을 구성할 수 있습니다.

2. 인스턴스의 IPv4 주소 검색

필요한 경우 자동으로 할당된 IPv4 주소를 검색할 수 있습니다. 이 주소는 응답의 ipAddress 필드에 있습니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • INSTANCE_ID: 이전 단계에서 생성한 인스턴스 ID

HTTP 메서드 및 URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음 명령어를 실행합니다.

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID"

다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "DATABASE_VERSION",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "MACHINE_TYPE",
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "ipv4Enabled": true
    },
    "locationPreference": {
      "zone": "ZONE",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "19:00",
      "kind": "sql#backupConfiguration",
      "enabled": true
    },
    "settingsVersion": "1",
    "dataDiskSizeGb": "10"
  },
  "etag": "--redacted--",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    ...
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "PROJECT_ID",
  "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com",
  "backendType": "BACKEND_TYPE",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "connectionName": "PROJECT_ID:REGION:INSTANCE_ID",
  "name": "INSTANCE_ID",
  "region": "REGION",
  "gceZone": "ZONE"
}
이 작업에 적합한 기본 REST API 요청을 구성하는 방법은 instances:insert 페이지의 API 탐색기를 참조하세요.

쓰기 엔드포인트 생성

Cloud SQL Enterprise Plus 버전 인스턴스를 만들고 Cloud SQL이 인스턴스의 쓰기 엔드포인트를 자동으로 생성하도록 하려면 Google Cloud 프로젝트에 Cloud DNS API를 사용 설정합니다.

이미 Cloud SQL Enterprise Plus 버전 인스턴스가 있고 Cloud SQL에서 쓰기 엔드포인트를 자동으로 생성하도록 하려면 고급 재해 복구가 사용 설정된 복제본을 만듭니다.

쓰기 엔드포인트는 현재 기본 인스턴스의 IP 주소로 자동으로 확인되는 전역 DNS (도메인 이름 서비스) 이름입니다. 이 엔드포인트는 복제본 장애 조치 또는 전환 작업 시 들어오는 연결을 새 기본 인스턴스로 자동으로 리디렉션합니다. IP 주소 대신 SQL 연결 문자열에서 쓰기 엔드포인트를 사용할 수 있습니다. 쓰기 엔드포인트를 사용하면 리전의 서비스 중단이 발생할 때 애플리케이션 연결을 변경하지 않아도 됩니다.

인스턴스의 쓰기 엔드포인트를 가져오는 방법에 대한 자세한 내용은 인스턴스 정보 보기를 참조하세요. 쓰기 엔드포인트를 사용하여 인스턴스에 연결하는 방법에 관한 자세한 내용은 쓰기 엔드포인트를 사용하여 연결을 참고하세요.

커스텀 인스턴스 구성

커스텀 인스턴스 구성을 사용하면 인스턴스에 필요한 메모리와 CPU의 용량을 선택할 수 있습니다. 이러한 유연성 덕분에 워크로드에 적합한 VM 형태를 선택할 수 있습니다. 머신 유형 가용성은 SQL Server용 Cloud SQL 버전에 따라 결정됩니다.

실시간 처리가 필요한 워크로드의 경우 인스턴스에 전체 작업 세트를 포함할 만큼 충분한 메모리가 있는지 확인하세요. 그러나 메모리 요구사항에 영향을 줄 수 있는 다른 요인(예: 활성 연결 수 및 내부 오버헤드 프로세스)도 있습니다. 프로덕션 환경에서 성능 문제가 발생하지 않도록 부하 테스트를 수행해야 합니다.

인스턴스를 구성할 때 워크로드를 처리하기에 충분한 메모리와 vCPU를 선택하고 워크로드가 증가함에 따라 업그레이드하세요. vCPU가 부족한 머신 구성에는 SLA가 적용되지 않을 수 있습니다. 자세한 내용은 운영 가이드라인을 참고하세요.

Cloud SQL Enterprise 버전 인스턴스의 머신 유형

Cloud SQL Enterprise 버전 인스턴스의 경우 gcloud sql instances create 명령어를 사용하여 커스텀 인스턴스 구성을 만들 수도 있습니다.

머신 유형 이름은 다음 형식을 사용합니다. db-custom-NUMBER_OF_vCPUs-MEMORY

NUMBER_OF_vCPUs를 머신의 CPU 수로, MEMORY를 머신의 메모리 양으로 바꿉니다.

예를 들어 머신 이름이 db-custom이고 머신에 1개의 CPU와 3,840MB의 RAM이 있는 경우 머신 형식은 db-custom-1-3840입니다.

CPU 수 및 메모리 양을 선택할 때 선택한 구성에 다음 제한사항이 적용됩니다.

  • 인스턴스에 구성할 수 있는 vCPU 수는 SQL Server 버전에 따라 다릅니다.
  • vCPU 수는 1이거나 2~96 사이의 짝수여야 합니다.
  • 메모리 크기는 다음과 같아야 합니다.
    • vCPU당 0.9~6.5GB
    • 256MB의 배수
    • 최소 3.75GB(3,840MB)

Cloud SQL Enterprise Plus 버전 인스턴스의 머신 유형

Cloud SQL Enterprise Plus 버전 인스턴스의 경우 머신 유형은 다음 섹션에 설명된 대로 사전 정의됩니다.

성능 최적화 머신 계열

이 머신 계열은 메모리 대 컴퓨팅 비율이 vCPU 1개:8GB RAM으로 다양한 SQL Server 워크로드에 균형 잡힌 가격 대비 성능을 제공합니다. 성능 최적화 머신 계열은 다음과 같은 머신 유형을 제공합니다.

Enterprise Plus 머신 유형 vCPU 메모리(GB)
db-perf-optimized-N-2 2 16
db-perf-optimized-N-4 4 32
db-perf-optimized-N-8 8 64
db-perf-optimized-N-16 16 128
db-perf-optimized-N-32 32 256
db-perf-optimized-N-48 48 384
db-perf-optimized-N-64 64 512
db-perf-optimized-N-80 80 640
db-perf-optimized-N-96 96 768
db-perf-optimized-N-128 128 864

메모리 최적화 머신 계열

이 머신 계열은 메모리 집약적인 워크로드에 높은 메모리 대 컴퓨팅 비율인 vCPU 1개:32GB RAM을 제공합니다. 메모리 최적화 머신은 데이터 처리 중에 더 큰 데이터 세트를 메모리에 저장하는 것이 유리한 복잡한 쿼리, 분석, 비즈니스 인텔리전스 보고가 필요한 SQL Server 워크로드에 적합합니다. 메모리 최적화 머신 계열은 다음과 같은 머신 유형을 제공합니다.

머신 유형 vCPU 메모리(GB)
db-memory-optimized-N-4 4 128
db-memory-optimized-N-8 8 256
db-memory-optimized-N-16 16 512

제한사항

  • 맞춤 SAN을 사용하여 Cloud SQL 인스턴스의 서버 인증서에 DNS 이름을 3개 이상 추가할 수 없습니다.
  • 맞춤 SAN을 사용하여 인스턴스의 인증서에 추가할 수 있는 DNS 이름의 최대 길이는 253자입니다.
  • 인스턴스의 인증서에 추가하는 DNS 이름에는 와일드 카드 문자 (*) 또는 후행 점 (예: test.example.com.)을 사용할 수 없습니다.
  • DNS 이름은 RFC 1034에 명시된 대로 유효해야 합니다.
  • 맞춤 SAN은 CUSTOMER_MANAGED_CAS_CA 인스턴스에만 사용할 수 있습니다.

문제 해결

문제 문제 해결
오류 메시지: Failed to create subnetwork. Router status is temporarily unavailable. Please try again later. Help Token: [token-ID]. Cloud SQL 인스턴스를 다시 만들어 보세요.

다음 단계

  1. 인스턴스에 SQL Server 데이터베이스 만들기
  2. 인스턴스에 SQL Server 사용자 만들기
  3. 인스턴스 액세스 보안 및 제어
  4. SQL Server 클라이언트로 인스턴스에 연결
  5. 데이터베이스로 데이터 가져오기
  6. 인스턴스 설정에 대해 알아보기