AWS(Amazon Web Services) – Kullanım ve Terminoloji

There are lots of documentation(blog posts etc.) about AWS in English that’s why I have been writing in Turkish. I hope this will be informative for Turkish readers.
Regards.

Merhaba,

AWS(Amazon Web Services) , Gartner’s Magic Quadrant’a göre Bulut Bilişim ve Depolama Hizmeti sunan servis sağlayıcılarından biridir. IaaS pazarının gelişmesiyle birlikte IaaS marketinde yerini alan diğer servis sağlayıcıları Microsoft ve Google firmalarıdır. Bunların dışında ülkemizde pazar payını göremesek de iyi kalitede servis ve destek saylayan, globalde pazar payı daha düşük servis sağlayıcıları da mevcuttur. Bahsettiğim büyük oyuncuların bazı hizmetleri birbirine oldukça benzerken, bazı hizmetlerinde minor/major farklılıklar, yalınlık veya karmaşa gözlemek mümkündür. Bulut hizmeti satın alırken; Gartner raporu, servis sağlayıcının sizin çalıştığınız sektördeki referansları, hukuki zorunluklar, hizmetin sunulduğu coğrafi lokasyon, dikkat edilmesi gereken başlıca önemli noktalardır.

AWS hizmetleri aşağıdaki başlıklar(kategoriler) altında yer alıyor.

– Compute

– Storage & Content Delivery

– Database

– Networking

– Administration & Security

– Deployment & Management

– Analytics

– Application Services

– Mobile Services

– Enterprise Applications

AWS yönetim konsoluna erişmek için http://aws.amazon.com/console/ adresini ziyaret edebilirsiniz. Free Trial için http://aws.amazon.com/free/ adresini ziyaret edebilirsiniz. Basettiğim ana başlıkların genel görünümü aşağıdaki gibidir.

Capture

Yazımda genel olarak AWS kullanımından, çeşitli kavramlardan ve terminolojiden bahsetmek istediğim için başlıklar altındaki servislerin bazılarını seçtim.

– Compute > EC2

– Storage & Content Delivery > S3,Storage Gateway,Elastic Block,Glacier

– Database > RDS

– Networking > VPC

AWS; bulut depolama servisleri olarak S3(simple storage service, object storage service),elastic block store ve glacier gibi depolama seçenekleri sunar. Bunların dışında storage gateway hizmeti mevcut.  Storage başlığı altında konuma devam edeyim.

AWS Storage

S3-Simple Storage Service:

S3; güvenli, ölçeklenebilir, obje tabanlı depolama hizmeti sunan AWS servisidir. Bu servisi kullanmak için ödemeniz gereken minimum tutar veya kurulum maliyeti yok. Tam olarak kullandığınız miktar kadar ödersiniz. S3 üzerinde alanlarınız, AWS içinde replicate edilerek hata toleransı sağlanır.

S3 depolama hizmetini tek başına kullanabileceğiniz gibi AWS EC2 servisi ile birlikte de kullanabilirsiniz. AWS EC2’yi alt kısımlarda açıklayacağım.

clip_image001

Gecikme(latency),maliyet veya çeşitli gereksinimler açısında, depolama alanını size uygun bir bölgede konumlandırmalısınız. Konumlandırabileceğiniz bölgeler şimdilik aşağıdaki gibidir.

clip_image002

S3 üzerinde oluşturduğunuz depolama alanında, çeşitli yapılandırmalara sahipsiniz.

clip_image004

Sunulan seçenekleri ile, S3 üzerindeki alana erişimi, alanda depolanan verilerin versiyonlanmasını, yaşam döngüsünü yapılandırabilirsiniz. Bazılarını aşağıda detaylandırayım.

clip_image006

Permission belirlemek için üstteki seçimlerden faydalanabilirsiniz. Sanırım ilk etapta sıkça kullanılacak olan izinler kısmı olacak.

clip_image008

Web site hosting için uğrak noktalarınızdan biri bu kısım olacaktır.

clip_image010

S3 üzerinde depolanan verilerin eski versiyonlarına erişebilmek için devreye alınması gerekiyor.

EBS- Elastic Block Store:

EBS; EC2 ortamınız için persistent block level depolama hizmeti sunan Amazon servisidir. EBS volume’leri, kendi availability zone’u içinde kopyalanarak yüksek erişilebilirliğin yanında olası problemleri tolere eder hale gelmektedir.

clip_image011

Volume oluşturma aşamasında üstteki detayları belirleyebilirsiniz. Yazımda resmettiğim menüler AWS’nin yapacağı güncellemeler ile farklılaşabilir!

Glacier:

