SQL Server용 Cloud SQL FAQ

정보

Cloud SQL이란 무엇인가요?
Cloud SQL은 클라우드에서 완전 관리형 SQL 데이터베이스를 제공하는 서비스입니다. Cloud SQL에서는 PostgreSQL, SQL Server, MySQL 데이터베이스를 제공합니다.
Cloud SQL을 사용하면 어떤 이점이 있나요?
Cloud SQL을 사용하면 패치 및 업데이트 적용, 백업 관리, 복제 구성과 같이 일상적이지만 시간이 많이 소요되는 필수 작업을 Google에 맡기고 사용자는 우수한 애플리케이션 빌드에만 집중할 수 있습니다. 또한 표준 유선 프로토콜을 사용하므로 어디에서나 거의 모든 애플리케이션에서 연결할 수 있습니다.
Cloud SQL에서 사용할 수 있는 데이터베이스 버전은 무엇인가요? 업데이트는 어떻게 관리되나요?

SQL Server용 Cloud SQL은 SQL Server 2017 Standard, SQL Server 2017 Enterprise, SQL Server 2017 Express, SQL Server 2017 Web, SQL Server 2019 Standard(기본값), SQL Server 2019 Enterprise, QL Server 2019 Express, SQL Server 2019 Web과 같은 SQL Server 버전을 지원합니다.

마이너 버전 업데이트는 예약된 유지보수의 일부로 배포되므로 사용자가 해야 하는 추가 작업은 없습니다. 업데이트에 대한 자세한 내용은 Cloud SQL 인스턴스의 유지보수 개요를 참조하세요.

인스턴스의 현재 버전을 확인하려면 Google Cloud 콘솔로 이동해서 인스턴스 이름을 클릭하여 인스턴스 세부정보 페이지를 엽니다. 또는 gcloud sql instances describe 명령어를 실행할 수도 있습니다.

Cloud SQL에서 모든 데이터베이스 기능을 지원하나요?
Cloud SQL은 SQL Server의 일반적인 기능을 대부분 지원합니다. 지원되지 않는 기능은 Cloud SQL에서 사용할 수 없는 SQL Server 기능을 참조하세요.
크기 또는 QPS 제한이 있나요?
Cloud SQL 인스턴스에는 초당 쿼리 수(QPS) 제한이 없습니다. 연결, 크기, App Engine 관련 한도에 대한 자세한 내용은 할당량 및 한도를 참고하세요.
Cloud SQL이 변경됐을 때 알림을 받으려면 어떻게 해야 하나요?
Cloud SQL에 대한 공지와 소식을 게시하는 google-cloud-sql-announce 포럼에 가입할 수 있습니다.
버그를 신고하거나 기능을 요청하거나 질문을 하려면 어떻게 해야 하나요?
google-cloud-sql-discuss 그룹에서 버그를 신고하고 기능을 요청할 수 있으며 Stack Overflow에서 질문할 수 있습니다. 기타 다른 지원이 필요한 경우는 Cloud SQL 지원 페이지를 참조하세요.
맨 위로

시작하기

데이터가 없는 새 인스턴스에 디스크 공간이 사용된 것으로 표시되는 이유는 무엇인가요?
Cloud SQL 및 데이터베이스는 인스턴스가 생성될 때 시스템 파일과 메타데이터를 위해 공간을 사용합니다.
맨 위로

데이터 저장, 복제, 인증

데이터는 어디에 저장되나요?

인스턴스 데이터는 인스턴스가 있는 리전에 저장됩니다. 스토리지 위치를 지정하지 않으면 백업은 Cloud SQL 인스턴스의 위치와 지리적으로 가장 가까운 멀티 리전에 저장됩니다. 예를 들어 Cloud SQL 인스턴스가 us-central1에 있는 경우 백업은 기본적으로 us 멀티 리전에 저장됩니다. 하지만 australia-southeast1과 같은 기본 위치는 멀티 리전 외부에 있습니다. 가장 가까운 멀티 리전은 asia입니다.

영역이란 무엇인가요?

영역은 리소스를 실행할 수 있는 특정 지리적 위치의 독립적인 항목입니다. 예를 들어 이름이 us-central1-a인 영역은 미국 중부의 한 위치를 나타냅니다.

영역에 대한 자세한 내용은 Compute Engine 문서의 영역 리소스를 참조하세요.

스토리지 한도는 얼마나 되나요?
스토리지 한도에 대한 자세한 내용은 할당량 및 한도를 참조하세요.
데이터는 어떻게 복제되나요?

