Amazon Redshiftを使ってみよう

Amazon Redshiftとは

Amazon Redshiftとは、AWSが提供するデータウェアハウスサービスです。
Amazon Redshiftは大量のデータを短時間で読み出し・分析することが可能です。

データウェアハウスとは

データウェアハウスというのは、業務をおこなう過程で発生した情報を時系列に保存したデータの倉庫です。
データをバックアップではなく分析を目的として保管します。
データベースとの違いはその情報を保管しておける期間です。 データベースの場合、一定の期間が経過したデータは削除されますが、データウェアハウスの場合、データは削除されず蓄積されます。

料金

料金体系は従量課金制の「オンデマンド」と期間契約の「リザーブインスタンス」の2つがあります。
リザーブインスタンスの契約の期間は1年または3年で、利用しない時間にも料金が発生します。

オンデマンド USD$0.314/h
リザーブインスタンス USD$0.250/h

*dc2.largeを利用した場合

特徴

  • 高速処理
    データを列で管理していること、並列処理をしていることから、従来のデータベースより最大10倍もの性能を持っており、大量のデータを高速で処理することが可能です。

  • セキュリティ
    データを保管、移動、バックアップする際は暗号化して守られます。 またデータをAWSが管理することにより高度なセキュリティの下、データを管理することができます。

  • SQLに対応している
    Amazon Redshiftは、「PostgreSQL 8.0.2」に準拠しています。

  • 自動バックアップ
    Amazon Redshift内のデータは自動的にAmazon S3にバックアップされます

Amazon Redshiftを使ってみよう

Amazon Redshiftを使ってみましょう

1. Amazon S3にバケットを作成する

2. バケットにデータを入れる

データが用意できたら以下のようにオブジェクトURLを確認しておきます

3. IAMロールを作成する

ファイルをRedshiftクラスターから読み込むためのIAMロールを作成します。

「AWSサービス」から「Redshift」「Redshift – Customizable」を選択し、次のステップのアクセス権限というところをクリックします。

アクセス権限で、「AmazonS3ReadOnlyAccess」を選択します。

任意のロール名を設定しロールを作成します。

作成されたロールを確認してみましょう。

4. Redshiftクラスターの作成

AWSマネジメントコンソールからAmazon Redshiftを選択すると以下の画面が出てくるのでクラスターの作成に進みます。

「マスターユーザー名」「マスターユーザーのパスワード」にそれぞれ入力し、「次へ」をクリックするとセキュリティーグループの設定画面になるのでそこでの「使用可能なロール」に「redshift_s3_read_role」を追加します。「VPCセキュリティグループ」はdefaultのままです。
クラスターの起動を押すとクラスターが起動されます。

5. Redshiftクラスターに接続する

ターミナル上で以下のコマンドを入力します。

# yum install install postgresql-client

# psql -h [クラスターのエンドポイント]
       -U [マスターユーザ名]
       -d [データベース名]
       -p [データベースポート]

するとパスワードの入力を要求されるので、先ほど設定したパスワードを入力するとクラスターに接続されます。

6. データの読み込み

SQLでテーブルを作成します。

CREATE TABLE user(
  username VARCHAR(255),
  email VARCHAR(255)
  password char(30)
  mathematics INT
);

COPY score
FROM '[オブジェクトURL]'
IAM_ROLE '[IAMロールのロールARN]'
IGNOREHEADER 1
CSV;

これで読み込みが完了しました。

ここまでできたら、クエリを書いて叩いてみましょう。 SQLによる分析が可能になります。

まとめ

Amazon Redshiftは膨大なデータを高速に処理し、細かいデータ分析を行えることができます。SQLに対応しているので操作も簡単です。無料のお試し期間などもあるので活用してみましょう。