İş ararken sıradan bir PDF dosyasından çok daha etkileyici bir tanıtım aracına sahip olmak ister misiniz? Bu yazıda, AWS üzerinde tamamen sunucusuz bir CV sitesi oluşturma sürecine adım adım odaklanacağız. Projenin merkezinde statik bir web sitesi, otomatik dağıtım sistemi, ziyaretçi sayacı ve altyapı kodunu yönetmek için kullanılan Terraform yer alıyor. Peki, bu karmaşık sistemi nasıl basit ve güvenilir hale getirdik?
Sunucusuz Mimariyle CV’nizi Canlandırın
Bu projenin en büyük avantajı, hiçbir sunucu yönetimine gerek olmaması. Statik HTML ve CSS dosyalarından oluşan web siteniz, Amazon S3 üzerinde barındırılıyor ve CloudFront aracılığıyla dünyanın her yerinden hızlı bir şekilde yükleniyor. Route 53 ise özel alan adınızı CloudFront’a yönlendirerek, kullanıcıların doğrudan S3’e ulaşmasını engelliyor. Bu sayede hem performans artıyor hem de depolama katmanı doğrudan erişimlere karşı korunmuş oluyor.
Ziyaretçi sayacıysa tamamen ayrı bir bileşen. Web sayfası yüklendikten sonra, JavaScript tarafından tetiklenen bir API çağrısıyla işlev kazanır. API Gateway üzerinden gelen istekler, Lambda fonksiyonuna iletilir. Bu fonksiyon, DynamoDB’de bulunan ziyaretçi sayısını artırır, günceller ve sonuçları sayfaya geri gönderir. Tüm bu işlemler, kullanıcının ekrana her baktığında gerçekleşir — sanki siteniz canlı bir veri kaynağına bağlıymış gibi.
Altyapıyı Kod Olarak Yönetmek: Terraform’un Gücü
Projede kullanılan her bir kaynak — S3, CloudFront, Route 53, IAM rollerinden Lambda fonksiyonuna kadar — Terraform ile kod olarak tanımlandı. Bu yaklaşımın en büyük faydası, tüm altyapının tek bir tıklamayla değil, bir komutla yeniden inşa edilebilir olması. Örneğin, depends_on kullanmadan yapılan bir dağıtımda, bazı kaynakların henüz hazır olmadığı için hata alabiliyorsunuz. Bu sorunu yaşamak, Terraform’un bağımlılık yönetimini daha derinlemesine anlamanızı sağlıyor.
Ayrıca, hizmet seçimlerinde akılcı kararlar almayı öğrendik. Örneğin, bu proje için DynamoDB’nin Aurora Serverless’a tercih edilmesinin nedeni, basit bir sayaç verisi üzerinde çalışıyor olmamız ve şemasız yapısının maliyet etkinliği. Geleneksel bir veritabanı yerine, talebe bağlı ödeme modeliyle çalışan DynamoDB’nin avantajları burada devreye giriyor.
Güvenlik ve Kimlik Yönetimi: En Önemli Dersler
AWS ortamında kimlik ve izinler, beklenenden çok daha karmaşık bir konu. Lambda fonksiyonu, bir EC2 örneğinden farklı olarak, doğrudan bir çalıştırma rolüne (execution role) sahip olabilir. Ancak, bu rol sadece Lambda’nın ne yapabileceğini belirler — kimin çağırabileceğini değil. Çağrı izinleri, ayrı bir kaynak politikasıyla yönetilir. Bu ayrıntıyı gözden kaçırdığımda, proje ilk olarak güvenlik hatalarıyla karşılaştı.
Bir diğer önemli dersse, otomatik sistemlere kişisel kimlik bilgilerinin verilmemesi gerektiği. Örneğin, GitHub Actions’a doğrudan AWS yönetici hesabıyla erişim vermek, ciddi bir güvenlik riski oluşturur. Bunun yerine, her pipeline için ayrı IAM kullanıcıları oluşturmak ve sadece gerekli izinleri vermek, projelerinizin gelecekte karşılaşabileceği sorunları önleyecektir.
Ayrıca, yerel geliştirme ortamıyla üretim ortamı arasındaki farklar da öğrenilmesi gereken bir konu. Örneğin, yerel makinenizde çalışan AWS CLI, bazı ayarları otomatik olarak doldurabilirken, GitHub Actions gibi temiz bir ortamda bu ayarlar eksik kalabilir ve dağıtım başarısız olabilir. Bu tür farklılıkları öngörmek, altyapı kodunun taşınabilirliğini artırıyor.
Başarısızlıklar, En Değerli Derslerdir
Bu proje sırasında karşılaştığımız en büyük engellerden biri, izinlerle ilgili gizli sorunlardı. Örneğin, bir IAM kullanıcısının kendi izinlerini okuyamaması nedeniyle, pipeline’un kaynakları yönetmekte başarısız olması gibi. Bu tür sorunlar, izinlerin altyapı büyüdükçe güncellenmesi gerektiğini gösterdi. Üç farklı senaryoda da aynı hatayı yaşamak, sorunun kökenini anlamamızı sağladı.
Bir diğer önemli dersse, tek bir depodan başlamak yerine, projeyi modüler hale getirmekti. Başlangıçta tek bir repository olan proje, CI/CD gereksinimleri ortaya çıktıkça ön uç ve arka uç olmak üzere iki ayrı depoya bölündü. Bu geçiş, altyapıyı yeniden yapılandırmanın ne kadar önem taşıdığını gösterdi.
Geleceğe Yönelik Adımlar
Bu proje, sadece bir CV sitesi olmaktan çok öteye geçiyor. Sunucusuz mimarinin esnekliği, güvenilirliği ve maliyet etkinliği, gelecekteki projeler için önemli bir ilham kaynağı oldu. Şimdi, bu deneyimi başka alanlara da uygulamak ve otomatikleştirilmiş, güvenli ve ölçeklenebilir altyapılar oluşturmak için yola devam ediyoruz. Belki de siz de kendi sunucusuz projenizi hayata geçirmek için bu adımları izleyebilirsiniz.
Yapay zeka özeti
Statik bir PDF yerine AWS üzerinde canlı bir CV sitesi oluşturmanın adımlarını keşfedin. Sunucusuz mimari, Terraform ve CI/CD ile profesyonel portföyünüzü nasıl hayata geçirebilirsiniz? Detaylar burada.