Cloud SQL'e bağlanma: Genel IP ve yetkili ağlar

1. Giriş

Son güncelleme: 2020-05-04

Bağlantı hakkında düşünme

Piyasada birçok uygulama ve çerçeve türü vardır. Bu codelab'de, Cloud SQL'e her yerden bağlanmayı ele alacağız. Bağlantı kurma özelliği, bağlantı kurmasına izin verilen IP'lerin açıkça yetkilendirilmesiyle etkinleştirilir. Bu yöntem, Cloud SQL veritabanına bağlanmak için muhtemelen en az güvenli seçenektir ancak kurulumu ve kullanmaya başlaması da en kolay yöntemdir.

Bazen bunu üretimde yapmak gerekebilir ancak bu işlemi yapmaktan kaçınabiliyorsanız daha güvenli bir alternatifi (ör. Cloud SQL Proxy'yi kullanma) tercih etmelisiniz. Bu kurulum, geliştirme ve test için en uygun seçenektir.

Ne oluşturacaksınız?

Bu codelab çok minimalisttir. Buradaki amaç, uygulamanın kendisi hakkında çok fazla düşünmeden bağlantı kısmının temel unsurlarını size adım adım anlatmaktır. İdeal durumda, Cloud SQL'e bağlanmak diğer SQL veritabanı örneklerine bağlanmak gibidir. Bu nedenle, bu codelab'de oluşturduğunuz öğeleri alıp herhangi bir üretim uygulamasına uygulayabilirsiniz.

Talimatlarda, GCP Console'da işlemlerin nasıl yapılacağı ve komut satırında veya otomasyonda kullanılacak gcloud komutlarının eşdeğerleri yer alır.

Adımlar şunlardır:

  • Cloud SQL örneği oluşturun (bu eğitimde Postgres kullanılmaktadır ancak MySQL veya SQL Server için de benzer şekilde çalışır) ve bağlanmasına izin verilen belirli IP'leri yetkilendirin.

Gerekenler

  • API'leri etkinleştirme ve hizmet oluşturma iznine sahip olduğunuz bir GCP hesabı
  • Bağlantıyı doğrulamak için yüklenen Postgres istemcisi (veya Postgres yerine MySQL kullanmak istiyorsanız MySQL istemcisi)

2. Cloud SQL örneğini oluşturma

Cloud SQL, yönetilen ilişkisel veritabanı teklifimizdir. MySQL, PostgreSQL ve SQL Server'ı destekler. Bu codelab'de bir Postgres veritabanı oluşturacağız ancak talimatlar üçü için de benzerdir.

Konsolda

Cloud SQL sayfasına gidip 241836b315e11bf5.png düğmesini tıklayın.

Belirttiğim gibi, bu codelab'in çoğu herhangi bir SQL türü için geçerlidir ancak bu codelab için PostgreSQL'i seçin.

  1. Örneğinize kimlik verme
  2. Bulunduğunuz yere yakın bir bölge seçin.
  3. Varsayılan kullanıcı için bir şifre girin (kullanıcı adı, seçilen veritabanı için varsayılan olur. Örneğin, MySQL için root veya PostgreSQL için postgres)
  4. Aşağı kaydırıp show configuration options
  5. Connectivity bölümünü genişletin.
  6. Public IP işaretli, Private IP ise işaretli değilse
  7. 883b32ec2734de01.png düğmesini tıklayın.
  8. Bağlandığınız yerin IP adresini alın. En kolay yöntem, Google'da "IP adresim nedir?" araması yapmaktır. Arama sonuçlarında herkese açık IP adresiniz gösterilir.
  1. IP belirtimini ağ alanına girin, isterseniz bir ad verin ve New Network kutusunda Bitti'yi tıklayın.
  2. Aşağı kaydırıp Oluştur'u tıklayın.

Örneğin başlatılması genellikle birkaç dakika sürer.

Örnek oluşturma işlemi tamamlandıktan sonra listede örneği tıklayın ve genel bakış sayfasındaki Connect to this instance başlığı altında listelenen public IP address değerini kopyalayın. Tam olarak oluşturulmadan önce ayrıntıları tıklayabilseniz de örnek tamamen oluşturulana kadar orada görünmez.

gcloud'u kullanma

Öncelikle Cloud SQL örneğine bağlanmak için yetkilendirmek istediğiniz IP adresini almanız gerekir. Bunu yapmanın en kolay yolu bir tarayıcı açıp "IP adresim nedir?" ifadesini aratmaktır. Arama sonuçlarında herkese açık IP adresiniz gösterilir. Ancak bu işlemi yaparken tarayıcı açma olanağınız yoksa dig gibi bir yardımcı program kullanabilirsiniz.

dig @resolver1.opendns.com ANY myip.opendns.com +short -4

Cloud SQL örneğiniz için bulunduğunuz yere en yakın bölgeyi belirtmeniz gerekir. Aşağıdaki komutu çalıştırarak bölgelerin listesini görebilirsiniz:

gcloud sql tiers list

Her katman yalnızca belirli bölgelerde kullanılabilir. Eğitimin gcloud bölümünde yalnızca bir mikro örnek oluşturuyoruz. Bu nedenle, bu katman için kullanılabilen bölgeleri özellikle çalıştırarak bulabilirsiniz (grep yüklü olduğu sürece):

gcloud sql tiers list | grep db-f1-micro

Örneğin, <AUTHORIZED_IP> yerine tarayıcıdan veya dig'den aldığınız IP'yi, <REGION> yerine size yakın bir bölgeyi ve kök kullanıcı "postgres" için bir şifreyi girerek örneği oluşturma komutu şu şekilde görünür:

gcloud sql instances create sql-codelab-00 --database-version=POSTGRES_11 --tier=db-f1-micro --region=<REGION> --authorized-networks=<AUTHORIZED_IP> --root-password=<PASSWORD>

Bu işlemin tamamlanması birkaç dakika sürebilir.

İşlem tamamlandığında, CLI'daki çıkışta örneğin PRIMARY_ADDRESS listelenir. Bir sonraki adımda kullanmak için bunu kopyalayın.

3. Bağlantıyı test etme ve sonlandırma

Örneğin doğru şekilde ayarlandığını doğrulamak için IP adresini girdiğiniz makinede komut satırında şunu çalıştırabilirsiniz:

psql "host=<IP copied from previous step> port=5432 sslmode=disable user=postgres"

Ardından, Cloud SQL örneğini oluştururken belirlediğiniz varsayılan kullanıcının şifresini belirtin.

Tebrikler! Her şey yolunda gittiyse Postgres istemini görmeniz ve veritabanınızda komut çalıştırmanız gerekir.

Yapabilecekleriniz

Şu codelab'lere göz atın:

Referans belgeler