Sitemap
Samet USTAOGLU

Samet USTAOGLU

EC2 VOLUME - 1

10 min readOct 17, 2021

--

Press enter or click to view image in full size

Büyük resmi görmek açısından konuya girmeden bir açıklama yapayım. Öncelikle iki çeşit volume tipinden bahsedeceğim takiben esas konumuz EBS üzerinde EBS nedir? Ne işe yarar? Çeşitleri nelerdir? gibi temel bilgiler vereceğim daha sonra konsol üzerinde işlemleri anlatacağım , son kısımda da konu ile alakalı snapshot ve AMI kavramlarından da bahsedeceğim. Bu yazının ikinci serisinde de teminalden EBS işlemlerini anlatmış olacağım.

AWS de Volume’ler blok tabanlıdır S3 de ise obje tabanlı bir depolama göreceğiz. Blok tabanlı demek sizin veriniz 4kb lık küçük hacimlere bölünmüş halde saklanıyor demektir. İki çeşit volume tipimiz var karşılaştırarak anlatacağım. Birincisi instance store(Ephemeral) diğeri EBS(Elastic Block Store).

Instance store, fiziksel olarak servera bağlıdır. Kalıcı değildir yani instance terminate edildiğinde veriler kaybolur. Verilerin muhafazasından kullanıcı sorumludur. Snapshot desteği yoktur. Farklı yöntemlerle alınabilir ilerde bahseteceğiz. EBS'e nazaran veriye erişim hızlıdır çünkü direk bağlı olduğu için düşük gecikme olacaktır. Ne kadar perfomanslı olduğunu aşağıdaki resimden görebilirsiniz. SSD veya HHD seçilebilir.

EBS' e gelirsek kalıcıdır diyebiliriz çünkü Instance'dan bağımsızdır instance terminate edilirse EBS deki verilere muhafaza edilir. AWS tarafından % 99.999 erişilebilirlik garantisi verilir. Snapshot desteği vardır. SSD ve HDD seçenekleri vardır.

Toparlayacak olursak cihazınıza bağlı oluşan volume Instance store’dur. Bilgisayarınızdaki C gibi düşünebilirsiniz. EBS ise network üzerinde yaratılan volume’lerdir ve siz bunları instance’larınıza bağlayabilirsiniz.

EBS (Elastic Block Store)

EBS bizlere instance’larımız kapansa dahi verilerimize erişebilme imkanı veren bir depolama birimidir. Bir EBS aynı anda tek bir instance ile ilişkilendirilebilir nitro EBS’ler bu kuralın istisnasıdır. Fakat bir instance’a birden fazla EBS ilişkilendirebiliriz. Ayrıca oluşturduğunuz EBS ler yalnızca aynı AZ(Avalibility Zone) içerisindeki instance’lar ile ilişkilendirilebilir. EBS’i kullandığımız usb stick lere benzetebiliriz. Birinden çıkartıp farklı bir bilgisayara takabiliriz. EBS leri fiziksel değil de network drive gibi düşünmeliyiz.

Press enter or click to view image in full size

Farklı AZ ler de kullanamayız demiştik kullanmak istersek snapshot alıp diğer AZ lerde kullanmak için çözüm üretebiliriz. Yazının devamında bu çözümü göreceksiniz.

EBS seçimi yaparken iki seçim yapacağız ilk olarak hacmini yani kaç GB olacağını takiben IOPS değerini yani kabaca performansını seçeceğiz.

Depolama birimi demiştik ileride S3 servisini anlatırken de depolama birimi diyeceğiz aralarındaki en temel fark şudur. EBS hangi instance’a bağlı ise onun tarafından çağrılabilir. Fakat S3'e her yerden erişebiliriz.

Biraz çeşitlerinden bahsedelim daha sonra menüye gireceğiz konsol üzerinden anlatıma devam edeceğim.

Press enter or click to view image in full size

Yukarıdaki şekle göre SSD ve HDD şeklinde ikiye ayırabiliriz. SSD bölümündeki seçenekleri de daha sonra ayıracağı ve toplam 6 çeşit EBS tipimiz olacak.

