新しいAWS環境にGlueジョブを作成しようとしたら
何度実行してもCloudWatch Metricsに表示されず、ハマった。
原因はけっこうしょぼかったのだけど、
- 思えば2か月くらい前にも同じミスをした気がする
- 困って調べたけどWebにドンピシャの情報がないっぽい
(結局2回とも先輩に聞いた)
なので、備忘録として書く。
1. ジョブメトリクスを有効化する
初歩の初歩だけど、見えづらいところに設定があるので意外と忘れる。
これはドキュメントをよく読むと書いてある。
https://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitor-profile-glue-job-cloudwatch-metrics.html
ジョブを作成する時にジョブ自体にパラメータとして付与するパターンと、
ジョブを実行する際に一回限りのパラメータとして付与するパターンがある。
CLIから付与する場合は"Arguments:[]"
内で"--enable-metrics":""
と書く。
2. IAMでcloudwatch:PutMetricData
を付与する
権限を細かく管理しようとしてIAMポリシー自作とかするとハマる。
一応このドキュメント↓に存在は書いてあるけど、細かいことが書かれていない。
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/permissions-reference-cw.html
いろいろ調べたところ、ターゲットとなるresource
は"*"
でいいらしい。
ちなみに、チュートリアル通りにやっていれば
AWSGlueServiceRole
ポリシーを使ってIAMロールを作っているはずで、
このポリシーには当然cloudwatch:PutMetricData
も入っているので問題ない。
Glueを動かすためには、他にもCloudWatchLogsやEC2の権限なども要るらしく、
はっきり言って厄介すぎるので、素直に既存ポリシーを使った方がいいと思う。
おわり。