Cloud Run İşi ile AlloyDB veritabanı oluşturma

1. Genel Bakış

Bu laboratuvarda, Cloud Run İşi ile bir AlloyDB veritabanı oluşturacaksınız. Cloud Run İşi ile AlloyDB Veritabanı arasındaki bağlantıyı Özel IP kullanarak etkinleştirmek için Özel hizmet erişimini ve Sunucusuz VPC erişimini yapılandıracaksınız.

Öğrenecekleriniz

Bu laboratuvarda aşağıdakileri nasıl yapacağınızı öğreneceksiniz:

  • AlloyDB kümesini ve örneğini ayarlama
  • AlloyDB veritabanı oluşturmak için Cloud Run İşini dağıtma

2. Kurulum ve Gereksinimler

Cloud projesi kurulumu

  1. Google Cloud Console'da oturum açıp yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. İstediğiniz zaman güncelleyebilirsiniz.
  • Proje Kimliği, tüm Google Cloud projelerinde benzersiz olmalıdır ve değiştirilemez (belirlendikten sonra değiştirilemez). Cloud Console, otomatik olarak benzersiz bir dize oluşturur. bunun ne olduğunu umursamıyorsunuz. Çoğu codelab'de proje kimliğini (genellikle PROJECT_ID olarak tanımlanır) referans almanız gerekir. Oluşturulan kimliği beğenmezseniz rastgele bir kimlik daha oluşturabilirsiniz. Alternatif olarak, kendi ölçümünüzü deneyip mevcut olup olmadığına bakabilirsiniz. Bu adımdan sonra değiştirilemez ve proje süresince kalır.
  • Bilginiz için bazı API'lerin kullandığı üçüncü bir değer, yani Proje Numarası daha vardır. Bu değerlerin üçü hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
  1. Sonraki adımda, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i çalıştırmanın maliyeti, yüksek değildir. Bu eğitim dışında faturalandırma yapılmaması için kaynakları kapatmak isterseniz oluşturduğunuz kaynakları silebilir veya projenin tamamını silebilirsiniz. Yeni Google Cloud kullanıcıları, 300 ABD doları değerindeki ücretsiz denemeden yararlanabilir.

Ortam Kurulumu

Arama çubuğunun sağındaki simgeyi tıklayarak Cloud Shell'i etkinleştirin.

eb0157a992f16fa3.png

Hizmet API'lerini etkinleştirmek için aşağıdaki komutu kopyalayıp terminale yapıştırın ve Enter tuşuna basın:

gcloud services enable \
    alloydb.googleapis.com \
    artifactregistry.googleapis.com \
    cloudbuild.googleapis.com \
    run.googleapis.com \
    vpcaccess.googleapis.com \
    compute.googleapis.com \
    servicenetworking.googleapis.com \
    --quiet

Ortam değişkenlerini ayarlayın:

export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
export PROJECT_NAME=$(gcloud projects describe $PROJECT_ID --format='value(name)')
export DB_DATABASE=test
export DB_USER=postgres
export DB_PASSWORD=password123
export REGION=us-central1
export CLUSTER=test-cluster
export INSTANCE=test-instance
export VPC_CONNECTOR=vpcconnector

3. AlloyDB kümesi kurma ve oluşturma

Kurulum için gerekli izinleri ayarlayın. Bu işlem, Cloud Run İşi'nin AlloyDB veritabanına bağlanmasına izin verir.

gcloud projects add-iam-policy-binding $PROJECT_NAME \
  --member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
  --role="roles/alloydb.client"

Özel hizmetlere erişimi yapılandırma

Özel hizmetler erişimi, VPC ağınız ile AlloyDB kaynaklarınızın (kümeler ve örnekler) bulunduğu temel Google Cloud VPC ağı arasında bir VPC eşleme bağlantısı olarak uygulanır. Özel bağlantı, VPC ağınızdaki kaynakların dahili IP adreslerini kullanarak yalnızca eriştikleri AlloyDB kaynaklarıyla iletişim kurmasını sağlar. VPC ağınızdaki kaynakların AlloyDB kaynaklarına erişmek için internet erişimine veya harici IP adreslerine ihtiyacı yoktur.

AlloyDB ile aynı Cloud projesinde bulunan bir VPC ağında özel hizmet erişimi yapılandırması oluşturmak için iki işlem yapmanız gerekir:

VPC ağında ayrılmış bir IP adresi aralığı oluşturun.

gcloud compute addresses create google-managed-services-default \
    --global \
    --purpose=VPC_PEERING \
    --prefix-length=20 \
    --network=projects/$PROJECT_ID/global/networks/default

VPC ağı ile temel Google Cloud VPC ağı arasında özel bir bağlantı oluşturun. Bu adım yaklaşık 2 dakika sürer.

gcloud services vpc-peerings connect \
    --service=servicenetworking.googleapis.com \
    --ranges=google-managed-services-default \
    --network=default \
    --project=$PROJECT_ID

AlloyDB kümesi oluşturun.