SQL Server 인스턴스는 고가용성 구성읽기 복제본을 제공합니다.

만들 수 있는 읽기 복제본의 종류에는 어떤 것이 있나요?

각 유형의 사용 사례를 비롯하여 읽기 복제본에 대한 자세한 내용은 복제 옵션을 참조하세요.

Cloud SQL 장애 조치는 어떤 방식으로 작동하나요?

장애 조치에 대한 자세한 내용은 고가용성 구성 개요를 참조하세요.

데이터가 암호화되나요?
Cloud SQL 고객 데이터는 데이터베이스 테이블, 임시 파일, 백업에 저장될 때 암호화됩니다. 외부 연결은 SSL을 사용하거나 Cloud SQL 인증 프록시를 통해 암호화될 수 있습니다.
저장 데이터의 암호화는 어떻게 관리하나요?

데이터는 256비트 고급 암호화 표준(AES-256) 이상과 대칭 키를 사용하여 암호화됩니다. 즉, 데이터가 저장될 때 데이터를 암호화하고 데이터가 사용될 때 데이터를 복호화하는 데 같은 키가 사용됩니다. 이러한 데이터 키는 보안 키 저장소에 저장된 키를 사용하여 자체적으로 암호화되고 정기적으로 변경됩니다.

자세한 내용은 Google Cloud의 저장 데이터 암호화를 참조하세요.

전송 중인 데이터의 암호화는 어떻게 관리하나요?

데이터가 Google이나 Google의 대리인이 통제하지 않는 물리적 경계 외부로 이동할 때 Google은 하나 이상의 네트워크 계층에서 모든 전송 중 데이터를 암호화하고 인증합니다. Google이나 Google 대리인이 통제하는 물리적 경계 내에서 전송 중인 데이터는 일반적으로 인증되지만 기본적으로 암호화되지 않을 수 있습니다. 공개 IP 주소를 사용하여 인스턴스에 연결할 경우 데이터가 전송 중에 안전하게 보호되도록 SSL/TLS 인증서를 사용합니다. 위협 모델에 따라 적용할 추가 보안 조치를 선택할 수 있습니다. 예를 들어 Cloud SQL로의 영역 내 연결을 위해 SSL을 구성할 수 있습니다.

자세한 내용은 Google Cloud의 전송 중 암호화를 참조하세요.

예. 인증, 승인 등을 사용할 수 있습니다. 시작할 때 개요를 참조하세요.
맨 위로

백업 및 복구

인스턴스를 복구하려면 어떻게 해야 하나요?

백업으로 복원하려면 Google Cloud 콘솔 또는 gcloud 명령줄 도구를 사용하면 됩니다. 자세한 내용은 인스턴스 복원을 참조하세요.

인스턴스를 특정 시점으로 복원하려면 PITR(point-in-time recovery)을 사용합니다. 자세한 내용은 PITR(point-in-time recovery) 사용을 참조하세요.

백업 비용은 얼마나 드나요?

인스턴스 스토리지 가격 책정 및 인스턴스 요율에 대한 자세한 내용은 가격을 참조하세요.

7일이 지난 자동 백업에 액세스할 수 있나요?

자동 백업은 매일 발생하며 기본적으로 7일 동안 보관됩니다. 1개에서 365개의 백업까지 백업 보관 값을 구성할 수 있습니다. 보관 기간이 끝나면 가장 오래된 백업이 삭제됩니다. 자동 백업은 증분 백업이며, 이전 백업이 변경된 후 변경된 데이터만 포함됩니다. 가장 오래된 백업 크기는 데이터베이스 크기와 비슷합니다. 가장 오래된 백업이 삭제되면 두 번째로 오래된 백업의 크기가 증가하여 전체 백업 크기가 동일하게 유지됩니다.

주문형 백업은 수동으로 삭제하지 않는 한 삭제되지 않습니다.

리전 장애 보호 조치로 외부 복제와 리전 간 복제는 각각 어떤 경우에 사용해야 하나요?
외부 복제 리전 간 복제
고객이 직접 관리 Cloud SQL에서 리전 간 복제본 관리
Google Cloud 이외의 인스턴스와 Google Cloud 인스턴스 간에 복제 가능 Cloud SQL 인스턴스 간에만 복제 가능
Google Cloud 간에 마이그레이션하여 다운타임 최소화 또는 하이브리드/멀티 클라우드 데이터 보호 Google Cloud 리전 간에 데이터를 마이그레이션하여 다운타임 최소화
주 버전 간 복제 지원 주 버전 간 복제를 지원하지 않음
맨 위로

