단일 GCE VM에 AlloyDB Omni 배포

1. 소개

이 Codelab에서는 단일 Google Compute Engine (GCE) 가상 머신에 AlloyDB Omni를 배포하는 방법을 보여줍니다. 이 Codelab을 마치면 Rocky Linux 9를 실행하는 단일 GCE VM을 프로비저닝하고 공식 RPM 패키지를 사용하여 AlloyDB Omni를 설치하게 됩니다. 가상 머신에는 필요한 개발 도구가 모두 들어있습니다. 영구적인 20GB 홈 디렉터리를 제공하고 Google Cloud에서 실행되므로 네트워크 성능과 인증이 크게 개선됩니다.

기본 요건

  • Cloud 콘솔에서 Google Cloud 프로젝트 및 Cloud Shell에 액세스할 수 있습니다.
  • Google Cloud SDK (gcloud)가 설치되고 구성되어 있어야 합니다. gcloud 설치에 대한 자세한 내용은 gcloud-install을 참고하세요.

학습할 내용

  • gcloud을 사용하여 AlloyDB Omni용 GCE VM을 만들고 준비하는 방법
  • 단일 Linux 노드에 AlloyDB Omni RPM을 설치하는 방법
  • AlloyDB Omni를 부트스트랩하고 구성하는 방법
  • 로컬 데이터베이스 설치를 확인하는 방법

필요한 항목

  • AlloyDB Omni RPM의 URL 링크를 가져옵니다. 링크는 저장소 URL 서버가 포함된 이메일로 전송됩니다. Codelab 중에 사용할 수 있도록 다음 환경 변수를 초기화하여 URL을 준비합니다.
    export ALLOYDB_OMNI_REPOSITORY_URL="..."
    
  • Google Cloud에 액세스할 수 있는 작동 중인 터미널 이 용도로 Cloud Shell을 사용할 수 있습니다.

2. 설정 및 요구사항

프로젝트 설정

Google Cloud 프로젝트 만들기

  1. Google Cloud 콘솔의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.
  2. Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

Cloud Shell 시작

노트북에서 Google Cloud를 원격으로 운영할 수 있지만, 이 Codelab에서는 클라우드에서 실행되는 명령줄 환경인 Google Cloud Shell을 사용합니다.

Cloud Shell 활성화 아이콘

  1. Google Cloud 콘솔을 열고 오른쪽 상단 툴바에 있는 Cloud Shell 아이콘을 클릭합니다. 다음 방법 중 하나로 Cloud Shell을 열 수도 있습니다.
    • Google Cloud 콘솔을 사용하는 경우 G 키를 누른 다음 S 키를 누릅니다.
    • 이 링크를 클릭합니다.

일반적으로 환경을 프로비저닝하고 연결하는 데 몇 분 정도 소요됩니다. 이 작업이 완료되면 다음과 비슷한 내용이 표시됩니다.

환경이 연결되었음을 보여주는 Google Cloud Shell 터미널{: width="624"}

3. Compute Engine VM 만들기

