AWS CloudFormation Hakkında Bilmeniz Gereken Her Şey

Yayınlanan: 2021-12-28

Encap - Blog (Devamı)


AWS CloudFormation , kullanıcıların AWS kaynaklarını kurmasına ve modellemesine yardımcı olmak amacıyla Amazon tarafından sağlanan özel bir hizmettir. AWS kaynaklarını yönetmeye odaklanmak ve AWS içinde çalışan uygulamalara odaklanmak gibi önemli şeylere daha fazla zaman ayırmanızı sağlar.

AWS içindeki Amazon RDS DB bulut sunucuları ve Amazon EC2 bulut sunucuları gibi istediğiniz kaynakların açıklamasını sunan bir şablon oluşturabilirsiniz. CloudFormation, kullanıcılar için bu AWS kaynaklarının yapılandırılması ve sağlanmasına en iyi şekilde özen göstermeyi amaçlar. AWS CloudFormation bununla tamamen ilgilendiğinden, bu kaynakları tek tek oluşturmaya veya yapılandırmaya artık gerek yoktur.

Bu blogda, AWS yapılandırması hakkında bilmeniz gereken her şeyi anlamaya çalışacağız.

AWS CloudFormation'ın Çalışması


AWS CloudFormation , yığın kavramı üzerinde çalışan bir kavramdır. Size bir birime göre toplu olarak AWS kaynakları oluşturma ve silme potansiyeli verir. Kullanıcılar, eşlemeler, yığın parametreleri, çıktı değerleri ve kaynak özellikleri ile ilişkili özellikleri tanımlayabilir. Bu, JSON uyumlu bir dosya olan bir şablonla yapılır.

Şablonu baştan yazıp oluşturabilirsiniz veya AWS tarafından önceden sunulan örnek şablonlardan birini de kullanabilirsiniz. Bununla birlikte kullanıcılar, Amazon EC2, Amazon RDS, Amazon Elastic Beanstalk gibi CloudFormation içindeki birçok AWS ürününden en iyi şekilde faydalanabilir.

Bir yığın oluşturulurken AWS CloudFormation, AWS'ye özel hizmet çağrıları yapar. Bu, AWS kaynaklarının yapılandırılmasına ve sağlanmasına yardımcı olur. CloudFormation, yalnızca yapma izniniz olan eylemleri gerçekleştirir. Örneğin, AWS CloudFormation ile Amazon EC2 oluşturmak istiyorsanız bunun için özel izinlere ihtiyacınız olacaktır. Bununla birlikte stacklerin silinmesi ve instance'ların sonlandırılmasına da ihtiyaç olacaktır.

İzinleri yönetmek için kişiler AWS Identity and Access Management'ı kullanabilir. Bunu takiben, AWS CloudFormation'ın işlediği çağrılar şablonlar tarafından bildirilir. YAML veya JSON içinde bir CloudFormation şablonu oluşturduğunuzdan ve değiştirdiğinizden emin olmak için AWS CloudFormation Designer'ı kullanmanız gerekir. Hesabı oluşturabilir ve hemen tasarlamaya başlayabilirsiniz.

Ek olarak, aynısını yapmak için diğer metin editörlerini de tercih edebilirsiniz, ancak AWS tasarımcısı, etkinlik elde etmek için uygun bir platformdur. CloudFormation şablonu, kullanmak istediğiniz kaynaklar ve bunlarla ilişkili ayarlar hakkında ayrıntılı bilgi verir. Örneğin, bir EC2 örneği oluşturmak istiyorsanız, şablonunuz aynısını bildirecek ve özellikleri buna göre açıklayacaktır.

Şablonu oluşturduktan sonra ya S3 kovasına ya da yerel olarak kaydedersiniz. Ayrıca .yaml, .txt veya .json gibi bir uzantıyla kaydettiğinizden emin olmalısınız. Yerel bilgisayar üzerinden Amazon S3 URL'sini veya şablon dosya konumunu belirterek CloudFormation yığınını oluşturun. Şablonun bazı parametreler içerdiğini düşünüyorsanız, bunun için giriş değerlerini verebilirsiniz ve ardından yığın oluşturma yönünde ilerleyebilirsiniz. Parametreler, CloudFormation şablonu için değerler girmenize izin verir ve bununla birlikte, her yığın oluşturmak istediğinizde kaynakları özelleştirebilirsiniz.

Yerel olarak depolanan bir şablonu belirtmeniz veya çağırmanız durumunda, CloudFormation'ın bunu otomatik olarak AWS hesabındaki S3 kovasına yükleyeceğini unutmayın. AWS CloudFormation, bir şablon dosyası yükleyebileceğiniz tüm bölgeler için paketler oluşturmaya yöneliktir. CloudFormation içindeki paketlere, hesapta etkinleştirilmiş Amazon S3 izinleri olan herkes erişebilir.

AWS CloudFormation Kavramları


AWS CloudFormation'ı her kullandığınızda, şablonlar ve yığınlarla çalışmaya başlayabilirsiniz. AWS kaynaklarını ve özelliklerini açıklamak için şablonlar oluşturabilirsiniz. Bir yığın oluşturduğunuzda, CloudFormation şablonda açıklanan kaynakları sağlar.

