AWS Türkçe Blog

Amazon EMR Serverless Artık Genel Kullanıma Hazır – Büyük Veri Uygulamalarını Sunucuları Yönetmeden Çalıştırın

Orijinal makale: Link (Channy Yun, AWS için Principal Developer Advocate)

AWS re:Invent 2021’de, temel altyapıyı yapılandırmak, ölçeklendirmek veya yönetmek zorunda kalmadan verileri herhangi bir ölçekte analiz etmeyi kolaylaştıran veri analizi hizmetlerimiz için üç yeni sunucusuz seçenek – Amazon EMR Serverless, Amazon Redshift Serverless ve Amazon MSK Serverless – sunduk.

Bugün, müşterilerin kümeleri veya sunucuları yapılandırmadan, yönetmeden ve ölçeklendirmeden Apache Spark ve Hive gibi açık kaynaklı çerçeveler kullanarak büyük veri analizi uygulamalarını çalıştırmaları için sunucusuz bir dağıtım seçeneği olan Amazon EMR Serverless‘ın genel kullanıma sunulduğunu duyuruyoruz.

EMR Serverless ile, değişen veri hacimlerini ve işleme gereksinimlerini karşılamak için kaynakları saniyeler içinde yeniden boyutlandıran otomatik ölçeklendirme ile analitik iş yüklerini her ölçekte çalıştırabilirsiniz. EMR Serverless, uygulamanız için doğru miktarda kapasite sağlamak üzere kaynakları otomatik olarak yukarı ve aşağı ölçeklendirir ve yalnızca kullandığınız kadar ödersiniz.

Önizleme sırasında, müşterilerden, talep artışlarıyla başa çıkmak için kaynakları aşırı sağlamak zorunda kalmadıkları için EMR Serverless’ın uygun maliyetli olduğunu duyduk. Örnekleri doğru boyutlandırma veya işletim sistemi güncellemelerini uygulama konusunda endişelenmeleri gerekmez ve ürünleri daha hızlı piyasaya sürmeye odaklanabilirler.

Amazon EMR, uygulamaları Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Kubernetes Service (Amazon EKS) kümeleri, AWS Outposts veya EMR Serverless üzerindeki EMR kümeleri gibi çeşitli ihtiyaçlara uyacak şekilde çalıştırmak için çeşitli dağıtım seçenekleri sunar.

  • Amazon EC2 kümelerindeki EMR, uygulamalarını nasıl çalıştıracakları konusunda maksimum denetime ve esnekliğe ihtiyaç duyan müşteriler için uygundur. EMR kümeleriyle müşteriler, belirli uygulamaların performansını artırmak için EC2 bulut sunucusu türünü seçebilir, Amazon Machine Image’ı (AMI) özelleştirebilir, EC2 bulut sunucusu yapılandırmasını seçebilir, açık kaynak çerçevelerini özelleştirebilir ve genişletebilir ve küme bulut sunucularına ek özel yazılımlar yükleyebilir.
  • Amazon EKS üzerinde EMR, uygulamalar genelinde kümeleri yönetmek veya aynı kümede bir açık kaynak çerçevesinin farklı sürümlerini kullanmak için EKS’yi standart hale getirmek isteyen müşteriler için uygundur.
  • AWS Outposts’ta EMR, bir Outpost içindeki veri merkezlerine daha yakın EMR çalıştırmak isteyen müşteriler içindir.
  • EMR Serverless, kümeleri yönetmekten ve çalıştırmaktan kaçınmak isteyen ve yalnızca açık kaynaklı çerçeveler kullanarak uygulamaları çalıştırmak isteyen müşteriler için uygundur.

Ayrıca, bir EMR yayınını kullanarak bir uygulama oluşturduğunuzda (örneğin, EMR sürüm 6.4’ü kullanan bir Spark işi), uygulamayı yeniden yazmak zorunda kalmadan bir EMR kümesinde, EKS üzerinde EMR veya EMR Serverless çalıştırmayı seçebilirsiniz. Bu, belirli bir çerçeve sürümü için uygulamalar oluşturmanıza ve dağıtım modelini gelecekteki operasyonel ihtiyaçlara göre değiştirme esnekliğini korumanıza olanak tanır.

Amazon EMR Serverless’a Başlarken
EMR Serverless’ı kullanmaya başlamak için uçtan uca geliştirme ve hata ayıklama deneyimi sağlayan ücretsiz bir EMR özelliği olan Amazon EMR Studio‘yu kullanabilirsiniz. EMR Studio ile EMR Serverless uygulamalar (Spark veya Hive) oluşturabilir, uygulamanız için açık kaynaklı yazılım sürümünü seçebilir, işleri gönderebilir, çalışan işlerin durumunu kontrol edebilir ve iş teşhisi için Spark UI veya Tez UI’yi çağırabilirsiniz.

