2017年12月7日

ブロードバンドタワー緒方です。今回は、Scality Connect を試してみたので紹介させていただきます。

※ご注意※ この記事は、2017/12/4 時点での情報です。アップデートにより変わる可能性があります。

Scality Connect とは?

Scality Connect は、Amazon S3 API で Azure Blob Storage に接続できるようになる機能を提供してくれます。

Scality Connect を利用すれば既存の S3 クライアントをそのまま利用して Azure Blob Storage にデータをアップロード/ダウンロード等の作業ができるようになります。

Scality Connect は Azure Blob Storage へファイルを保存する際、独自のフォーマットに変換などはしません。 なので、Azure 上の各種サービスから Azure Blob Storage に設置されたファイルにアクセスが可能になります。

Azure Storage Explorer などのクライアントからでも、問題なく設置されたファイルにアクセスできます。

Scality Connect のレートリミット

今回ご紹介させていただく、Scality Connect は Developer Edition ということで、下記のようなレートリミットがかかります。

  • Bandwidth: 5 MB/s
  • Ops: 10 ops/s
  • Object/part size: 1 MB

パフォーマンス検証目的というよりも、今回は動作検証を目的として話を進めさせていただきます。

それでは早速 Scality Connect の環境を構築していきましょう。と言っても、Scality Connect は Azure Marketplace 経由にて利用を簡単に開始することができますので楽ちんです。

1 Azure Virtual Machines の起動

1.1 Azure Marketplace を開く

それでは、お目当ての Scality Connect を Azure Marketplace から探してみましょう。

Azure ポータルの左のメニューから Marketplace を探してクリックします。 もし、Marketplace が見当たらない場合には、同じく Azure ポータルの左の一番下にある その他サービス をクリックしてから探してください。

Marketplace クリック後、検索窓に Scality Connect と入力してください。

上記のように、Scality Connect Developer Edition と表示されると思いますので、こちらをクリックします。 画面が遷移後に 作成 ボタンをクリックします。

1.2 Azure Virtual Machines の起動

それでは、Scality Connect のサービスを提供してくれる Virtual Machine を起動しましょう。

今回は動作検証目的なので、Virtual Machine のサイズはお値段重視で、A0 Basic で起動してみました。

それと、同じく検証目的なので新規でリソースグループを作成します。これは、検証作業が完了した後に利用した Virtual Machine やストレージアカウント、Blob などをリソースグループを削除することでまるっと削除するためです。

1.2.1 基本

  • 名前: bbtscalityconnect
  • VM ディスクの種類: HDD
  • ユーザー名: bbtower
  • 認証の種類: SSH 公開キー
  • SSH 公開キー: SSH 公開鍵文字列
  • サブスクリプション: 任意のサブスクリプション
  • リソースグループ: (新規作成) bbtscalityconnect
  • 場所: 東日本

1.2.2 サイズ

A0 Basic を選択

1.2.3 設定

高可用性

  • 可用性セット: なし [Default]

Storage

  • 管理ディスクを使用: はい [Default]

ネットワーク

  • Virtual Network: ( 新規 ) [Default]
  • サブネット: default ( 10.0.1.0/24 ) [Default]
  • パブリック IP アドレス: ( 新規 ) [Default]
  • ネットワークセキュリティグループ: ( 新規 ) [Default]

拡張機能

拡張機能: 拡張機能なし [Default]

自動シャットダウン

自動シャットダウンを有効にする: オフ [Default]

監視

ブート診断:有効 [Default] ゲスト OS の診断: 無効 [Default]

診断ストレージアカウント: ( 新規 ) [Default]

2 ストレージアカウント情報の取得

Scality Connect の Virtual Machine が起動してきたら、ストレージアカウント情報を取得します。 Scality Connect が Azure Blob Storage を利用できるように、アクセスキーを取得する必要があります。

2.1 ストレージアカウントの探索

先ほど作成したリソースグループからストレージアカウントを探してみます。

Azure ポータルの左にあるアイコンから、リソースグループを探してクリックします。 その後、作成したリソースグループ名をクリックします。この例ですと、 bbtscalityconnectdiag913 になります。

2.2 アクセスキーの取得

選択したストレージアカウントの 設定 -> アクセスキー をクリックしてアクセスキーの情報をメモします。

  • ストレージアカウント名: bbtscalityconnectdiag913
  • key1: <キーの値>

既定のキーで key1, key2 とあるのですが、今回は key1 の値をメモしておきます。

3 セキュリティグループの編集

S3 クライアントからのアクセスを受け付けるために、セキュリティグループの設定を追加します。

Scality Connect は Port 8000 で接続を受け付けますので、このポート番号の通信を許可する設定を追加します。

3.1 ネットワークセキュリティグループの探索

先ほど作成したリソースグループからネットワークセキュリティグループを探してみます。

Azure ポータルの左にあるアイコンから、リソースグループを探してクリックします。 その後、作成したリソースグループ名をクリックします。この例ですと、 bbtscalityconnect-nsg になります。

3.2 受信セキュリティ規制の設定追加

設定 -> 受信セキュリティ規制から +追加 をクリックして設定を追加します。

