Google Cloud Platform'a Apache Kafka Kurulumu

Google Cloud Platform'a Apache Kafka Kurulumu

Yakın zamanda bir proje için Google Cloud Platform’da bir Kafka’ya ihtiyacımız oldu. Bunu yapabileceğimiz birden fazla yol olduğunu öğrendim ve farkettim ki bu konu hakkında internette pek de fazla kaynak yok. O yüzden hızlıca, GCP üzerinde bir Kafka uygulaması nasıl kurulur, firewall için hangi rule’ları tanımlamak gerekir ve local’imizdeki bir client ile remote’da kuracağımız Kafka’ya nasıl ulaşırız, bunlardan bahsedeyim.

Hangi yollar mevcut?

Öğrendiğim üç farklı yol var fakat ben bugün ilk iki yolu değil, üçüncü yolu anlatacağım.

  1. Kubernetes Engine üzerine wurstmeister/kafka imajını deploy edebiliriz.
  2. Confluent: Managed Apache Kafka for Google Cloud Platform kullanabiliriz.
  3. GCP Click to Deploy ile Compute Engine üzerindeki bir VM’e Kafka kurabiliriz.

Apache Kafka Kurulumu

  1. Öncelikle GCP console’a kullanıcımız ile giriş yapıyoruz.
  2. Bu linki kullanarak Kafka Click to Deploy’a ulaşıyoruz.
  3. “Launch” butonuna tıklıyoruz. (yaklaşık aylık vm ücreti: $24.75)
  4. Karşımıza VM’in ayarları çıkıyor, burada herhangi bir ayar yapmayabiliriz.
  5. “Deploy” butonuna tıklıyoruz.

Ve Kafka kurulumu başarıyla tamamlandı.

Firewall Rule (Kuralları)

VPC network > Firewall menüsü altından önce firewall’a erişelim. Ardından “Create Firewall Rule” butonuna tıklayarak aşağıdaki rule’ları tanımlayabilirsiniz.

Firewall Rules Table

TCP:22 portuna izin vermemizin sebebi, VM’e ssh bağlantısı yapabilmemizi sağlamak. TCP:9092 ise Kafka’nın default port’u. Eğer bir producer uygulamamız varsa ve GCP üzerinde aynı VPC içerisindeyse aslında 9092 portunu açmanıza gerek yok. Ancak özellikle development ortamı için açılabilir ki local’den bir client aracılığı ile topic’leri ya da message’ları görebilelim.

Kafka Ayarları

GCP console üzerinden Compute Engine > VM Instances akışını kullanarak mevcut VM’lerin listesine ulaşıyoruz. Biraz önce One Click Deploy ile uygulamayı oluştururken VM’e verdiğimiz ismi bu sayfadaki tabloda buluyoruz ve en sağ tarafta bulunan “External IP” column’undaki IP’yi kopyalıyoruz. Bu bizim makinemizin public IP’si.

Ardından yine bir sonraki column’da bulunan SSH butonuna tıklayarak VM’e ssh bağlantısı yapıyoruz. Daha sonra aşağıdaki komutu çalıştırıyoruz.

$ sudo nano /opt/kafka/config/server.properties

Açılan server.properties dosyasındaki “advertised.listeners” satırını bulup comment-out (başındaki # sembolünü silerek) ediyoruz ve aşağıdaki şekilde düzenledikten sonra kaydedip çıkıyoruz.

advertised.listeners=PLAINTEXT://123.45.67.89:9092

Buradaki 123.45.67.89 IP’si biraz önce “External IP” olarak bahsettiğim IP olmalıdır.

Ardından Kafka’yı restart etmek için aşağıdaki komutu çalıştırıyoruz.

$ sudo systemctl restart kafka

Artık Kafka ayarlarımız da bittiğine göre her şey tamam. “123.45.67.89:9092” üzerinden kurduğumuz Kafka’ya erişebilirsiniz.

Kafka Client

macOS kullanıcılarına rahatlıkla Conduktor uygulamasını tavsiye ederim. Bir süre önce keşfettim ve oldukça memnunum. Zaten pek de seçeneğimiz yok 😊

Windows için de bir araştırma yaptım bu yazıyı yazarken, Kafka Tool adında bir uygulamaya denk geldim fakat nasıl bir uygulama olduğuna dair pek fikrim yok.

Not Playing – Spotify