EMR Serverless Konsolda Get started düğmesini seçtiğinizde, önceden yapılandırılmış EMR Serverless uygulamalarla EMR Studio oluşturabilir ve ayarlayabilirsiniz.

EMR Studio’da Serverless menüsünde Applications‘ı seçtiğinizde, bir veya daha fazla EMR Serverless uygulama oluşturabilir ve kullanım durumunuz için açık kaynak çerçevesini ve sürümünü seçebilirsiniz. Test ve üretim için veya farklı iş kolu kullanım durumları için ayrı mantıksal ortamlar istiyorsanız, her bir mantıksal ortam için ayrı uygulamalar oluşturabilirsiniz.

EMR Serverless uygulama, (a) kullanmak istediğiniz açık kaynaklı çerçeve sürümü için EMR yayın sürümünün ve (b) uygulamanızın kullanmasını istediğiniz Apache Spark veya Apache Hive gibi belirli çalışma zamanının birleşimidir.

Create application‘ı seçtiğinizde, uygulamanızın Name‘ini, Spark veya Hive Type‘ını ve desteklenen Release sürümünü ayarlayabilirsiniz. Ayrıca önceden başlatılmış kapasite, uygulama sınırları ve Amazon Virtual Private Cloud (Amazon VPC) bağlantı seçenekleri için varsayılan veya özel ayarlar seçeneğini de belirleyebilirsiniz. Her EMR Serverless uygulama, diğer uygulamalardan yalıtılmıştır ve güvenli bir VPC içinde çalışır.

İşlerin hemen başlamasını istiyorsanız varsayılan seçeneği kullanın. Ancak uygulama başlatıldığında her işçi için ücret uygulanır. Önceden başlatılmış kapasite hakkında daha fazla bilgi edinmek için bkz. Önceden başlatılmış kapasiteyi yapılandırma ve yönetme.

Start application‘ı seçtiğinizde, uygulamanız 1 Spark sürücüsü (driver) ve 1 Spark yürütücüsünün (executor) önceden başlatılmış kapasitesiyle başlayacak şekilde ayarlanır. Uygulamanız varsayılan olarak işler gönderildiğinde başlayacak ve uygulama 15 dakikadan fazla boşta kaldığında duracak şekilde yapılandırılmıştır.

Choose custom settings‘i seçerek bu ayarları özelleştirebilir ve farklı uygulama limitleri belirleyebilirsiniz.

Job runs menüsünde, uygulamanız için çalıştırılan işlerin bir listesini görebilirsiniz.

Submit job‘ı seçin ve çalıştırmak istediğiniz Amazon Simple Storage Service (Amazon S3) klasöründe iş tarafından kullanılan ad, AWS Identity and Access Management (IAM) rolü, komut dosyası konumu ve JAR veya Python komut dosyasının bağımsız değişkenleri gibi iş ayrıntılarını ayarlayın.

Spark veya Hive işlerinizin günlüklerinin S3 klasörünüze gönderilmesini istiyorsanız, S3 klasörünü EMR Serverless işlerini yürüttüğünüz Bölgede kurmanız gerekir.

İsteğe bağlı olarak, Spark özellikleri, uygulamalar için varsayılan yapılandırmaları geçersiz kılmak için iş yapılandırmaları (metastore olarak AWS Glue Data Catalog’u kullanmak gibi), günlükleri Amazon S3’de depolama ve günlükleri 30 gün boyunca saklama gibi her iş için belirtebileceğiniz ek yapılandırma özellikleri ayarlayabilirsiniz.

Aşağıda, StartJobRun API’sini kullanarak bir Python komut dosyası çalıştırma örneği verilmiştir.

$ aws emr-serverless start-job-run \
    --application-id <application_id> \
    --execution-role-arn <iam_role_arn> \
    --job-driver '{ "sparkSubmit": { "entryPoint": "s3://spark-scripts/scripts/spark-etl.py", "entryPointArguments": "s3://spark-scripts/output", "sparkSubmitParameters": "--conf spark.executor.cores=1 --conf spark.executor.memory=4g --conf spark.driver.cores=1 --conf spark.driver.memory=4g --conf spark.executor.instances=1" } }' \
    --configuration-overrides '{ "monitoringConfiguration": { "s3MonitoringConfiguration": { "logUri": "s3://spark-scripts/logs/" } } }'
Bash

S3 klasörünüzde iş sonuçlarını kontrol edebilirsiniz. Ayrıntılar için, işin nasıl çalıştığını anlamak veya başarısız olursa hatalarını ayıklamak için Spark Uygulaması için Spark Kullanıcı Arayüzü’nü ve Job runs menüsündeki Hive/Tez Kullanıcı Arayüzü’nü kullanabilirsiniz.