인스턴스 관리

Cloud SQL 인스턴스의 다시 시작을 유발할 수 있는 작업은 무엇인가요?
사용자 또는 Cloud SQL이 다음 작업을 수행할 때 Cloud SQL 인스턴스가 다시 시작될 수 있습니다.
  • 업데이트
  • 생성
  • 복제본 승격
  • 유지보수
  • 복제본 재생성
  • 장애 조치
  • 다시 시작
  • 백업에서 인스턴스 복원
  • 기존 인스턴스에서 고가용성 사용 설정(인스턴스에 대한 업데이트임)
  • 다시 시작해야 하는 데이터베이스 플래그 추가

인스턴스를 다시 시작해도 인스턴스의 공개 또는 비공개 IP 주소가 변경되지 않습니다.

다시 시작하는 동안 인스턴스가 얼마 동안 종료되나요? 시나리오를 참조하세요.

다시 시작하는 동안 인스턴스가 얼마 동안 종료되나요?

인스턴스를 다시 시작할 때 인스턴스의 대부분이 1~2분 정도 종료됩니다. 인스턴스가 종료되기 전에 모든 연결이 종료되고 현재 작업은 디스크에서 삭제됩니다.

부하가 큰 인스턴스의 경우 이 프로세스에 시간이 오래 걸리고 인스턴스가 중지된 것처럼 보일 수 있습니다. 이러한 경우 인스턴스가 종료되고 다시 시작되는 데 최대 1시간이 걸릴 수 있습니다. 인스턴스를 종료하고 다시 시작하는 데 시간이 오래 걸리는 이유로는 사용자에게 쓰기 트랜잭션이 많거나 트랜잭션이 장시간 실행되는 경우가 있습니다.

데이터베이스를 확장하거나 축소할 수 있나요?

언제든지 다운타임 없이 인스턴스에서 사용할 수 있는 저장용량을 늘릴 수 있습니다. 인스턴스의 스토리지 크기를 줄일 수는 없습니다. 또한 공간이 부족할 때 스토리지 용량을 자동으로 늘리도록 인스턴스를 구성할 수도 있습니다. 자세히 알아보기

vCPU를 업그레이드 및 다운그레이드할 수 있나요?

예. 인스턴스에서 사용하는 vCPU 수를 변경할 수 있습니다. 사용하는 코어 수를 원하는 만큼 늘리거나 줄일 수 있습니다. 일반적으로 vCPU 수 변경에 걸리는 시간은 5분 미만입니다.

Cloud SQL을 관리하려면 Google Cloud Console을 사용해야 하나요?
아니요. Console을 사용하여 수행할 수 있는 모든 관리 태스크는 Cloud SQL Admin API를 통해 프로그래매틱 방식으로 수행되거나 gcloud 명령줄 도구를 통해 스크립트로 작성될 수도 있습니다.
임시 파일에서 사용하는 공간을 확보하려면 어떻게 해야 하나요?
SQL 쿼리가 임시 테이블을 많이 만들면 임시 파일이 커질 수 있습니다. 임시 테이블에 사용된 공간을 회수하려면 데이터베이스를 다시 시작해야 합니다. 데이터베이스를 다시 시작해도 임시 파일 증가로 인해 발생한 프로비저닝된 디스크 공간은 줄어들지 않습니다.
특정 데이터베이스를 가져오거나 내보낼 수 있나요?
예. 인스턴스에서 특정 데이터베이스 또는 모든 데이터베이스를 가져오거나 내보낼 수 있습니다. 자세한 내용은 데이터 가져오기 및 내보내기 권장사항을 참조하세요.
CSV 파일을 가져오거나 내보낼 수 있나요?
CSV는 현재 SQL Server용 Cloud SQL에서 지원되지 않습니다.
인스턴스로 데이터를 가져오거나 내보내려면 Cloud Storage 계정이 필요한가요?
Cloud SQL에서는 데이터베이스 가져오기 및 내보내기를 지원합니다. 자세한 내용은 SQL 덤프 파일을 사용하여 내보내기 및 가져오기 BAK 파일을 사용하여 내보내기 및 가져오기를 참조하세요.
인스턴스를 삭제하면 인스턴스 이름을 다시 사용할 수 있나요?
예.
Cloud SQL은 어느 정도 수준의 트랜잭션 격리를 제공하나요?

SQL Server 인스턴스: Cloud SQL은 모든 트랜잭션 격리 수준을 제공합니다. 따라서 UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SNAPSHOT, SERIALIZABLE이 지원됩니다.

