先月末にこんなリリースがありました。まだ全く使いこなせる見込みはないけど、少し関わりがあったので、ポイントだけまとめておこうと思う。
リリースを有効化する手順
手順はrootアカウントでList Pipelinesをすると下記のポップアップが表示されるので「Opt-in」をクリックすれば良さそう。有効化すると以降の挙動が変更となるので、注意が必要。
IAMユーザ間でPipelineジョブを共有できるようになった
PipelineにはIAM管理する上で重大な問題があって、別のIAMアカウントが作成したジョブは他のユーザから参照することさえできなかった。今回のリリースで適切な権限を有しているIAMユーザ間でジョブを共有できるようになった。
Pipelineジョブにタグ付けが可能になった
Tagを利用することができるようになった模様。まだ活用方法は調べ切れていない。
EMRクラスタに適切なIAMロールを付与することができるようになった
実はこのリリースまでData Pipelineから起動したEMRクラスタは、Pipelineジョブを作成したIAMユーザの権限で動作していた。該当IAMユーザはアクセスキー作成が必須(シークレットアクセスキーをダウンロードしたり、どこかに設定したりは不要)で、インスタンスプロファイル(IAMロール)権限で起動するEC2のように、メタデータからSTS経由で権限を取得する実装とは全く異なり、ハードコーディングに近い実装になっていたと思われる。EMR権限を設定する画面上では、「DataPipelineDefaultRole」や「DataPipelineDefaultResourceRole」を設定する操作が促されるのに、実は全くそんなものは無視されていたということになる。
AWSってせっかくプログラマブルなインフラなんだから、ジョブ管理の機能がショボいっていうのは非常に残念。運用管理にはもう少しLamdaの勉強しないとダメなのかなあ。クラスメソッドさんのソンナコトモアロウカト編とか、ServerworksさんのCloud Automatorなんかは上手いところをついていて素晴らしいと思うのでした。