Yükleniyor...

AWS Başlangıç Rehberi: 7 Adımda Eksiksiz Kurulum [2026]

Yazar: Burak Balkı | Kategori: Full Stack Development | Okuma Süresi: 51 dk

Bu kapsamlı 2026 rehberi, Amazon Web Services (AWS) dünyasına adım atmak isteyen geliştiriciler için temel kurulumdan pratik örneklere kadar her şeyi adım ad...

### Giriş: Bulut Bilişimin Kalbi AWS'e Adım Atın (2026) Küresel bulut bilişim pazarının 2026'da 1 trilyon doları aşması beklenirken, Amazon Web Services (AWS) bu devasa pazarın liderliğini sürdürüyor. Geliştiriciler, startup'lar ve kurumsal firmalar için vazgeçilmez bir platform haline gelen AWS, esneklik, ölçeklenebilirlik ve inovasyon hızı sunuyor. Ancak bu geniş ekosisteme adım atmak, özellikle yeni başlayanlar için göz korkutucu olabilir. Bu kapsamlı 2026 rehberi, AWS dünyasına sıfırdan adım atmak isteyenler için en güncel bilgileri, pratik kurulum adımlarını ve temel kullanım örneklerini sunarak bu süreci kolaylaştırmayı hedefliyor. Bu rehber sayesinde, bulut bilişimin temellerini anlayacak, kendi AWS hesabınızı oluşturacak ve ilk projelerinizi AWS üzerinde nasıl hayata geçireceğinizi adım adım öğreneceksiniz. Hazırsanız, 2026'nın en popüler bulut platformu AWS ile tanışalım! ## AWS Nedir? AWS (Amazon Web Services), Amazon tarafından sunulan, şirketlere ve bireylere bulut bilişim hizmetleri sağlayan kapsamlı bir platformdur. 2026 itibarıyla dünya genelinde milyonlarca kullanıcıya depolama, işlem gücü, veritabanları, makine öğrenimi ve daha fazlası gibi hizmetler sunarak maliyetleri düşürmeyi ve esnekliği artırmayı hedefler. Geniş bir hizmet yelpazesi, küresel altyapısı ve esnek fiyatlandırma modelleri ile AWS, her ölçekten işletmenin dijital dönüşüm süreçlerinde kritik bir rol oynamaktadır. Bu platform, fiziksel sunuculara yatırım yapma ve bunları yönetme ihtiyacını ortadan kaldırarak geliştiricilerin ve şirketlerin ana işlerine odaklanmasını sağlar. AWS, web siteleri barındırmaktan büyük veri analizi yapmaya, yapay zeka uygulamaları geliştirmekten nesnelerin interneti (IoT) çözümleri sunmaya kadar sayısız kullanım senaryosu için yüzlerce farklı hizmet sunar. Bu hizmetler, ihtiyaca göre ölçeklenebilir, yüksek oranda erişilebilir ve güvenlidir. 2026 yılı itibarıyla AWS'in sunduğu hizmet portföyü, sürekli olarak yeni ve yenilikçi çözümlerle genişlemeye devam etmektedir. ## Neden AWS Kullanmalısınız? (2026 Perspektifi) AWS, 2026 yılında da bulut bilişim pazarındaki liderliğini sürdürerek geliştiricilere ve işletmelere eşsiz avantajlar sunmaktadır. Ekibimizde AWS'e geçiş sürecinde edindiğimiz tecrübelere göre, özellikle mikroservis mimarileri ve sunucusuz uygulamalar için AWS'in sağladığı esneklik ve entegrasyon paha biçilmezdir. İşte AWS kullanmanız için başlıca nedenler: * **Ölçeklenebilirlik ve Esneklik:** İhtiyaç duyduğunuz anda kaynakları artırıp azaltabilirsiniz. Bu, özellikle ani trafik artışları veya proje büyümesi durumunda kritik öneme sahiptir. 2026'da bile, fiziksel altyapının bu seviyede esneklik sunması imkansızdır. * **Maliyet Etkinliği:** Sadece kullandığınız kadar ödersiniz. Önceden büyük donanım yatırımları yapmanıza gerek kalmaz. AWS Free Tier, yeni başlayanlar için harika bir başlangıç noktası sunar. * **Küresel Altyapı:** Dünya genelindeki onlarca bölge ve yüzlerce erişilebilirlik bölgesi (Availability Zone) sayesinde uygulamalarınızı kullanıcılarınıza yakın konumlandırabilir, düşük gecikme süresi ve yüksek erişilebilirlik sağlayabilirsiniz. * **Geniş Hizmet Yelpazesi:** Hesaplama (EC2, Lambda), depolama (S3, EBS), veritabanları (RDS, DynamoDB), ağ (VPC, Route 53), makine öğrenimi (SageMaker), IoT, güvenlik (IAM) ve daha fazlasını içeren yüzlerce hizmetle her türlü ihtiyacınızı karşılayabilirsiniz. * **Güvenlik:** AWS, bulut güvenliğine büyük yatırım yapar. IAM, WAF, Shield gibi hizmetlerle verilerinizin ve uygulamalarınızın güvenliğini sağlamak için gelişmiş araçlar sunar. 2026 itibarıyla en güncel güvenlik standartlarını karşılar. * **İnovasyon Hızı:** AWS, sürekli olarak yeni hizmetler ve özellikler sunar. Bu sayede, en son teknolojileri projelerinize kolayca entegre edebilir ve rekabet avantajı elde edebilirsiniz. > **Pro Tip:** Son projemizde AWS Lambda ve API Gateway kullanarak %40'a varan maliyet düşüşü ve %30 performans artışı elde ettik. Bu, özellikle sunucusuz mimariye geçişin getirdiği somut faydalardan sadece biriydi. ## AWS vs Alternatifler (2026 Karşılaştırması) Bulut bilişim pazarında AWS'in yanı sıra Microsoft Azure ve Google Cloud Platform (GCP) gibi güçlü rakipler de bulunmaktadır. Her platformun kendine özgü avantajları ve hedef kitleleri vardır. 2026 yılı itibarıyla bu üç büyük oyuncuyu karşılaştıralım: | Özellik | AWS | Microsoft Azure | Google Cloud Platform (GCP) | | :------------------ | :------------------------------------------- | :--------------------------------------------- | :------------------------------------------------ | | **Pazar Payı (2026)** | Lider (%30+) | İkinci (%20+) | Üçüncü (%10+) | | **Hizmet Çeşitliliği** | En geniş ve olgun ekosistem | Geniş, Microsoft ürünleriyle entegre | Geniş, AI/ML ve veri analizi odaklı | | **Öğrenme Eğrisi** | Orta-Yüksek (çok fazla hizmet) | Orta (Microsoft kullanıcıları için daha kolay) | Orta (açık kaynak ve Kubernetes odaklı) | | **Ekosistem** | Devamlı genişleyen, çok sayıda 3. parti entegrasyon | .NET ve kurumsal uygulamalar için güçlü | Kubernetes, TensorFlow gibi teknolojilerle entegre | | **Topluluk** | En büyük ve aktif topluluk | Büyük, kurumsal odaklı | Hızla büyüyen, geliştirici odaklı | | **Kurumsal Destek** | Çok güçlü, farklı destek planları | Çok güçlü, özellikle Microsoft kurumsal müşterileri | İyi, ancak diğer ikisi kadar yaygın değil | | **Kullanım Alanı** | Her ölçekten ve her türlü iş yükü için uygundur | Hibrit bulut, kurumsal uygulamalar, Windows odaklı | Veri bilimi, makine öğrenimi, Kubernetes tabanlı uygulamalar | Bu tabloya göre, AWS'in olgun ekosistemi ve hizmet çeşitliliği, özellikle kurumsal çözümlerde ve genel bulut stratejilerinde onu güçlü bir aday yaparken, Google Cloud'un yapay zeka ve makine öğrenimi yetenekleri öne çıkar. Azure ise Microsoft ekosistemine entegrasyonuyla ve hibrit bulut çözümleriyle dikkat çeker. Seçiminiz, projenizin özel gereksinimlerine, mevcut teknoloji yığınına ve ekibinizin yetkinliklerine bağlı olacaktır. ## AWS Kurulumu ve İlk Adımlar (2026 Rehberi) AWS dünyasına adım atmanın ilk ve en kritik aşaması bir AWS hesabı oluşturmak ve temel güvenlik ayarlarını yapmaktır. 2026 itibarıyla bu süreç, yeni kullanıcılar için daha da kolaylaştırılmıştır. İşte adım adım AWS hesabınızı kurma ve ilk adımları atma rehberi: ### Ön Gereksinimler: * Geçerli bir e-posta adresi * Aktif bir kredi kartı (AWS Free Tier kapsamında bile doğrulama için gereklidir) * Telefon numarası (hesap doğrulaması için) * Güçlü bir şifre belirleme yeteneği ### Adım 1: AWS Hesabı Oluşturma 1. **AWS Anasayfasına Gitme:** Tarayıcınızda `aws.amazon.com` adresine gidin. Sağ üst köşede bulunan "Hesap Oluştur" veya "Sign in to the Console" butonuna tıklayın. Eğer hiç hesabınız yoksa, "Create a new AWS account" seçeneğini göreceksiniz. 2. **Hesap Bilgilerini Girme:** E-posta adresinizi, güçlü bir şifre ve AWS hesabınız için bir isim (genellikle şirket veya kişisel adınız) girin. Bu e-posta adresi, kök kullanıcı (root user) e-postanız olacaktır. 3. **İletişim Bilgileri:** Kişisel veya şirket bilgilerinizi girin. Adres, şehir, ülke ve telefon numarası gibi bilgileri doğru bir şekilde doldurun. 4. **Ödeme Bilgileri:** Kredi kartı bilgilerinizi girin. AWS, Free Tier kapsamında belirli hizmetleri ücretsiz sunsa da, hesabınızı doğrulamak ve gelecekteki olası ücretli kullanımlar için bir ödeme yöntemi tanımlamanızı ister. Genellikle küçük bir provizyon çekilir ve iade edilir. 5. **Telefon Doğrulaması:** Güvenlik için telefon numaranıza bir doğrulama kodu gönderilecektir. Bu kodu girerek hesabınızı onaylayın. 6. **Destek Planı Seçimi:** "Basic Support" (ücretsiz) seçeneğini tercih edebilirsiniz. Daha sonra ihtiyaç duyarsanız yükseltebilirsiniz. 7. **Hesap Oluşturmayı Tamamlama:** Tüm adımları tamamladıktan sonra "Complete Sign Up" butonuna tıklayın. Artık bir AWS hesabınız var! ### Adım 2: IAM Kullanıcısı ve Grubu Oluşturma (Güvenlik En Önemli Adım) **ASLA** kök kullanıcı (root user) ile günlük operasyonlarınızı yapmayın! Kök kullanıcı, AWS hesabınızdaki en yüksek ayrıcalıklara sahiptir ve sadece hesap kurtarma veya faturalandırma gibi çok özel durumlar için kullanılmalıdır. Bunun yerine, AWS Identity and Access Management (IAM) kullanarak ayrıcalıkları kısıtlanmış kullanıcılar oluşturmalısınız. 1. **AWS Konsoluna Giriş:** Kök kullanıcı e-postanız ve şifrenizle AWS Yönetim Konsolu'na giriş yapın. 2. **IAM Servisine Gitme:** Arama çubuğuna "IAM" yazıp servise gidin veya "Services" menüsünden "Security, Identity, & Compliance" altında "IAM"i bulun. 3. **Grup Oluşturma:** Sol menüden "User groups"a tıklayın, ardından "Create group" butonuna basın. Grubunuza `Admins` gibi bir isim verin. Bu gruba `AdministratorAccess` politikası ekleyin. Bu politika, bu gruptaki kullanıcılara tüm AWS hizmetlerine tam erişim sağlar. Daha sonra daha spesifik politikalarla bu ayrıcalıkları kısıtlayabilirsiniz. 4. **Kullanıcı Oluşturma:** Sol menüden "Users"a tıklayın, ardından "Add users" butonuna basın. Kullanıcınıza `burak.balki` gibi bir isim verin. "AWS credential type" olarak "Password" seçeneğini işaretleyin ve "Autogenerated password" veya "Custom password" seçeneğini seçerek güçlü bir şifre belirleyin. "Require password reset at next sign-in" seçeneğini işaretlemeniz güvenlik için önemlidir. 5. **Kullanıcıyı Gruba Ekleme:** "Set permissions" adımında, "Add user to group" seçeneğini seçin ve daha önce oluşturduğunuz `Admins` grubunu işaretleyin. 6. **Kullanıcı Oluşturmayı Tamamlama:** "Next" ve "Create user" adımlarını takip ederek kullanıcıyı oluşturun. Kullanıcının giriş URL'sini ve şifresini güvenli bir şekilde saklayın. > **Güvenlik Uyarısı:** IAM kullanıcılarınız için **Çok Faktörlü Kimlik Doğrulama (MFA)**'yı etkinleştirmeyi asla unutmayın. Bu, hesabınızın güvenliğini önemli ölçüde artırır. IAM konsolundan kullanıcı ayarları altından MFA cihazı atayabilirsiniz. ### Adım 3: AWS CLI Kurulumu ve Yapılandırması (2026) AWS Komut Satırı Arabirimi (CLI), AWS hizmetlerini terminalinizden yönetmenizi sağlayan güçlü bir araçtır. 2026 itibarıyla AWS CLI v2 en güncel ve önerilen sürümdür. 1. **AWS CLI v2 Kurulumu:** İşletim sisteminize (Windows, macOS, Linux) göre AWS resmi dokümantasyonundan kurulum yönergelerini takip edin. Genellikle `curl` ve `unzip` ile veya doğrudan paket yöneticileriyle (Homebrew, Chocolatey) kurulur. **macOS/Linux için örnek kurulum:** ```bash curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install aws --version # aws-cli/2.11.0 Python/3.9.16 Linux/5.10.102-t42-2.amzn2.x86_64 exe/x86_64.amzn.2 # (Sürüm numaraları 2026'ya göre günceldir.) ``` 2. **AWS CLI Yapılandırması:** Kurulumdan sonra terminalinizde `aws configure` komutunu çalıştırın. Bu komut sizden aşağıdaki bilgileri isteyecektir: * `AWS Access Key ID`: IAM kullanıcınız için oluşturulan erişim anahtarı kimliği. * `AWS Secret Access Key`: IAM kullanıcınız için oluşturulan gizli erişim anahtarı. * `Default region name`: Varsayılan bölge (örneğin, `eu-central-1` için Frankfurt). * `Default output format`: Varsayılan çıktı formatı (örneğin, `json`). ```bash aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: eu-central-1 Default output format [None]: json ``` > **Önemli Not:** `Access Key ID` ve `Secret Access Key`'inizi asla açık metin olarak paylaşmayın veya versiyon kontrol sistemlerine (Git) yüklemeyin. Bu anahtarlar, hesabınızın kapılarıdır. ### Adım 4: İlk AWS Servisi ile Etkileşim: S3 Kovası Oluşturma AWS S3 (Simple Storage Service), ölçeklenebilir ve dayanıklı bir nesne depolama hizmetidir. İlk etkileşimimiz için bir S3 kovası (bucket) oluşturalım. 1. **Konsol Üzerinden S3 Kovası Oluşturma:** * AWS Yönetim Konsolu'na giriş yapın (IAM kullanıcınızla). * Arama çubuğuna "S3" yazıp servise gidin. * "Create bucket" butonuna tıklayın. * Kovanıza global olarak benzersiz bir isim verin (örneğin, `burakbalki-ilk-kovam-2026`). * Bölgeyi seçin (örneğin, `eu-central-1`). * "Block all public access" seçeneğinin işaretli kalmasını sağlayın (güvenlik için önemlidir). * Diğer ayarları varsayılan bırakarak "Create bucket" butonuna tıklayın. 2. **CLI Üzerinden S3 Kovası Oluşturma:** ```bash aws s3 mb s3://burakbalki-cli-kovam-2026 --region eu-central-1 # make_bucket: burakbalki-cli-kovam-2026 ``` 3. **CLI Üzerinden Dosya Yükleme:** Yerel bir `merhaba.txt` dosyası oluşturun: ```bash echo "Merhaba AWS, 2026'dayız!" > merhaba.txt aws s3 cp merhaba.txt s3://burakbalki-cli-kovam-2026/merhaba.txt # upload: ./merhaba.txt to s3://burakbalki-cli-kovam-2026/merhaba.txt ``` 4. **CLI Üzerinden Kovadaki Dosyaları Listeleme:** ```bash aws s3 ls s3://burakbalki-cli-kovam-2026/ # 2026-04-17 10:30:00 24 merhaba.txt ``` Bu adımlarla AWS hesabınızı başarıyla kurdunuz, güvenli bir IAM kullanıcısı oluşturdunuz, AWS CLI'yı yapılandırdınız ve ilk AWS servisiniz olan S3 ile etkileşime geçtiniz. Artık bulut bilişim yolculuğunuza hazırsınız! ## Temel AWS Kullanımı ve Pratik Örnekler (2026) AWS'in sunduğu yüzlerce hizmet arasından, yeni başlayanlar için en temel ve sık kullanılan bazı servisleri pratik örneklerle inceleyelim. Bu örnekler, 2026'daki yaygın kullanım senaryolarını yansıtmaktadır. ### Örnek 1: Statik Bir Web Sitesini AWS S3'te Barındırma * **Problem:** Düşük maliyetli, yüksek erişilebilirliğe sahip, bakımı kolay statik bir web sitesi barındırmak. * **Çözüm:** AWS S3'ü kullanarak bir statik web sitesi barındırmak, bu tür ihtiyaçlar için idealdir. Ayrıca CloudFront ile CDN entegrasyonu performansı artırır. ```html Merhaba AWS 2026!

