Redshiftをはじめて触ってみた！

**Redshiftってよくわからないし、使う必要ある？RDSでよくない？！**
自分の周りではそんな声がちらほら聞こえてきます。自分もそのうちの1人で、よくわからないし、検証するにはお金がかかるから後回しにしておこう・・・という感じでした。

そんなときに「Redshiftで秒単位の請求のサポートを開始」されたことを耳にしました！
https://aws.amazon.com/jp/about-aws/whats-new/2020/02/amazon-redshift-supports-per-second-billing/

これならお試しに自宅で作っても費用を抑えられるし、わざわざ作るのが面倒だという方と自分の復習用にドキュメントも残そうと思います。

##1. クラスターの作成
「マネージメントコンソール」にログインし、サービスメニューから「Amazon Redshift」をクリックします。
<img width="426" alt="redshiftHandson001.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571680/2c53e528-17b3-069a-fcc5-d4829f7da3f3.png">

続いて、「クラスターを作成」をクリックします。
<img width="425" alt="redshiftHandson002.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571680/ec081d73-1a4f-3d56-ca60-9b508f7cf1d6.png">


####ステップ1: クラスターノードの選択
今回はお試しということなので、「dc2.large」を選択します。ノード数はデフォルトの2にしておきます。
<img width="424" alt="redshiftHandson003.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571680/1d90e1e1-8378-efe7-38a2-69f2c2021d23.png">
因みに、コンソールでは時間単位の支払いに見えますが、実際は秒単位に変更されているようです。
https://dev.classmethod.jp/cloud/aws/redshift-billing-per-seconds/

####ステップ2. クラスターの詳細
クラスター識別子、ポート、マスターユーザー名、マスターユーザーのパスワードを設定します。パスワードはRedshiftに接続するために必要なのでメモしておきましょう。
ポートはデフォルト値が5439みたいです。
<img width="424" alt="redshiftHandson004.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571680/6cc2b109-9512-e041-10c5-ac2921adc317.png">
追加設定として、Redshiftの配置するVPC・サブネット、バックアップ、メンテナンス、セキュリティグループ、パラメータグループなどがカスタマイズできるみたいですが、今回はデフォルトを使用します。そして「クラスターを作成」をクリックします。
<img width="427" alt="redshiftHandson005.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571680/0b0534d1-b4a3-bd8e-707f-b7fc97a5b8b8.png">

####ステップ3. クラスターの作成が終わるのをのんびり待つ
クラスターの作成中は「Modifying」となります。
<img width="750" alt="redshiftHandson6.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571680/9c14f3d4-345d-4eec-a5cb-3f1c0341ae69.png">
クラスターの作成が終わると「Available」となります。体感的にはカップ麺より待ちました。
<img width="738" alt="redshiftHandson7.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571680/3da338e4-8c19-4cad-5fc6-4fb38e087dcb.png">

##2. Redshiftへの接続
マネジメントコンソールから接続する機能がありますので、今回はこちらを使いましょう。
####エンドポイントの情報を取得する
クラスターのプロパティからクラスターのエンドポイントとデータベース名(/以降)を取得する。<img width="524" alt="redshiftHandson0010.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571680/6ec2bbe2-2c1f-bdad-a676-1092b4019a3c.png">

####Redshiftに接続する
接続したいクラスターを選択し、「クエリクラスター」をクリックします。

<img width="524" alt="redshiftHandson008.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571680/dad190e9-fa2e-d1be-d517-f66166dca119.png">


Redshiftへの接続情報を入力して、「データベースに接続」をクリックする。
<img width="423" alt="redshiftHandson013.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571680/5420d5f1-e94e-8377-13d8-98fba21932fb.png">
無事にRedshiftへ接続できました。
<img width="422" alt="redshiftHandson14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571680/a48765dd-3740-177a-301b-163b0529957d.png">
勿論、マネジメントコンソールからではなく、psqlコマンドを用いて外部から接続することもできます。その場合、セキュリティグループの許可のIAMロールを忘れないように気をつけてくださいね。

##3. Redshiftの削除
Redshiftの請求が秒単位になったからと言って気を抜いてはいけません。あっという間に大量の請求が舞い込んできます。検証が終わったらすぐに削除しましょう。
先ほど作成したクラスターを選択し、「アクション」から「削除」をクリックします。
<img width="425" alt="redshiftHandson015.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571680/cd5da348-3872-fe04-90bb-691799ede14d.png">

クラスターを削除すると自動スナップショットも消えますので、必要があれば最終スナップショットを作成してください。必要なければ、チェックを外してから「削除」をクリックしてください。
<img width="419" alt="redshiftHandson016.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571680/170a1f3e-fe8a-e9ef-532c-0336ecb84c09.png">
クラスター削除後にダッシュボードを見てみると綺麗さっぱりなくなっていました。これで完了です！
<img width="775" alt="redshiftHandson17.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571680/2d3ffe87-142d-a213-abc4-d362de40a14a.png">

##おわりに
Redshiftが秒単位の請求がサポートされたことで、ちょっとした検証がしやすくなったのは勿論、テスト環境で何度も立ち上げたり、データ分析用に大きいインスタンスを一時的に立ち上げることで費用を抑えられるので、個人的にはより目が離せないサービスとなりました。ということで、「Redshiftをはじめて触ってみた！」第2弾でもう少し踏み込んでみようかなと思います。