gcloud beta alloydb clusters create $CLUSTER \
    --password=$DB_PASSWORD \
    --network=default \
    --region=$REGION \
    --project=$PROJECT_NAME

gcloud beta alloydb clusters describe $CLUSTER --region=$REGION

AlloyDB örneği oluşturun. Bu adım yaklaşık 10 dakika sürer.

gcloud beta alloydb instances create $INSTANCE \
    --cluster=$CLUSTER \
    --region=$REGION \
    --instance-type=PRIMARY \
    --cpu-count=2 \
    --project=$PROJECT_NAME

gcloud beta alloydb instances describe $INSTANCE \
    --cluster=$CLUSTER \
    --region $REGION

Cloud Console'da oluşturulan kümeyi inceleyin.

568d273c0e0d6408.png

Veritabanı IP adresini bir değişkene kaydedin."

export DB_HOST=$(gcloud beta alloydb instances describe $INSTANCE \
    --cluster=$CLUSTER \
    --region=$REGION \
    --format=json | jq \
    --raw-output ".ipAddress")

echo "DB_HOST=$DB_HOST"

4. Cloud Run iş kodunu keşfetme

AlloyDB veritabanı oluşturmanın birden fazla yolu vardır. Birincisi, Compute Engine sanal makinesi oluşturmak, psql istemcisi yüklemek ve ardından veritabanı oluşturmak için örneğe bağlanmaktır. Bu yaklaşım hakkında daha fazla bilgiye buradan ulaşabilirsiniz.

Bu laboratuvarda, Cloud Run İşi'ni kullanarak yeni bir AlloyDB veritabanı oluşturacaksınız.

Aşağıdaki dosyaları inceleyin:

  • Dockerfile - gerekli bağımlılıkları yükler(postgresql-client)
  • script.sh - veritabanı oluşturmak için komut satırı yardımcı programlarını kullanır

Cloud Shell'de yeni klasör oluşturun:

mkdir ~/alloy-db-cloud-run-job
cd ~/alloy-db-cloud-run-job 

Yeni dosya oluştur Dockerfile:

cat > Dockerfile <<EOF
FROM ubuntu:latest
RUN apt-get update && apt-get install -y postgresql-client && apt-get clean
COPY script.sh /
RUN chmod +x /script.sh
CMD ["/script.sh"]
ENTRYPOINT ["/bin/bash"]
EOF

Aşağıdaki içeriğe sahip yeni script.sh dosyası oluşturun:

echo "Connecting to $DB_HOST"
createdb -h $DB_HOST -p 5432 $PGDB
echo "Created $PGDB database"

psql -h $DB_HOST -l

script.sh dosyasındaki izni değiştirin:

chmod +x script.sh

5. Cloud Run İşini Dağıtma

Sunucusuz VPC erişimini yapılandırın. Bu, Cloud Run İşi'nin dahili/özel IP kullanarak AlloyDB kümesiyle iletişim kurmasına olanak tanır. Bu adım yaklaşık 2 dakika sürer.

gcloud compute networks vpc-access connectors create ${VPC_CONNECTOR} \
    --region=${REGION} \
    --range=10.8.0.0/28

Container görüntülerini depolamak için Artifact Registry deposu oluşturun.

gcloud artifacts repositories create db-job-repository \
  --repository-format=docker \
  --location=$REGION

Container görüntüsü derleyip Artifact Registry'de yayınlayın.

gcloud builds submit -t $REGION-docker.pkg.dev/$PROJECT_NAME/db-job-repository/db-job:latest

Cloud Run İşini dağıtma

gcloud beta run jobs create db-job \
    --image=$REGION-docker.pkg.dev/$PROJECT_NAME/db-job-repository/db-job:latest \
    --set-env-vars DB_HOST=$DB_HOST \
    --set-env-vars PGUSER=$DB_USER \
    --set-env-vars PGPASSWORD=$DB_PASSWORD \
    --set-env-vars PGDB=$DB_DATABASE \
    --vpc-connector $VPC_CONNECTOR \
    --region $REGION

İşi oluşturmak için kullanılan inceleme işaretleri:

--vpc-connector - Cloud Run İşi, AlloyDB Özel IP adresine erişmek için VPC bağlayıcısını kullanır.

Cloud Console'da oluşturulan işi inceleyin.

93d8224eca8c687f.png

test veritabanı oluşturmak için Cloud Run İşi yürütün.

gcloud beta run jobs execute db-job --region $REGION

Cloud Console'da Cloud Run İş günlüklerini inceleyin.

3f2269736b53f44c.png

6. Tebrikler!

Tebrikler, codelab'i tamamladınız.

İşlediğimiz konular:

  • AlloyDB kümesi ve örneği oluşturma
  • Cloud Run İşini kullanarak AlloyDB veritabanı oluşturma

Temizleme

Bu eğiticide kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini istemiyorsanız kaynakları içeren projeyi silin veya projeyi tutup tek tek kaynakları silin.

Projeyi silme

Faturalandırmayı ortadan kaldırmanın en kolay yolu, eğitim için oluşturduğunuz projeyi silmektir.