Cold HDD (sc1): Daha az sıklıkla erişilen veriler için en düşük maaliyetli çözümdür.

Max throughput 250 MiB/s — max IOPS 250 (Max IOPS per volume (1 MiB I/O))

Throughput Optimized HDD (st1): Sık erişilen yoğun iş hacmi için tasarlanmış düşük maaliyetli bir çözümdür.

Max throughput 500 MiB/s — max IOPS 500 (Max IOPS per volume (1 MiB I/O))

General Purpose SSD (gp2 and gp3): Genel amaçlı fiyat performans açısından dengeli SSD çözümüdür.

gp2 için Max throughput 250 MiB/s — max IOPS 16,000 (Max IOPS per volume (16 KiB I/O))

AWS in default EBS tipidir. Diğerlerini seçmeniz durumunda free tier’dan çıkacak extra ücrete tabi olacaksınız bu kısım önemli.

gp3 için Max throughput 1000 MiB/s — max IOPS 16,000 (Max IOPS per volume (16 KiB I/O))

Yeni nesildir ama fiyat olarak gp2 den daha uygundur.

Provisioned IOPS SSD: Düşük gecikme süresi ve yüksek verim gerektiren iş yükleri için en performanslı ve en pahalı AWS çözümüdür.

io1 ve io2 : Max throughput 1,000 MiB/s — max IOPS 64,000 (Max IOPS per volume (16 KiB I/O))

io2 Block Express: Max throughput 4,000 MiB/s — max IOPS 256,000 (Max IOPS per volume (16 KiB I/O)). io1/2 ile karşılaştırıldığında 4 kata kadar daha verimlidir.

Tam burada bir istisnaya göz atalım daha önce bir EBS aynı anda yalnızca bir instance’a bağlanabilir demiştik. io1 ve i02 için aynı AZ de olmak koşuluyla birden fazla instance’a bağlanabilme özelliği vardır. Her insatance okuma ve yazma yapabilir ama aynı anda yazma olmaması için yönetilmesi gerekmektedir.

IOPS derenin hızı gibi düşünülürse, throughput için de derenin genişliği diyebiliriz. Aslında throughput değeri iops değerinden de etkileniyor aşağıda formülünü görebilirisiniz.

Minimum IOPS değerlerini bilelim sınavda bir senayo verilip minimum iops değerine göre hangisini seçersiniz şeklinde soru gelebilir.

Daha detaylı bilgiye aşağıdaki linkten ulaşabilirsiniz. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html

Şimdi konsoldan devam edelim. Öncelikle İnstance oluşturulurken ilgili sayfayı daha sonra sıfırdan EBS yaratmak için kullandığımız menüyü anlatacağım. Yeni bir instance oluşturmaya çalışalım ve 4.bölümü yani storage kısmını inceleyelim.

Press enter or click to view image in full size
  • Volume type kısmında iki seçenek görüyoruz birincisi bilgisayara direk bağlı instance store, ikincisi bizim extra ilave ettiğimiz EBS kısmı boyutlarını buradan seçebiliriz. Bu menüde EBS ilave etmedi isek daha sonra da ilave edebileceğiz.
  • Device fiziksel olarak kasaya verilen isim.
  • Snapshot kısmında, Root volumün hangi snaphot üzerinden oluşturulduğu burada belirtiliyor root için biz seçemiyoruz aynı AZ de aynı tip cihazlar için bu değer aynı çıkacaktır. EBS için ise varsa snopshot'larınızdan veya hazır olanlardan seçebilirsiniz veya boş bırakabilirsiniz.
  • Volume tipi kısmını yukarıda uzunca anlatmıştık gp2, gp3, io1, io2 ve magnetic seçeneklerini görebilirsiniz. karşısında da seçtiğiniz tiper göre IOPS ve Throughput değerlerini göreceksiniz.
  • Delete on Termination kısmını seçtiğinizde şu anlama gelir, Makinamı terminate ettiğimde volumü de terminate et yani makine kapanırsa verileriniz de gidecek tamamen. Şöyle bir sıkıntı yaşanabilir eğer siz sürekli makine oluşturup kaldırıyor ve bu seçenekte tikli değilse yaratılan EBS lerde kapanmayacak ücretlendirme olarak gol yiyebilrsiniz 😂
  • Son kısım Encryption, kriptolamayı baştan seçmeniz gerekir. root device oluşturulduktan sonra şifrelenemez ama bunun için de taklalı yöntemler mevcut. EBS in snapshot’ını alıp yeni EBS i o snapshot üzerinden kriptolu oluşturabilirisiniz.

