Zephyrnet Logosu

Amazon OpenSearch Hizmeti depolaması ve parça çarpıklığı sağlığı için Amazon CloudWatch ölçümleri | Amazon Web Hizmetleri

Tarih:

Amazon Açık Arama Hizmeti dağıtmayı, çalıştırmayı ve ölçeklendirmeyi kolaylaştıran yönetilen bir hizmettir Aramayı Aç Etkileşimli günlük analitiği, gerçek zamanlı uygulama izleme, web sitesi araması ve daha fazlasını gerçekleştirmek için AWS'deki kümeler. OpenSearch, açık kaynaklı, dağıtılmış bir arama ve analiz paketidir.

OpenSearch Hizmeti ile çalışırken parça stratejisi çok önemlidir. Parçalar iş yükünüzü kümenizin veri düğümleri arasında dağıtır. Bir dizin oluştururken, OpenSearch Service'e kaç tane birincil parça oluşturulacağını ve her bir parçanın kaç kopyasının oluşturulacağını söylersiniz. Birincil parçalar, tüm veri kümesinin bağımsız bölümleridir. OpenSearch Hizmeti, verilerinizi bir dizindeki birincil parçalara otomatik olarak dağıtır. Önerimiz dizininiz için iki kopya kullanmanızdır. Örneğin, dizininizin parça sayısını üç birincil parça ve iki kopya olarak ayarlarsanız toplam dokuz parçaya sahip olursunuz. Düzgün yapılandırılmış dizinler, genel etki alanı performansının artırılmasına yardımcı olabilirken, yanlış yapılandırılmış bir dizin, depolama ve performansın bozulmasına neden olur.

OpenSearch Hizmeti, dizinlerinizdeki parçaları etki alanınızdaki veri düğümlerine dağıtarak hiçbir birincil parçanın ve kopyalarının aynı düğüme yerleştirilmemesini sağlar. Parçalara ilişkin veriler düğümün deposunda saklanır. Dizinleriniz (ve dolayısıyla parçaları) çok farklı boyutlardaysa, etki alanındaki veri düğümlerinde kullanılan depolama alanı eşit olmayacak veya çarpık olacaktır. Depolama çarpıklığı, eşit olmayan bellek ve CPU kullanımına, aralıklı ve eşit olmayan gecikme süresine, eşit olmayan kuyruğa alınmasına ve isteklerin reddedilmesine neden olur. Bu nedenle, dizinleri, parçaların kümenizin veri düğümleri arasında eşit şekilde dağıtılabileceği şekilde yapılandırmak ve sürdürmek önemlidir.

Bu yazıda nasıl dağıtılacağını araştırıyoruz Amazon CloudWatch ölçümleri Bir kullanarak AWS CloudFormation Bir OpenSearch Hizmeti etki alanının depolama alanını ve parça eğriliğini izlemek için şablon. Bu çözüm bir kullanır AWS Lambda OpenSearch Hizmeti alanınızdan depolama ve parça dağıtımı meta verilerini çıkarmaya yönelik işlev, çarpıklık düzeyini hesaplar ve ardından bu bilgileri kolayca izleyebilmeniz, uyarabilmeniz ve yanıt verebilmeniz için CloudWatch ölçümlerine aktarır.

Çözüme genel bakış

Çözüm ve ilgili kaynaklar, CloudFormation şablonu olarak kendi AWS hesabınıza dağıtmanız için mevcuttur. Şablon aşağıdaki kaynakları dağıtır:

  • An AWS Kimlik ve Erişim Yönetimi Lambda işlevi için (IAM) rolü çağrıldı OpensearchSkewMetricsLambdaRole. Bu, CloudWatch ölçümlerine yazma erişimine ve CloudWatch günlük grubuna ve OpenSearch API'lerine erişime olanak tanır.
  • AWS Lambda işlevi çağrıldı Opensearch-SkewMetricsPublisher-py.
  • An Amazon CloudWatch günlük grubu denilen Lambda işlevi için /aws/lambda/Opensearch-skewmetrics-publisher-py.
  • An Amazon EventBridge kuralı denilen Lambda işlevi için EventRuleForOSSkew.
  • Lambda işlevi için aşağıdaki CloudWatch ölçümleri:
    • aws_/<region-name>/<MetricIdentifier>/_storagemetric
    • aws_/<region-name>/<MetricIdentifier>/_shardmetric

Önkoşullar

Bu izlenecek yol için aşağıdaki ön koşullara sahip olmalısınız:

  • An AWS hesabı.
  • Bir OpenSearch Hizmeti etki alanı.
  • Bu gönderi, OpenSearch Hizmeti etki alanının güvenlik yapılandırması erişim politikasına bir Lambda rolü eklemenizi gerektirir. Alanınızda ayrıntılı erişim kontrolü kullanılıyorsa bölümde açıklanan adımları uygulamanız gerekir. Rolleri kullanıcılara eşleme CloudFormation şablonunu dağıttıktan sonra yeni dağıtılan Lambda yürütme rolünün etki alanına erişimini etkinleştirmek için.

CloudFormation şablonunu dağıtın

