AWSの活用とデータ転送 -S3周辺について-

バイオインフォ道場、くまぞうです。

バイオインフォマティクスでのAWSの利用も良い点がたくさんあります。今回AWSを利用していたところ、S3からインスタンスへデータ転送したところ、データは正しいのにMD5でWarningが出ることに気がつきました。原因は、s3cmd(1.1.0)が古いことでした。新しくs3cmd(1.6.1)にアップデートしたところ解決しました。関連事項として、AWSのEC2・S3・ローカルPC間のデータ転送を中心にまとめます。

スポンサーリンク



AWSとは?

クラウド上にサーバーが構築できるEC2と、クラウド上に大きなストレージを確保できるS3が有名です。他にも様々なサービス提供が行われています。ウェブブラウザでも管理することが出来て、各種サービスを手軽に、そして効率良く利用することができます。

Amazon Web Services(アマゾン ウェブ サービス、AWS)とは、Amazon.com により提供されているクラウドコンピューティングサービス(ウェブサービス)である。これらのサービスは全世界で11の地域に提供されている。AWSの有名なサービスにAmazon Elastic Compute Cloud(EC2)とAmazon Simple Storage Service(S3)がある。これまでのクライアントが保有していた物理的なサーバファームと比較してAWSは大規模な計算処理能力を速やかに、かつ安価に提供出来る。
【出展】Wikipedia – Amazon Web Services

AWSをローカルPCで操作する

AWS Command Line Interface(AWS CLI)を使えば、EC2サーバー操作やS3・その他サービスの操作をローカルPCからコマンドライン経由で実行できます。今回は、ローカルPCからS3へのアップロードと、その逆でS3からローカルへPCへのダウンロードを行い、データ転送を確認しました。

AWS CLIでデータ転送

Amazon CLIを使って、ローカルPCとS3間でのデータ転送を確認しました。使ったコマンドは、aws s3cpです。

インストール

  $ curl -O https://s3.amazonaws.com/aws-cli/awscli-bundle.zip
  $ unzip awscli-bundle.zip
  $ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

設定

  $ /usr/local/bin/aws configure
  AWS Access Key ID [None]:     xxxx <- input your ID
  AWS Secret Access Key [None]: xxxx <- input your Key
  Default region name [None]:   xxxx <- input your default region name
  Default output format [None]:

データ転送の確認

  $ /usr/local/bin/aws s3 cp mydata.txt s3://myfolder/              # PC -> s3
  $ /usr/local/bin/aws s3 cp s3://myfolder/mydata.txt mydata_s3.txt # s3 -> PC

EC2とS3の連携

AWSの活用例としては、必要なときに生成して役目を果たしたら削除されるインスタンスであるEC2とは別に、恒久的なデータ置き場としてS3を使うケースが多いと思います。s3cmdを使うと、S3のバケット操作や、S3とEC2間でのデータ転送を簡単に行うことができます。比較的大きなデータを扱うことの多いバイオインフォマティクスの計算においても、解析データや結果データのやりとりが簡単にできると便利です。-【s3cmd】Amazon S3 Tools: Command Line S3 Client Software and S3 Backup -

今回は、冒頭のMD5のWarningが気になったので、s3cmdのアップデートを行いました。初回インストール時は、その他のツール同様、AccessKeyId・SecretKeyなどのconfigを設定する必要がありますが、今回は再設定なしでアップデートできました。INSTALLの記載内容に従ってインストールしました。今回はpipでのインストールです。依存に関しては、「Python 2.6 or newer (it is NOT compatible with Python 3.x)」だそうです。

s3cmdでデータ転送

s3cmdを使って、EC2とS3間でのデータ転送を確認しました。使ったコマンドは、getputです。

インストール・アップデート

  $ wget https://sourceforge.net/projects/s3tools/files/s3cmd/1.6.1/s3cmd-1.6.1.tar.gz
  $ tar xzvf s3cmd-1.6.1.tar.gz
  $ cd s3cmd-1.6.1/
  $ less INSTALL  # 様々なインストール方法があるので、適切なものを確認・選択します。
  $ sudo pip install s3cmd
  $ s3cmd --version
  s3cmd version 1.6.1

データ転送の確認

s3cmd get s3://myfolder/mydata.txt .                # S3 -> EC2
s3cmd put mydata_s3.txt s3://myfolder/mydata.txt .  # EC2 -> S3
スポンサーリンク





ピックアップ記事

  1. tidyverse – distinct関数でデータフレームの重複行を削除 dplyrパッケージ

    tidyverseでデータフレームの重複行の削除を行う場合、dplyrパッケージのdistinct…
  2. R 使い方 グラフの色 自作のカラーパレットとデフォルトのカラーパレット

    グラフを描画する際、色の組み合わせを1つ1つ考えるのは面倒ですよね。Rには、あらかじめ色の組み合わ…
  3. awk for 繰り返し処理 簡単なサンプルでわかる インクリメント・デクリメント、変わった繰り返し

    awkのfor文は、カウンタを目印にして処理を繰り返したいときによく使われます。for文では、カウ…

人気記事

  1. Excel, その他, 統計

    z-score 計算方法 エクセル(Excel) 編
    統計処理で、大きく変化しているなどの判断基準にも使われる値…
  2. IGV, 解析ツール

    IGV 使い方 インストール〜便利な使い方まで | リファレンス・マッピングデータ・アノテーションを読み込んで表示しよう
    IGV(Integrative Genomics View…
  3. R データ型 - 文字列・ベクター・データフレーム・マトリックス など-, R言語, スクリプト

    R subset関数 データフレームやmatrixからの条件指定による行・列の抽出
    R の subset関数は、データフレームやマトリックスか…

おすすめ記事

  1. R言語, グラフ

    R 使い方 軸・ラベルの調整(向き・サイズ・色など) グラフの描き方
    Rによるplot(グラフ)の描画は、手軽で大変便利です。た…
  2. bash 応用, シェルスクリプト

    シェル スクリプト ファイル存在チェック・空のファイルチェック
    bashでスクリプトを作成するときに、よく使うのがファイル…
  3. awk, bash 文字列操作, シェルスクリプト

    bash 部分文字列・置換・長さ・連結・分割の文字列処理
    bashのよく使う文字列処理、部分文字列・置換・連結・長さ…