1. 소개
이 Codelab에서는 Private Service Connect가 서비스 프로듀서로 배포된 Cloud SQL에 대한 Southbound 연결을 실행합니다.
Private Service Connect는 소비자가 VPC 네트워크 내부에서 비공개로 관리형 서비스에 액세스할 수 있도록 허용하는 Google Cloud Networking 기능입니다. 마찬가지로 이를 이용해 관리형 서비스 프로듀서는 이러한 서비스를 별도의 개별 VPC 네트워크에서 호스팅하고 소비자에게 비공개 연결을 제공할 수 있습니다. 예를 들어 Private Service Connect를 사용하여 Looker에 액세스하는 경우 사용자는 서비스 소비자이고 Google은 서비스 프로듀서입니다(그림 1 참고).
역방향 PSC라고도 하는 업스트림 액세스를 사용하면 소비자가 게시된 서비스를 프로듀서로 만들어 Looker가 VPC의 온프레미스 엔드포인트, 관리형 서비스, 인터넷에 액세스하도록 허용할 수 있습니다. 그림 2와 같이 Looker PSC가 배포된 위치와 관계없이 모든 리전에 southbound 연결을 배포할 수 있습니다.
학습할 내용
- Private Service Connect Cloud SQL 인스턴스 제작자 서비스 만들기
- Looker에서 서비스 소비자로 Private Service Connect 엔드포인트 만들기
필요한 항목
- 소유자 권한이 있는 Google Cloud 프로젝트
- 기존 Looker PSC 인스턴스
2. 빌드할 항목
서비스 소비자로 Looker PSC와 연결된 서비스 프로듀서로 배포된 Cloud SQL PSC 인스턴스를 설정합니다.
다음 작업은 Producer 서비스에 대한 액세스 권한을 확인합니다.
- Looker에서 제작자 서비스 연결과 연결된 PSC 엔드포인트 만들기
- Looker Console을 사용하여 Cloud SQL PSC에 대한 데이터베이스 연결 만들기
- 사전 정의된 스키마를 인증하고 액세스하여 Cloud SQL PSC에 대한 연결 테스트
3. Codelab 토폴로지
4. 설정 및 요구사항
자습형 환경 설정
- Google Cloud Console에 로그인하여 새 프로젝트를 만들거나 기존 프로젝트를 재사용합니다. 아직 Gmail이나 Google Workspace 계정이 없는 경우 계정을 만들어야 합니다.
- 프로젝트 이름은 이 프로젝트 참가자의 표시 이름입니다. 이는 Google API에서 사용하지 않는 문자열이며 언제든지 업데이트할 수 있습니다.
- 프로젝트 ID는 모든 Google Cloud 프로젝트에서 고유하며, 변경할 수 없습니다(설정된 후에는 변경할 수 없음). Cloud 콘솔은 고유한 문자열을 자동으로 생성합니다. 일반적으로는 신경 쓰지 않아도 됩니다. 대부분의 Codelab에서는 프로젝트 ID (일반적으로
PROJECT_ID
로 식별됨)를 참조해야 합니다. 생성된 ID가 마음에 들지 않으면 다른 임의 ID를 생성할 수 있습니다. 또는 직접 시도해 보고 사용 가능한지 확인할 수도 있습니다. 이 단계 이후에는 변경할 수 없으며 프로젝트 기간 동안 유지됩니다. - 참고로 세 번째 값은 일부 API에서 사용하는 프로젝트 번호입니다. 이 세 가지 값에 대한 자세한 내용은 문서를 참고하세요.
- 다음으로 Cloud 리소스/API를 사용하려면 Cloud 콘솔에서 결제를 사용 설정해야 합니다. 이 Codelab 실행에는 많은 비용이 들지 않습니다. 이 튜토리얼이 끝난 후에 요금이 청구되지 않도록 리소스를 종료하려면 만든 리소스 또는 프로젝트를 삭제하면 됩니다. Google Cloud 신규 사용자는 300달러(USD) 상당의 무료 체험판 프로그램에 참여할 수 있습니다.
Cloud Shell 시작
Google Cloud를 노트북에서 원격으로 실행할 수 있지만, 이 Codelab에서는 Cloud에서 실행되는 명령줄 환경인 Google Cloud Shell을 사용합니다.
Google Cloud Console의 오른쪽 상단 툴바에 있는 Cloud Shell 아이콘을 클릭합니다.
환경을 프로비저닝하고 연결하는 데 몇 분 정도 소요됩니다. 완료되면 다음과 같이 표시됩니다.
가상 머신에는 필요한 개발 도구가 모두 들어있습니다. 영구적인 5GB 홈 디렉터리를 제공하고 Google Cloud에서 실행되므로 네트워크 성능과 인증이 크게 개선됩니다. 이 Codelab의 모든 작업은 브라우저 내에서 수행할 수 있습니다. 아무것도 설치할 필요가 없습니다.
5. 시작하기 전에
API 사용 설정
Cloud Shell 내에서 프로젝트 ID가 설정되어 있는지 확인합니다.
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region
필요한 모든 서비스를 사용 설정합니다.
gcloud services enable compute.googleapis.com
6. Looker PSC 프로젝트 식별
Cloud SQL PSC 인스턴스를 만들려면 허용된 PSC 프로젝트를 식별해야 하므로 Cloud SQL 인스턴스를 만들 때 Looker PSC 테넌트 프로젝트를 제공하거나 기존 인스턴스를 사용하는 경우 업데이트해야 합니다.
gcloud를 사용하여 Looker PSC 프로젝트 확인
Cloud Shell에서 [INSTANCE_NAME] 을 Looker PSC 인스턴스 이름으로 업데이트하여 Looker PSC 프로젝트 ID를 가져옵니다.
gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json | grep -i lookerServiceAttachmentUri
예시 출력에서 t7ec792caf2a609d1-tp는 Looker PSC 프로젝트입니다.
gcloud looker instances describe looker-psc-instance --region=us-central1 --format=json | grep -i lookerServiceAttachmentUri
"lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
Cloud Console을 사용하여 Looker PSC 프로젝트 확인
Cloud 콘솔에서 다음 위치로 이동합니다.
Looker → Looker PSC 인스턴스
7. 제작자 Cloud SQL 인스턴스 만들기
다음 섹션에서는 허용된 psc 프로젝트 목록에서 Looker PSC 프로젝트를 지정하는 사전 정의된 비밀번호로 배포된 테스트용 Cloud SQL PSC 인스턴스를 만듭니다.
Cloud SQL PSC 생성
Cloud Shell에서 인스턴스를 만들고 Private Service Connect를 사용 설정하고 [INSTANCE_PROJECT] 를 Looker PSC 프로젝트 ID로 업데이트합니다.
gcloud sql instances create cloud-sql-psc-demo \
--project=$project \
--region=$region \
--enable-private-service-connect \
--allowed-psc-projects=[INSTANCE_PROJECT] \
--availability-type=regional \
--no-assign-ip \
--cpu=2 --memory=4GB \
--database-version=MYSQL_8_0 \
--enable-bin-log \
--root-password=password123
예:
gcloud sql instances create cloud-sql-psc-demo \
--project=$project \
--region=$region \
--enable-private-service-connect \
--allowed-psc-projects=t7ec792caf2a609d1-tp \
--availability-type=regional \
--no-assign-ip \
--cpu=2 --memory=4GB \
--database-version=MYSQL_8_0 \
--enable-bin-log \
--root-password=password123
Cloud SQL 서비스 첨부파일 가져오기
Private Service Connect가 사용 설정된 Cloud SQL 인스턴스를 만든 후 나중에 Looker에서 Private Service Connect 엔드포인트를 만들 때 사용할 서비스 연결 URI를 가져옵니다.
Cloud Shell에서 다음을 실행합니다.
gcloud sql instances describe [INSTANCE_NAME] --project=$project | grep -i pscServiceAttachmentLink
다음 출력 예에서는 서비스 연결 URI를 생성합니다.
projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155
gcloud sql instances describe cloud-sql-psc-demo --project=$project | grep -i pscServiceAttachmentLink:
pscServiceAttachmentLink: projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155
Cloud Console에서 Cloud SQL PSC 서비스 첨부파일을 가져올 수 있습니다.
Cloud 콘솔에서 다음 위치로 이동합니다.
SQL → SQL 인스턴스 → 연결
8. Looker에서 PSC 엔드포인트 연결 설정
다음 섹션에서는 Cloud Shell에서 단일 도메인에 대해 –psc-service-attachment 플래그를 사용하여 Cloud SQL 프로듀서 서비스 연결을 Looker Core PSC와 연결합니다.
Cloud Shell에서 다음 매개변수를 환경에 맞게 업데이트하여 psc 연결을 만듭니다.
- INSTANCE_NAME: Looker (Google Cloud 핵심 서비스) 인스턴스의 이름입니다.
- DOMAIN_1: sql.database1.com
- SERVICE_ATTACHMENT_1: Cloud SQL PSC 인스턴스를 설명할 때 캡처된 URI
- REGION: Looker (Google Cloud 핵심 서비스) 인스턴스가 호스팅되는 리전입니다.
Cloud Shell에서 다음을 실행합니다.
gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION
예:
gcloud looker instances update looker-psc-instance \
--psc-service-attachment domain=sql.database1.com,attachment=projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155 \
--region=us-central1
Cloud Shell에서 serviceAttachments connectionStatus가 'ACCEPTED'인지 확인합니다. Looker PSC INSTANCE_NAME으로 업데이트해야 합니다.
gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json
예:
gcloud looker instances describe looker-psc-instance --region=$region --format=json
예:
user@cloudshell$ gcloud looker instances describe looker-psc-instance --region=$region --format=json
{
"adminSettings": {},
"createTime": "2024-08-23T00:00:45.339063195Z",
"customDomain": {
"domain": "looker.cosmopup.com",
"state": "AVAILABLE"
},
"encryptionConfig": {},
"lookerVersion": "24.14.18",
"name": "projects/project/locations/us-central1/instances/looker-psc-instance",
"platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
"pscConfig": {
"allowedVpcs": [
"projects/project/global/networks/looker-psc-demo",
"projects/project/global/networks/looker-shared-vpc"
],
"lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
"serviceAttachments": [
{
"connectionStatus": "ACCEPTED",
"localFqdn": "sql.database1.com",
"targetServiceAttachmentUri": "projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155"
}
]
},
"pscEnabled": true,
"state": "ACTIVE",
"updateTime": "2024-09-04T14:40:05.613026012Z"
}
Cloud 콘솔에서 PSC 엔드포인트 유효성 검사
Cloud 콘솔에서 PSC 연결을 확인할 수 있습니다.
Cloud 콘솔에서 다음 위치로 이동합니다.
Looker → Looker 인스턴스 → 세부정보
9. Looker PSC를 Cloud SQL PSC와 통합
다음 섹션에서는 Looker Console을 사용하여 Cloud SQL PSC 인스턴스에 대한 데이터베이스 연결을 만듭니다.
관리 → 데이터베이스 → 연결 → 연결 추가를 선택합니다.
아래 스크린샷에 따라 연결 세부정보를 입력하고 연결을 선택합니다.
이제 연결이 구성되었습니다.
10. Looker 연결 유효성 검사
다음 섹션에서는 Looker '테스트' 작업을 사용하여 Looker와 Cloud SQL PSC 인스턴스의 연결을 확인하는 방법을 알아봅니다.
데이터 연결 ADMIN → DATABASE → CONNECTIONS → cloud-sql-psc-demo → Test로 이동합니다.
'테스트'를 선택하면 Looker가 아래와 같이 postgres-database에 연결됩니다.
삭제
단일 Cloud Shell 터미널에서 실험실 구성요소 삭제
gcloud sql instances delete cloud-sql-psc-demo -q
11. 축하합니다
축하합니다. Private Service Connect를 기반으로 하는 Looker Console을 사용하여 Cloud SQL PSC에 대한 연결을 구성하고 유효성을 검사했습니다.
Cloud SQL PSC 인스턴스를 프로듀서 서비스로 만들고 프로듀서 서비스에 연결할 수 있는 Looker PSC 엔드포인트를 만들었습니다.
코스모퍼프는 Codelab이 멋지다고 생각합니다.
다음 단계
다음 Codelab을 확인하세요.
- Private Service Connect를 소비한 서비스 게시 및 사용
- Private Service Connect 및 내부 TCP 프록시 부하 분산기를 사용하여 하이브리드 네트워킹을 통해 온프레미스 서비스에 연결
- 게시된 모든 Private Service Connect Codelab에 액세스