Bu yazıda kısaca static websitelerimizi nasıl Cloud Storage’da tek veya multi-region barındırabileceğimize bakacağız.

Static web siteleri, sayfa yayınlandıktan sonra içeriğin nadiren değiştiği veya dinamik olarak oluşturulan içeriğin olmadığı blog, portfolyo gibi siteler için iyi bir seçenektir. Static web siteleri, HTML, CSS ve JavaScript gibi istemci tarafı teknoloji içerebilirler. PHP gibi sunucu taraflı komut dosyaları, yani dinamik içerik içermezler.

Adımlar

  1. Bir CNAME kaydı kullanarak alan adımızı Cloud Storage’a yönlendirme.
  2. Alan adımıza bağlı bir Bucket oluşturma.
  3. Sitemizi, oluşturduğumuz Bucket’a yükleme.
  4. Bucket’ımızı internete açık hale getirme.
  5. Özel index ve 404 sayfaları ayarlama.
  6. Websitemizi test etme.

Alan Adınızı Cloud Storage’a Bağlayın

Alan adınızı (domain) Cloud Storage’a bağlamak için alan adı sağlayıcı firmanızın DNS yönetim paneline giriş yapın ve bir CNAME kaydı oluşturun. Bizim yapacağımız örnek için bu kayıt şu şekildedir;

NAMETYPEDATA
wwwCNAMEc.storage.googleapis.com

Unutmayın: Eğer websitenizi bir alt alan adı’na (subdomin) kuracaksanız www yazan yere alt alan adınızı yazın. Ayrıca isterseniz direk www olmadan da ana alan adınıza yönlendirebilirsiniz. Eğer CloudFlare gibi sağlayıcılar kullanıyorsanız www to non-www gibi hileler yapabilirsiniz. Burası size kalmış.

NOT: Burdan sonra ki adımları ben Google Cloud’un CLI’ndan yapıcam. Siz isterseniz tüm adımları komutlarda ki keyword’leri Google Cloud Console’un UI’ndan bularak da yapabilirsiniz.

Bucket Oluşturun

Adı, alanınız için oluşturduğunuz CNAME kaydı ile eşleşen bir Bucket oluşturun.

Örneğin, example.com‘un www alt alanından c.storage.googleapis.com‘a işaret eden bir CNAME kaydı eklediyseniz, www.example.com adında bir Bucket oluşturun.

Örnek bir Bucket oluşturma;

gsutil mb gs://www.example.com

Ek olarak -l parametresi ile Bucket’ınızın bölgesini (asya, avrupa, multi-region vb.), -c parametresi ile sınıfını (nearline, cold, standart vb.), --retention parametresi ile de içindeki dosyaların ne kadar süre Bucket’da saklanacağını belirtebilirsiniz.

Dikkat: Bucket’a alan adınızın ismini verebilmeniz için, Google Search Console üzerinde alan adının size ait olduğunun doğrulanmış olması gerekir. Aksi takdirde herhangi bir domain için Bucket oluşturamazsınız. Bu konuda daha detaylı bilgi için burayı inceleyebilirsiniz: https://cloud.google.com/storage/docs/domain-name-verification

Sitenizi Yükleyin

Evet Bucket oluşturduğumuza göre sıra websitemizde sunmak istediğimiz içeriğine yani dosyalarımıza geldi.

Bilgisayarınızdaki bir dosyayı Bucket’a kopyalamak için cp komutunu kullanabilirsiniz;

gsutil cp Desktop/index.html gs://www.example.com

Eğer çok fazla sayıda dosya kopyalamak istiyorsanız, -R parametresi eşliğinde rsync komutunu kullanın. Bu komut klasör ve dosyalarınızı recursive (özyinelemeli) şekilde Bucket’ınıza kopyalar. local-dir adlı bir klasör için örnek;

gsutil rsync -R local-dir gs://www.example.com

Dosyalarınızı Herkese Açık Hale Getirin

Cloud Storage’da oluşturduğunuz Bucket’lar varsayılan olarak internete kapalıdır. Biz websitemizi insanlara açmak istediğimiz için internete açıcağız. Dosyalarınızın hassas veya özel bilgiler içermediğinden eminseniz, aşağıdaki komutu kullanarak sitenizi herkese açık hale getirebilirsiniz.

gsutil iam ch allUsers:legacyObjectReader gs://www.example.com

Eğer Bucket’daki dosyaların listesini insanların görebilmesini istiyorsanız allUsers:objectViewer yetkisini kullanabilirsiniz.

Özel Index ve 404 Sayfası Atayın

Bir diğer önemli nokta ise index ve 404 sayfamız. Cloud Storage kullanıcın istediği bir dosyayı bulamadığı zaman otomatik olarak 403 hata kodu döndürür. Buda sizin kullanıcıya bir 404 sayfası göstermeniz gerektiği anlamına gelir, aksi takdirde kullanıcıya bir içerik sağlanmaz. Bunun için web komutunu kullanabilirsiniz;

gsutil web set -m index.html -e 404.html gs://www.example.com
  • -m parametresi sizin ana sayfanızı temsil eder.
  • -e parametresi 404 sayfasını temsil eder.

Websitenizi Test Edin

Örneğin www.example.com adını koyduğunuz Bucket’ınızın içerisinde test.html adında bir dosya varsa arama motorunuzdan www.example.com/test.html adresine gidin. Eğer olması gereken içerik karşınıza çıktıysa tebrikler, artık static websiteniz Cloud Storage’da barınıyor, fakat karşınıza bir içerik çıkmadıysa bir şeyleri yanlış yapmışsınız demektir. Yaptıklarınızı gözden geçirin ve tekrar deneyin.

Yüksek Seviye Tasarım

Websitemizin altyapısı genel olarak buna benzemiş oluyor.

Ekstra: Yarattığınızı Bucket’ı Silmek

Eğer yarattığınız Bucket’ı ve silmek istiyorsanız rm komutunu kullanabilirsiniz. İşte bir örnek;

gsutil rm -r gs://www.example.com

(-r) parametresi Bucket içerisinde ki içeriğinde silinmesini sağlar.

Okuduğunuz için teşekkürler, umarım konuyu anlayabilmiş ve yazıyı beğenmişsinizdir. Bir sonra ki yazılarda görüşmek dileğiyle.