AWS Türkçe Blog

Amazon OpenSearch Serverless ve Amazon Kinesis Data Firehose ile sunucusuz günlük kaydı

Orijinal makale: Link (Jon Handler ve Prashant Agrawal)

Bu gönderide, VPC flow logs (VPC akış günlükleri) kayıtlarını Amazon OpenSearch Serverless‘a göndermek üzere bir günlük alma işlem hattı oluşturmak için Amazon Kinesis Data Firehose‘u nasıl kullanabileceğinizi öğreneceksiniz. İlk olarak, VPC flow logs kayıtlarını depolamak için kullandığınız OpenSearch Serverless koleksiyonunu oluşturursunuz, ardından akış günlüklerini OpenSearch Serverless’a ileten bir Kinesis Data Firehose teslim akışı oluşturursunuz. Son olarak, Firehose teslim akışınıza VPC low logs kayıtlarının teslimini etkinleştirirsiniz. Aşağıdaki şemada çözüm iş akışı gösterilmektedir.

OpenSearch Serverless, Amazon OpenSearch Service tarafından sunulan yeni bir sunucusuz seçenektir. OpenSearch Serverless, OpenSearch kümelerini yapılandırmak, yönetmek veya ölçeklendirmek zorunda kalmadan petabayt ölçeğinde arama ve analiz iş yüklerini çalıştırmayı kolaylaştırır. OpenSearch Serverless, en zorlu ve öngörülemeyen iş yükleri için bile hızlı veri alımı ve sorgu yanıtları sağlamak için temel kaynakları otomatik olarak sağlar ve ölçeklendirir.

Kinesis Data Firehose, 20’den fazla AWS hizmetinden OpenSearch Serverless gibi 15’in üzerinde analitik ve gözlemlenebilirlik aracına veri akışı sağlayan popüler bir hizmettir. Kinesis Data Firehose, tek bir kod satırı olmadan ve kendi veri alma ve teslim altyapınızı oluşturmadan veya yönetmeden VPC low logs verilerinizi OpenSearch Serverless koleksiyonunuza dakikalar içinde göndermenin hızlı ve kolay bir yolunu arayanlar için harikadır.

VPC flow logs, VPC’nizdeki ağ arabirimlerinize gelen ve bu arabirimlerden giden trafik bilgilerini yakalar. OpenSearch Serverless için Kinesis Data Firehose desteğinin kullanıma sunulmasıyla, yalnızca birkaç tıklamayla VPC flow logs kayıtlarınızı analiz etmek kolay bir çözüm haline geliyor. Kinesis Data Firehose, akış günlüklerinizi OpenSearch Serverless’a teslim etmek için gerçek bir uçtan uca sunucusuz mekanizma sağlar; burada bu günlüklerde arama yapmak, panolar oluşturmak, anormallikleri tespit etmek ve uyarılar göndermek için OpenSearch Panolarını (OpenSearch Dashboards) kullanabilirsiniz. VPC flow logs, aşağıdaki gibi soruları yanıtlamanıza yardımcı olur:

  • Trafiğinizin yüzde kaçı düşüyor?
  • Belirli kaynaklar ve hedefler için ne kadar trafik üretiliyor?

OpenSearch Serverless koleksiyonunuzu oluşturun

Başlamak için önce bir koleksiyon (collection) oluşturursunuz. OpenSearch Serverless koleksiyonu, bir analitik iş yükünü temsil eden bir veya daha fazla dizinin (index) mantıksal bir gruplandırmasıdır. Aşağıdaki adımları tamamlayın:

  1. OpenSearch Service konsolunda, gezinme bölmesinde Serverless altından Collections seçin.
  2. Create a collection seçin.
  3. Collection name için bir ad girin (örneğin, vpc-flow-logs).
  4. Collection type için Time series seçin.
  5. Encryption için tercih ettiğiniz şifreleme ayarını seçin:
    1. AWS tarafından yönetilen bir anahtar kullanmak için Use AWS owned key seçin.
    2. Kendi AWS Key Management Service (AWS KMS) anahtarınızı kullanmak için a different AWS KMS key seçin.
  6. Network access settings için tercih ettiğiniz ayarı seçin:
    1. Bir VPC uç noktası kullanmak için VPC seçin.
    2. Genel bir uç nokta kullanmak için Public seçin.

AWS, tüm üretim iş yükleri için bir VPC uç noktası kullanmanızı önerir. Bu yazıdaki izlenecek yol için Public seçin.

  1. Create seçin.

Koleksiyonu oluşturmak birkaç dakika sürer.

Aşağıdaki grafik, önceki adımlar aracılığıyla OpenSearch Serverless koleksiyonunu oluşturmanın hızlı bir gösterimini sunar.

Bu noktada, OpenSearch Serverless için başarıyla bir koleksiyon oluşturdunuz. Ardından, Kinesis Data Firehose için bir teslim hattı oluşturursunuz.