Sıfırdan EBS oluşturma sayfasına geçelim. Soldaki menüden Elastic Block Store kısmından Volume seçeneğine tıklayalım. Bu sayfada hali hazırda mevcut tüm EBS’ler görülecek.

Press enter or click to view image in full size
  • Create Volume kısmını yeni EBS oluşturmak için kullanacağız.
  • Action kısmında ise hali hazırdaki EBS ler için bazı işlemler yapabileceğiz.
  • Modify Volume kısmından volume tipini ve size'ını değiştirebiliriz. Size kısmı için artırma yapılabilir küçültme yapılamaz.
  • Create Snapshot kısmından seçtiğimiz EBS'i aynı özellikleriyle kullanmak için snapshot oluşturabiliriz. Açıklama ve Tag girilebilir zorunlu değildir. Hemen altındaki Create Snapshot Lifecycle Policy seçeneği ile belirli kurallar belirleyip otomatik istediğiniz aralıklarda snapshot alınmasını sağlayabilirisiniz.
  • Delete volume ile boşta olan yani bir instance'a bağlı olmayan volume’leri silebilirsiniz.
  • Attach volume ile boşta olan bir EBS volume’ünüzü herhangi bir instance ınıza bağlayabilirsiniz.
  • Detach volume ile bir instance ınaza bağlı olan volumünüzü ayırabilirsiniz.
  • Force Detach volume ile zorla ayırma yapabilirsiniz. Kullanımda olan volumleri ayrımada hata alınırsa bu seçenek ile ayırabilirsiniz.
Press enter or click to view image in full size

Alt menüde EBS ler ile ilgili detaylı bilgiyi bulabilrisiniz.

  • Description kısmında yukarıdaki verileri görebilrisiniz AZ, Encription durumu, Size'ı, volume tipi, oluşturma zamanı, hangi instance'a bağlı olduğu vs.
  • Status Checks kısmında çalışıp çalışmadığı bilgisini bulacaksınız.
  • Monitoring kısmında birçok grafik ile okuma yazma bant genişiliği verimliliği gibi değerleri gözlemleyebilirsiniz.
  • Tag kısmında yeni tag verebilir veya düzeltme yapabilirsiniz.

Şimdi yeni bir volume oluşturalım Create Volume kısmını tıklayalım.

Press enter or click to view image in full size

Tipini, boyutunu, girdiğinizde IOPS değerini aşağıda görebileceksiniz. Availability Zone kısmı önemli oluşturduğunuz EBS volume'ler ancak aynı AZ deki instance'lar tarafından kullanılabilir. Hemen altında snapsotID seçeneği ile daha önce oluşturduğunuz veya hazır snapshotlardan birini seçip veya boş bırakıp devam edebilirsiniz. Encryption seçeneği ile de oluşturulan volumü kriptolu veya kriptosuz oluşturma kararı veriyorsunuz. Bu karar daha sonra değiştirilemez. En alt kısımda da Tag verebilirsiniz.

Get Samet USTAOGLU’s stories in your inbox

Join Medium for free to get updates from this writer.

Yeni volume oluşturduğunuzda ana menüde State kısmı available olarak göreceksiniz eğer bir instance'a attach ederseniz state in-use olacak. EBS volume attach ettiğiniz instance'ınızı terminate ettiğinizde volume hala açık kalacak dikkat edelim. Attach edilen EBS'lerin nasıl kullanılacağı ayrı bir başlık olarak gelecek.