1. Şablonlar


AWS CloudFormation şablonu, JSON veya YAML formatlı bir metin dosyasıdır. Bu dosyaları .yaml, .template, .txt veya .json gibi herhangi bir uzantıyla kaydetmek kolaydır. AWS CloudFormation, bu şablonları AWS kaynaklarını oluşturmak için planlar olarak kullanır.

Örneğin, bir şablondaki bir Amazon EC2 bulut sunucusunu bulut sunucusu tipi, AMI Kimliği, blok cihaz eşlemesi ve Amazon EC2 anahtar çifti adı olarak tanımlayabilirsiniz. Yığını her oluşturduğunuzda, CloudFormation'ın şablonda tanımladığınız her şeyi oluşturmak için kullandığı bir şablondan da bahsedebilirsiniz.

2. Yığınlar

AWS CloudFormation kullandığınızda , ilgili kaynakları yığın adı verilen tek bir birim olarak yönetebilirsiniz. Yalnızca yığınlar oluşturarak, güncelleyerek ve silerek bir kaynak koleksiyonu oluşturmak, güncellemek ve hatta silmek kolaylaşır. Bir yığında bulunan tüm kaynaklar, yığının CloudFormation şablonu tarafından tanımlanır.

Bir Otomatik Ölçeklendirme grubu, Amazon İlişkisel Veritabanı Hizmeti veritabanı eşgörünümü ve Elastic Load Balancing yük dengeleyici içeren bir şablon oluşturduğunuzu varsayalım. Bu kaynakların oluşturulması için oluşturduğunuz şablonu göndererek bir yığın oluşturabilirsiniz ve CloudFormation tüm bu kaynakları sizin için sağlar. CloudFormation konsolunu, AWS CLI'yi ve API'yi kullanarak yığınlarla çalışabilirsiniz.

3. Setleri Değiştir

Bunun bir yığındaki çalışan kaynaklara değiştirilmesi gerektiğini düşünüyorsanız, yığını güncelleyebilirsiniz. Kaynaklarda herhangi bir değişiklik yapmadan önce, temelde önerilen tüm değişikliklerin bir özeti olan bir değişiklik kümesi oluşturulabilir. Değişiklik kümeleri, değişikliklerin, özellikle kritik kaynaklar için, bunları uygulamadan önce çalışan kaynakları nasıl etkilediğini görmenize olanak tanır.

Örneğin, bir Amazon RDS veritabanı bulut sunucusunun adını değiştirmeniz durumunda AWS CloudFormation yeni bir veritabanı oluşturacak ve eskisini silecektir. Zaten yedeklemediyseniz, eski veritabanındaki verileri kaybetme riskini alamazsınız. Bir değişiklik kümesi oluşturmanız durumunda, değişikliğin veritabanının değiştirilmesine neden olacağını göreceksiniz ve yığını güncellemeden önce buna göre plan yaptığınızı hissedeceksiniz.

AWS CloudFormation Neden Gereklidir?

Kabul, üretim ve test ortamlarını destekleyen bir mimari oluşturmak için, aynı şekilde bazı etkinliklerin yapılmasına yardımcı olabilecek AWS CloudFormation'a ihtiyaç vardır. Bu mimariyi oluşturmak için CloudFormation tarafından gerçekleştirilen ortak faaliyetler, bir bulut sunucusu başlatmak, yük dengeleyiciler oluşturmak, gerekli kurulumları yapmak, bulut sunucularını yük dengeleyicilere eklemek, RDS oluşturmak ve EC2 güvenlik grubunu yapılandırmak, güvenlik gruplarını oluşturmak ve yapılandırmak ve otomatik - ölçeklendirme grupları.

Altyapı otomasyonu için AWS CloudFormation şablonu , temel olarak tüm önemli şeyleri yönetebilen güçlü bir araç olması amaçlanan bir JSON dosyasıdır. Temel olarak kaynakların gerekliliğini belirlemeye yardımcı olurken CloudFormation, tahmin edilebilir bir teğet içinde kaynak sağlama konusunda size güç sağlar.

AWS CloudFormation'ın Kullanılabileceği Durumlar

AWS CloudFormation, AWS Management Console, AWS Komut Satırı Arabirimi ve API'lerin kullanımıyla şablonun ve kaynak koleksiyonunun dağıtılmasına veya yükseltilmesine yardımcı olur. Yalnızca özel olarak ayrılmış uygulamaları çalıştırmak için önemli olan AWS kaynakları için ödeme yapmanız gerektiğinden, kullanım durumları ayrıca ücretlendirilmez.

Bu nedenle, AWS CloudFormation'ın Kod Olarak Altyapı olduğu sonucuna varılabilir; bu, aslında bir şeyleri okumak, yeniden kullanmak ve gözden geçirmek için kullanılabileceği anlamına gelir. Aşağıda, AWS CloudFormation'ın kullanıldığı bazı durumları göreceğiz. Bu, çok daha iyi bir netlik elde edilmesine yardımcı olacaktır.