Kinesis Data Firehose teslim akışı oluşturun

Kinesis Data Firehose için bir teslim akışı ayarlamak üzere aşağıdaki adımları tamamlayın:

  1. Kinesis Data Firehose konsolunda Create delivery stream seçin.
  2. Source için, Direct PUT belirtin.

Kinesis Data Firehose tarafından desteklenen farklı kaynaklar hakkında daha fazla bilgi edinmek için Source (Kaynak), Destination (Hedef) ve Name’e (Ad) göz atın.

  1. Destination için, Amazon OpenSearch Serverless seçin.
  2. Delivery stream name için bir ad girin (örneğin, vpc-flow-logs).
  3. Destination settings altında, OpenSearch Serverless collection ayarlarında Browse seçin.
  4. vpc-flow-logs seçin.
  5. Choose seçin.

Koleksiyonunuz hala oluşturuluyorsa birkaç dakika bekleyin ve tekrar deneyin.

  1. Index için, vpc-flow-logs belirtin.
  2. Backup settings bölümünde, Source record backup in Amazon S3 için Failed data only seçin.

Kinesis Data Firehose, seçtiğiniz hedefe teslim etmeye çalıştığı başarısız verileri yedeklemek için Amazon Simple Storage Service‘i (Amazon S3) kullanır. Tüm verileri saklamak istiyorsanız, All data seçin.

  1. S3 Backup Bucket için, mevcut bir S3 klasörünü seçmek üzere Browse seçin veya yeni bir klasör oluşturmak için Create seçin.
  2. Create delivery stream seçin.

Aşağıdaki grafik, önceki adımlar aracılığıyla Kinesis Data Firehose teslim akışı oluşturmanın hızlı bir gösterimini sunar.

Bu noktada, Kinesis Data Firehose için VPC flow logs kayıtlarınızdan veri akışı yapmak ve OpenSearch Serverless koleksiyonunuza göndermek için kullanacağınız bir teslim akışını başarıyla oluşturdunuz.

OpenSearch Serverless koleksiyonunuz için veri erişim politikasını ayarlayın

OpenSearch Serverless’a herhangi bir günlük göndermeden önce OpenSearch Serverless içinde, Kinesis Data Firehose’un koleksiyonunuzdaki vpc-flow-logs dizinine yazmasına izin veren bir veri erişim politikası oluşturmanız gerekir. Aşağıdaki adımları tamamlayın:

  1. Kinesis Data Firehose konsolunda, az önce oluşturduğunuz vpc-flow-logs teslim akışı için ayrıntılar sayfasındaki Configuration sekmesini seçin.
  2. Permissions bölümünde, AWS Identity and Access Management (IAM) rolünü not edin.
  3. OpenSearch Serverless panosundaki vpc-flow-logs koleksiyon ayrıntıları sayfasına gidin.
  4. Data access altında, Manage data access seçin.
  5. Create access policy seçin.
  6. Name and description bölümünde bir erişim politikası adı belirtin, bir açıklama ekleyin ve politika tanımlama yöntemi olarak JSON‘u seçin.
  7. JSON düzenleyicisine aşağıdaki politikayı ekleyin. Politikada teslim akışı oluşturma sırasında belirttiğiniz koleksiyon adını ve dizini sağlayın. Firehose teslim akışının izinler sayfasından aldığınız IAM rolü adını ve AWS hesabınızın hesap kimliğini sağlayın.
    [
      {
        "Rules": [
          {
            "ResourceType": "index",
            "Resource": [
              "index/<collection-name>/<index-name>"
            ],
            "Permission": [
              "aoss:WriteDocument",
              "aoss:CreateIndex",
              "aoss:UpdateIndex"
            ]
          }
        ],
        "Principal": [
          "arn:aws:sts::<aws-account-id>:assumed-role/<IAM-role-name>/*"
        ]
      }
    ]
    Code
  8. Create seçin.

Aşağıdaki grafik, önceki adımlar aracılığıyla veri erişim politikası oluşturmanın hızlı bir gösterimini sunar.

VPC flow logs ayarlayın

Bu gönderinin son adımında, verileri OpenSearch Serverless’a gönderen Kinesis Data Firehose hedefiyle VPC’niz için akış günlüklerini etkinleştirirsiniz.

  1. AWS Management Console‘a gidin.
  2. “VPC”yi arayın ve ardından arama sonucunda Your VPCs seçin (bağlantıyı ortaya çıkarmak için VPC dikdörtgeninin üzerine gelin).
  3. VPC’lerinizden biri için VPC ID bağlantısını seçin.
  4. Flow Logs sekmesinde, Create flow log seçin.
  5. Name için bir ad girin.
  6. Filter ayarını All olarak bırakın. Accept veya Reject seçerek trafiği sınırlayabilirsiniz.
  7. Destination altında, Send to Kinesis Firehose in the same account seçin.
  8. Kinesis Firehose delivery stream name için vpc-flow-logs seçin.
  9. Create flow log seçin.