Amazon Glacier; veri arşivleme ve online yedekleme için oldukça düşük maliyetli ve güvenli depolama hizmetini sunan servistir. AWS web sitesinde belirtildiği üzere müşteriler, büyük yada küçük ölçekli verilerini $0.01 (gigabyte başına aylık) gibi bir ücrete bu alanda depolayabiliyorlar.

S3 depolama hizmetini kullanıyorsanız, cold data’yı(arşivlemek istediğiniz kısmı) Glacier üzerine aktararak depolama maliyetinizi optimize edebilirsiniz.

Aşağıdaki ekran görüntüsünde S3 üzerinde oluşturduğum bir alanı Lifecycle policy kısmı görünmektedir.Lifecycle policy ile yaşlanan objelerin Glacier üzerine alınabilmesi sağlanmaktadır.

clip_image013

Benzer şekilde şirketinizdeki data’yı(arşivlenmek istenen cold data’yı) Glacier üzerinde tutarak depolama alanı maliyetinizi optimize edebilirsiniz. Glacier’i kullanmak için aşağıda görüldüğü üzere vault oluşturarak başlayabiliyorsunuz.

clip_image015

clip_image017

Glacier hakkında genel diagram üstteki gibidir.

Storage Gateway:

Storage Gateway, şirketin veri merkezinde(on-premise) konumlandırılan bir virtual appliance’dır. Storage gateway virtual appliance’ı şirketinizin veri merkezi ile AWS üzerinde depolama altyapısı arasında entegrasyon sağlar.

Bu konuda https://www.youtube.com/watch?v=Bb8nk0oWJbU adresindeki demo’yu inceleyebilirsiniz.

Depolama için sunulan seçeneklerden genel olarak bahsetmiş oldum. Seçtiğim başlıklardan ikincisini incelemiş oldum. Neden ikincisi ile başladık? Depolama alanı olmadan ne yapılabilir ki 🙂 Seçtiğim başlıklardan bir diğeri ile devam edeyim.

AWS EC2

Elastic Cloud Computing-EC2, tüketiciye ve kuruma AWS üzerinde sanal sunucu,sanal network,sanal depolama alanı vb. ortamı sağlayan(kısaca compute capacity veya virtual server infrastructure diyebiliriz) bir web servisidir.

EC2; instance(vm’ler), image(ami-amazon machine image), storage, network,security, scaling kısımlarından oluşur. Bu kısımları kısaca açıklayayım. Network ve security kısımları, EC2 dışında ayrı bir AWS başlığı altında(VPC) da geçmektedir. EC2 içinde geçen network&security kapsamı instance(virtual machine) seviyesindedir. Diğer kısımda geçen kapsam daha farklıdır. İlerleyen aşamalarda bahsedeceğim.

Instance: Azure karşılığı sanal sunucudur J . Intance = Virtual Server/Machine . EC2 içinde bir instance oluşturmadan önce kullandığınız region’a dikkat ediniz. Test ortamımı Frankfurt bölgesinde açmıştım.

Image: Virtual Machine Image’larıdır. Amazon’daki ismi AMI’dir. Amazon Machine Image şeklinde isimlendirilir.

clip_image019

Amazon üzerinde hazırlanmış image’ları kullanabilirsiniz veya daha önce hazırladığınız image’larınızı kayıt ettirdikten sonra kullanabilirsiniz. Azure’da da benzer durum mevcuttu.

Network ve Security: Bu kısım instance ve instance’a ait bir network interface seviyesinde network ve security kapsamının belirlendiği kısımdır. Instance’ın kullanacağı public ip adresi,inbound veya outbound trafik filtreleri,load balancer,instance’a erişim için kullanılacak key pairs,network interface ayarları bu kısımdan yapılandırılıyor.

EC2 kapsamında özetle şu işlemleri yapıyoruz:

– Sanal sunucu oluşturma işlemi ve disk image’larının yönetimi

– EBS yönetimi(volume ve snapshot ’lar)

– Instance(sanal sunucu) seviyesinde security group yönetimi,network interface’ler ve ip adreslerinin yapılandırılması

Seçtiğim başlıklardan bir diğeri ile devam edeyim.

AWS Database

AWS’de sunulan database servislerinden biri RDS’dir. RDS ile MySQL,PostgreSQL,Oracle,Microsoft SQL Server seçenekleri sunuluyor. AWS database hizmetleri arasında çalışma fırsatı bulduğum hizmet RDS hizmetidir. Diğer seçenekler ile çalışma fırsatım olmadı.

Genel olarak aşağıdaki adımlar ile RDS altındaki bir database oluşturabilirsiniz.

clip_image020