Daha fazla hata ayıklama için EMR Serverless, olay günlüklerini Spark uygulamaları için S3 günlük hedefinizdeki sparklogs klasörüne gönderir. Hive uygulamaları söz konusu olduğunda, EMR Serverless, Hive sürücüsünü ve Tez görev günlüklerini sürekli olarak S3 günlük hedefinizin HIVE_DRIVER veya TEZ_TASK klasörlerine yükler. Daha fazla bilgi edinmek için AWS belgelerinde Logging bölümüne bakın.

Bilmeniz Gerekenler
EMR Serverless ile Amazon EMR çalıştırmanın tüm avantajlarından yararlanabilirsiniz. Önizleme duyurularının yer aldığı bir AWS Big Data Blog yayınından EMR Serverless hakkında bilinmesi gereken bazı şeylerden alıntı yapmak istiyorum:

  • Otomatik ve ayrıntılı ölçeklendirme – EMR Serverless, işinizin işlenmesinin her aşamasında çalışanları otomatik olarak büyütür ve gerekmediğinde onları küçültür. Bir çalışanın çalışmaya başladığı andan durana kadar kullanılan toplam vCPU, bellek ve depolama kaynakları için ücretlendirilirsiniz ve minimum 1 dakikalık en yakın saniyeye yuvarlanır. Örneğin, işiniz, işin işlenmesinin ilk 10 dakikası için 10 işçi ve sonraki 5 dakika için 50 işçi gerektirebilir. Ayrıntılı otomatik ölçekleme ile, yalnızca 10 çalışan için 10 dakika ve 50 çalışan için 5 dakika için maliyet ödersiniz. Sonuç olarak, yeterince kullanılmayan kaynaklar için ödeme yapmanız gerekmez.
  • Erişilebilirlik Alanı hatalarına karşı dayanıklılık – EMR Serverless, Bölgesel bir hizmettir. İşleri bir EMR Serverless uygulamasına gönderdiğinizde, Bölgedeki herhangi bir Erişilebilirlik Alanında çalışabilir. Bir Erişilebilirlik Alanının bozulması durumunda, EMR Serverless uygulamanıza gönderilen bir iş otomatik olarak farklı (sağlıklı) bir Erişilebilirlik Alanında çalıştırılır. Özel bir VPC’de kaynakları kullanırken, EMR Serverless, EMR Serverless’ın otomatik olarak sağlıklı bir Erişilebilirlik Alanı seçebilmesi için birden çok Erişilebilirlik Alanı için özel VPC yapılandırması belirtmenizi önerir.
  • Paylaşılan uygulamaları etkinleştirin – İşleri bir EMR Serverless uygulamaya gönderdiğinizde, iş tarafından S3 nesneleri gibi AWS kaynaklarına erişmek için kullanılması gereken IAM rolünü belirtebilirsiniz. Sonuç olarak, farklı IAM sorumluları işleri tek bir EMR Serverless uygulamada çalıştırabilir ve her iş yalnızca IAM sorumlusunun erişmesine izin verilen AWS kaynaklarına erişebilir. Bu, önceden başlatılmış bir çalışan havuzuna sahip tek bir uygulamanın birden çok kiracıya sunulduğu ve her kiracının farklı bir IAM rolü kullanarak işleri gönderebildiği ancak istekleri hemen işlemek için önceden başlatılmış çalışanlardan oluşan ortak havuzu kullandığı senaryoları ayarlamanıza olanak tanır.

Şimdi Kullanılabilir
Amazon EMR Serverless US East (N. Virginia), US West (Oregon), Europe (Ireland) ve Asia Pacific (Tokyo) Bölgelerinde şimdi kullanılabilir durumdadır. EMR Serverless ile peşin maliyet yoktur ve yalnızca kullandığınız kaynaklar için ödeme yaparsınız. Uygulamalarınız tarafından tüketilen vCPU, bellek ve depolama kaynakları için ödeme yaparsınız. Fiyatlandırma ayrıntıları için EMR Serverless fiyatlandırma sayfasına bakın.

Daha fazla bilgi edinmek için Amazon EMR Serverless Kullanıcı Kılavuzu‘nu ve Apache Spark ve Apache Hive ile örnek kodları ziyaret edin. Lütfen geri bildiriminizi AWS re:Post for Amazon EMR Serverless‘a veya her zamanki AWS destek irtibatlarınız aracılığıyla gönderin.

Amazon EMR Serverless ile ilgili tüm ayrıntıları öğrenin ve hemen başlayın.

Channy