Statik bir web uygulaması yayımlamak, önceden karmaşık bir süreçti. Bugünse AWS CloudFormation gibi araçlar sayesinde bu işlem dakikalar içinde tamamlanabiliyor. Bu rehberde, modern bir AWS bulut altyapısı kullanarak statik siteleri nasıl hızlıca ve güvenli bir şekilde yayımlayabileceğinizi adım adım göstereceğiz.
Statik Siteleri Saniyeler İçinde Yayımlamanın Avantajları
Statik siteler, React, Svelte, Angular veya Vue gibi modern JavaScript framework'leriyle geliştirilen projeler için ideal bir çözümdür. Bu projeleri AWS üzerinde barındırmak için genellikle S3, CloudFront ve Route 53 gibi hizmetler kullanılır. Ancak manuel olarak yapılan ayarlamalar zaman alıcı ve hatalara açık olabilir.
İşte burada AWS CloudFormation devreye giriyor. Altyapınızı kod olarak tanımlamanızı sağlayan bu hizmet, tüm kaynakları otomatik olarak oluşturuyor. Böylece:
-Manuel ayarlar nedeniyle oluşabilecek hataları ortadan kaldırır. -İlk kurulum süresini önemli ölçüde kısaltır. -Güvenlik ve performans standartlarını otomatik olarak uygular.
Bu rehberde, statik sitelerinizi AWS CloudFormation ile nasıl yayımlayacağınızı ve modern en iyi uygulamaları nasıl uygulayacağınızı öğreneceksiniz.
AWS CloudFormation ile Statik Site Yayımlama: Gereksinimler
Bu çözümü kullanabilmek için aşağıdaki ön koşulları sağlamanız gerekiyor:
- Kayıtlı bir alan adı: Örneğin
ornek.comgibi bir alan adına sahip olmalı ve bu alan adını AWS Route 53 ile yönetmelisiniz. Alan adınızı AWS hesabınıza kaydettikten sonra, Route 53 Hosted Zone oluşturmanız gerekir. - AWS CLI kurulumu: AWS hizmetleriyle etkileşim kurabilmek için yerel makinenize AWS CLI'yı yükleyin. Kurulum adımları için AWS CLI belgelerini inceleyebilirsiniz.
- AWS hesabına erişim: CloudFormation şablonunu çalıştırmak için AWS hesabınızda gerekli izinlere sahip olmalısınız.
Bu gereksinimleri karşıladıktan sonra, statik sitenizi AWS üzerinde güvenli ve ölçeklenebilir bir şekilde yayımlamaya hazır olacaksınız.
Modern Bir AWS CloudFormation Şablonu Nasıl Oluşturulur?
Geleneksel AWS CloudFormation şablonları, statik siteleri barındırmak için genellikle Origin Access Identity (OAI) kullanırken, yeni nesil şablonlar Origin Access Control (OAC) adı verilen daha güvenli ve esnek bir yöntemi tercih ediyor. Ayrıca, eski Node.js 12 tabanlı Lambda fonksiyonları yerine Node.js 20 kullanılıyor.
Bu modern yaklaşımın temel bileşenleri şunlardır:
- Origin Access Control (OAC): S3 kaynaklarına erişimi CloudFront üzerinden daha güvenli bir şekilde yönetir.
- Node.js 20 Lambda Fonksiyonları: Statik dosyaların S3'e yüklenmesi için kullanılır.
- CloudFront Response Headers Policy: Güvenlik başlıklarını otomatik olarak ekleyerek sitenizin güvenliğini artırır.
- En Az Ayrıcalık Politikası (Least Privilege IAM): S3 işlemleri için yalnızca gerekli izinleri sağlar.
- S3 Kökeninin Gizliliği: S3 deposu yalnızca CloudFront üzerinden erişilebilir hale getirilir.
- Gelişmiş Günlükleme ve Şifreleme: Tüm kaynaklarda standartlaştırılmış güvenlik ve denetim özellikleri uygulanır.
- Apex Domain Desteği: Hem
example.comhem dewww.example.comgibi alan adlarını destekler.
Bu modern şablon, aynı zamanda özel önbellek ve istek politikaları tanımlayarak performansı optimize eder ve Single Page Application (SPA) projeleri için hata yönetimini kolaylaştırır.
AWS CloudFormation ile Statik Site Yayımlama: Adım Adım
Statik sitenizi AWS CloudFormation kullanarak yayımlamak oldukça basit. Aşağıdaki adımları izleyerek projenizi hayata geçirebilirsiniz:
1. Kaynakların Oluşturulması
CloudFormation şablonu, aşağıdaki AWS kaynaklarını otomatik olarak oluşturacaktır:
- Statik dosyalar için bir S3 deposu: Web sitenizin tüm statik dosyaları bu depoda saklanır.
- Erişim günlükleri için ikinci bir S3 deposu: Tüm erişim kayıtları bu depoda tutulur.
- Alan adı için ACM sertifikası: HTTPS erişimi için gerekli SSL/TLS sertifikası sağlanır.
- CloudFront dağıtımı: S3 deposunun önünde yer alan CDN hizmeti, performansı artırır ve güvenliği sağlar.
- Route 53 kaydı: Alan adınıza ait DNS kayıtları otomatik olarak oluşturulur.
- Özel kaynak (Custom Resource): Statik dosyaları S3 deposuna yüklemek için kullanılır.
2. Şablonun Uygulanması
AWS CLI kullanarak CloudFormation şablonunu çalıştırın. Örnek komut:
aws cloudformation deploy \
--template-file template.yaml \
--stack-name StaticSiteStack \
--capabilities CAPABILITY_IAMBu komut, tüm kaynakları tanımlı şekilde oluşturacaktır. İşlem tamamlandığında, CloudFront dağıtımınızın durumunu kontrol ederek sitenize erişebilirsiniz.
3. Statik Dosyaların Yüklenmesi
Statik dosyalarınızı S3 deposuna yüklemek için AWS CLI'yı kullanabilirsiniz:
aws s3 sync ./build s3://your-bucket-name --deleteBu komut, yerel build dizinindeki tüm dosyaları S3 deposuna senkronize eder. Daha sonra CloudFront, yeni dosyaları otomatik olarak dağıtacaktır.
4. Sorun Giderme ve İzleme
CloudFormation konsolunda oluşturulan kaynakların durumunu izleyebilirsiniz. Herhangi bir hata durumunda, ilgili kaynağın günlüklerine erişerek sorunu tespit edebilirsiniz. Ayrıca, CloudFront'un önbellek davranışını ve HTTP durum kodlarını kontrol ederek sitenizin performansını optimize edebilirsiniz.
Maliyet ve Performans Optimizasyonu
Statik siteler genellikle düşük trafiğe sahip olduğundan, AWS hizmetlerinin maliyeti oldukça düşüktür. Temel maliyet unsurları şunlardır:
- Alan adı: Yıllık yaklaşık 12-15 dolar civarında.
- CloudFront: Kullanım miktarına bağlı olarak düşük maliyetli.
- S3 Depolama: Depolama alanı ve veri aktarım ücretleri düşüktür.
- Route 53: DNS kayıtları için düşük maliyetlidir.
Performansı artırmak için CloudFront önbellek politikalarını ve yanıt başlıklarını optimize edebilirsiniz. Ayrıca, gereksiz dosyaları S3 deposundan silerek depolama maliyetlerini azaltabilirsiniz.
Sonuç: Statik Sitelerinizi AWS ile Geleceğe Taşıyın
AWS CloudFormation kullanarak statik sitelerinizi hızlı ve güvenli bir şekilde yayımlamak, geliştirici deneyimini önemli ölçüde iyileştirir. Manuel ayarlar nedeniyle oluşabilecek hataları ortadan kaldıran bu yaklaşım, aynı zamanda altyapınızın tutarlı ve ölçeklenebilir olmasını sağlar.
Bu rehberde ele aldığımız modern AWS CloudFormation şablonu, statik sitelerinizi sadece birkaç dakika içinde hayata geçirmenizi sağlayacak. Alan adınızı ve AWS hesaplarınızı hazırlayarak, statik sitenizin performansını ve güvenliğini artırabilirsiniz.
Statik sitelerinizi AWS üzerinde barındırmaya başlamak için bu rehberi kullanabilir ve modern bulut altyapısının avantajlarından faydalanabilirsiniz.
Yapay zeka özeti
Statik web sitelerinizi AWS CloudFormation kullanarak sadece birkaç dakika içinde güvenli ve ölçeklenebilir şekilde nasıl yayımlayacağınızı öğrenin. Adım adım rehber ve modern AWS altyapısı önerileri.