이 섹션에서는 gcloud 명령줄 도구를 사용하여 단일 Compute Engine (GCE) 가상 머신 (VM)을 만듭니다. AlloyDB Omni RPM와 완전히 호환되는 Rocky Linux 9 이미지를 사용합니다.

  1. 프로젝트 ID, VM 이름, 영역, 리전의 환경 변수를 정의합니다.
    export PROJECT="your-project-id"
    export INSTANCE_NAME="alloydb-omni-vm"
    export ZONE="us-central1-c"
    export REGION="us-central1"
    
  2. Google Cloud 계정 사용자로 로그인하고 기본 프로젝트를 구성합니다.
    gcloud auth login
    gcloud config set project $PROJECT
    
  3. VM에 대한 SSH 연결을 허용하는 방화벽 규칙을 만듭니다.
    gcloud compute firewall-rules create allow-ssh-alloydb-omni \
        --project=$PROJECT \
        --direction=INGRESS \
        --action=allow \
        --rules=tcp:22 \
        --source-ranges="0.0.0.0/0"
    
  4. VM이 공개 IP 주소 없이 생성되므로 VM이 외부 패키지 저장소에 액세스하고 필요한 소프트웨어를 다운로드할 수 있도록 Cloud Router 및 Cloud NAT 게이트웨이를 구성합니다.
    gcloud compute routers create alloydb-omni-router \
        --project=$PROJECT \
        --network=default \
        --region=$REGION
    
    gcloud compute routers nats create alloydb-omni-nat \
        --project=$PROJECT \
        --router=alloydb-omni-router \
        --region=$REGION \
        --nat-all-subnet-ip-ranges \
        --auto-allocate-nat-external-ips
    
  5. VPC 네트워크에 유효한 기본 인터넷 게이트웨이 경로가 있는지 확인합니다. 일부 공유 또는 플레이그라운드 환경에서는 정리 스크립트에 의해 기본 경로가 가끔 삭제됩니다. 이 경로는 Cloud NAT가 아웃바운드 트래픽을 인터넷으로 전달하는 데 필요합니다.
    gcloud compute routes create default-internet-route \
        --project=$PROJECT \
        --network=default \
        --destination-range=0.0.0.0/0 \
        --next-hop-gateway=default-internet-gateway
    
  6. 필요한 사양 (vCPU 16개, 20GB 균형 있는 영구 디스크, Rocky Linux 9)으로 Compute Engine VM 인스턴스를 만듭니다. 보안을 강화하기 위해 --no-address 플래그를 사용하여 VM에 공개 IP 주소가 할당되지 않도록 합니다.
    gcloud compute instances create $INSTANCE_NAME \
        --project=$PROJECT \
        --zone=$ZONE \
        --machine-type=n2-highmem-16 \
        --image-family=rocky-linux-9 \
        --image-project=rocky-linux-cloud \
        --boot-disk-size=20GB \
        --boot-disk-type=pd-balanced \
        --no-address
    
  7. VM이 생성된 후 VM의 상태를 확인합니다.
    gcloud compute instances list --filter="name=$INSTANCE_NAME" --project=$PROJECT
    

4. VM 준비

이 섹션에서는 새로 만든 VM에 연결하고 데이터 디렉터리 설정 및 SELinux 구성 등 운영체제 환경을 준비합니다.

  1. IAP (Identity-Aware Proxy)를 사용하여 SSH를 통해 VM에 연결합니다. VM에 공개 IP 주소가 없으므로 gcloud는 자동으로 IAP를 통해 SSH 연결을 터널링합니다.
    gcloud compute ssh $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --tunnel-through-iap
    
  2. 데이터 디렉터리 및 AlloyDB Omni 저장소 URL에 대한 환경 변수를 VM에 정의합니다. URL을 가입 양식에서 받은 URL로 바꿉니다.
    export PGDATA="/var/lib/alloydbomni"
    export ALLOYDB_OMNI_REPOSITORY_URL="..."
    
  3. AlloyDB Omni가 데이터베이스 파일을 저장할 데이터 디렉터리를 만듭니다.
    sudo mkdir -p $PGDATA
    
  4. AlloyDB Omni 데이터베이스 서비스가 올바르게 실행되도록 SELinux 정책을 구성할 수 있도록 policycoreutils-python-utils 패키지를 설치합니다.
    sudo dnf install -y policycoreutils-python-utils
    

5. AlloyDB Omni 설치

VM이 준비되면 이제 패키지 저장소를 구성하고 AlloyDB Omni RPM 패키지를 설치할 수 있습니다.

  1. 저장소 구성 파일을 만들어 VM에서 YUM 저장소를 구성합니다.
    sudo tee /etc/yum.repos.d/alloydbomni.repo << EOF
    [alloydbomni]
    name=alloydbomni
    baseurl=$ALLOYDB_OMNI_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=https://dl.google.com/linux/linux_signing_key.pub
    EOF
    
  2. 새 저장소가 인식되도록 YUM 캐시를 업데이트합니다.
    sudo yum makecache
    
    참고: AlloyDB Omni RPM 미리보기 출시의 경우 패키지 무결성은 개별 RPM 수준에서 확인됩니다. YUM 저장소 구성을 진행하려면 repo_gpgcheck=0를 구성합니다 .
  3. AlloyDB Omni RPM 패키지 버전 18을 설치합니다.
    sudo dnf install -y alloydbomni18
    

6. AlloyDB Omni 설정