Saniyeler içinde oluşturup silebiliyorsunuz bu da cloud’un en güzel özelliklerinden bir tanesi 😂

EBS Snapshots

Öncelikle neden böyle bir özellik var onu açıklamaya çalışalım. Veri önemli ve kullanıcı kaynaklı veya cihaz kaynaklı sebeplerle veriyi kaybetme durumu her zaman mümkün bu sebeple önemli olan verilerimizin kopyasını alma ihtiyacı duyarız. Snapshot özelliği ile bu ihtiyacımız görülmüş olacak. Snapshot için herhangi bir zamanda yaratılan backup diyebiliriz.

Snapshot almadan önce EBS’i insatance’dan detach etme zorunluluğu olmamakla birlikte detach ettikten sonra snapshot almak tavsiye edilir.

Snapshot’lar AWS S3 üzerinde saklanır. Biz konsol üzerinden erişebiliriz.

Oluşturulan Snapshotlar 3 farklı amaç için kullanılabilir. Birincisi backup yani o anın kopyası olarak, ikincisi Volume oluşturmak için, üçüncüsü aynı özellikli makina ayağa kaldırmak isteğinizde image oluşturmak için kullanılabilir.

Aldığınız snapshotları farklı AZ veya region’lara kopya edebilirsiniz.

Şimdi konsola gidelim.

EC2 sayfasında sol menüde EBS başlığı altında Snapshot kısmına tıklayalım.

Press enter or click to view image in full size

Create Snapshot seçeneği ile önce halihazırda kullanımda olan bir EBS in snapshotunu alalım.

Press enter or click to view image in full size
  • Select resource type ile bir volume veya instance seçebiliriz. Seçilen değere göre aşağıdaki kısımlar değişecektir.
  • Volume seçerseniz yukarıdaki resimde görüldüğü gibi kullanımda olan EBS lerden birini seçebilirsiniz.
Press enter or click to view image in full size
  • Instance seçerseniz mevcut instance’ları göreceksiniz. Exclude root volume seçeneğini tiklerseniz de snapshot alırken seçtiğiniz instance’ın root valumü hariç tutulur. Snapshot almadan mutlaka makinayı kapatmanız tavsiye edilir.
Press enter or click to view image in full size

Actions menüsünden,

  • Delete ile Snapshotu silebilir,
  • Create Volume ile aynı özellikte yeni bir EBS Volume oluşturabilir, Farklı AZ leri burada seçebililirsiniz. Boyutunu değiştirebilirsiniz. EBS volumü farklı AZ ye taşımanın yolu bu menüden yapılabilir.
  • Fast Snapshot Restore ile hızlı bir şekilde volume oluşturabilirsiniz. Her AZ için ayrı etkinleştirilmesi gerekir, ücretlidir.
  • Create Image ile imaj oluşturabilir bu imajla yeni instance'lar oluşturabilirsiniz. Diyelim onlarca program yüklediniz instance'ınıza aynısından oluşturmak istiyorsunuz bu seçenek size göre. Oluşturulan AMI'ler EC2 sayfasında IMAGES başlığı altında AMIs bölümüne kaydedilecek.
  • Copy ile snapshot'ı farklı Region'lara kopyalayabilir ve istediğiniz yerde tekrar kullanabilirsiniz. Burada önemli bir ayrıntı var eğer oluşturacağımız volumü şifrelemek istiyorsak burada encrypt this snapshot seçeneğini tiklememiz gerekmektedir.
  • Modify Permission ile ilk başta private olan snapshot'ınızı public yapıp herkesin erişimine açabilir veya AWS account numarası girip sadece belirli kişilerin erişimine açabilirsiniz.

Yeni gelen bir özellik Lifecycle Manger sayesinde biz istediğimiz kaynaklar için belirlediğimiz aralıklarla otomatik snapshot yani backup almasını sağlayabiliyoruz. Menüye girelim.