CloudFormation şablonunu dağıtmak için aşağıdaki adımları tamamlayın:

  1. Için login senin AWS hesabı.
  2. OpenSearch Service etki alanınızı çalıştırdığınız Bölgeyi seçin.
  3. CloudFormation yığınınızı başlatmak için şunu seçin: Yığını Başlat
  4. İçin Yığın adıyığın için bir ad girin (maksimum uzunluk 30 karakter).
  5. İçin Metrik Tanımlayıcı, alanınız için özel CloudWatch ölçümlerini tanımlamanıza yardımcı olacak benzersiz bir tanımlayıcı girin.
  6. İçin OpensearchEtkiAlanıURL'si, izlediğiniz etki alanı uç noktasını girin.
  7. Klinik Sonraki.
  8. seç AWS CloudFormation'ın IAM kaynakları oluşturabileceğini kabul ediyorum, Daha sonra seçmek Yığın oluştur.
  9. Yığın oluşturma işleminin tamamlanmasını bekleyin.
  10. Lambda konsolunda şunu seçin: fonksiyonlar Gezinti bölmesinde.
  11. adlı Lambda işlevini seçin. Opensearch-SkewMetricsPublisher-py-<stackname>.
  12. içinde Kod bölümü, seçim test.
  13. Test olayı için varsayılan değerleri koruyun ve hızlı bir test çalıştırın.

Eğer kullanıyorsanız, OpenSearch Hizmeti etki alanının kaynak tabanlı politikasına Lambda yürütme rolü izni verdiğinizden emin olun. Etki alanında ayrıntılı erişim denetimi etkinleştirilmişse bölümündeki adımları izleyin. Rolleri kullanıcılara eşleme (önkoşullarda belirtildiği gibi) Lambda işlevinin salt okunur erişimde etki alanından okuma yapmasına izin vermek.

OpenSearch etki alanı ölçümlerini CloudWatch'a gönderen Lambda işlevi, varsayılan sıklık olan 1 güne ayarlanmıştır. EventBridge konsolunda CloudFormation yığını tarafından dağıtılan kural için olay zamanlamasını güncelleyerek etki alanını gerekli ayrıntı düzeyinde izlemek için bu yapılandırmayı değiştirebilirsiniz. Frekansın 1 dakikaya ayarlanması halinde bunun Lambda fonksiyonunu her dakika tetikleyeceğini ve Lambda maliyetini artıracağını unutmayın.

Bu çözüm, kedi/tahsis Etki alanındaki veri düğümlerinin sayısını, her veri düğümünün parça sayısını ve depolama kullanım özelliklerini sağlayan API. Etki alanı depolaması ve parça çarpıklığı hakkında daha fazla ayrıntı için bkz. Düğüm parçası ve depolama çarpıklığı. Lambda işlevi, her veri düğümünün depolama alanını ve parça eğriliğini ortalama değerden işler ve sıralar. Herhangi bir veri düğümünün ortalamadan %10'un üzerindeki sapmasının genellikle önemli ölçüde çarpık olduğu kabul edilir. Bu durum CPU, ağ ve disk bant genişliği kullanımını etkilemeye başlayacak çünkü en yüksek depolama kullanımına sahip düğümler kaynak açısından kısıtlı düğümler olurken, %10'dan az kullanıma sahip düğümler yetersiz kullanılan kapasiteyi temsil ediyor.

Bakın Elasticsearch parça tahsisinin gizemini çözme Parça boyutu ve parça sayımı stratejisiyle ilgili ayrıntılar için. Genel olarak, arama gecikmesinin temel performans hedefi olduğu iş yükleri için parça boyutlarını 10-30 GB arasında, yazma ağırlıklı iş yükleri için ise 30-50 GB arasında tutmanızı öneririz. Parça sayımı için, veri düğümü sayısına bölünebilen dizin parça sayılarını korumanızı öneririz. Ek ayrıntılar için bkz. Amazon OpenSearch Hizmeti etki alanlarını boyutlandırma ve Parça stratejisi.

CloudWatch'ta eğrilik ölçümlerini görüntüleyin

Bu çözümü hesabınızda çalıştırdıktan sonra izleme için iki CloudWatch ölçümü oluşturulacaktır. Bu CloudWatch ölçümlerine erişmek için aşağıdaki adımları kullanın:

  1. CloudWatch konsolunda, altında Metrikleri gezinme bölmesinde öğesini seçin. Tüm ölçümler.
  2. Klinik Araştır seçin Özel ad alanları. ile biten iki özel ölçüm görmelisiniz _storageworkspace ve _shardworkspace, Sırasıyla.
  3. Özel metriklerden birini seçin ve ardından Düğüm Kimliği.
  4. Düğüm kimlikleri listesinde, listede görüntülenen tüm düğümleri seçin; grafik otomatik olarak çizilecektir.

Düğüm eğim bilgilerini görmek için fareyi çizilen çizgilerin üzerine getirebilirsiniz.

Aşağıdaki ekran görüntüleri CloudWatch ölçümlerinin konsolda nasıl görüneceğine ilişkin örnekleri göstermektedir.