RPM 패키지를 설치한 후 AlloyDB Omni 데이터베이스 서비스를 초기화, 구성, 시작해야 합니다.

  1. PostgreSQL postgres 관리자 사용자의 안전한 비밀번호를 정의합니다.
    export PGPASSWORD="YourStrongPassword123!"
    
  2. AlloyDB Omni 데이터베이스 인스턴스를 초기화합니다.
    sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb
    
  3. AlloyDB Omni 서비스가 맞춤 데이터 디렉터리에서 데이터를 읽고 쓸 수 있도록 SELinux 파일 컨텍스트를 구성한 다음 올바른 보안 컨텍스트를 복원합니다.
    sudo setenforce 0
    
  4. AlloyDB Omni 데이터베이스 인스턴스를 준비합니다.
    sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb
    
  5. (선택사항) AlloyDB Omni 서비스의 실행을 최적화하려면 호스트 설정 유틸리티를 실행하여 권장되는 커널 및 메모리 설정을 자동으로 구성합니다.
    sudo /usr/lib/postgresql/18/bin/alloydbomni18-setup-host
    
  6. AlloyDB Omni systemd 서비스를 사용 설정하고 시작합니다.
    sudo systemctl enable alloydbomni18
    sudo systemctl start alloydbomni18
    
  7. AlloyDB Omni 서비스가 활성 상태이고 정상적으로 실행되고 있는지 확인합니다.
    sudo systemctl status alloydbomni18
    
    Active: active (running)을 나타내는 출력을 확인합니다.

7. AlloyDB Omni 확인

단일 노드 AlloyDB Omni 데이터베이스가 올바르게 작동하는지 확인하려면 패키지와 함께 설치된 표준 PostgreSQL 클라이언트 (psql)를 사용하여 연결합니다.

  1. postgres 사용자로 로컬 데이터베이스 인스턴스에 연결합니다. 이전에 구성한 비밀번호를 입력하라는 메시지가 표시됩니다.
    /usr/lib/postgresql/18/bin/psql -h localhost -U postgres -W
    
  2. 연결이 설정되면 기본 SQL 쿼리를 실행하여 데이터베이스 서버 버전을 확인하고 AlloyDB Omni가 실행 중인지 확인합니다.
    postgres=# SELECT version();
    
    결과 출력은 AlloyDB Omni로 실행되는 PostgreSQL 18을 나타냅니다.
  3. \q를 입력하여 psql 프롬프트를 종료합니다.

8. 정리 및 설문조사

Codelab을 완료한 후에는 원치 않는 요금이 발생하지 않도록 Google Cloud 리소스를 정리할 수 있습니다.

  1. VM의 SSH 세션 연결을 해제하여 로컬 Cloud Shell 터미널로 돌아갑니다.
    exit
    
  2. Compute Engine VM 인스턴스를 삭제합니다.
    gcloud compute instances delete $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --quiet
    
  3. SSH 액세스를 위해 생성된 방화벽 규칙을 삭제합니다.
    gcloud compute firewall-rules delete allow-ssh-alloydb-omni --project=$PROJECT --quiet
    
  4. Cloud NAT 게이트웨이 및 Cloud Router를 삭제합니다.
    gcloud compute routers nats delete alloydb-omni-nat --router=alloydb-omni-router --region=$REGION --project=$PROJECT --quiet
    gcloud compute routers delete alloydb-omni-router --region=$REGION --project=$PROJECT --quiet
    

9. 축하합니다

Codelab을 완료하신 것을 축하드립니다. 단일 Compute Engine 가상 머신에 AlloyDB Omni를 성공적으로 배포하고 구성했습니다.

학습한 내용

  • AlloyDB Omni용 Compute Engine VM을 프로비저닝하고 준비하는 방법
  • AlloyDB Omni 패키지 저장소를 구성하고 RPM을 설치하는 방법
  • systemd를 사용하여 AlloyDB Omni 데이터베이스 서비스를 초기화, 구성, 관리하는 방법
  • 표준 PostgreSQL 도구를 사용하여 데이터베이스 기능을 확인하는 방법

자세한 내용은 AlloyDB Omni 개요를 참고하세요.

10. 설문조사

본 튜토리얼을 어떻게 사용하실 계획인가요?

읽기만 할 계획입니다. 읽은 다음 연습 활동을 완료할 계획입니다.