AWS Bulut Oluşumu aşağıdakileri yapmanıza yardımcı olur:

1. Basitlik Altyapı Yönetimi

Arka uç veritabanı da içeren ölçeklenebilir bir web uygulaması yapmak için bir Otomatik Ölçeklendirme grubu, Amazon İlişkisel Veritabanı Hizmeti veritabanı örneği ve bir Elastic Load Balancing yük dengeleyici kullanabilirsiniz.

Bu hizmetler, kaynakları sağlamak için ayrı ayrı kullanılır ve kaynaklar oluşturulduktan sonra bunları birbirleriyle çalışacak şekilde yapılandırabilirsiniz. Bu görevler, uygulama çalışmaya başlamadan önce karmaşıklık ve süre ekler. Bir AWS CloudFormation şablonu oluşturursunuz ve mevcut bir şablonu da değiştirirsiniz.

Bir şablon, tüm kaynakları ve özellikleri açıklayabilir. Bir CloudFormation yığını oluşturmak için şablonu kullandığınızda, otomatik ölçeklendirme grubu, yük dengeleyici ve veritabanı sizin için sağlanır. Yığın başarıyla oluşturulduktan sonra AWS kaynakları çalışır duruma gelir. Yığın, kaynakları da kolayca silebilir. CloudFormation ile kaynakların toplanması tek bir birim olarak kolayca yönetilebilir.

2. Altyapınızı Çoğaltın

Bir uygulama daha fazla kullanılabilirlik talep ediyorsa, bu, onu birden çok bölgeye çoğaltma ihtiyacı olduğu anlamına gelir. Bunun nedeni, bir bölge kullanılamadığında, kullanıcıların başka bir bölgeden bir uygulamayı kullanabilmesidir.

Bir uygulamayı çoğaltırken karşılaşmanız gereken doğal bir zorluk vardır, bu da kaynakları çoğaltmanız gerektiğidir. Bu nedenle, tüm kaynakları uygulamanın talepleri temelinde kaydetmeniz önemlidir. Ancak bununla birlikte, her bölgedeki tüm kaynakları yapılandırmanız ve sağlamanız gerekir.

AWS CloudFormation şablonu , kaynakları tutarlı ve tekrarlanabilir bir şekilde oluşturmak için yeniden kullanılabilir. Şablonların yeniden kullanılabilirliğini sağlar ve bu, kaynakları bir kez tanımlayarak ve birçok bölgede aynısını sağlayarak yapılabilir. Bu sayede altyapı kolaylıkla birden çok bölgeye replike edilebilir.

3. Altyapıda Yapılan Değişikliklerin Kontrolü

Bazı durumlarda, zaman zaman bir yükseltme ihtiyacı olabilir. Buna bir örnek, otomatik ölçeklendirme başlatma yapılandırmasında yüksek performanslı bir bulut sunucusunu yükseltme ihtiyacı veya dürtüsü olabilir. Bununla, grup içindeki toplam örnek sayısı azaltılabilir.

Manuel kontrol, değişiklikleri izleme ve yükseltmeler yapmak karmaşık bir çaba olabilir ve tüm bunlar için, değiştirilen kaynakların nerede olduğunu hatırlamaya ihtiyaç vardır. AWS CloudFormation kullanımı , şablonun sağlanan kaynakları tanımlamasını ve ayarları detaylandırmasını sağlar. Metin dosyaları şablonları arasındaki altyapı değişikliklerini izlemek kolaylaşır.

Ayrıca, altyapıda yapılan değişiklikler hakkında fikir edinmek için şablonlarla birlikte bir sürüm kontrol sistemini kolayca entegre edebilirsiniz. Buna ek olarak, değişikliği kimin ve ne zaman yaptığını da takip edebilirsiniz. Altyapıdaki değişiklikleri tersine çevirmek isterseniz, önceki şablon sürümünü de tersine çevirebilirsiniz. Bu nedenle, AWS CloudFormation ile altyapı değişikliklerini kontrol etmek ve izlemek kolaylaşıyor .

Çözüm

Yukarıda bahsedilen ayrıntılar genellikle AWS CloudFormation ile ilişkilendirilir. Bunlar, CloudFormation'ın işlevselliğine ve kullanıcıların uygulamalarını çalıştırma rahatlığına odaklanan içgörülerdir.

AWS CloudFormation, en iyi uygulamaları otomatikleştirir ve altyapıyı küresel düzeyde ölçeklendirir. En iyi yanı, CloudFormation'ı diğer AWS hizmetleriyle entegre etmenize olanak sağlamasıdır. Ayrıca, özel ve üçüncü taraf kaynaklarını yönetebilecek kadar yetenekli olabilirsiniz.

AWS CloudFormation'ı kullanmak istiyorsanız, daha fazla ayrıntıyı anlamanıza, neleri entegre etmek üzere olduğunuz hakkında bilgi sahibi olmanıza ve uygulamaları yürütmek için sorunsuzluktan yararlanmanıza yardımcı olabilecek AWS danışmanlık hizmetlerinden yararlanmalısınız. Daha fazla bilgi için iletişime geçin.