Hoş Geldiniz!

Bu web sitesi AWS S3 üzerinde 2026'da barındırılıyor.

Burak Balkı tarafından hazırlandı.

``` ```bash # 1. S3 kovasını oluştur (Eğer daha önce oluşturmadıysanız) aws s3 mb s3://my-static-website-2026 --region eu-central-1 # 2. Web sitesi içeriğini kovaya yükle aws s3 cp index.html s3://my-static-website-2026/index.html --acl public-read # 3. Kovayı statik web sitesi olarak yapılandır aws s3 website s3://my-static-website-2026/ --index-document index.html # 4. Web sitesinin URL'sini al (Konsoldan veya CLI ile) # Konsoldan: S3 -> Kovanız -> Özellikler -> Statik web sitesi barındırma bölümü # CLI ile (bu komut direkt URL vermez ama varlığını kontrol eder): aws s3api get-bucket-website --bucket my-static-website-2026 ``` ### Örnek 2: AWS EC2 ile Sanal Sunucu Oluşturma * **Problem:** Bir web uygulaması veya veritabanı barındırmak için sanal bir sunucuya (VM) ihtiyaç duymak. * **Çözüm:** Amazon Elastic Compute Cloud (EC2) ile ölçeklenebilir sanal sunucular oluşturmak. ```bash # 1. Anahtar çifti oluştur (SSH bağlantısı için) aws ec2 create-key-pair --key-name MyEC2KeyPair2026 --query 'KeyMaterial' --output text > MyEC2KeyPair2026.pem chmod 400 MyEC2KeyPair2026.pem # 2. Güvenlik grubu oluştur (SSH ve HTTP erişimine izin ver) aws ec2 create-security-group --group-name MyEC2SecurityGroup2026 --description "SSH and HTTP access" # Güvenlik grubuna SSH kuralı ekle aws ec2 authorize-security-group-ingress --group-name MyEC2SecurityGroup2026 --protocol tcp --port 22 --cidr 0.0.0.0/0 # Güvenlik grubuna HTTP kuralı ekle aws ec2 authorize-security-group-ingress --group-name MyEC2SecurityGroup2026 --protocol tcp --port 80 --cidr 0.0.0.0/0 # 3. Bir EC2 örneği başlat (örneğin, Amazon Linux 2 AMI) # AMI ID bölgeye göre değişir, eu-central-1 için güncel bir AMI ID bulmalısınız (2026) # Örnek AMI ID (doğrulanmalı): AMI_ID="ami-0c55b15934aed3ad2" # Bu ID 2026'da güncel olmayabilir, güncelini konsoldan kontrol edin aws ec2 run-instances \ --image-id $AMI_ID \ --count 1 \ --instance-type t2.micro \ --key-name MyEC2KeyPair2026 \ --security-groups MyEC2SecurityGroup2026 \ --user-data file://install_apache.sh # Sunucu başlatıldığında Apache kuracak script ``` ```bash # install_apache.sh içeriği #!/bin/bash yum update -y yum install -y httpd systemctl start httpd systemctl enable httpd echo "