Depolama eğimi ölçümleri aşağıdaki ekran görüntüsüne benzer olacaktır. Depolama çarpıklığı ölçümleri, alan depolama çarpıklığını gösterir. Grafiğin üzerine geldiğinizde etki alanındaki kullanılabilir düğümlerin bulunduğu düğüm listesi gösterilir. Bu liste depolama boyutuna göre (en büyüğünden en küçüğüne) sıralanmıştır. Lambda işlevi en son depolama çarpık sonuçlarını periyodik olarak yayınlayacaktır.

Parça eğimi ölçümleri aşağıdaki ekran görüntüsüne benzer olacaktır. Parça eğriliği metrikleri alan adı parça çarpıklığını gösterir. Grafiğin üzerine geldiğinizde etki alanındaki kullanılabilir düğümlerin bulunduğu düğüm listesi gösterilir. Bu liste parça boyutuna göre (en büyüğünden en küçüğüne) sıralanmıştır. Lambda işlevi en son depolama çarpık sonuçlarını periyodik olarak yayınlayacaktır.

Depolama çarpıklığı, etki alanındaki bir veya daha fazla düğümün diğer düğümlerden önemli ölçüde daha fazla depolama alanına sahip olması durumunda ortaya çıkar. CloudWatch ölçümü, diğer düğümlere kıyasla bu düğümler için depolama kullanımında daha yüksek sapma gösterecektir. Benzer şekilde, bir veya daha fazla düğümün diğer düğümlerden önemli ölçüde daha fazla parçaya sahip olması durumunda parça çarpıklığı meydana gelir. CloudWatch ölçümü, bu düğümler için etki alanındaki diğer düğümlere kıyasla daha yüksek sapma gösterecektir. Etki alanı depolama alanı veya parça eğriliği algılandığında, bir yükseltme yapabilirsiniz. destek davası İyileştirme eylemleri için AWS ekibiyle birlikte çalışmak. Görmek Amazon OpenSearch Service kümemdeki dengesiz parça dağıtımını nasıl yeniden dengeleyebilirim Etki alanı parça stratejinizi optimum performansa göre yapılandırmak amacıyla düzeltme eylemlerini nasıl gerçekleştireceğiniz hakkında bilgi için.

maliyetler

Bu çözümü kullanmanın maliyeti, CloudWatch ölçümleri oluşturduğu için ayda birkaç sent civarında, minimum düzeyde olacaktır. Çözüm ayrıca Lambda kodunu çalıştırır ve bu durumda Lambda işlevleri API çağrıları yapar. Fiyatlandırma ayrıntıları için bkz. Amazon CloudWatch Fiyatlandırması ve AWS Lambda Fiyatlandırması.

Temizlemek

Lambda işlevini ve ilgili kaynakları artık saklamak istemediğinize karar verirseniz AWS CloudFormation konsoluna gidebilir, yığını seçebilir ve Sil.

CloudWatch çarpık izleme ölçümleri mekanizmasını herhangi bir noktada tekrar eklemek isterseniz yığını CloudFormation şablonundan yeniden oluşturabilirsiniz.

Sonuç

Bu çözümü OpenSearch Service alanınızın depolamasını ve parça çarpıklığını daha iyi anlayarak performansını artırmak ve muhtemelen alanınızı çalıştırma maliyetini düşürmek için kullanabilirsiniz. Kullanıma Bakın Elasticsearch'ün _rollover API'si Verimli depolama dağıtımı için Parça tahsisi ve verimli depolama dağıtım stratejisiyle ilgili daha fazla ayrıntı için.


yazarlar hakkında

Nikhil Agarval Amazon Web Services'te Kıdemli Teknik Müdürdür. Müşterilerin bulut yolculuklarında ve teknik çözümler üzerindeki çalışma faaliyetlerinde operasyonel mükemmelliğe ulaşmalarına yardımcı olma konusunda tutkuludur. Aynı zamanda AI/ML konusunda istekli ve müşterinin makine öğrenimine özgü kullanım örneklerini derinlemesine inceliyor. İş dışında ailesiyle seyahat etmekten ve farklı aletler keşfetmekten hoşlanıyor.

Karthik Chemudupati AWS'de Baş Teknik Hesap Yöneticisidir (TAM), müşterilerin maliyet optimizasyonuna ve operasyonel mükemmelliğe ulaşmalarına yardımcı olmaya odaklanmıştır. Yazılım mühendisliği, bulut operasyonları ve otomasyon alanlarında 19 yıldan fazla BT deneyimine sahiptir. Karthik, AWS'ye 2016 yılında TAM olarak katıldı ve ABD-Batı genelinde bir düzineden fazla Kurumsal Müşteriyle çalıştı. İş dışında ailesiyle vakit geçirmekten hoşlanıyor.

Gen Alpert AWS Enterprise Support'ta Kıdemli Analiz Uzmanıdır. Son üç yıldır Amazon OpenSearch Service müşterilerimize ve ekosistemimize odaklandı. Gene, AWS'ye 2017 yılında katıldı. İş dışında dağ bisikletine binmeyi, seyahat etmeyi ve VR'da Population:One oynamayı seviyor.

spot_img

En Son İstihbarat

spot_img