LoginSignup
2
0

【AWS】GlueからS3へファイルをアップロードするTips

Last updated at Posted at 2022-11-18

はじめに

こんにちは。株式会社ジールの@yakisobapanです。
S3コンソールからファイルアップロードができない、かつAWS CLIも使えないという事態に陥った際に見つけた裏技的なTipsを共有します。

目次

  • 状況
  • アーキテクチャ
  • 手順
  • 所感

状況

①セキュリティ観点からAWS CLIの使用がNG
②S3コンソールからのファイルアップロード操作が利用ブラウザでブロック
③他ブラウザの使用はNG

開発にあたりS3にファイルをアップロードしたい・・
アップロードしたいファイル形式:csv,tsv,sql,json,py,txt

アーキテクチャ

簡易な図ではありますが、GlueのJob機能からS3にファイルを送信するイメージです。
image.png

手順

①Glueコンソールへアクセスし、タブより[Jobs]を選択
image.png

②[Python Shell script editor]を選択して[Create]を選択
使用するジョブタイプに依存しないので[Spark script editor]を選択しても問題ありません。
image.png

③新規ジョブの編集画面に遷移
image.png

④[Script]よりアップロードしたいデータを張り付け
今回はcsv形式のテストデータを張り付けています。
※同時にジョブ名も変更しています

アップロードできるデータ量ですが、検証した範囲では
20MBのtsv形式データは問題なくアップロードできました。
200MBですとフリーズしてしまいましたが、ここは環境に依存するかと思います。
image.png

⑤[Job details]へ移動しIAMロールを指定
GlueからS3にアクセス許可されているロールならば何でも大丈夫です。
image.png

⑥下へスクロールし[Advanced properties]を展開
image.png

⑦[Script filename]、[Script path]を編集
・Script filename:アップロードするファイル名称(拡張子含む)
・Script path:格納先S3 URI
image.png

⑧保存前に⑦で指定したURIにファイルがないことを確認
image.png

⑨[Save]よりジョブを保存
保存が完了した段階で[Script]で入力したデータ内容のファイルが作成されます。

ジョブの編集で入力する項目は以下のみです。
・IAMロール
・Script filename
・Script path

※[Run]を押して本ジョブを実行すると当然ですがエラーになります。
image.png

⑩S3を確認
csvファイルが作成されていることがわかります。
image.png

⑪中身を確認(S3 Select)
データも問題なさそうです。
image.png

所感

本来の用途はPythonプログラムをS3上に作成するものですが
[Script filename]で.pyではなく他の拡張子を指定することで
フォーマットの指定が可能です。

併せて拡張子に準じたデータを[Script]に入力することで
疑似的なファイルアップロードが可能です。(実際は新規でファイルを作成している)

数十MBならば、問題なくアップロードできますし
検証した限りcsv,tsv,sql,json,py,txt形式でのアップロードは可能でしたので
使いどころによってはCLIを使うより簡単かもしれません。


株式会社ジールでは、「ITリテラシーがない」「初期費用がかけられない」「親切・丁寧な支援がほしい」「ノーコード・ローコードがよい」「運用・保守の手間をかけられない」などのお客様の声を受けて、オールインワン型データ活用プラットフォーム「ZEUSCloud」を月額利用料にてご提供しております。
ご興味がある方は是非下記のリンクをご覧ください:
https://www.zdh.co.jp/products-services/cloud-data/zeuscloud/?utm_source=qiita&utm_medium=referral&utm_campaign=qiita_zeuscloud_content-area

2
0
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
2
0