Takip et

AWS’de Statik E-Ticaret Sitesi Dağıtımı: Pulumi ile

AWS’de Statik E-Ticaret Sitesi Dağıtımı: Pulumi ile

Merhaba! Fatih Soysal olarak, bugün size Pulumi kullanarak AWS’de statik bir e-ticaret sitesi nasıl kolayca dağıtabileceğinizi adım adım göstereceğim. Bu yöntem, altyapınızı kodla yönetmenizi sağlayan Infrastructure as Code (IaC) yaklaşımını kullanır ve süreçlerinizi otomatikleştirerek zamandan ve emekten tasarruf etmenizi sağlar. Başlayalım!

Gereklilikler

Öncelikle, aşağıdaki araçlara ve hesaplara ihtiyacınız olacak:

  • Bir AWS hesabı
  • Kurulu Pulumi CLI
  • Statik bir e-ticaret sitesi (örneğin, React, Vue, veya Next.js ile oluşturulmuş)
  • AWS S3, CloudFront ve Route 53 hakkında temel bilgi

Proje Kurulumu

İlk olarak, yeni bir Pulumi projesi oluşturalım. Proje dizininizde aşağıdaki komutu çalıştırın:


pulumi new aws-typescript

Ardından, index.ts dosyasını açıp aşağıdaki kodu ekleyelim. Bu kod, S3 bucket’ımızı, CloudFront dağıtımımızı ve Route 53 kaydımızı oluşturacaktır. Bu örnekte, statik dosyalarınızın bulunduğu dizin ./dist olarak varsayılmıştır. Sizin sitenizin dosyalarının bulunduğu dizini buraya göre düzenlemeniz gerekebilir.


import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const bucket = new aws.s3.Bucket("my-static-website", {
    website: {
        indexDocument: "index.html",
        errorDocument: "error.html",
    },
});

const distribution = new aws.cloudfront.Distribution("my-static-website-distribution", {
    origins: [{
        originId: bucket.bucket.apply(b => b),
        domainName: bucket.websiteEndpoint.apply(endpoint => endpoint),
        s3OriginConfig: {
            originAccessIdentity: "origin-access-identity", // Bu kısım daha sonraki adımlarda düzenlenecektir.
        },
    }],
    defaultCacheBehavior: {
        allowedMethods: ["GET", "HEAD"],
        cachedMethods: ["GET", "HEAD"],
        targetOriginId: bucket.bucket.apply(b => b),
        viewerProtocolPolicy: "redirect-to-https",
    },
    enabled: true,
});

// Bu kısım daha sonraki adımlarda düzenlenecektir.
const zone = new aws.route53.Zone("my-zone", {name: "example.com"});

const record = new aws.route53.Record("my-record", {
    zoneId: zone.zoneId,
    name: "www.example.com",
    type: "A",
    aliases: [{
        name: distribution.domainName.apply(dn => dn),
        zoneId: distribution.hostedZoneId.apply(hzid => hzid),
        evaluateTargetHealth: false,
    }],
});


Bu kod bloğu, S3 bucket’ınızı oluşturur, CloudFront dağıtımınızı yapılandırır ve Route 53 üzerinden domain adınızı bu dağıtıma yönlendirir. Kodun çalışması için example.com kısmını kendi domain adınız ile değiştirmeniz gerekmektedir. Ayrıca ./dist klasörünün varlığını ve içinde gerekli dosyaların bulunduğunu kontrol etmeniz gerekmektedir.

Dağıtım

Kodunuzu yazdıktan sonra, pulumi’yi kullanarak altyapınızı dağıtabilirsiniz. Bunun için aşağıdaki komutu çalıştırın:


pulumi up

Pulumi, değişiklikleri size gösterecek ve onayınızı isteyecektir. Onayladıktan sonra, AWS’de altyapınız oluşturulacaktır.

Sonuç

İşte bu kadar! Artık Pulumi kullanarak statik e-ticaret sitenizi AWS’de başarıyla dağıtmış oldunuz. Bu yöntem, sitenizin güvenilirliğini ve ölçeklenebilirliğini artırırken, altyapınızı yönetimi kolaylaştırır. Daha detaylı bilgi ve destek için fatihsoysal.com sitesini ziyaret edebilirsiniz.

Bu rehberin size yardımcı olduğunu umarım. Herhangi bir sorunuz varsa, yorumlarda sormaktan çekinmeyin. Başka bir makalede görüşmek üzere!

Faydalı Kaynaklar

#Etiketler: AWS, Pulumi, Statik Site, E-ticaret, Dağıtım, Bulut, Infrastructure-as-Code, IaC, S3, CloudFront, Route53, Altyapı Otomasyonu, Kodla Altyapı Yönetimi


Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Mobil sürümden çık