RDS yapısında oluşturacağınız MS SQL Server instance’i ile ilgili çeşitli yapılandırmaları üstteki gibi yapabiliyorsunuz. Bu aşamada, daha önceden subnet group oluşturmuş olmalısınız. “Launch DB Instance” ile devam ediniz.

clip_image022

RDS üzerinde DB instance oluşturulduktan sonra, endpoint adresi ile instance’a bağlanabilirsiniz. Erişim için instance oluşturma sırasında belirlediğiniz username ve password’ü kullanıyorsunuz.

clip_image024

Üstte görüldüğü üzere, SQL management studio’dan, AWS RDS’de oluşturduğum Microsoft SQL Server Database Instance’ına bağlandım. Benzer şekilde Oracle,Postgresql veya mysql instance’larını da test edebilirsiniz.

AWS sunulan database hizmeti seçenekleri aşağıdaki gibidir. clip_image026

Seçtiğim diğer başlıkla, Network ile, devam edeyim.

AWS Network

AWS Network servisi; VPC,Direct Connect,Route 53 seçeneklerinden oluşuyor. Bu yazımda VPC’den bahsedeceğim.

Virtual Private Cloud(VPC): VPC ile Amazon Cloud ’u içinde kendi alanınızı(boundry) belirleyerek bu alan içinde bulut sisteminizi oluşturup yönetiyorsunuz. AWS Cloud’u üzerinde çalıştırdığınız kaynakları(sunucularınızı,web uygulamalarını vb.) şirketinizdeki veri merkezine, endüstri standardı IPSec VPN bağlantısı ile bağlayabiliyorsunuz. Site to Site VPN konusunda ayrıca bir yazı hazırlıyorum. Bu kısımda detaya girmeyeceğim. AWS VPC tarafında yapılandırmalardan genel olarak bahsedeyim. VPC ile Amazon Cloud içinde kendi sınırlarınızı belirlediğinizden bahsetmiştim.

IP subnet ‘inizi belirleyerek VPC’nizi oluşturmaya başlayabilirsiniz.

clip_image028

Örneğin 10.0.0.0/16 cidr(classles inter-domain routing) bloğu ile sınırlı VPC’niz altında 10.0.0.0/24 , 10.0.1.0/24 veya 10.0.2.0/24 gibi subnet’ler oluşturup kullanabilirsiniz. Oluşturduğunuz subnet’ler VPC ile ilişkilendirilir. Subnet’ler hakkında bir ekran alıntısı aşağıdaki gibidir.

clip_image030

VPC’nizde yapılandırabileceğiniz bir başka kısım da Routing Table ’dır. VPC’nizdeki routing table altında, o VPC’den(örneğin vpc’deki instance’lardan) hangi destination’a giderken hangi hedefi/yolu kullanacağınızı belirliyorsunuz.

clip_image031

Üstteki örnekte,

– 10.0.0.0/16 hedef network’üne erişilirken local kullanılacak.Yani VPC içindeyiz.

– 172.16.0.0/16 hedef network’üne erişilirken i-ae18 kodlu instance’ın eni-a4a kodlu network interface’i kullanılacak. Bu instance test ortamımdaki vpn gateway’dir. Bahsettiğim interface ise vpn gateway’in Internete açıldığı interface’dir.

– 0.0.0.0/0 hedef network’üne giderken igw-a4a kodlu internet gateway’im kullanılacak. Bu internet gateway VPC boundery’sinin dışına çıkmak için kullanılan gateway’dir.

AWS cloud ’unda kendi VPC sisteminizi yapılandırken, Interget Gateway objesi oluşturarak VPC’niz ile eşleştiriyorsunuz.

clip_image032

Bu sayede VPC <-> Internet bağlantısını sağlıyorsunuz. Site to Site VPN senaryolarında erişim biçimleri farklılaşabilir.

VPC kapsamındaki bir diğer konfigürasyon DHCP option yapılandırmasıdır.

clip_image034

Varsayılan olarak bir dhcp options set yapılandırılmış durumdadır.

clip_image036

VPC kapsamında bir başka önemli yapılandırma bölümü Elactic IPs kısmıdır. Bu kısımda instance’ın network interface’ine atanacak public ip adresini belirliyorsunuz. Instance, internete erişecekse veya internet’ten bu instance’a erişilecekse, Elastic IP yapılandırması gerekiyor!

clip_image038

Bir elastic ip aldıktan sonra bu ip adresini bir instance ’ın interface ’i ile ilişkilendiriyorsunuz. Dolayısıyla, AWS cloud’u içindeki VPC’nizde çalışan instance bir veya daha fazla public ip adresine sahip olmuş oluyor(bu şekilde bir ihtiyacınız olmayabilir).

