🗽

【re:Invent 2022】Amazon EKSとAWS Batchによるデータ分析のワークショップに参加してきました

2022/12/01に公開

AWS re:Invent 2022で行われた、「Data analysis with Amazon EKS and AWS Batch
」のワークショップレポートです。

この記事は、要点・見どころ・ポイントについてまとめます。

セッション概要

Title

Data analysis with Amazon EKS and AWS Batch

Amazon EKSとAWS Batchによるデータ分析

Overview

In this workshop, gain an understanding of the recently added AWS Batch support for managing and scheduling large-scale data analysis using Amazon EKS. Join this hands-on workshop and learn AWS Batch fundamental concepts and how AWS Batch works together with your other AWS services running within Amazon EKS. In this workshop, deploy an Amazon EKS cluster, leverage AWS Batch to manage pods, and train a simple machine learning model. You must bring your laptop to participate.
このワークショップでは、Amazon EKSを使用して大規模なデータ分析を管理およびスケジューリングするために最近追加されたAWS Batchのサポートを理解することができます。このハンズオンワークショップでは、AWS Batchの基本的なコンセプトと、AWS BatchがAmazon EKS内で実行されている他のAWSサービスとどのように連携しているかを学びます。このワークショップでは、Amazon EKSクラスターをデプロイし、AWS Batchを活用してポッドを管理し、簡単な機械学習モデルをトレーニングします。参加にはノートPCの持参が必要です。

Services

AWS Batch,Amazon EKS

Session type

Workshop

Speakers

  • Angel Pizarro, Principal Developer Advocate, Amazon Web Services
  • Maxime Hugues, Principal HPC Specialist Solutions Architect, AWS

ワークショップスタート

AWS Batch

2022年10月からAWS BatchがAmazon Elastic Kubernetes Service (Amazon EKS)をサポートされて新しい機能になってます。
従来だとECSかFargateのタイプでしか選べなかったのですが遂に登場しました。

https://aws.amazon.com/jp/about-aws/whats-new/2022/10/aws-batch-supports-amazon-eks/

Amazon Elastic Kubernetes Service(EKS)

Kubernetesクラスターで管理されているバッチワークロードを調整するマネージドサービスです。

kubernetesは特にマイクロサービスの操作に優れているため、今後のサービスアップデートに期待できそうです。

結局EKSがサポートされて何が嬉しいのか?

Kubernetesを使ったバッチワークロード処理するためには、スケジュール設定や管理に専門知識が必要で時間がかかっていた。
これを解決するため、AWS Batch on EKSが登場
AWS BatchはKubernetes APIを呼び出して、Kubernetesのポッドとノードを作成、監視、削除する。

EKSとECSの違い

簡単に説明すると
ECS: Dockerコンテナを簡単に実行・停止出来る
EKS: kubernetesのマネージドサービス

ECSの場合だと、複数台のサーバで稼働するコンテナを横断的に管理することが無理なので、
複数台のサーバにまたがったコンテナを増やさないといけない場合にEKSを選択する。

Docker: 1台のサーバ上でしかコンテナを管理できない
Kubernetes: 複数台のサーバにまたがったコンテナ管理ができる

全体の流れ

  • Cloud9を起動し環境構築
  • EKSのセットアップ(約20分かかります)
  • 画像からGIFを作成する処理(AWS Batchを使用してS3から画像を取得しGIFビデオを作成)
    • S3用意
    • ECRリポジトリ作成
    • EKSワーカーノードにS3とECRにアクセスする権限付与
    • AWS Batch
      • ジョブ定義
      • ジョブをサブミット
  • クラスターの負荷を監視およびグラフ化(EKSクラスターの負荷を監視及びグラフ化する)
    • EKSクラスターにPrometheusとGrafanaをインストール
    • PrometheusとGrafanaのセットアップ
    • ECRリポジトリ作成
    • EKSワーカーノードにECRにアクセスする権限付与
    • AWS Batch
      • ジョブ定義
      • ジョブをサブミット
    • Grafanaダッシュボードでモニタリング

結果

AWS Batchで起動されたジョブに応じてグラフが毎分ごとにグラフが変化できることを確認しました!

https://drive.google.com/file/d/1UIUbkiXZJUrqdQx4v2P4j_ZDE1rrpN8M/view?usp=sharing

ハンズオンサイト

https://catalog.us-east-1.prod.workshops.aws/workshops/b67b6665-f7a2-427f-affb-caccd087d50d/en-US/exercises/calculate-pi/submit-jobs

まとめ

今までAWS EKSを触れたことがなったので、今回のワークショップでコツを掴もうと思い参加しました。
Grafanaも今回初めてのため、色々動作したりして視覚化できるのは直感的でわかりやすく、技術の選択肢がまた1つ増えました。

以上

Discussion