はじめに
こんにちは。株式会社ジールの@yakisobapanです。
S3コンソールからファイルアップロードができない、かつAWS CLIも使えないという事態に陥った際に見つけた裏技的なTipsを共有します。
目次
- 状況
- アーキテクチャ
- 手順
- 所感
状況
①セキュリティ観点からAWS CLIの使用がNG
②S3コンソールからのファイルアップロード操作が利用ブラウザでブロック
③他ブラウザの使用はNG
開発にあたりS3にファイルをアップロードしたい・・
アップロードしたいファイル形式:csv,tsv,sql,json,py,txt
アーキテクチャ
簡易な図ではありますが、GlueのJob機能からS3にファイルを送信するイメージです。
手順
①Glueコンソールへアクセスし、タブより[Jobs]を選択
②[Python Shell script editor]を選択して[Create]を選択
使用するジョブタイプに依存しないので[Spark script editor]を選択しても問題ありません。
④[Script]よりアップロードしたいデータを張り付け
今回はcsv形式のテストデータを張り付けています。
※同時にジョブ名も変更しています
アップロードできるデータ量ですが、検証した範囲では
20MBのtsv形式データは問題なくアップロードできました。
200MBですとフリーズしてしまいましたが、ここは環境に依存するかと思います。
⑤[Job details]へ移動しIAMロールを指定
GlueからS3にアクセス許可されているロールならば何でも大丈夫です。
⑥下へスクロールし[Advanced properties]を展開
⑦[Script filename]、[Script path]を編集
・Script filename:アップロードするファイル名称(拡張子含む)
・Script path:格納先S3 URI
⑨[Save]よりジョブを保存
保存が完了した段階で[Script]で入力したデータ内容のファイルが作成されます。
ジョブの編集で入力する項目は以下のみです。
・IAMロール
・Script filename
・Script path
※[Run]を押して本ジョブを実行すると当然ですがエラーになります。
⑩S3を確認
csvファイルが作成されていることがわかります。
⑪中身を確認(S3 Select)
データも問題なさそうです。
所感
本来の用途は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