AWS üzerinde bir internet üzerinden erişilebilir bir RDS hizmeti kullanacaksanız, VPC seviyesinde dns isim çözümlemesi yapılandırması gerekecek.

clip_image039

DNS isim çözümlemesini üstteki şekilde modifiye edebilirsiniz.

VPC seviyesindeki bir diğer yapılandırma kısmı Peering Connection kısmıdır.AWS cloud hesabınızda kullandığınız iki VPC arasında veya bir başka AWS cloud hesabında(aynı region içinde) çalışan VPC arasında, AWS sisteminden çıkmadan iletişim kurma imkanı sunar. Peer VPC’ler, private ip adreslerinden birbirlerine erişmiş olur. AWS sitesinde belirtildiği üzere, bu iletişimde “single point of failure” veya “bandwidth bottleneck” yoktur.

VPC seviyesinde güvenlik yapılandırması anlamında network access control list ve security groups konfigürasyonları mevcut. Network ACL ile inbound ve outbound yönde kurallar yazabiliyorsunuz. Security Groups yapılandırmasında da benzer şekilde kurallar yazabiliyorsunuz. Her ikisini de birer firewall olarak düşünebilirsiniz. Network ACL ile izin veren veya engelleyen kurallar yazabiliyorken, security groups ile sadece izin veren kurallar yazabiliyorsunuz. Network ACL subnet seviyesinde çalışırken security groups instance seviyesinde çalışıyor. Security groups yapılandırması stateful çalışıyor, yani dönüş trafiğine otomatik olarak izin veriliyor. Network ACL stateless çalışıyor, dönüş trafiği için açıkça kural yazmalısınız. Her iki seçenek farklı katmanlarda sıralı olarak devreye giriyor. Security groups, kurulumu sırasında ve/ya daha sonra instance’a uygulanıyor. Network ACL, subnet ile ilişiklendirilmiş tüm instance’lara otomatik olarak uygulanıyor.

Aşağıdaki tabloda, AWS cloud’undaki size ait alana erişilirken, Network ACL ve Security Groups yapılarının çalıştığı katmanlar resmedilmiş.

clip_image040

Diagramı şu şekilde yorumlayabiliriz.

– Internet gateway’ine gelen trafik, routing table’daki route’lara göre ilgili subnet’e route edilir. Subnet seviyesindeki ilgili Network ACL, izin verilecek veya engellenecek trafiği kontrol eder.

– Network ACL’e göre izinli trafik instance gönderilir.

– Intance’a gelen trafik, ilişikli olduğu security groups’da tanımlı kurallara göre serbest bırakılır veya engellenir.

Azure ile karşılaştırıldığında VPC kapsamındaki network ve güvenlik altyapısının daha esnek ve yapılandırılabilir olduğunu düşünüyorum. Daha önce de bahsettiğim üzere VPN gateway konusunu ayrıca inceleyeceğim.

AWS Cloud’unda VPC konseptini incelemiş olduk.

Yazının geneline baktımızda, AWS’de seçtiğim aşağıdaki başlıkları incelemiş olduk.

– Compute (EC2{instance,ami,ebs,security groups,elastic ip vb.})

– Storage (S3,Storage gateway,Glacier,Elastic Block Store)

– Database (RDS)

– Networking (VPC) katmanlarını incelemiş olduk.

Şimdi AWS cloud’unda çalışırken işe yarayabileceğini düşündüğüm bir kaç kodlamadan bahsederek yazımı tamamlayayım. AWS cloud’unda, müşteri/kurum tarafından oluşturulan her servisin bir ID’si mevcut. Bu ID’ler ilk etapta karışıklığa sebep olabilir. Tabiki tüm objelerden bir çırpıda bahsetmek mümkün değil! Sıkça kullanılan bazı objelerden örnekler vereceğim.

i- şeklinde başlayan ID’ler instance’ı göstermektedir.

vol- şeklinde başlayan ID’ler volume’ü göstermektedir.

sg- şeklinde başlayan ID’ler security group’u göstermektedir.

eni- şeklinde başlayan ID’ler network interface’i göstermektedir.

vpc- şeklinde başlayan ID’ler virtual private cloud’u göstermektedir.

rtb- şeklinde başlayan ID’ler routing table’ı göstermektedir.

Diğer ID’ler ilk bakışta oldukça anlaşılır olduğundan, alışana kadarki süreçte üsttekileri göz önüne almanız yeterli olacaktır J

Herkese sorunsuz ve neşeli günler dilerim.

Kaynaklar:

http://aws.amazon.com

http://docs.aws.amazon.com

http://calculator.s3.amazonaws.com/index.html

2 Replies to “AWS(Amazon Web Services) – Kullanım ve Terminoloji”

Leave a Reply

Your email address will not be published. Required fields are marked *