Amazon S3バケットへのファイルアップロードを実現する – 01.概要&GUIお勧めツール編

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWSに於いて、クラウドストレージサービスの『S3』は実に様々な各種AWSサービスから利用されています。サービスとしては特に欠かせないものの1つでしょう。

S3の数ある利用用途の中の1つとして『DBへデータを投入するための前段階としてS3バケットにファイルをアップロードする』というケースというものが考えられるかと思います。RDS(MySQL/Oracle/SQLServer)然り、データウェアハウス(Redshift)然り、NoSQL(DynamoDB)然り。良くある操作ですが、この操作はその手段や人手が絡む度合いに拠って、幾つかに分類する事が可能です。

そこで当エントリ、及び以降数回の続編エントリに亘って、『どんな手段があるのか、どういう風に組めばそれが実現出来るのか』と言ったポイントをキャプチャやサンプルコードを交えてそれぞれご紹介して行きたいと思います。

まずは『手段』の種類について。

Amazon S3バケットへのアップロードを実現する手段について

01.GUI(Graphical User Interface)経由でアップロードする

Amazon S3の所定バケットに対し、GUIツールを用いてアップロードする方法について紹介します。

環境を整えるのが最も簡単ですし、またグラフィカルな管理画面で操作が行えるので分かり易さも一番です。恐らく一度触ってみるだけで使い方はマスター出来るでしょう。

一方、こちらのGUIを用いた場合だと手動操作のみしか行えず、後述する自動化機構への組込には対応していません。イレギュラーな操作、または定時作業ではあるがファイルの個数やアップロード手順が少ない場合であればこちらのGUIでも要望は満たせるかも知れませんが、そうでない場合(ファイル数が多く手数的に面倒である、既存システムから排出されるファイルの出力時刻が業務時間外となり人手では時間帯的に厳しい)は厳しいかも知れません。

後述する『01.GUI編』では以下の内容について取り扱います。

  • AWS 管理コンソールを使ってS3環境へのファイルアップロードを行う
  • サードパーティー製提供のツールを使ってS3環境へのファイルアップロードを行う

02.SDK(Software Development Kit)
03.CLI(Command Line Interface)
経由でアップロードする

AWSで公式にリリースされているSDKやCLIを使ってアップロードする方法について紹介します。

AWSではSDK(Software Development Kit:ソフトウェア開発キット)やCLI(Command Line Interface:コマンドラインインタフェース)が様々な言語環境に対応する形で提供されています。

SDKは特定のプログラミング言語用にインタフェースとして用意されたファイル群です。APIやライブラリの形で用意されています。AWSでは以下言語環境のSDKが提供されています。以下の言語のいずれかを利用した事があり、またライブラリの扱いにも目処が付くのであれば選択肢として考えて良いでしょう。

今後投稿予定の『02.SDK編』では以下提供ライブラリの中からピックアップしてその内容をご紹介して行きたいと思います。

  • Android
  • ブラウザ(Javascript)
  • iOS
  • Java
  • .NET
  • Node.js
  • PHP
  • Python
  • Ruby

CLIはその名前の通り、コマンドライン(Command Line)、即ち文字ベースで指示を出す事で処理を実行出来ます。SDKの場合ですと環境を整え、プログラミング言語で実現したい用途のコードを書き、その上でプログラムを実行する事で実現したい用途の操作が行える形となりますが、CLIの場合ですと環境を整えた後は実現したい操作の命令をコマンドで行う事で即操作が実現可能となります。SDKについては使った事が無いが柔軟な操作を行いたい、何より手っ取り早く要望を実現したい、という場合はこちらの方が良いかも知れません。

今後投稿予定の『03.CLI編』では、下記2つについて取り扱ってみたいと思います。

  • AWS CLI
  • Windows PowerShell

SDK及びCLIは言語/環境を整えた上で手動で実行し処理を遂行する事も可能ですが、後述する『自動化機構への組込』を行う事で人の手を介する事無く、システム任せで自動実行させる事も可能です。

04.SDK/CLIのプログラムを自動実行設定に組み込む

『02.SDK編』及び『03.CLI編』で構築した環境の操作をシステムの自動化機構に組込み、任意のタイミングで自動化処理させる方法です。

Linux系であればcronに、Windows系であればタスクスケジューラに設定を行う事でその要望を実現します。

  • Linux系:cronへの処理組込みについて
  • Windows系:タスクスケジューラへの処理組込みについて
  • エラー処理について
  • 処理結果の通知について

01.GUI編 オススメのツール

ここから先は、Amazon S3に対応しているGUIツールの中から幾つかオススメのものをピックアップしたいと思います。

AWSマネジメントコンソール - s3メニュー

まずは何は無くとも、という事でAWS公式、Webベースでアクセス可能な管理コンソールのご紹介。AWSアカウントを作成しログインする事で利用可能となる各種サービスのコンソールの中の1つとして、S3の管理画面も存在します。

aws-mng-console

Cyberduck

無料(PayPalやAppStoreでの寄付も可能)のFTPクライアント、日本語表記にも対応。ディレクトリごと(ファイルが格納されていても)削除出来たり、また逆に階層ごとまるっとアップロードする事等も可能のようです。ちなみにこちらのツールでは以下エントリでもオススメツールの1つとして紹介されています。

s3tool-cyberduck

Cloudberry

S3,Glacierを含め様々なクラウドストレージにも対応、ジョブ通知や状況に応じたバックアップ作業も行う事が出来ます。Explorer/Drive/Backup等、用途に応じた製品が揃っているのも魅力的。

s3tool-cloudberry

S3 Browser

Windows向け、シンプルなユーザーインタフェースが評価の高いツール。無償フリー版とPro版があります。

…と調べてみたところ、同名でMac版のものもある模様。こちらは同じ製品なのかしら?

s3tool-s3browser

SMEStorage

こちらもWebで評価が高かったので併せてご紹介。有償版/無償版共にあり、モバイル版にも対応。日本語未対応ですが、幅広い用途に於いて対応が成されている模様。

s3tool-sme

DragonDisk

こちらは社内で意見を募った際に数名から名前が挙がっていたもの。ツールに付属するコマンドラインツールを用いることでローカルPCと連携し、バックアップを取得してくれたりもするようです。

s3tool-dragondisk

まとめ

以上、s3へのファイルアップロードに関する『概要&GUI編』でした。

次回以降、AWSが提供する各種ライブラリを用いた要望実現の方法(本来書きたかったのはどちらかと言えばこちらの方)についてまとめて行こうと思います。