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
- 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.
- 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.
- 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.
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.
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.
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.
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.