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

1. Giriş

Son Güncelleme Tarihi: 04.05.2020

Bağlantı kurma

Birçok türde uygulama ve çerçeve bulunur. Bu codelab'de, dilediğiniz yerden Cloud SQL'e bağlanma konusunu ele alacağız. Bağlanma özelliği, açıkça bağlanmasına izin verilen IP'lerin yetkilendirilmesiyle etkinleştirilir. Cloud SQL veritabanına bağlanmak için muhtemelen en az güvenli olan bu seçenek, aynı zamanda kurulumu ve kullanmaya başlaması en kolay seçenektir.

Bazen bunu üretimde yapmak gerekir ancak bunu önleyebilirseniz daha güvenli bir alternatifi (ör. Cloud SQL Proxy'yi kullanma) tercih etmeniz gerekir. Bu kurulum, en iyi geliştirme ve test işlemleri için uygundur.

Oluşturacaklarınız

Bu codelab son derece minimalisttir. Buradaki amaç, uygulamanın kendisini çok fazla düşünmeden bağlantı parçasının somunları arasında size yol göstermektir. Mükemmel bir kullanım için Cloud SQL'e bağlanmak, bir SQL veritabanının diğer örneğine bağlanmaya benzer. Bu nedenle, bu codelab'de oluşturduğunuz öğeleri alıp herhangi bir üretim uygulamasına uygulayabilmeniz gerekir.

Talimatlar, hem GCP Console'da neler yapmanın adım adım açıklamalı kılavuzunu hem de CLI veya otomasyonda kullanmak üzere gcloud komutu eşdeğerlerini içerir.

Adımlar tek tek şunlardır:

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

Gerekenler

  • API'leri etkinleştirme ve hizmet oluşturma izinlerine 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, sunduğumuz yönetilen ilişkisel veritabanlarıdır. MySQL, PostgreSQL ve SQL Server'ı destekler. Bu codelab için Postgres veritabanı oluşturacağız ancak üçü için de talimatlar benzerdir.

Konsolda

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

Bahsettiğim gibi, bu codelab'in çoğu tüm SQL türlerine genel bir bakış sağlar ancak bu codelab'de PostgreSQL'i seçin.

  1. Örneğinize bir kimlik verin
  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 DB için varsayılan ayardır, ör. MySQL için root veya PostgreSQL için postgres)
  4. Aşağı kaydırın ve show configuration options simgesini tıklayın
  5. Connectivity bölümünü genişlet
  6. Public IP öğesinin ve Private IP öğesinin işaretli olmadığını onaylayın
  7. 883b32ec2734de01.png düğmesini tıklayın
  8. Bağlandığınız IP adresini alın. En kolay yöntem, "IP adresim nedir?" şeklinde bir Google araması yapmaktır ve arama sonuçlarında IP'nizin herkese açık olması gerekir.
  1. Ağ alanına IP spesifikasyonunu girin, isterseniz bir ad verin ve New Network kutusunda Bitti'yi tıklayın.
  2. Sayfayı aşağı kaydırın ve Oluştur'u tıklayın.

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

Örnek oluşturulduktan sonra listede tıklayın ve genel bakış sayfasındaki Connect to this instance başlığı altında, burada listelenen public IP address değerini kopyalayın. Örnek tam olarak oluşturulmadan önce ayrıntıları tıklayabilirsiniz, ancak örnek tamamen oluşturulana kadar gerekli değildir.

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 aramaktır. ve arama sonuçlarında, herkese açık IP adresiniz yer alır. Ancak, bu işlemi yaptığınız yerde tarayıcıyı açamıyorsanız 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ğiticinin gcloud bölümü için sadece bir mikro örnek oluşturuyoruz. Böylece, özel olarak çalıştırarak (grep yüklü olduğu sürece) bu katmanın kullanılabilir olduğu bölgeleri bulabilirsiniz:

gcloud sql tiers list | grep db-f1-micro

Örneği oluşturmak için kullanılacak komut aşağıdaki gibi görünür (<AUTHORIZED_IP> yerine tarayıcıdan veya özgeçmişten aldığınız IP'yi, <REGION> kısmını da size yakın bir tane ve "postgres" kök kullanıcısı için bir şifre ile değiştirmeyi unutmayın):

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ıktan sonra CLI'daki çıkışta, örneğin PRIMARY_ADDRESS listelenir. Sonraki adım için bu mesajı kopyalayın.

3. Bağlantıyı ve süreci test edin.

Örneğin doğru şekilde kurulduğunu doğrulamak için girdiğiniz IP adresinden aşağıdaki komut satırını çalıştırabilirsiniz:

psql "host=<önceki adımdan kopyalandı> bağlantı noktası=5432 sslmode=devre dışı bırak user=postgres"

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

Tebrikler! Her şey yolunda gittiyse Postgres istemi görüntülenir ve veritabanınızda komut çalıştırabilirsiniz.

Sırada ne var?

Bu codelab'lerden bazılarına göz atın...

Referans belgeler