Create new lifecycle policy kısmında EBS snapshot policy seçili iken next diyelim.

Press enter or click to view image in full size

İstediğimiz kaynakları seçip next diyelim.

Press enter or click to view image in full size

Burada günlük, haftalık, aylık gibi alternatifler ve başlangıç saati seçebilirsiniz.

AMI

Amazon Machine Image in kısaltılmasıdır. Snapshot kısmında biraz anlatmıştık neden böyle bir hizmete ihtiyacımız olabilir? Siz bir instance ayağa kaldırdınız istediğiniz işletim sistemini seçtiniz istediğiniz konfigurasyonları yaptınız ve programlarınızı yüklediniz. Aynı makineye daha sonra da ihtiyacınız olabilecekse siz bunun kopyasını alabiliyor ve yeni oluşturacağınız makinelerde bu imajı kullanabiliyorsunuz.

Launch instance sayfasını hatırlayalım. ilk aşamada AMI seçiyorduk. Seçenek olarak da My AMI , AWS Marketplace(ücretli AMI’ler) ve Community AMIs seçenekleri vardı. Artık biz bu aşamada My AMIS kısmından kendi oluşturduğumuz AMI’yi seçeceğiz.

AMI oluşturmadan önce mutlaka instance’ınızı stop etmeniz gerekiyor.

Oluşturduğumuz AMI’leri diğer AZ’lerde kullanmak için kopyalayabiliriz.

Şimdi konsola geçelim.

Yeni bir instance oluşturalım Amazon Linux 2 AMI sini seçelim ve 3. aşamada en altta user data kısmına aşağıdaki kodu yapıştıralım. Security grup olarak da http 80 portunu açalım.

#!/bin/bash
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd

Bu kod ile instance oluşturulurken cihaza apache web server yüklemiş ve programı çalıştırmış olacağız. Oluşturduğumuz insatance’ın public ip sini kopyalayıp browser’a yapıştırdığımızda aşağıdaki şekilde gözükecek.

Press enter or click to view image in full size

Biz burada aslında basit bir işlem yaptık cihazınıza onlarca program yüklemiş ve içerisinde verileriniz olabilir. İşte böyle surumda AMI hayat kurtarır. Aynı özellikli makinayı kısa sürede ayağa kaldırabilrisiniz.

Image oluşturmak için çeşitli yöntemler var ilkini aşağıda göstereceğim ikincisi ise snapshot başlığında değinmiştik aldığımız snapshot ile de image oluşturabiliriz.

İlk olarak instance sayfasında imajını almak istediğiniz instance’a sağ tıklayıp aşağıdaki resimde gözüken create image'i seçin.

Press enter or click to view image in full size

Image adı için bir değer girin, isterseniz alt kısımdan volume ekleyebilirisiniz ve create image’e tıklayın. Sol menüde Images başlığı altında AMIs bölümünde göreceksiniz.

Press enter or click to view image in full size

image hazır olduğunda aynı sayfada Launch menüsüyle yeni instance oluşturma sayfasına yönlendirilir ve image seçildiği için direk 2. aşamadan devam edersiniz. Bunun da 80 portunu açalım ve public ip’sini browser’a kopyalayalım.

Press enter or click to view image in full size

Image kullanarak aynı özellikli bir instance ayağa kaldırdınız.

Aynı sayfada EC2 Image Builder seçeneği ile bir pipline oluşturup image oluşturabilirsiniz.

Action kısmında;

  • Modify Image Permissions seçeneği ile image'inize kimlerin erişebileceğini belirleyebilirsiniz.
  • Deregister ile image'inizi silebilirsiniz.
  • Copy seçeneğiyle farklı regionlarda kullanabilrisiniz.

Önemli Not: Eğitim amaçlı adımları takip etti iseniz çalışmanızı bitirdikten sonra snapshotları ve image leri siliniz extra ücret ödememek için.

𝒮𝒜Ğ𝐿𝐼𝒞𝒜𝒦𝐿𝒜 𝒦𝒜𝐿𝐼𝒩

--