Ana içeriğe geç

AWS S3 Sync: Dosya Eşitlemeye Yönelik Eksiksiz Kılavuz

AWS CLI kullanarak yerel dosyaları Amazon S3 ile eşitlemeyi öğrenin. Bu uygulamalı eğitim, kurulum, temel işlemler, gelişmiş seçenekler ve yedekleme stratejileri üzerinden giderek yerel ortamınız ile AWS bulutu arasında dosya eşitlemesini ustalıkla yapmanızı sağlar.
· 15 dk. oku

Yapay Zeka ile Keşfedin

Yerel sistemler ile bulut depolama arasında dosya eşitlemek başınızı ağrıtmak zorunda değil.

AWS S3, yerel ortamınız ile Amazon Simple Storage Service (S3) kovası arasında dosyalarınızı senkron tutmayı kolaylaştıran kullanışlı bir komut satırı aracı sunar. Bu araç; geliştiriciler, sistem yöneticileri ve birden fazla konumda tutarlı dosya sürümlerine ihtiyaç duyan herkes için özellikle değerlidir. Sadece birkaç komutla dosyaları verimli şekilde aktarabilir, yedekler oluşturabilir ve felaket kurtarma çözümleri uygulayabilirsiniz.

AWS Komut Satırı Arayüzü (CLI), bu işlemleri geniş bir kullanıcı kitlesi için erişilebilir kılar. Elbette, Google Drive veya OneDrive kadar rahat olmayabilir, ancak birkaç güzel numarası var.

Bu eğitimde, temel kurulumdan ileri düzey kullanım desenlerine kadar AWS S3 sync hakkında bilmeniz gereken her şeyi ele alacağım.

>Tam olarak S3 nedir? S3’e giriş rehberimizle temelleri öğrenin.

AWS S3 Sync nedir?

AWS S3 sync, AWS CLI araç setiyle birlikte gelen güçlü bir komut satırı aracıdır. Yerel dosya sisteminizle bir S3 kovası arasında dosyaları kısa sürede eşitlemek için tasarlanmıştır.

S3 sync’i bulut için bir rsync gibi düşünün. Komut, kaynak ve hedef konumları analiz eder, farkları belirler ve ardından bunları eşleştirmek için yalnızca gerekli olanları transfer eder. Bu yaklaşım, saf dosya aktarım yöntemlerine kıyasla bant genişliğinden, zamandan ve potansiyel maliyetlerden tasarruf sağlar.

Perde arkasında S3 sync, dosya boyutu ve değiştirilme zaman damgası gibi nesne metaverilerini karşılaştırmak için API çağrıları yapar. Farklar tespit edildiğinde, dosyaları yükleme veya indirme işinin ağır kısmını üstlenir.

S3 sync’in güzelliği sadeliğinde yatar. Temel bir komut şöyle görünür:

aws s3 sync /local/directory s3://my-bucket/path

Elbette, aws komutlarını kullanmak için CLI’ı kurmanız gerekecek, ancak fikri aldınız—kullanımı son derece basit.

Kısacası, S3 sync perde arkasındaki karmaşık işlemleri gizler ve ortamlar arasında tutarlı dosya durumlarını korumanız için kolay bir yol sunar. Kritik verileri yedekliyor, web varlıkları dağıtıyor veya büyük veri kümeleri yönetiyor olun fark etmez—S3 sync ağır işi sizin için yapar.

AWS CLI ve AWS S3 Kurulumu

S3 ile dosyaları eşitlemeye başlamadan önce, AWS CLI’ı doğru şekilde kurup yapılandırmanız gerekir. AWS’ye yeniyseniz göz korkutucu gelebilir, ancak sadece birkaç dakikanızı alır.

CLI kurulumu iki ana adımdan oluşur: aracı yüklemek ve yapılandırmak. Her iki adımdan da şimdi bahsedeceğim.

AWS CLI’ın kurulması

AWS CLI’ın kurulumu işletim sisteminize göre biraz değişir.

Windows sistemleri için:

Linux sistemleri için:

Terminal üzerinden aşağıdaki üç komutu çalıştırın:

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

macOS sistemleri için:

Homebrew kurulu olduğunu varsayarak, Terminal’den tek satırda şunu çalıştırın:

brew install awscli

Homebrew yoksa bunun yerine şu iki komutu kullanın:

curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /

AWS CLI’ın yüklendiğini doğrulamak için tüm işletim sistemlerinde aws --version komutunu çalıştırabilirsiniz. Şuna benzer bir çıktı görmelisiniz:

AWS CLI sürümü

Görsel 1 - AWS CLI sürümü

AWS CLI’ı yapılandırma

Artık CLI yüklü olduğuna göre, AWS kimlik bilgilerinizle yapılandırmanız gerekiyor.

Halihazırda bir AWS hesabınız olduğunu varsayarak, oturum açın ve IAM servisine gidin. Orada, programatik erişime sahip yeni bir kullanıcı oluşturun. Kullanıcıya en azından S3 erişimi olacak şekilde uygun izinleri atamalısınız:

AWS IAM kullanıcısı

Görsel 2 - AWS IAM kullanıcısı

İşlem tamamlandığında, yeni bir erişim anahtarı oluşturmak için "Security credentials" bölümüne gidin. Oluşturduktan sonra Access key ID ve Secret access key bilgilerine sahip olacaksınız. Bunları güvenli bir yere not alın; gelecekte tekrar görüntüleyemezsiniz:

AWS IAM kullanıcı kimlik bilgileri

Görsel 3 - AWS IAM kullanıcı kimlik bilgileri

Terminale dönerek aws configure komutunu çalıştırın. Sizden Access key ID, Secret access key, bölge (eu-central-1 benim örneğimde) ve tercih edilen çıktı biçimini (json) girmenizi isteyecektir:

AWS CLI yapılandırması

Görsel 4 - AWS CLI yapılandırması

CLI üzerinden AWS hesabınıza başarıyla bağlandığınızı doğrulamak için aşağıdaki komutu çalıştırın:

aws sts get-caller-identity

Görmeniz gereken çıktı şöyledir:

AWS CLI test bağlantı komutu

Görsel 5 - AWS CLI test bağlantı komutu

Ve hepsi bu—S3 sync komutunu kullanmaya başlamadan önce sadece bir adım daha var!

AWS S3 kovası oluşturma

Son adım, eşitlenen dosyalarınızı depolayacak bir S3 kovası oluşturmaktır. Bunu CLI’dan veya AWS Yönetim Konsolu’ndan yapabilirsiniz. Biraz çeşitlilik olsun diye ikincisini kullanacağım.

Başlamak için Yönetim Konsolu’nda S3 hizmet sayfasına gidin ve "Create bucket" düğmesine tıklayın. Orada, benzersiz bir kova adı seçin (AWS genelinde küresel olarak benzersiz olmalı) ve ardından en alta kaydırıp "Create" düğmesine tıklayın:

AWS kova oluşturma

Görsel 6 - AWS kova oluşturma

Kova artık oluşturuldu ve yönetim konsolunda hemen görünecek. CLI üzerinden de oluşturulduğunu doğrulayabilirsiniz:

aws s3 ls

Mevcut tüm S3 kovaları

Görsel 7 - Mevcut tüm S3 kovaları

Unutmayın, S3 kovaları varsayılan olarak özeldir. Kovayı herkese açık dosyaları (ör. web sitesi varlıkları) barındırmak için kullanmayı planlıyorsanız, kova ilkelerini ve izinlerini buna göre ayarlamanız gerekir.

Artık her şey hazır; yerel makineniz ile AWS S3 arasında dosya eşitlemeye başlayabilirsiniz!

Temel AWS S3 Sync Komutu

AWS CLI’ı kurup yapılandırdığınıza ve bir S3 kovası hazırladığınıza göre, eşitlemeye başlama zamanı! AWS S3 sync komutunun temel sözdizimi oldukça basittir. Nasıl çalıştığını göstereyim.

S3 sync komutu şu basit deseni izler:

aws s3 sync <source> <destination> [options]

