Cemre Acar
AWS CLI ile S3 - EC2 Dosya Aktarımı

AWS CLI ile S3 - EC2 Dosya Aktarımı

Sunucularımız üzerinde sıkça depolama yapmak ya da depoladığımız bazı dosyaların sunucuya aktarılmasını istemek oldukça doğal. Bu yazıda bunu AWS üzerinde nasıl gerçekleştireceğimizi aktaracağım. Çok uzatmadan nasıl yapacağımıza değinelim. Her şeyden önce belirtmeliyim ki EC2 Instance üzerinde S3 servisine tam erişim vermeniz gerekmekte. Bunu AWS IAM ile EC2 - S3 Erişimi Oluşturma adlı yazımda adım adım göstermiştim. Erişim iznini verdiğinizi varsayıp AWS CLI ile devam edelim. 

AWS CLI Nedir ? 

AWS CLI , AWS’nin Komut Satırı Arabirimidir. AWS hizmetlerini yönetmemiz için kullanabileceğimiz bir araçtır. Sadece bunu indirip yapılandırarak birden çok AWS hizmetini komut satırından kontrol edebiliriz. Biz de bu yazıda S3 Bucket ve EC2 Instance’ımız arasındaki aktarımı AWS CLI ile sağlayacağız. Öyleyse hemen SSH ile EC2 Instance’ımıza bağlanalım ve şu komutu verelim.

sudo apt-get install awscli

Ardından doğru yüklendiğini kontrol edebilmek için şu komutu kullanabilirsiniz.

aws --version

Şimdi sıra indirdiğimiz aracımızı konfigüre etmeye geldi. Bu sayede AWS hesabımızla ilişkilendirebileceğiz. Bunun için aşağıdaki komut ile devam edelim.

aws configure

Bu komutu verdikten sonra AWS hesabımızın çeşitli bilgilerini istiyor bunları giriyoruz.

Not: credentials dosyası olarak indirdiğiniz sadece size özel ve saklamanız gereken dosyanın içerisinde bu bilgileri bulabilirsiniz.

Artık dosya alışverişinde bulunabilmemiz için her şey hazır. Aşağıdaki komut ile EC2 sunucumuzdaki bir dosyayı S3 Bucket’ımıza gönderelim.


aws s3 cp örnekdosyam.txt s3://bucketismi/bucketfolder/hedefdosya.txt

Bu komut ile tek bir dosyayı göndermiş olduk. Peki ben içi dolu bir klasör göndermek istersem ? O zaman da recursive parametresini kullanıyoruz.

aws s3 cp örneklasörüm s3://bucketismi/hedefdosyam/ --recursive

Bu komut ile de tüm dosyalarımızı başarıyla S3 Bucket’ımıza göndermiş olduk.

S3 Bucket’ımızdan EC2 sunucumuza dosyalarımızı çekmek için ise 

aws s3 cp s3://bucketismi/klasör/ /sunucuklasörüm/ --recursive

Bu komut ile de S3 Bucket’ımızdaki klasör adlı klasörün içerisindeki tüm dosyaları EC2 sunucumuz üstündeki sunucuklasörüm adlı klasöre kopyalamış olduk.

Ben tüm bu işlemleri otomatize etmek adına kendi sunucumda iki Script oluşturdum ve işinize yarayacağı fikrindeyim.



S3_to_Server.sh

#!/bin/bash

aws s3 cp s3://bucketismi/klasör/ /sunucudakiklasör/ --recursive<

echo "Dosyalar Depodan Sunucuya Aktarıldı!"


Server_to_S3.sh

#!/bin/bash

aws s3 cp / sunucudakiklasör/ s3:// bucketismi/klasör/ --recursive

echo "Dosyalar Sunucudan Depoya Aktarıldı!"


Bu sayede her defasında AWS CLI komutlarıyla cebelleşmeden tek bir komut ile dosya aktarımını tamamlayabildik. 
Yazımda eksik ya da yetersiz gördüğünüz kısımları yorum olarak belirtebilirsiniz. İyi Çalışmalar. 
 

Heyy ! Blog'a abone olup yazılarımdan ilk sen haberdar olmak ister misin ?

ABONE OL!

Yorumlar

Yorum Ekle

Yorumunuz onaylandıktan sonra yayınlanacaktır.