DataSpiderでAmazon S3のバケットにファイルを格納してみた

# はじめに
こんにちは。すぎもんです。😀
DataSpider Servistaを使用した、Amazon S3とのアップロードをやってみました。

本記事ではDataSpiderとAmazon S3を連携させ、オンプレミス環境からクラウド環境へデータをアップロードする方法をご紹介いたします。

※ Amazon S3はAmazon Web Servicesが提供するオブジェクトストレージサービスです。

# 今回やること
まずAmazon S3上にバケットの作成とアクセスキーの取得を行います。
次にDataSpiderとAmazon S3を接続させるためのグローバルリソースを作成し、バケットへの書き込み処理を行うスクリプト作成・実行までを行っていきます。

:::note info
今回デモを行う環境は、下記のような構成になっています。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/42d638bf-1e37-2c97-240f-4216aab921be.png)

# 検証手順
<dl>
  <dt>＜AWSの設定＞</dt>
    <dd>①Amazon S3にバケットを作成</dd>
    <dd>②アクセスキーの作成</dd>
  <dt>＜DSSの設定＞</dt>
    <dd>③グローバルリソースの作成</dt>
    <dd>④スクリプトの作成</dt>
</dl>

# AWSの設定
### ①Amazon S3にバケットを作成
まずはローカルからファイルを格納するためのバケットを用意していきます。
AWSコンソールを起動し **[S3]** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/abcfc469-ca60-a66f-89f2-579ee6c8b2de.png)
次に **[バケット]** を選択し、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/58fb78a8-2525-26a7-f014-c842e79acc1e.png)
**[バケットを作成]** を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/e237b1f1-35f6-f107-13b5-fe645707f46f.png)
任意のバケット名を入力しますが、今回は`dssdemos3`と命名します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/1da64c3c-cc35-6ecc-cc67-47bb25a084c6.png)
最後に **[バケットを作成]** を押下したら完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/34f4fe67-d7ce-fdc8-8d18-f5fe500d684b.png)
一覧から先ほど作成したバケットの`dssdemos3`を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/41eb1953-daa2-5525-8b25-b46a12500f64.png)
バケット内にまだオブジェクトがないことが分かります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/f9b1c9bd-0b2d-ff55-f100-3339e1746cf1.png)

### ②アクセスキーの作成
次にDataSpiderからAmazon S3に接続するためのアクセスキーの作成を行っていきます。
右上の **[ユーザー名]** を選択し、**[セキュリティ認証情報]** を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/ec7d89e2-ad2e-17fd-52c2-0423d17ca08c.png)
**[アクセスキーを作成]** を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/e061e0a6-de09-7b86-c062-910b1137006d.png)
`ステップ１：主要なベストプラクティスと代替案にアクセスする`ではユースケースに **[その他]** を選択し、**[次へ]** を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/71b5d8db-f4fa-1cdc-e703-c2c31a9b1dbb.png)
`ステップ２：説明タグを設定` では **[アクセスキーを作成]** を押下します。

:::note info
**[説明タグ値]** はオプションのため、入力は必須ではありません。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/499d6d1c-c6ef-c91f-a420-a14512ab7b12.png)
`ステップ３：アクセスキーを取得`では **「アクセスキー」** と **「シークレットアクセスキー」** の保存を行ってください。

:::note warn
ここがアクセスキーとシークレットアクセスキーを表示・ダウンロードできる唯一の機会です。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/2d92f959-d89d-6dea-95bc-b31ff83fb00e.png)
最後に **[.csv ファイルをダウンロード]** と **[完了]** を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/7062e535-8257-35e3-1114-e0da9803a43b.png)
ダウンロードしたら **アクセスキー** と **シークレットアクセスキー** を確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/c07f6660-89ef-5b7e-462e-044cd147f751.png)
以上でAWS側の設定は終わりです。

