본 포스트는 2024년 Google Study Jam을 공부하면서 개인적으로 내용을 정리한 포스트 입니다.
AlloyDB - Database Fundamentals
AlloyDB는 성능, 가용성, 확장성을 지원하는 완전 관리형의 PostgreSQL 호환 데이터 베이스이다.
백업, 복제, 패치 적용, 용량 관리와 같은 관리 태스크를 자동화하고 PostgreSQL 데이터 제거 관리, 스토리지 및 메모리 관리, 데이터 계층화, 분석 가속화를 위한 적응형 알고리즘 및 머신러닝을 사용하여 사용자가 애플리케이션 빌드에만 집중할 수 있도록 도와준다.
빠른 트랜잭션 처리
AlloyDB는 트랜잭션 워크로드에서 표준 PostgreSQL보다 4배 더 빠릅니다. 높은 트랜잭션 처리량, 대규모 데이터 크기, 여러 읽기 복제본이 필요한 워크로드를 포함하여 가장 까다로운 엔터프라이즈 워크로드에 적합합니다. 읽기 연결은 수평으로 확장되고, 낮은 지연 시간의 수평 확장된 읽기 복제본 풀로 지원되며, 리전 간 복제본을 지원합니다.
고가용성
AlloyDB는 유지보수를 포함하여 99.99% 업타임 SLA를 제공합니다. 데이터베이스 크기 및 로드에 관계없이 대부분의 데이터베이스 장애를 자동으로 감지하고 60초 이내에 복구합니다. 이 아키텍처가 무중단 인스턴스 크기 조절 및 데이터베이스 유지보수를 지원합니다.
실시간 비즈니스 인사이트
AlloyDB는 분석 쿼리에 대해 표준 PostgreSQL보다 최대 100배 빠르고, 비즈니스 인텔리전스, 보고, 하이브리드 트랜잭션 및 분석 워크로드(HTAP)를 실행할 때 운영 성능에 영향을 주지 않습니다. Google의 인공지능 플랫폼인 Vertex AI와의 기본 통합으로 애플리케이션 코드를 작성할 필요 없이 쿼리 또는 트랜잭션 내에서 직접 생성형 AI 모델을 포함한 머신러닝 모델을 호출할 수 있습니다.
Task1. Create a cluster and instance
AlloyDB를 사용하기 위해 instance를 생성해야 한다.
1. 네비게이션 메뉴 밑에 Databases > AlloyDB for PostgreSQL > Cluster를 클릭한다.
2. 그 다음 페이지 상단에 Create Cluster를 클릭한다.
3. 마법사의 cluster type to start with의 옵션 목록에서 Highly Available를 선택한다.
4. Configure your cluster 섹션에서 다음 필드를 채운다. 아래 나열된 Region 값을 선택하고 나머지는 기본값으로 둔다.
Item | Value |
Cluster ID | lab-cluster |
Password | Change3Me |
Region | us-central1 |
Network | peering-network |
5. Continue을 클릭하고 Configure your primary instance에 instance ID를 lab-instance로 설정한다.
6. machine type은 2 vCPU, 16GB로 설정한다.
7. 아래쪽으로 스크롤해서 Create Cluster를 클릭한다.
Task2. Create tables and insert data in your database
PostgreSQL 클라이언트가 포함된 alloydb-client 이름의 VM가 제공된다.
1. 네비게이션 메뉴 밑에 Compute Engine > VM instances를 클릭한다.
2. alloydb-client라는 이름의 인스턴스의 Connect 열에서 SSH를 클릭하여 터미널 창을 연다.
3. ALLOYDB_ADDRESS 환경변수를 AlloyDB 인스턴스의 개인 IP 주소로 바꾼다.
export ALLOYDB=ALLOYDB_ADDRESS
4. 다음 명령을 실행하여 AlloyDB 인스턴스의 개인 IP 주소를 AlloyDB 클라이언트 VM에 저장하여 랩 전체에 유지되도록 한다.
echo $ALLOYDB > alloydbip.txt
5. 다음 명령을 실행해서 PostgreSQL 클라이언트를 시작한다. 클러스터를 생성할 때 입력한 postgres 사용자 비밀번호(Change3Me)를 제공하라는 메시지가 표시된다.
psql -h $ALLOYDB -U postgres
6. 다음 SQL Query문을 입력해서 새로운 테이블인 regions를 만든다.
CREATE TABLE regions (
region_id bigint NOT NULL,
region_name varchar(25)
) ;
ALTER TABLE regions ADD PRIMARY KEY (region_id);
7. regions 테이블에 SQL Query문을 통해 데이터를 넣는다.
INSERT INTO regions VALUES ( 1, 'Europe' );
INSERT INTO regions VALUES ( 2, 'Americas' );
INSERT INTO regions VALUES ( 3, 'Asia' );
INSERT INTO regions VALUES ( 4, 'Middle East and Africa' );
8. SELECT로 데이터를 확인한다.
SELECT region_id, region_name from regions;
9. \q로 PostgreSQL 클라이언트를 종료한다.
10. SQL문을 입력하는 것 말고 다른방법으로 DDL, DML을 수행하는 방법은 .sql 파일을 이용하는 것이다. 다음 명령어로 .sql 파일을 다운받는다.
gsutil cp gs://cloud-training/OCBL403/hrm_load.sql hrm_load.sql
11. PostgreSQL 클라이언트에 다시 재연결하고 sql 파일을 로드한 다음, 테이블을 본다.
psql -h $ALLOYDB -U postgres
\i hrm_load.sql
\dt
12. 테이블의 데이터 확인을 위해 무작위 쿼리를 실행한다.
select job_title, max_salary
from jobs
order by max_salary desc;
Task3. Use the Google Cloud CLI with AlloyDB
Google Cloud 서비스는 gcloud 라는 명령줄 도구를 통해서도 관리할 수 있다.
gcloud CLI를 사용하는 가장 쉬운 방법은 Cloud Shell을 사용하는 것이지만, 다양한 운영 체제에 설치할 수도 있다.
1. gcloud를 통해 AlloyDB 클러스터 인스턴스를 만드는 것은 매우 간단하다.
2. Cloud Shell에서 아래 명령을 사용하여 새 AlloyDB 클러스터를 만든다.
gcloud beta alloydb clusters create gcloud-lab-cluster \
--password=Change3Me \
--network=peering-network \
--region=Default Region \
--project=Project ID
3. 클러스터가 생성되면 다음 명령을 실행하여 기본 인스턴스를 생성한다.(인스턴스 생성 프로세스는 7 ~9 분이 소요된다.)
gcloud beta alloydb instances create gcloud-lab-instance\
--instance-type=PRIMARY \
--cpu-count=2 \
--region=Default Region \
--cluster=gcloud-lab-cluster \
--project=Project ID
4. 프로세스가 완료되면 다음 명령을 통해 프로젝트에서 사용할 수 있는 AlloyDB 클러스터 인스턴스를 나열할 수 있다.
이전에 만든 인스턴스 lab-cluster와 방금 만든 인스턴스 gcloud-lab-cluster가 목록에 반환다.
gcloud beta alloydb clusters list
Task4. Deleting a cluster
1. 클러스터를 삭제하는 매우 빠른 방법은 CLI를 사용하는 것이다. --force 옵션은 모든 종속 인스턴스도 삭제한다. 또 다른 방법으로 Cloud Console을 사용하는 것이다.
gcloud beta alloydb clusters delete gcloud-lab-cluster \
--force \
--region=us-west1 \
--project=qwiklabs-gcp-00-621f7c61e7a6
2. 삭제 완료를 확인하기 위해 다음 명령어를 실행한다. 메시지가 나타나면 Y를 누르기.
gcloud beta alloydb clusters list