인스턴스를 실수로 삭제하지 않도록 보호하려면 어떻게 해야 하나요?
인스턴스를 만들 때 또는 나중에 삭제 보호를 사용 설정할 수 있습니다. 이 설정이 사용 설정된 경우 인스턴스를 삭제하기 전에 이 설정을 중지해야 합니다. 인스턴스 삭제 방지를 참조하세요.
맨 위로

통계

통계에서 샘플 쿼리 계획을 찾을 수 없는 이유는 무엇인가요?
쿼리에 미치는 성능 영향으로 인해 쿼리 계획을 가져오는 샘플 쿼리만 있습니다. 따라서 샘플 쿼리 계획이 표시되지 않을 수 있습니다.
맨 위로

가격 책정 및 결제

Cloud SQL을 사용해보려면 어떻게 해야 하나요?
가장 작은 인스턴스는 db-f1-micro입니다. 이 인스턴스로 서비스를 사용해볼 수 있습니다. 공유 코어 인스턴스에는 SLA가 적용되지 않습니다.
한 프로젝트에서 만들 수 있는 인스턴스 수는 몇 개인가요?
인스턴스 한도에 대한 자세한 내용은 할당량 및 한도를 참조하세요.
데이터베이스 인스턴스의 요구되는 크기는 무엇인가요? RAM은 어느 정도가 필요한가요?
일반적으로 RAM과 CPU를 추가한 대용량 인스턴스를 선택하면 데이터베이스 성능이 향상될 수 있습니다. 이렇게 하면 단일 행에 영향을 미치는 업데이트의 성능은 크게 영향을 받지 않지만, 조인, ORDER BY, GROUPing을 포함하는 쿼리 등과 같이 쿼리 수가 많아 대량의 계산이 수반되는 경우에는 성능이 향상됩니다. 하지만 인스턴스 크기가 클수록 운영 지연 시간도 길어집니다. 인스턴스 크기 및 가격에 대한 자세한 내용은 가격 책정 페이지를 참조하세요.
인스턴스 사용량은 어떻게 계산하나요?

인스턴스가 실행되는 동안 분당 요금이 부과됩니다. 또한 Microsoft SQL Server 라이선스에 따라 인스턴스의 가상 CPU마다 하나씩 코어 라이선스가 할당되어야 하며, 인스턴스당 최소 4개의 코어 라이선스가 할당되어야 합니다. vCPU가 4개 미만인 인스턴스의 경우 이 요구사항을 충족하기 위해 라이선스 요율의 4배에 해당하는 금액이 SQL Server 요금으로 부과됩니다. vCPU가 4개 이상인 인스턴스에서는 vCPU 수와 일치하는 SQL Server 라이선스 수에 따른 요금이 청구됩니다.

저장용량은 어떻게 계산하나요?
저장용량은 인스턴스에 프로비저닝된 저장용량에 따라 계산됩니다. 백업용 저장소는 백업이 사용하는 공간 크기에 따라 요금이 부과됩니다. 저장소는 인스턴스가 켜져 있는지와 관계없이 요금이 부과됩니다.
청구될 요금을 어떻게 확인할 수 있나요?
Google Cloud 콘솔결제 탭에는 청구서가 마지막으로 발행된 후 인스턴스에 청구된 요금이 표시됩니다.
인스턴스가 최대 허용 크기에 도달하면 어떻게 되나요?
인스턴스가 프로비저닝된 저장소 크기에 도달하고 저장용량 자동 증가가 사용 설정되지 않았거나 구성된 한도에 도달한 경우, 저장소 크기를 늘릴 때까지 데이터베이스에 대한 추가 쓰기가 허용되지 않습니다. 저장소 크기를 늘리는 데 인스턴스 재시작 또는 다운타임이 필요하지 않습니다.
인스턴스가 정지되는 이유는 무엇인가요?
Google Cloud 계정에 문제가 있을 수 있습니다. 결제 지원 요청을 제출하면 결제 상태를 확인할 수 있습니다. 결제 문제가 해결되면 인스턴스가 몇 시간 내에 실행 가능한 상태로 돌아갑니다. 정지된 MySQL 인스턴스는 90일 후에 삭제됩니다.
인스턴스가 삭제된 이유는 무엇인가요?
90일 동안 정지된 인스턴스는 삭제됩니다. 상태가 SUSPENDED인 인스턴스도 마찬가지입니다. 상태가 RUNNABLE인 중지된 인스턴스는 삭제되지 않습니다.
Cloud SQL 계정을 취소하려면 어떻게 해야 하나요?
Google Cloud 콘솔에서 프로젝트를 선택한 후 API 서비스를 선택하여 API 대시보드를 열어서 프로젝트의 Cloud SQL을 비활성화할 수 있습니다. Cloud SQL API를 찾고 해당 API의 사용 중지를 클릭합니다.
결제를 중지하려면 어떻게 하나요?
프로젝트의 Google Cloud 콘솔 결제 및 설정 창에서 결제 중지를 클릭하여 결제를 중지할 수 있습니다. 결제를 중지하도록 설정하는 경우 Cloud SQL 서비스도 중지하도록 설정됩니다. 결제를 중지하기 전에 Cloud SQL 서비스를 중지해도 좋을지 먼저 확인하세요.