Aşağıdaki grafik, önceki adımları izleyerek VPC’niz için bir akış günlüğü oluşturmanın hızlı bir gösterimini sunar.

OpenSearch Dashboard’ları kullanarak koleksiyonunuzdaki VPC flow logs verilerini inceleyin

Veri erişimini yapılandırana kadar koleksiyon verilerinize erişemezsiniz. Veri erişim politikaları, kullanıcıların bir koleksiyon içindeki gerçek verilere erişmesine izin verir.

OpenSearch Dashboards için bir veri erişim politikası oluşturmak üzere aşağıdaki adımları tamamlayın:

  1. OpenSearch Serverless panosundaki vpc-flow-logs koleksiyon ayrıntıları sayfasına gidin.
  2. Data access altında, Manage data access seçin.
  3. Create access policy seçin.
  4. Name and description bölümünde bir erişim politikası adı belirtin, bir açıklama ekleyin ve politika tanımlama yöntemi olarak JSON‘u seçin.
  5. JSON düzenleyicisine aşağıdaki politikayı ekleyin. Politikada teslim akışı oluşturma sırasında belirttiğiniz koleksiyon adını ve dizini sağlayın. Ek olarak, AWS hesabınız için IAM kullanıcısını ve hesap kimliğini sağlayın. IAM kullanıcısı olarak belirttiğiniz sorumlu için AWS erişimine ve gizli anahtarlara sahip olduğunuzdan emin olmanız gerekir.
    [
      {
        "Rules": [
          {
            "Resource": [
              "index/<collection-name>/<index-name>"
            ],
            "Permission": [
              "aoss:ReadDocument"
            ],
            "ResourceType": "index"
          }
        ],
        "Principal": [
          "arn:aws:iam::<aws-account-id>:user/<IAM-user-name>"
        ]
      }
    ]
    Code
  6. Create seçin.
  7. OpenSearch Serverless’a gidin ve oluşturduğunuz koleksiyonu (vpc-flow-logs) seçin.
  8. OpenSearch Dashboards URL’ini seçin ve IAM erişim anahtarınız ve Principal altında belirttiğiniz kullanıcı için gizli anahtarınızla oturum açın.
  9. OpenSearch Dashboards içindeki geliştirme araçlarına gidin ve VPC’niz için VPC flow logs verilerini almak üzere aşağıdaki sorguyu çalıştırın:
    GET <index-name>/_search
    {
      "query": {
        "match_all": {}
      }
    }
    Code

Sorgu, hesap kimliği, arayüz kimliği, kaynak IP adresi, hedef IP adresi ve daha fazlası gibi bilgileri içeren aşağıdaki ekran görüntüsünde gösterildiği gibi verileri döndürür.

Panoları oluşturun

Veriler OpenSearch Serverless’a aktıktan sonra, VPC’nizdeki etkinliği izlemek için kolayca panolar oluşturabilirsiniz. Aşağıdaki örnek pano, genel trafiği, kabul edilen ve reddedilen trafiği, iletilen baytları ve en önemli kaynakları ve hedefleri içeren bazı grafikleri gösterir.

Kaynakları temizleme

Çözümü kullanmaya devam etmek istemiyorsanız oluşturduğunuz kaynakları sildiğinizden emin olun:

  1. AWS konsoluna dönün ve VPC’ler bölümünde VPC’niz için akış günlüklerini devre dışı bırakın.
  2. OpenSearch Serverless kontrol panelinde, vpc-flow-logs koleksiyonunuzu silin.
  3. Kinesis Data Firehose konsolunda vpc-flow-logs teslim akışınızı silin.

Sonuç

Bu gönderide, Kinesis Data Firehose kullanarak VPC flow logs verilerinizi OpenSearch Serverless’a teslim etmek için uçtan uca sunucusuz bir hat oluşturdunuz. Bu örnekte, VPC flow logs verileriniz için bir teslim hattı oluşturdunuz, ancak Amazon Kinesis Data Streams ve Amazon CloudWatch‘tan da günlükler göndermek için Kinesis Data Firehose’u kullanabilirsiniz; bu veriler, bu günlüklerde analitik çalıştırmak için OpenSearch Serverless koleksiyonlarına gönderilebilir. AWS’teki sunucusuz çözümlerle, günlüklerinizi görselleştirmeye yönelik alım hattı ve araçlar hakkında endişelenmek yerine uygulama geliştirmenize odaklanabilirsiniz.

Amazon OpenSearch Serverless’a Başlarken atölyesine katılarak OpenSearch Serverless’ı uygulamalı olarak öğrenin ve günlüklerinizi analiz etmek için diğer ardışık düzenleri inceleyin.

Bu gönderiyle ilgili sorularınız varsa Amazon OpenSearch Service forumunda yeni bir ileti dizisi başlatın veya AWS Destek ile iletişime geçin.