この例では、S3 クライアントの IP アドレスからのみ通信を許可するような設定を追加しました。

  • ソース: IP Address
  • 発信元 IP アドレス範囲: <S3 クライアント IP アドレス>
  • 発信元ポート範囲: * [Default]
  • 宛先: Any [Default]
  • 宛先ポート範囲: 8000
  • プロトコル: Any [Default]
  • アクション: 許可
  • 優先度: 100 [Default]
  • 名前: Port_8000 [Default]

値の追加が完了したら、OK ボタンを押下します。

以上で Azure ポータル上での設定は完了です。

4 Scality Connect 初期設定

4.1 Virtual Machine へ ssh

Scality Connect の初期設定を行うため、先ほど起動した Virtual Machine へ SSH ログインします。 Virtual Machine を起動した際に指定した SSH 公開キー を利用します。

Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.11.0-1014-azure x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

19 packages can be updated.
0 updates are security updates.


*** System restart required ***

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

OS は Ubuntu 16.04 のようです。

4.2 環境変数の設定

Scality Connect が利用する Azure ストレージアカウントに関連する情報を環境変数経由にて設定します。

先ほど実行した、2.2 アクセスキーの取得 でメモした、ストレージアカウント名key1 の値を埋め込んで、下記のコマンドを実行します。

export AZURE_STORAGE_ACCOUNT=<ストレージアカウント名>
export AZURE_STORAGE_ACCESS_KEY=<key1>

4.3 Scality Connect の Docker コンテナの起動

Scality Connect は Docker コンテナを利用しています。コンテナを起動すれば、さっくりと使えるような状態になります。

4.2.1 Scality Connect の Docker コンテナの起動

それでは、コンテナを起動してみましょう。下記のコマンドを実行してください。

sudo docker run -d --name scalityconnect -p 8000:8000 -e FQDN=$FQDN \
-e AZURE_STORAGE_ACCESS_KEY=$AZURE_STORAGE_ACCESS_KEY \
-e AZURE_STORAGE_ACCOUNT=$AZURE_STORAGE_ACCOUNT \
--log-opt max-size=5g --log-opt max-file=10 \
--restart always scality/connect

4.2.2 Scality Connect の Docker コンテナの起動確認

正常に Scality Connect のコンテナが起動しているかどうか確認してみましょう。

sudo docker ps コマンドを実行してみます。

bbtower@bbtscalityconnect:~$ sudo docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
7f99cd0cc8bd        scality/connect     "/usr/src/app/dock..."   49 seconds ago      Up 46 seconds       0.0.0.0:8000->8000/tcp   scalityconnect

STATUS が UP になっています。正常に起動しているようです。

これで Virtual Machine 上での作業は終了になります。

5 S3 クライアントを利用して Scality Connect にアクセスしてみる

Scality Connect の準備は完了したので、S3 クライアントを利用してアクセスしてみましょう。 今回は Windows マシンに S3 Browser をインストールしてみて検証してみました。

5.1 セットアップ

S3 Browser を起動したら、左上の Accounts から、Add new account.. をクリックします。

Edit Account の新しい Window が開きますので、キャプチャー画面にあるように入力していきます。

  • Account Name
    • 任意の文字列を入力。今回は、Scality Connect と入力
  • Account Type
    • S3 Compatible Storage を選択します
  • REST Endpoint
    • S3 Server の IP/Port を指定します。この例では、Scality Connect が動いている検証環境の 13.71.137.42:8000 を指定しています。
  • Access Key ID
    • 2 ストレージアカウント情報の取得 でメモした ストレージアカウント名 の値を入力します。
  • Secret Access Key
    • 2 ストレージアカウント情報の取得 でメモした key1 の値を入力します。

必要な情報を入力したら、Save changes をクリックします。

5.2 Bucket の作成

S3 Browser のメイン Window の左上にある、+ New bucket をクリックして、新しい bucket を追加します。

Bucket names に新規で作成したい buket 名を入力します。Bucket region は Default Region のままで OK です。

検証用として、下記の二つの bucket を作成してみました。

  • mybucket
  • mybucket2

5.3 ファイルの追加

先ほど作成した bucket にファイルを追加してみます。S3 Browser のメイン Window の左側にある buket 名を指定して、ファイルをドラッグして追加します。

mybucket に、test.txt というファイルを追加してみました。

mybucket2 には、test2.txt といファイルを追加してみました。

5.4 Azure ポータル上での確認

先ほど S3 Browser 経由でアップロードしたファイル、test.txttest2.txt が Azure Blob Storage 上に保存されているか確認してみます。

S3 Browser 経由でアップロードしたファイルが Azure ポータル上で確認できました。 アップロードしたファイルをダウンロードして内容を確認してみると、アップロードしたファイルと同様の内容であることが確認できます。

6 おかたづけ

一通り動作検証が完了しましたので、今回利用した環境はまるっと削除します。今回作成したリソースグループを削除することで、作成されたリソースが一括で削除できます。

最後に

AWS S3 は歴史も古くユーザも多いこともあり、パブリッククラウドのストレージのスタンダード的な位置付けにあるかと思います。そのため、CLI ツールだけではなく、GUI のツールも豊富に存在しています。

これらツールをそのままに、アクセス先を変更することで Azure Blob Storage が利用することが可能になります。

 

本ブログの情報につきましては、自社の検証に基づいた結果からの情報提供であり、
品質保証を目的としたものではございません。

投稿者: 緒方 亮

主に Azure や AWS などの Public Cloud を担当しています。機械学習/深層学習で R を利用しているため、投稿する記事に R がよく登場します。