결제를 중지하도록 설정하면 결제 주기 시작 시점과 취소 시점 사이에 발생한 요금에 대해 최종 청구서를 받게 됩니다.

맨 위로

App Engine과 함께 Cloud SQL 사용

App Engine에서 SQL Server 인스턴스로 연결할 수 있나요?
사용 중인 환경 및 언어에 따라 App Engine 애플리케이션에서 SQL Server 인스턴스로 연결할 수 있습니다. 자세한 내용은 App Engine 표준 환경에서 연결 또는 App Engine 가변형 환경에서 연결을 참조하세요.
미국의 App Engine 애플리케이션에서 EU의 Cloud SQL 인스턴스에 액세스할 수 있나요? 또한 반대의 경우도 가능한가요?

Cloud SQL 인스턴스에 연결하는 경우 App Engine 애플리케이션이 동일한 지역에 있을 필요는 없습니다. 그러나 Cloud SQL 인스턴스와 App Engine 애플리케이션 간의 거리가 멀어지면 데이터베이스 연결 지연 시간이 길어집니다.

나에게 맞는 Google Cloud 데이터베이스 서비스는 무엇인가요?
애플리케이션의 요구사항에 따라 다릅니다. Google Cloud는 데이터를 저장, 관리, 검색할 수 있는 다양한 옵션을 제공합니다. 자세한 내용은 Google Cloud 데이터베이스를 참조하세요.
App Engine 개발 서버를 사용하려면 로컬 데이터베이스 서버를 설치해야 하나요?
아니요. 개발 서버에서 실행할 때 Cloud SQL 또는 로컬에 설치된 데이터베이스 서버를 사용하도록 App Engine을 구성할 수 있습니다.
인스턴스 액세스에 사용 가능한 언어는 무엇인가요?
App Engine 표준 환경은 인스턴스에 연결하는 데 사용할 수 있는 여러 가지 언어를 지원합니다. 자세한 내용은 App Engine 표준 환경에서 연결 또는 App Engine 가변형 환경에서 연결을 참조하세요.

App Engine을 사용하지 않는 경우 연결된 커넥터 또는 API가 있는 어떤 언어든지 사용할 수 있습니다.

Django를 Cloud SQL과 함께 사용할 수 있나요?
예. Cloud SQL은 Django와 호환됩니다. Django 시작하기를 참조하세요.
Python 쿼리 문자열에서 사용할 수 있는 자리표시자는 무엇인가요?
Python 사용자는 매개변수 치환 시 %s 형식 코드만 사용할 수 있습니다. 따라서 cursor.execute('INSERT INTO entries (guestAge) VALUES (%d)', (age)) 문은 유효하지 않습니다.
연결을 관리하려면 어떻게 해야 하나요?

연결 풀링 및 지수 백오프 사용을 포함한 효율적인 데이터베이스 연결 관리는 데이터베이스 애플리케이션 개발에 있어 중요한 부분입니다. 이러한 기술을 다양한 언어와 프레임워크에서 활용하는 방법의 예는 데이터베이스 연결 관리를 참조하세요.

인스턴스 연결 제한에 대한 자세한 내용은 할당량 및 한도를 참조하세요.

'잘못된 연결 ID'라는 메시지를 표시하는 SQLException은 무엇을 의미하나요?
서버에서 더 이상 연결이 열려 있지 않으므로 클라이언트에서 연결이 삭제된다는 의미입니다.  이 경우 이미 종료되었기 때문에 '종료'를 호출할 필요는 없습니다.
App Engine 외부에서 프로그래매틱 방식으로 Cloud SQL 인스턴스에 액세스할 수 있나요?
예. 지원되는 언어를 사용하여 외부 애플리케이션에서 프로그래매틱 방식으로 Cloud SQL 인스턴스에 액세스할 수 있습니다. 연결 개요를 참조하세요.
맨 위로