Cloud Storage’da Static Websitesi Barındırma
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⌗
- Bir CNAME kaydı kullanarak alan adımızı Cloud Storage’a yönlendirme.
- Alan adımıza bağlı bir Bucket oluşturma.
- Sitemizi, oluşturduğumuz Bucket’a yükleme.
- Bucket’ımızı internete açık hale getirme.
- Özel index ve 404 sayfaları ayarlama.
- 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;
NAME | TYPE | DATA |
---|---|---|
www | CNAME | c.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.