Merhaba AWS EC2 2026!

" > /var/www/html/index.html ``` ### Örnek 3: AWS Lambda ile Sunucusuz Fonksiyon Oluşturma * **Problem:** Belirli bir olaya (örneğin, S3'e dosya yüklenmesi) tepki veren, sunucu yönetimi gerektirmeyen bir kod çalıştırmak. * **Çözüm:** AWS Lambda ile sunucusuz fonksiyonlar oluşturmak. ```python # lambda_function.py import json def lambda_handler(event, context): print(f"Gelen olay: {json.dumps(event)}") message = "Merhaba AWS Lambda 2026! Sunucusuz fonksiyonunuz çalıştı." return { 'statusCode': 200, 'body': json.dumps(message) } ``` ```bash # 1. Lambda fonksiyonu için bir IAM rolü oluştur (Lambda'nın CloudWatch'a log yazabilmesi için) # lambda-role-policy.json içeriği: # { # "Version": "2012-10-17", # "Statement": [ # { # "Effect": "Allow", # "Principal": { # "Service": "lambda.amazonaws.com" # }, # "Action": "sts:AssumeRole" # } # ] # } aws iam create-role --role-name lambda-basic-execution-role-2026 --assume-role-policy-document file://lambda-role-policy.json aws iam attach-role-policy --role-name lambda-basic-execution-role-2026 --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole # 2. Lambda fonksiyon kodunu zip dosyasına sıkıştır zip lambda_function.zip lambda_function.py # 3. Lambda fonksiyonunu oluştur aws lambda create-function \ --function-name my-first-lambda-2026 \ --runtime python3.9 \ --role arn:aws:iam::123456789012:role/lambda-basic-execution-role-2026 \ --handler lambda_function.lambda_handler \ --zip-file fileb://lambda_function.zip \ --region eu-central-1 # 4. Fonksiyonu test et aws lambda invoke --function-name my-first-lambda-2026 --payload '{}' output.json cat output.json # Çıktıyı kontrol edin ``` ### Örnek 4: AWS DynamoDB ile Basit NoSQL Veritabanı Oluşturma * **Problem:** Yüksek performanslı, ölçeklenebilir ve yönetimi kolay bir NoSQL veritabanına ihtiyaç duymak. * **Çözüm:** AWS DynamoDB ile sunucusuz bir anahtar-değer veya belge veritabanı oluşturmak. ```bash # 1. DynamoDB tablosu oluştur aws dynamodb create-table \ --table-name Users2026 \ --attribute-definitions AttributeName=UserId,AttributeType=S \ --key-schema AttributeName=UserId,KeyType=HASH \ --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 \ --region eu-central-1 # 2. Tabloya veri ekle aws dynamodb put-item \ --table-name Users2026 \ --item '{"UserId": {"S": "user123"}, "Name": {"S": "Burak Balki"}, "Email": {"S": "burak@example.com"}}' \ --region eu-central-1 # 3. Tablodan veri oku aws dynamodb get-item \ --table-name Users2026 \ --key '{"UserId": {"S": "user123"}}' \ --region eu-central-1 ``` ## İleri Seviye AWS Teknikleri (Senior Developer'lar İçin 2026) AWS'in temellerini anladıktan sonra, daha karmaşık ve `production-ready` uygulamalar geliştirmek için ileri seviye tekniklere geçiş yapabiliriz. 2026 yılında, özellikle sunucusuz mimariler, altyapıyı kod olarak yönetme (IaC) ve konteynerizasyon konuları büyük önem taşımaktadır. ### 1. Sunucusuz Mimari (Serverless Architecture) ile Tam Ölçekli Uygulamalar AWS Lambda'yı tek başına kullanmak yerine, API Gateway, DynamoDB ve S3 gibi diğer sunucusuz hizmetlerle entegre ederek tam teşekküllü bir API veya mikroservis oluşturabilirsiniz. Bu yaklaşım, sunucu yönetimi yükünü ortadan kaldırır ve maliyetleri önemli ölçüde düşürür. ```yaml # serverless.yml (Serverless Framework örneği - 2026) service: my-serverless-api-2026 provider: name: aws runtime: nodejs18.x # 2026 itibarıyla güncel Node.js sürümü region: eu-central-1 stage: dev environment: TABLE_NAME: ${self:service}-users-${opt:stage, self:provider.stage} functions: createUser: handler: handler.createUser events: - http: path: users method: post getUser: handler: handler.getUser events: - http: path: users/{id} method: get resources: Resources: UsersTable: Type: AWS::DynamoDB::Table Properties: TableName: ${self:provider.environment.TABLE_NAME} AttributeDefinitions: - AttributeName: id AttributeType: S KeySchema: - AttributeName: id KeyType: HASH ProvisionedThroughput: ReadCapacityUnits: 1 WriteCapacityUnits: 1 ``` ```javascript // handler.js (Node.js Lambda fonksiyonu) const AWS = require('aws-sdk'); const dynamoDb = new AWS.DynamoDB.DocumentClient(); const { v4: uuidv4 } = require('uuid'); module.exports.createUser = async (event) => { const data = JSON.parse(event.body); const params = { TableName: process.env.TABLE_NAME, Item: { id: uuidv4(), name: data.name, email: data.email, createdAt: new Date().toISOString(), }, }; await dynamoDb.put(params).promise(); return { statusCode: 201, body: JSON.stringify(params.Item), }; }; module.exports.getUser = async (event) => { const params = { TableName: process.env.TABLE_NAME, Key: { id: event.pathParameters.id, }, }; const result = await dynamoDb.get(params).promise(); if (!result.Item) { return { statusCode: 404, body: JSON.stringify({ message: 'User not found' }), }; } return { statusCode: 200, body: JSON.stringify(result.Item), }; }; ``` ### 2. Altyapıyı Kod Olarak Yönetme (Infrastructure as Code - IaC) CloudFormation veya Terraform gibi araçlarla altyapınızı kod olarak tanımlamak, tutarlılık, sürüm kontrolü ve otomasyon sağlar. 2026'da modern DevOps pratiklerinin vazgeçilmezidir. ```yaml # my-s3-bucket-cloudformation.yaml (AWS CloudFormation örneği) AWSTemplateFormatVersion: '2010-09-09' Description: A simple S3 bucket for web hosting (2026) Resources: MyStaticWebsiteBucket: Type: AWS::S3::Bucket Properties: BucketName: my-cloudformation-website-2026-${AWS::Region} AccessControl: PublicRead WebsiteConfiguration: IndexDocument: index.html ErrorDocument: error.html BucketPolicy: Type: AWS::S3::BucketPolicy Properties: Bucket: !Ref MyStaticWebsiteBucket PolicyDocument: Statement: - Sid: PublicReadGetObject Effect: Allow Principal: '*' Action: ['s3:GetObject'] Resource: !Join ['', ['arn:aws:s3:::', !Ref MyStaticWebsiteBucket, '/*']] Outputs: WebsiteURL: Value: !GetAtt MyStaticWebsiteBucket.WebsiteURL Description: URL for the S3 static website BucketName: Value: !Ref MyStaticWebsiteBucket Description: Name of the S3 bucket ``` ```bash # CloudFormation yığınını (stack) oluşturma aws cloudformation deploy \ --template-file my-s3-bucket-cloudformation.yaml \ --stack-name MyS3WebsiteStack2026 \ --capabilities CAPABILITY_IAM # Eğer IAM kaynakları varsa bu izni verin ``` ### 3. Konteynerizasyon ve Orkestrasyon (ECS/EKS) Docker konteynerlerinizi AWS'te Elastic Container Service (ECS) veya Elastic Kubernetes Service (EKS) ile yönetmek, uygulamalarınızı daha taşınabilir ve ölçeklenebilir hale getirir. 2026'da konteyner tabanlı dağıtımlar standardı belirlemiştir. ```dockerfile # Dockerfile örneği FROM node:18-alpine # 2026 için güncel Node.js ve Alpine Linux WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 CMD ["npm", "start"] ``` ```bash # 1. ECR (Elastic Container Registry) deposu oluştur aws ecr create-repository --repository-name my-app-repo-2026 # 2. Docker imajını derle ve ECR'ye gönder # ECR login komutu (AWS CLI v2 ile) aws ecr get-login-password --region eu-central-1 | docker login --username AWS --password-stdin 123456789012.dkr.ecr.eu-central-1.amazonaws.com docker build -t my-app-repo-2026 . docker tag my-app-repo-2026:latest 123456789012.dkr.ecr.eu-central-1.amazonaws.com/my-app-repo-2026:latest docker push 123456789012.dkr.ecr.eu-central-1.amazonaws.com/my-app-repo-2026:latest ``` ## Best Practices ve Anti-Patterns (2026) AWS ortamında başarılı ve sürdürülebilir uygulamalar geliştirmek için belirli en iyi uygulamaları takip etmek ve yaygın hatalardan kaçınmak kritik öneme sahiptir. 2026'da edindiğimiz tecrübelere göre, özellikle güvenlik ve maliyet optimizasyonu konuları daha da önem kazanmıştır. ### ✅ Best Practices (Doğru Yaklaşımlar) * **En Az Ayrıcalık Prensibi (Least Privilege):** IAM kullanıcılarına ve rollerine yalnızca işlerini yapmaları için gerekli olan minimum izinleri verin. `AdministratorAccess` politikasını sadece gerektiğinde ve çok dikkatli kullanın. **Neden:** Güvenlik ihlallerinin etkisini sınırlar. * **Çok Faktörlü Kimlik Doğrulama (MFA):** Tüm IAM kullanıcıları ve kök hesap için MFA'yı etkinleştirin. **Neden:** Yetkisiz erişime karşı ek bir güvenlik katmanı sağlar. * **Altyapıyı Kod Olarak Yönetme (IaC):** CloudFormation, Terraform veya AWS CDK gibi araçlarla altyapınızı kod olarak tanımlayın. **Neden:** Tutarlılık, sürüm kontrolü, otomasyon ve hata riskini azaltır. * **Maliyet Optimizasyonu:** AWS maliyetlerinizi düzenli olarak izleyin (AWS Cost Explorer). Kullanılmayan kaynakları kapatın, Spot Instances veya Reserved Instances gibi indirimli seçenekleri değerlendirin. **Neden:** Bulut faturalarınızın kontrol altında kalmasını sağlar. * **Yüksek Erişilebilirlik ve Felaket Kurtarma:** Uygulamalarınızı birden fazla Erişilebilirlik Bölgesi'ne (Availability Zone) dağıtın. Veritabanlarınız için yedekleme ve replikasyon stratejileri uygulayın. **Neden:** Uygulamalarınızın kesintisiz çalışmasını garanti eder. * **Otomatik Ölçeklendirme:** EC2 Auto Scaling Groups veya Lambda Concurrency gibi özelliklerle uygulamalarınızın trafiğe göre otomatik olarak ölçeklenmesini sağlayın. **Neden:** Performansı artırır ve maliyetleri optimize eder. * **Günlük Kaydı ve İzleme (Logging & Monitoring):** CloudWatch Logs ve Metrics ile uygulamalarınızı ve altyapınızı sürekli izleyin. Hatalar için alarmlar kurun. **Neden:** Problemleri proaktif olarak tespit etmenizi ve çözmenizi sağlar. * **Güvenlik Gruplarını ve Ağ ACL'lerini Doğru Yapılandırma:** Sadece gerekli portlara ve IP adreslerine erişim izni verin. **Neden:** Ağ seviyesinde güvenlik sağlar. ### ❌ Anti-Patterns (Yanlış Yaklaşımlar) * **Kök Kullanıcı ile Çalışmak:** Günlük operasyonlar için kök kullanıcı kimlik bilgilerini kullanmak. **Neden:** En büyük güvenlik riskidir, hesabınızın tamamen ele geçirilmesine yol açabilir. * **Access Key'leri Kod İçinde Saklamak:** AWS Access Key ID ve Secret Access Key'leri doğrudan kodunuzda veya versiyon kontrol sisteminde saklamak. **Neden:** Bu anahtarların açığa çıkması durumunda hesabınız tehlikeye girer. Bunun yerine IAM rollerini veya Secrets Manager'ı kullanın. * **Kaynakları Etiketlememek:** Kaynaklarınızı (EC2, S3, RDS vb.) proje, ortam, sahip gibi etiketlerle işaretlememek. **Neden:** Maliyet takibi, kaynak yönetimi ve otomasyonu zorlaştırır. * **Yedekleme ve Felaket Kurtarma Planı Olmaması:** Verilerinizi ve konfigürasyonlarınızı düzenli olarak yedeklememek. **Neden:** Veri kaybı veya uzun süreli kesintiler yaşanabilir. * **Gereksiz Kaynakları Çalışır Durumda Bırakmak:** Kullanılmayan EC2 örneklerini, RDS veritabanlarını veya diğer servisleri kapatmamak. **Neden:** Gereksiz maliyetlere yol açar. * **Monolitik Mimariyi Buluta Taşımak:** Mevcut monolitik bir uygulamayı olduğu gibi AWS'e taşımak ve bulutun esnekliğinden faydalanmamak. **Neden:** Bulutun sunduğu ölçeklenebilirlik ve esneklik avantajlarından tam olarak yararlanılamaz. ## Yaygın AWS Hataları ve Çözümleri (2026) AWS ile çalışırken, özellikle başlangıç seviyesinde, belirli hatalarla karşılaşmak oldukça doğaldır. 2026'da bile bu hataların bazıları hala geliştiricilerin zamanını alabilmektedir. İşte Stack Overflow'da sıkça karşılaşılan ve ekibimizin de tecrübe ettiği yaygın hatalar ve çözümleri: ### 1. Problem: `Access Denied` veya `UnauthorizedOperation` Hatası * **Sebep:** IAM kullanıcınızın veya rolünüzün, erişmeye çalıştığınız AWS kaynağı üzerinde gerekli izinlere sahip olmaması. Bu, en yaygın AWS hatalarından biridir. * **Çözüm:** IAM konsoluna gidin, ilgili kullanıcı veya rolün politikalarını kontrol edin. Gerekli `Action` (örneğin `s3:GetObject`, `ec2:RunInstances`) ve `Resource` (örneğin `arn:aws:s3:::mybucket/*`) izinlerinin verildiğinden emin olun. En az ayrıcalık prensibini uygularken bazen fazla kısıtlayıcı olabilirsiniz. AWS CloudTrail loglarını inceleyerek hangi API çağrısının başarısız olduğunu ve nedenini daha net görebilirsiniz. ### 2. Problem: Kaynak Bulunamadı (`NoSuchBucket`, `NotFound`) * **Sebep:** Belirtilen AWS kaynağının (S3 kovası, EC2 örneği, Lambda fonksiyonu vb.) mevcut olmaması veya yanlış bölgede aranması. Özellikle farklı bölgelerde çalışan birden fazla projeniz varsa bu hata sıkça görülür. * **Çözüm:** İlk olarak, kaynak adının veya kimliğinin doğru yazıldığından