AWS - Elastic Beanstalk Enum
Last updated
Last updated
Amazon Elastic Beanstalk, web uygulamalarını ve hizmetlerini dağıtmak, yönetmek ve ölçeklendirmek için basitleştirilmiş bir platform sağlar. Java, .NET, PHP, Node.js, Python, Ruby ve Go gibi çeşitli programlama dilleri ve çerçeveleri, Docker konteynerleri de dahil olmak üzere desteklenir. Servis, Apache, Nginx, Passenger ve IIS gibi yaygın olarak kullanılan sunucularla uyumludur.
Elastic Beanstalk, uygulamalarınızı AWS bulutuna dağıtmanın, altta yatan altyapıyla ilgilenme ihtiyacı olmadan basit ve esnek bir yol sağlar. Kapasite hazırlama, yük dengeleme, ölçeklendirme ve uygulama sağlık izleme gibi ayrıntıları otomatik olarak yönetir ve kod yazmaya ve dağıtmaya odaklanmanızı sağlar.
Elastic Beanstalk tarafından oluşturulan altyapı, EC2'deki Otomatik Ölçeklendirme Grupları tarafından yönetilir (bir yük dengeleyici ile). Bu da demektir ki, gün sonunda, ana bilgisayarı ele geçirirseniz, EC2 hakkında bilgi sahibi olmanız gerekmektedir:
Ayrıca, Docker kullanılıyorsa, ECS kullanılabilir.
AWS Elastic Beanstalk'te, "uygulama" ve "ortam" kavramları, dağıtım sürecinde farklı amaçlar için farklı rolleri olan farklı amaçlar için hizmet verir.
Elastic Beanstalk'teki bir uygulama, uygulama kodunuzun kaynak kodu, ortamları ve yapılandırmaları için mantıksal bir konteynerdir. Farklı uygulama sürümlerini bir araya getirir ve bunları tek bir varlık olarak yönetmenizi sağlar.
Bir uygulama oluşturduğunuzda, bir ad ve açıklama sağlarsınız, ancak bu aşamada hiçbir kaynak sağlanmaz. Sadece kodunuzu ve ilgili kaynakları düzenlemek ve yönetmek için bir yol sağlar.
Bir uygulama içinde birden çok uygulama sürümü olabilir. Her sürüm, kodunuzun belirli bir sürümünü temsil eder ve bir veya daha fazla ortama dağıtılabilir.
Bir ortam, AWS altyapısında çalışan uygulamanızın hazır bir örneğidir. Uygulama kodunuzun dağıtıldığı ve yürütüldüğü yerdir. Elastic Beanstalk, ortam yapılandırmasına dayanarak gerekli kaynakları (örneğin, EC2 örnekleri, yük dengeleyiciler, otomatik ölçeklendirme grupları, veritabanları) sağlar.
Her ortam, uygulamanızın tek bir sürümünü çalıştırır ve geliştirme, test, aşama ve üretim gibi farklı amaçlar için birden çok ortama sahip olabilirsiniz.
Bir ortam oluşturduğunuzda, bir platform (örneğin, Java, .NET, Node.js vb.) ve bir ortam türü (örneğin, web sunucusu veya işçi) seçersiniz. Ayrıca, altyapı ve uygulama ayarlarının çeşitli yönlerini kontrol etmek için ortam yapılandırmasını özelleştirebilirsiniz.
Web Sunucusu Ortamı: Web uygulamalarını ve API'leri barındırmak ve sunmak için tasarlanmıştır. Bu uygulamalar genellikle gelen HTTP/HTTPS isteklerini işler. Web sunucusu ortamı, gelen trafiği yönetmek, kapasiteyi yönetmek ve uygulamanın yüksek kullanılabilirliğini sağlamak için EC2 örnekleri, yük dengeleyicileri ve otomatik ölçeklendirme grupları gibi kaynakları sağlar.
İşçi Ortamı: İşçi ortamı, genellikle müşterilere hemen yanıt gerektirmeyen, zaman alıcı veya kaynak yoğun işlemleri işlemek için tasarlanmıştır. İşçi ortamı, EC2 örnekleri ve otomatik ölçeklendirme grupları gibi kaynakları sağlar, ancak doğrudan HTTP/HTTPS isteklerini işlemediği için bir yük dengeleyiciye sahip değildir. Bunun yerine, işçi ortamı ile işlenen görevler arasında bir tampon görevi gören bir Amazon Simple Queue Service (SQS) kuyruğundan görevleri tüketir.
Beanstalk'te bir Uygulama oluştururken seçilebilecek 3 çok önemli güvenlik seçeneği vardır:
EC2 anahtar çifti: Uygulamayı çalıştıran EC2 örneklerine erişebilecek olan SSH anahtar olacaktır.
IAM örneği profili: Örneklerin sahip olacağı örnek profili (IAM yetkileri)
Otomatik olarak oluşturulan rol aws-elasticbeanstalk-ec2-role
adını taşır ve AWS yönetilen politikalarını kullanarak tüm ECS, tüm SQS, DynamoDB elasticbeanstalk ve elasticbeanstalk S3 üzerinde ilginç erişim sağlar: AWSElasticBeanstalkWebTier, AWSElasticBeanstalkMulticontainerDocker, AWSElasticBeanstalkWorkerTier.
Hizmet rolü: AWS hizmetinin gereken tüm işlemleri gerçekleştirmek için kullanacağı rol. Bildiğim kadarıyla, düzenli bir AWS kullanıcısı bu role erişemez.
AWS tarafından oluşturulan bu rol aws-elasticbeanstalk-service-role
adını taşır ve AWS yönetilen politikalar AWSElasticBeanstalkEnhancedHealth ve AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy kullanır.
Vars
Beanstalk verileri, aşağıdaki isme sahip bir S3 kovasında depolanır: elasticbeanstalk-<bölge>-<hesap-id>
(AWS konsolunda oluşturulduysa). Bu kovada, yüklenen uygulamanın kaynak kodunu bulacaksınız.
Oluşturulan web sayfasının URL'si şu şekildedir: http://<webapp-adı>-env.<rastgele>.<bölge>.elasticbeanstalk.com/
Eğer kovaya okuma erişimi elde ederseniz, kaynak kodunu okuyabilir ve hatta üzerinde hassas kimlik bilgileri bulabilirsiniz.
Eğer kovaya yazma erişimi elde ederseniz, kaynak kodunu değiştirerek uygulamanın bir sonraki çalıştırılmasında kullanılan IAM rolünü tehlikeye atabilirsiniz.