# DSSの設定
### ③グローバルリソースの作成
次にAmazon S3に接続するためのグローバルリソースを作成していきます。
起動したDataSpider Studioのデスクトップから **「コントロールパネル」** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/1b362019-6ac8-4361-56b6-14518d5318ca.png)
**[グローバルリソースの設定]** から、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/c6ca37db-e96f-7329-c860-25f76c2f6f18.png)
**[新しいグローバルリソースの作成]** を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/b930b69e-db85-ff13-3e9b-caba52f2716f.png)
**[クラウド]－[Amazon S3]** タブから **[S3]** アイコンを選択し、**[次へ]** を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/10bb174a-b5f8-5d94-19d1-4e40ccec0ec7.png)
今回、 **[接続名]** にはデフォルトの`「Amazon S3接続設定」`を指定します。
**[Access Key ID]** と **[Secret Access Key]** には、先ほど取得した **アクセスキー**と**シークレットアクセスキー**を入力します。

:::note info
**[Endpoint]** を空欄にした場合は **`s3.amazonaws.com`** が適応されます。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/206cedfb-7bb3-456b-58e2-1087b56a9c6c.png)
**[接続テスト]** を押下し、下記の通りのダイアログが確認できれば接続成功です。👌
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/b01ca678-6f5a-4c31-2292-034dae8d3b87.png)

### ④スクリプトの作成
今度は新規でプロジェクトとスクリプトを作成していきます。
DataSpider Studioのデスクトップから **「新規プロジェクト」** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/b13f902d-99b5-839a-30de-1b7e30fae6cf.png)
**[プロジェクト名]** フィールドに任意の名前、今回は`AWS S3`と入力し **[次へ]** を押下して進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/1e88f652-377a-60f2-2edc-1caece0d04a6.png)
**[スクリプト名]** フィールドにも任意の名前、今回は`S3接続`と入力し **[完了]** を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/49362605-4106-8f0e-0146-a327ebaeb311.png)
ローカルのフォルダ`/data`に、バケットにアップロードするためのファイル`TEST.txt`を配置します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/f1bcdc28-0036-4e9a-d2d6-c311939f58ef.png)
デザイナ画面右側にあるツールパレットの **「クラウド」** カテゴリから **[Amazon S3]－[ファイル/フォルダ書き込み]** オペレーションを選択し、デザイナ中央部分にドラッグ&ドロップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/362cfa67-beec-130d-5f09-8f4cce5fcb8f.png)
名前と必須設定の項目に下記の通り入力し、
| 項目名 | 設定値 | 説明 |
|:-|:-|:-|
|  名前 |amazon_s3_put| スクリプトキャンバス上での名前を入力します |
|  接続先 |Amazon S3接続設定| グローバルリソースをローバルリソースを選択します。 |
| ローカルディレクトリ  |/data| DataSpiderファイルシステムのディレクトリパスを入力します。  |
|  ローカルファイル/ディレクトリ名 |TEST.txt| DataSpiderファイルシステム上のファイル/ディレクトリを指定します。 |
|  Bucket名 |dssdemos3|Bucketを指定します。 |
| フォルダパス  |/| Amazon S3のフォルダパスを入力します。 |

**[完了]** を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/63158f41-6592-cbaf-9c88-1a2deef24aca.png)
最後に、**[Start]** から **[amazon_s3_put]** 、 **[amazon_s3_put]** から **[End]** までドラッグ&ドロップして線を引きます。
これでスクリプトの完成です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/95d752cd-beff-9eed-a5bd-0b3bf51173e5.png)

# スクリプトの実行
それでは実際に処理を実行して、結果をみてみましょう。
まずはツールバーから **[スクリプトの実行]** ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/5c669a32-7e74-93e6-fc00-99bdff8d3059.png)
「スクリプトの実行」ダイアログから、処理が正常に成功したことが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/887334f9-45b4-478b-fb72-ab03020736ab.png)

:::note info
実行履歴ビューで、スクリプトの実行処理時間が確認できます。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/00009a19-4a71-6e89-721f-72efb2564a72.png)
バケットの`dssdemos3`に **「TEST.txt」** があることが確認できました。👍
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/fa633297-534f-fd59-75f3-44f00929669d.png)

# 最後に
今回はDataSpiderを使用したAmazon S3へのファイルの格納を紹介しましたが、いかがでしたでしょうか。
オブジェクトストレージへのアップロードは複雑なスクリプトを組む必要があると考えていたのですが、非常に簡単に作成を進めることが出来ました。
本記事を参考に是非皆様も試してみてください。

このブログでは、今後も様々なTopics記事や接続検証等、皆さんの参考になるような記事を投稿していきたいと思います！
ここまで読んでいただきありがとうございました。それでは、また！👋