Hem kaynak hem hedef, yerel bir dizin yolu ya da bir S3 URI’si (s3:// ile başlayan) olabilir. Eşitlemeyi hangi yönde yapmak istediğinize bağlı olarak bunları farklı şekilde yerleştirirsiniz.

Yerelden bir S3 kovasına dosya eşitleme

Son zamanlarda Ollama deep research ile biraz oynuyordum. Diyelim ki S3’e eşitlemek istediğim klasör bu. Ana dizin Documents klasörünün altında. Şöyle görünüyor:

Yerel klasör içeriği

Yerel klasör içeriği

Yerel code-files klasörünü S3 kovasındaki backup klasörüyle eşitlemek için çalıştırmam gereken komut şu:

aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup

S3 kovasındaki backup klasörü yoksa otomatik olarak oluşturulur.

Konsolda şunları görürsünüz:

S3 sync süreci

Görsel 9 - S3 sync süreci

Birkaç saniye sonra, yerel code-files klasörünün içeriği S3 kovasında hazır olacaktır:

S3 kovası içeriği

Görsel 10 - S3 kovası içeriği

S3 sync’in güzelliği, yalnızca hedefte bulunmayan veya yerelde değiştirilmiş dosyaları yüklemesidir. Aynı komutu hiçbir şeyi değiştirmeden tekrar çalıştırırsanız... hiçbir şey görmezsiniz! Bunun nedeni, AWS CLI’ın tüm dosyaların zaten eşitlenmiş ve güncel olduğunu fark etmesidir.

Şimdi iki küçük değişiklik yapacağım—yeni bir dosya oluşturmak (new_file.txt) ve mevcut bir dosyayı güncellemek (requirements.txt). Eşitleme komutunu tekrar çalıştırdığınızda yalnızca yeni veya değiştirilmiş dosyalar yüklenecektir:

S3 sync süreci (2)

Görsel 11 - S3 sync süreci (2)

Yerel klasörleri S3’e eşitlerken bilmeniz gerekenler bu kadar. Peki ya tersi yönde eşitlemek isterseniz?

S3 kovasından yerel bir dizine dosya eşitleme

S3 kovanızdan yerel makinenize dosya indirmek istiyorsanız, kaynak ile hedefi yer değiştirin:

aws s3 sync s3://testbucket-dradecic/backup /Users/dradecic/Documents/code-files-from-s3 

Bu komut, S3 kovanızdaki backup klasöründen tüm dosyaları code-files-from-s3 adlı yerel bir klasöre indirecektir. Yerel klasör yoksa yine CLI sizin için oluşturur:

S3’ten yerele eşitleme

Görsel 12 - S3’ten yerele eşitleme

Şunu belirtmekte fayda var: S3 sync çift yönlü değildir. Her zaman kaynaktan hedefe çalışır ve hedefi kaynağa uygun hale getirir. Bir dosyayı yerelde siler ve ardından S3’e eşitlerseniz, dosya S3’te yine de bulunur. Benzer şekilde, bir dosyayı S3’te siler ve S3’ten yerele eşitlerseniz, yerel dosya olduğu gibi kalır.

Hedefin kaynağı birebir yansıtmasını (silinenler dahil) istiyorsanız, gelişmiş seçenekler bölümünde ele alacağım --delete bayrağını kullanmanız gerekir.

Gelişmiş AWS S3 Sync Seçenekleri

Önceden incelediğimiz temel S3 sync komutu tek başına güçlüdür, ancak AWS eşitleme süreci üzerinde daha fazla kontrol sağlayan ek seçeneklerle birlikte gelir. 

Bu bölümde, temel komuta ekleyebileceğiniz en kullanışlı bayraklardan bazılarını göstereceğim.

Yalnızca yeni veya değiştirilmiş dosyaları eşitleme

Varsayılan olarak S3 sync, bir dosyanın eşitlenmesi gerekip gerekmediğini belirlemek için dosya boyutu ve değiştirilme zamanını kontrol eden temel bir karşılaştırma mekanizması kullanır. Ancak bu yaklaşım, boyutu aynı kalan fakat değiştirilmiş dosyalar söz konusu olduğunda her değişikliği yakalamayabilir.

Daha hassas bir eşitleme için --exact-timestamps bayrağını kullanabilirsiniz:

aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --exact-timestamps

Bu, S3 sync’in zaman damgalarını milisaniye hassasiyetinde karşılaştırmasını zorunlu kılar. Bu bayrağı kullanmanın daha ayrıntılı karşılaştırmalar gerektirdiği için eşitleme sürecini biraz yavaşlatabileceğini unutmayın.

Belirli dosyaları hariç tutma veya dahil etme

Bazen bir dizindeki her dosyayı eşitlemek istemezsiniz. Geçici dosyaları, günlükleri veya belirli dosya türlerini (benim örneğimde .DS_Store gibi) hariç tutmak isteyebilirsiniz. İşte bu noktada --exclude ve --include bayrakları işe yarar.

Örneği netleştirmek için, kod dizinimi eşitlemek istediğimi ancak tüm Python dosyalarını hariç tutmak istediğimi varsayalım:

aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --exclude "*.py"

Artık çok daha az sayıda dosya S3’e eşitlendi:

Python dosyaları hariç tutularak S3 sync

Görsel 13 - Python dosyaları hariç tutularak S3 sync

Daha karmaşık desenler oluşturmak için --exclude ve --include bayraklarını birleştirebilirsiniz. Örneğin, Python dosyaları hariç her şeyi hariç tutun:

aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --exclude "*" --include "*.py"

Desenler, belirtilen sırayla değerlendirilir; yani sıra önemlidir! Bu bayrakları kullanırken şunları göreceksiniz:

Hariç tutma ve dahil etme bayrakları

Görsel 14 - Hariç tutma ve dahil etme bayrakları

Artık yalnızca Python dosyaları eşitleniyor ve önemli yapılandırma dosyaları eksik.

Hedeften dosya silme

Varsayılan olarak S3 sync, hedefe yalnızca dosya ekler veya günceller—asla silmez. Bu, kaynaktan bir dosyayı silerseniz, eşitlemeden sonra da hedefte kalacağı anlamına gelir.

Hedefin silmeler dahil olmak üzere kaynağı tam olarak yansıtmasını sağlamak için --delete bayrağını kullanın:

aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --delete

Bunu ilk kez çalıştırırsanız, yerel tüm dosyalar S3’e eşitlenecektir:

Delete bayrağı

Görsel 15 - Delete bayrağı

Bu özellik, dizinlerin birebir kopyalarını korumak için özellikle kullanışlıdır. Ancak dikkatli olun—yanlış kullanılırsa veri kaybına yol açabilir.

Diyelim ki yerel klasörümden config.py dosyasını sildim ve --delete bayrağıyla eşitleme komutunu çalıştırdım:

Delete bayrağı

Görsel 16 - Delete bayrağı (2)

Gördüğünüz gibi komut, yeni ve değiştirilmiş dosyaları eşitlemekle kalmıyor, yerel dizinde artık bulunmayan dosyaları S3 kovasından da siliyor.

Güvenli eşitleme için dry run ayarlama

En riskli S3 sync işlemleri --delete bayrağını içerenlerdir. Önemli dosyaları yanlışlıkla silmemek için, --dryrun bayrağını kullanarak işlemi gerçekte herhangi bir değişiklik yapmadan simüle edebilirsiniz:

aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --delete --dryrun

Göstermek için, yerel klasörden requirements.txt ve settings.toml dosyalarını sildim ve ardından komutu çalıştırdım:

Dry run

Görsel 17 - Dry run

Bu, komutu gerçekten çalıştırsaydınız neler olacağını; hangi dosyaların yükleneceğini, indirileceğini veya silineceğini tam olarak gösterir.

Özellikle önemli verilerle çalışırken ve --delete bayrağını kullanırken, herhangi bir S3 sync komutunu uygulamadan önce her zaman --dryrun kullanmanızı öneririm.

S3 sync komutu için --acl ile izin belirleme, --storage-class ile S3 depolama katmanı seçme ve --recursive ile alt dizinleri dolaşma gibi pek çok başka seçenek de mevcuttur. Tüm seçeneklerin listesi için resmi AWS CLI belgelerine göz atın.

Artık temel ve gelişmiş S3 sync seçeneklerine aşina olduğunuza göre, bu komutları yedekleme ve geri yükleme gibi pratik senaryolarda nasıl kullanacağınıza bakalım.

Yedekleme ve Geri Yükleme için AWS S3 Sync Kullanımı

AWS S3 sync’in en popüler kullanım alanlarından biri, önemli dosyaların yedeklerini almak ve gerektiğinde geri yüklemektir. Sync komutunu kullanarak basit bir yedekleme ve geri yükleme stratejisini nasıl uygulayabileceğinizi inceleyelim.

S3’e yedekleme oluşturma

S3 sync ile yedekleme oluşturmak basittir—yerel dizininizden bir S3 kovasına sync komutunu çalıştırmanız yeterli. Ancak etkili yedekler için izlenecek bazı iyi uygulamalar vardır.

Öncelikle, yedeklerinizi tarihe veya sürüme göre düzenlemek iyi bir fikirdir. İşte S3 yolunda zaman damgası kullanan basit bir yaklaşım:

# Create a timestamp variable
TIMESTAMP=$(date +%Y-%m-%d-%H-%M-%S)

# Run the backup
aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backups/$TIMESTAMP

Bu, her yedek için 2025-03-10-18-56-42 gibi bir zaman damgasına sahip yeni bir klasör oluşturur. S3’te şu görünümü görürsünüz:

Zaman damgalı yedekler

Görsel 18 - Zaman damgalı yedekler

Kritik veriler için birden fazla yedek sürümü tutmak isteyebilirsiniz. Zaman damgasına dayalı yedeklemeyi düzenli olarak çalıştırmak bunu kolayca sağlar.

--storage-class seçeneğini kullanarak yedekleriniz için daha maliyet-etkin bir depolama sınıfı da belirtebilirsiniz:

aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backups/$TIMESTAMP --storage-class STANDARD_IA

Özel depolama sınıfıyla yedek içeriği

Görsel 19 - Özel depolama sınıfıyla yedek içeriği

Bu, S3 Infrequent Access depolama sınıfını kullanır; maliyeti daha düşüktür ancak küçük bir geri getirme ücreti vardır. Uzun süreli arşivleme için Glacier depolama sınıfını dahi kullanabilirsiniz:

aws s3 sync /Users/dradecic/Documents/important-data s3://testbucket-dradecic/backups/$TIMESTAMP --storage-class GLACIER

Glacier’da saklanan dosyaların geri getirilmesinin saatler sürdüğünü aklınızda bulundurun; dolayısıyla hızlıca ihtiyaç duyabileceğiniz veriler için uygun değildir.

S3’ten dosyaları geri yükleme

Bir yedekten geri yüklemek de aynı derecede kolaydır—sync komutunuzda kaynak ve hedefi ters çevirin:

# Restore from the most recent backup (assuming you know the timestamp)
aws s3 sync s3://testbucket-dradecic/backups/2025-03-10-18-56-42 /Users/dradecic/Documents/restored-data

Bu komut, ilgili yedekteki tüm dosyaları yerel restored-data dizininize indirecektir:

S3’ten dosyaları geri yükleme

Görsel 20 - S3’ten dosyaları geri yükleme

Tam zaman damgasını hatırlamıyorsanız, önce tüm yedeklerinizi listeleyebilirsiniz:

aws s3 ls s3://testbucket-dradecic/backups/

Bu da size şuna benzer bir liste gösterecektir:

Yedek listesi

Görsel 21 - Yedek listesi

Daha önce ele aldığımız hariç tutma/dahil etme bayraklarını kullanarak bir yedekten belirli dosyaları veya dizinleri de geri yükleyebilirsiniz:

# Restore only the config files
aws s3 sync s3://testbucket-dradecic/backups/2025-03-10-18-56-42 /Users/dradecic/Documents/restored-configs --exclude "*" --include "*.config" --include "*.toml" --include "*.yaml"

Görev açısından kritik sistemler için yedeklerinizi zamanlanmış görevlerle (Linux/macOS’ta cron, Windows’ta Task Scheduler gibi) otomatikleştirmenizi öneririm. Böylece manuel olarak hatırlamak zorunda kalmadan verilerinizi düzenli olarak yedeklemiş olursunuz.

AWS S3 Sync Sorun Giderme

AWS S3 sync güvenilir bir araçtır, ancak ara sıra sorunlarla karşılaşabilirsiniz. Yine de göreceğiniz hataların çoğu kullanıcı kaynaklıdır.

Yaygın eşitleme hataları

Bazı yaygın sorunlar ve çözümlerine göz atalım.

  • Access denied hatası genellikle IAM kullanıcınızın S3 kovasına erişmek veya belirli işlemleri yapmak için gerekli izinlere sahip olmadığı anlamına gelir. Düzeltmek için şunlardan birini deneyin:
    • IAM kullanıcınızın uygun S3 izinlerine (s3:ListBucket, s3:GetObject, s3:PutObject) sahip olduğunu kontrol edin.
    • Kova ilkesinin (bucket policy) kullanıcınızın erişimini açıkça engellemediğini doğrulayın.
    • Genel işlemlere ihtiyaç duyuyorsanız, kovanın genel erişimi engellemediğinden emin olun.
  • No such file or directory hatası genellikle sync komutunda belirttiğiniz kaynak yolun mevcut olmaması durumunda görülür. Çözüm basittir—yollarınızı iki kez kontrol edin ve mevcut olduklarından emin olun. Kova adları veya yerel dizinlerde yazım hatalarına özellikle dikkat edin.
  • Dosya boyutu sınırı hataları, büyük dosyaları eşitlemek istediğinizde ortaya çıkabilir. Varsayılan olarak S3 sync 5 GB’a kadar olan dosyaları işleyebilir. Daha büyük dosyalar için zaman aşımı veya eksik aktarım görebilirsiniz.
    • 5 GB’tan büyük dosyalar için --only-show-errors bayrağını --size-only bayrağıyla birlikte kullanmalısınız. Bu kombinasyon, yalnızca dosya boyutlarını karşılaştırıp çıktıyı en aza indirerek büyük dosya transferlerine yardımcı olur:
aws s3 sync /Users/dradecic/large-files s3://testbucket-dradecic/large-files --only-show-errors --size-only

Eşitleme performansını iyileştirme

S3 sync beklediğinizden yavaş çalışıyorsa, hızlandırmak için yapabileceğiniz bazı ayarlar var.

  • Paralel aktarımlar kullanın. Varsayılan olarak S3 sync sınırlı sayıda paralel işlem kullanır. --max-concurrent-requests parametresiyle bunu artırabilirsiniz:
aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --max-concurrent-requests 20
  • Parça boyutunu ayarlayın. Büyük dosyalar için parça boyutunu ayarlayarak transfer hızını optimize edebilirsiniz. Bu, varsayılan 8 MB yerine 16 MB’lık parçalara böler; iyi ağ bağlantılarında daha hızlı olabilir:
aws s3 sync /Users/dradecic/large-files s3://testbucket-dradecic/backup --cli-read-timeout 120 --multipart-threshold 64MB --multipart-chunksize 16MB
  • Betikler için --no-progress kullanın. S3 sync’i otomatik bir betikte çalıştırıyorsanız, çıktıyı azaltmak ve performansı iyileştirmek için --no-progress bayrağını kullanın:
aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --no-progress
  • Yerel uç noktaları kullanın. AWS kaynaklarınız aynı bölgede ise bölgesel uç noktayı belirtmek gecikmeyi azaltabilir:
aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --endpoint-url https://s3.eu-central-1.amazonaws.com

Bu iyileştirmeler, özellikle büyük veri transferlerinde veya daha az güçlü makinelerde çalışırken eşitleme performansını önemli ölçüde artırabilir.

Bu çözümleri denedikten sonra hâlâ sorun yaşıyorsanız, AWS CLI’da yerleşik bir hata ayıklama seçeneği bulunur. Eşitleme sürecinde neler olduğunu ayrıntılı görmek için komutunuza --debug ekleyin:

aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --debug

Şunlara benzer çok sayıda ayrıntılı günlük mesajı görmeyi bekleyin:

Hata ayıklama modunda sync çalıştırma

Görsel 22 - Hata ayıklama modunda sync çalıştırma

AWS S3 sync için sorun gidermede anlatacaklarımız bu kadar. Elbette başka hatalar da olabilir, ancak çözümlerin %99’unu bu bölümde bulacaksınız.

AWS S3 Sync’e Genel Bakış

Özetle, AWS S3 sync hem kullanımı basit hem de inanılmaz derecede güçlü nadir araçlardan biridir. Temel komutlardan ileri düzey seçeneklere, yedekleme stratejilerine ve sorun giderme ipuçlarına kadar her şeyi öğrendiniz.

Geliştiriciler, sistem yöneticileri veya AWS ile çalışan herkes için S3 sync komutu vazgeçilmezdir—zaman kazandırır, bant genişliği kullanımını azaltır ve dosyalarınızın ihtiyaç duyduğunuz yerde, ihtiyaç duyduğunuz zamanda olmasını sağlar.

Kritik verileri yedekliyor, web varlıklarını dağıtıyor ya da farklı ortamları senkron tutuyor olun; AWS S3 sync süreci sade ve güvenilirdir.

S3 sync ile rahat etmek için en iyi yol onu kullanmaya başlamaktır. Kendi dosyalarınızla basit bir eşitleme işlemi kurmayı deneyin; ardından özel ihtiyaçlarınıza uyacak şekilde aşamalı olarak gelişmiş seçenekleri keşfedin.

Özellikle --delete bayrağını kullanırken ve önemli verilerle çalışırken, önce her zaman --dryrun kullanmayı unutmayın. Ne olacağını doğrulamak için fazladan bir dakika ayırmak, önemli dosyaları yanlışlıkla silmekten daha iyidir.

AWS hakkında daha fazlasını öğrenmek için DataCamp’in şu kurslarına göz atın:

AWS sertifikasyon sınavlarına hazırlanmak için DataCamp’i de kullanabilirsiniz - AWS Cloud Practitioner (CLF-C02).

SSS

AWS S3 sync nedir ve nasıl çalışır?

AWS S3 sync, AWS CLI ile birlikte gelen ve yerel sistemlerle Amazon S3 kovaları arasında dosyaları eşitlemek için tasarlanmış bir komut satırı aracıdır. Kaynak ve hedef konumlardaki dosyaları karşılaştırır, farkları belirler ve ardından eşleşmelerini sağlamak için yalnızca gerekli olanları transfer eder; bu da tam yükleme veya indirmelere kıyasla bant genişliği ve zamandan tasarruf sağlar.

Dosyaları bir S3 kovasına ve kovadan geri eşitleyebilir miyim?

Evet, AWS S3 sync iki yönlü çalışır. Yerel dosyaları bir S3 kovasına aws s3 sync /local/directory s3://my-bucket/path ile eşitleyebilir veya bir S3 kovasından yerel sisteminize aws s3 sync s3://my-bucket/path /local/directory ile dosya çekebilirsiniz. Komut her zaman hedefi kaynağa uygun hale getirir.

AWS S3 sync dosyaları otomatik olarak siler mi?

Varsayılan olarak S3 sync, kaynakta olmayan dosyaları hedeften silmez. Ancak, hedefin silmeler dahil kaynağı birebir yansıtmasını sağlamak için sync komutunuza --delete bayrağını ekleyebilirsiniz. Bu özelliği dikkatle kullanın ve önce --dryrun ile test etmeyi düşünün.

Büyük dosyalar için AWS S3 sync’i nasıl optimize edebilirim?

Büyük dosyalar için S3 sync performansını --max-concurrent-requests ile paralel aktarımı artırarak, --multipart-chunksize ile parça boyutunu ayarlayarak ve --cli-read-timeout ile zaman aşımlarını önleyerek optimize edebilirsiniz. 5 GB üzeri dosyalar için --only-show-errors ve --size-only bayraklarını birleştirerek daha iyi performans elde edebilirsiniz.

AWS S3 sync ile yedeklemeleri otomatikleştirebilir miyim?

Evet, AWS S3 sync otomatik yedekler oluşturmak için idealdir. Zaman damgası içeren hedef yollarıyla sync komutlarını düzenli çalıştırmak için zamanlanmış görevler (Linux/macOS’ta cron, Windows’ta Task Scheduler) kurabilirsiniz. Uzun vadeli, maliyet-etkin depolama için STANDARD_IA veya GLACIER gibi depolama sınıflarını belirtmek üzere --storage-class parametresini kullanın.

Dario Radečić

Yazar

Dario Radečić

Hırvatistan merkezli Kıdemli Veri Bilimci. 700’ün üzerinde yayımlanmış makaleyle 10 M+ görüntüleme elde eden, önde gelen bir teknoloji yazarı. TPOT ile Makine Öğrenimi Otomasyonu kitabının yazarı.

Konular

İlgili