【AWS Glue】事前調査

AWS Glue とは

  • サーバーレス(オンデマンド実行・実行時間課金)なETL向けサービス
  • 実態は、フルマネージドなPyhton/ApacheSparkの仮想実行環境。
  • AWS手製のライブラリ/ランタイムがAWS上のリソースの取得やクエリにめっちゃくちゃ強く(例:S3のデータをロード、Redshiftにクエリ、Athenaにクエリ)、SQL感覚で大規模のデータ加工スクリプトを書ける。
  • RedshiftやAthenaにテーブル作ると、自動で収集してカタログという形でメタデータを作る。コードのテンプレート生成に使ったりする。

調べる

2019/06次点では、決定版みたいなドキュメントはなさそう

公式ドキュメント

Future Tech ブログ

ジョブについて

  • [1] S3にPythonScalaスクリプトを置く [2] AWS GlueからJobを作成してキック の流れらしい。

  • 現在、ジョブには2つのタイプがある

    • Sparkタイプ
      • 重量級で従来タイプ
      • 実行してからインスタンスの起動に1分~10分ほどかかるインスタンス立ち上げのため)
        • 開発エンドポイントというずっと立ち上がりっぱなし(+課金しっぱなし)のインスタンスを別途立ちあげることはできる・・・がかなりランニングコストが高い(DPU 1 つにつき0.44$/時。 標準の5つであれば、5 * 0.44 * 24 * = $52.8 / 日。30日で$1584。Redshiftの2TBを1つ立てられる)
      • 機能はフル
      • 多くの「Glue使ってみた」記事は、こちらの機能を使っている
    • Python Shellタイプ
  • 1DPU(CPUみたいなの)が1時間稼働したとき、$0.44課金

  • 1ジョブごと走るごと、どんなに短く終わっても最低10分走った金額が加算。20~30回デバッグ実行するだけで$10に。(たかい!)

開発について

  • AWS Consoles にGlueのジョブエディタがついており簡易に作成ができる
  • また、GUIから入力/出力するカタログ内テーブルを選んで、テンプレートからスクリプト自動生成もできる

  • ジョブ実行も、AWS Consolesから可能。ログはCloudWatchに出力。