LoginSignup
0
1

StepFunctionsとGlueでAWSをパソコン化する

Last updated at Posted at 2023-11-30

StepFunctionsとGlue(python shell)とで、AWSをパソコン化します。
パソコン化とは、VisualStudioでデバッグするかのような扱いやすさ、という意味です。

Glue python shellは中身的にはlinuxが起動して、pythonが起動するだけ、といえます。かといって、pythonで何かAWSリソースを扱おうとすると、起動したものの終了を待つ処理が必要になってしまいます。
そ・こ・で・!StepFunctionsの【実行完了を待つ】というシンプルな機能をオンにする(チェックボックスを入れるだけ)で、これができます。

大まかには、Glueで単機能のものを作っておき、それをStepFunctionsからGlueをパラメータ渡しで利用します。

実行すると、ステート遷移・進行状況がイラストでわかりやすく、実行したステートの入力・出力をその場で見れ、またステート内のGlueのログについてもリンクをクリックしていくことで容易にCloudWatchの対象ログに辿り着けます。

Glueは例えば、プロセス実行にて、AWS S3 SYNK 元バケット 先バケット /recursive とするものを作っておきます。このとき、パラメータで元バケット、元プレフィクス、先バケット、先プレフィクスを受け取って利用するようにしておきます。
Glueでの外部ライブラリについても、ある程度はパラメータに既定の値で取り込むことが可能というAWSの配慮があります!(AWS Glue ETL で使用するモジュールを追加でインストール https://docs.aws.amazon.com/ja_jp/glue/latest/dg/aws-glue-programming-python-libraries.html)
Glueジョブは、Connectorにnetworkをセットすることで、どのVPC・サブネットでGlueジョブが実行されるかを設定できます!なので、権限で分けている環境でも、かなり自由に実行できます!
S3はGlueは特別なVPCエンドポイントのエンドポイントからアクセスできるので、権限分けてるといろいろ気になるかもですが、VPC横断して使えるという利点があります。

ETLならSparkモードにすればいいだけですし、ジョブブックマークは便利すぎるし(読み取ったjsonをGlueが裏で覚えてくれる機能。次は【読み取ったことのないjsonだけ読む】)

GlueでVPC横断を含め、いろいろな機能を作り、それをStepFunctionsで俯瞰的に動作順序や例外処理というオーケストレーションする。

しかも見やすい、ログを追いやすい(デバッグしやすい)

なかなかおすすめです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1