RedashをAWS(EC2+RDS)で試してみた
こんにちは、@0yanです。
最近、課内で「戦略人事の実現のため、カオナビから別サービスに切り替えよう」という話が出始め、
- タレントパレット
- HRMOS CORE
- ヒトマワリ
などを比較検討しています。
そんな折、OSSのBIツール「Redash」の存在を知ったので試してみました。
前提条件
- Windows 10 homeを使用
- AWSアカウント登録済み
- TeraTermインストール済み
手順
- EC2インスタンスを作成(Redash AMIを使用)
- RDSにMySQLデータベースを作成
- TeraTermでEC2に接続し、CSVを転送
- EC2にMySQLクライアントをインストールし、RDSのMySQLデータベースに接続
- データベースとテーブルを作成し、CSVを取り込み
- Redashにデータベースを接続
- Redashにクエリを作成し、ダッシュボードで表示
1. EC2インスタンスを作成(Redash AMIを使用)
- EC2インスタンスを作成(Redash AMIを使用)
- RDSにMySQLデータベースを作成
- TeraTermでEC2に接続し、CSVを転送
- EC2にMySQLクライアントをインストールし、RDSのMySQLデータベースに接続
- データベースとテーブルを作成し、CSVを取り込み
- Redashにデータベースを接続
- Redashにクエリを作成し、ダッシュボードで表示
1. EC2インスタンスを作成(Redash AMIを使用)
①AWSマネジメントコンソールからEC2を検索、EC2ダッシュボードのサイドバーからインスタンスを選択します。
②「インスタンスの作成」をクリックし、ステップ1: Amazon マシンイメージ(AMI)でコミュニティAMIを選択します。
③Setting up a Redash Instanceで、Redashが作成したAWS用RedashインスタンスのAMIを調べます(今回は東京リージョンを選択しました)。
④②の検索ボックスに③で調べたAMIを入れて検索し、選択ボタンをクリックします。
⑤ステップ2: インスタンスタイプの選択でt2.smallを選択し、確認と作成をクリックします。
なお、下記のとおり、t2.microでは動きません(最低でもt2.smallを選択する必要があります)のでご注意ください。
Launch the instance with the pre-baked AMI we create (for small deployments t2.small should be enough):
事前に作成したAMIを作成してインスタンスを起動します(小規模な展開の場合はt2.smallで十分です)。
⑥ステップ7: インスタンス作成の確認でセキュリティグループの編集をクリックします。
⑦下記のとおり、SSHに加えてHTTPとHTTPSを許可する必要があるため、ステップ6: セキュリティグループの設定で追加し、確認と作成をクリックします。
When launching the instance make sure to use a Security Group, that only allows incoming traffic on ports: 22 (SSH), 80 (HTTP) and 443 (HTTPS). These AMIs are based on Ubuntu so you will need to use the user ubuntu when connecting to the instance via SSH.
インスタンスを起動するときは、ポート(22(SSH)、80(HTTP)、および443(HTTPS))でのみ着信トラフィックを許可するセキュリティグループを使用してください。これらのAMIはUbuntuに基づいているため、SSHを介してインスタンスに接続する場合は、ユーザーubuntuを使用する必要があります。
なお、IP制御をする必要がある場合はソースのCIDRを適時変更してください。
⑧ステップ7: インスタンス作成の確認の最下部にある起動をクリックし、ポップアップで「既存のキーペアの選択」または「新しいキーペアの作成」のどちらかを選択した後、インスタンスの作成をクリックします。
以上でEC2インスタンスの作成は終了です。
2. RDSにMySQLデータベースを作成
①EC2ダッシュボードのサイドバーからセキュリティグループを選択、作成したEC2のセキュリティグループのグループID(sg-から始まるID)をコピーします。
②同ページ内のセキュリティグループの作成をクリックし、下図のとおりに設定後、作成をクリックします。
ポイントはソースに①でコピーしたグループIDを入れることです(このセキュリティグループは、EC2インスタンスがRDSに作成するMySQLデータベースにアクセスできるようにするために作成しております)。
③RDSのページに遷移し、下部にあるデータベースの作成をクリックします。
④データベースの作成ページで、下表のとおりに設定をします(記載のないものはデフォルト設定です)。
項目 | 内容 |
---|---|
データベース作成方法を選択 | 簡単作成 |
エンジンのタイプ | MySQL |
DBインスタンスサイズ | 無料利用枠 |
マスターパスワード | 任意のパスワード |
⑤データベース作成完了後、RDS>データベース>④で作成したデータベース名を選択し、変更をクリックします。
⑥セキュリティグループを②で作成したものに変更し、次へをクリックした後、DBインスタンスの変更をクリックします。
以上でRDSでのMySQLデータベースの作成は終了です。
3. TeraTermでEC2に接続し、CSVを転送
①EC2インスタンスのIPv4パブリックIPをコピーします。
②TeraTermを起動し、ホストに①でコピーしたIPv4パブリックIPをペーストしてOKをクリックします。
③ユーザー名に「ubuntu」、パスワードは空白のまま、秘密鍵にEC2インスタンスの鍵ペア生成時にダウンロードしたpemファイルを選択してOKをクリックします。
【補足】
TeraTermでログインする際のユーザー名はOSによって異なります。
OS | ユーザー名 |
---|---|
Amazon Linux | ec2-user |
Ubuntu | ubuntu |
CentOS | centos |
Redash AMIはUbuntuベースのため、ユーザー名が「Ubuntu」となっております。ご注意ください。
④CSVを格納するフォルダを作成します。
$ pwd
/home/ubuntu
$ mkdir csv
$ cd csv
~/csv$ pwd
/home/ubuntu/csv
⑤以下の記事に従い、データベースに取り込みたいCSVファイルをEC2インスタンスのCSVフォルダに転送します。
⑥CSVフォルダに転送できたか確認します。
~/csv$ pwd
/home/ubuntu/csv
~/csv$ ls
student.csv
以上でEC2インスタンスへのCSVファイルの転送は終了です。
4. EC2にMySQLクライアントをインストールし、RDSのMySQLデータベースに接続
①sudo apt install mysql-client-core-5.7
コマンドでMySQLクライアントをEC2インスタンスにインストールします。
②RDSに作成したMySQLデータベースのエンドポイントをコピーします。
③以下のコマンドでMySQLデータベースに接続します。
$ mysql -h RDSエンドポイント -P 3306 -u admin -p
Enter password: マスターパスワード
以上でMySQLデータベースへの接続ができました。
5. データベースとテーブルを作成し、CSVを取り込み
①以下のコマンドでデータベース及びテーブルを作成します。なお、今回、データベース名はexample_db、テーブル名はstudentとしました。
mysql> create database example_db;
mysql> show databases;
mysql> use example_db;
mysql> create table student (
列名 データ型,
・・・
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
なお、列名に丸かっこなどの記号が入っている際、MySQLではバッククォート「`」で囲みます。
②以下のコマンドでCSVフォルダに転送したCSVファイルをMySQLデータベースに取り込みます。
mysql> load data local infile "/home/ubuntu/csv/student.csv" into table student fields terminated by ',';
なお、CSV取り込みについては以下の記事を参考にさせて頂きました。
以上でRedashを使う準備がすべて終了しました。
6. Redashにデータベースを接続
①EC2インスタンスのIPv4パブリックIPをブラウザに入力し、Redashを起動します。
②起動すると、下図のとおり、Adminユーザー登録画面になるので登録します。
③ログインすると下図のような画面になるのでConnect a Data Sourceをクリックします。
⑤下図のとおり、入力を求められますので、下表に従い入力します。
項目 | 入力内容 |
---|---|
Name | データソース名(任意) |
Host | RDSのエンドポイント |
User | admin |
Password | RDSで設定したマスターパスワード |
Database name | example_db |
⑥Createをクリック後、Test Connectionをクリックします。「Success」と表示されればRedashとデータベースの接続成功です。
7. Redashにクエリを作成し、ダッシュボードで表示
力尽きました・・・(苦笑)
以下の記事が詳しいのでご覧くださいませ。
さいごに
実は今までHeroku+PostgreSQLばかり触っていたので、AWSとMySQL自体、触るのが初めてでした。
なので備忘録も兼ねてAWSとMySQLの操作についても細かく記載しました。
「この記事長いな」と思われた方、すみませんでしたm(_ _)m
今回、Redashを試してみて「こんなに便利なもんがOSSで良いのか!」と感動しました。
非エンジニアの人事課メンバーにはRedashでもハードルは高い(SQLにすら抵抗がある)ので、タレントパレット・HRMOS CORE・ヒトマワリのどれかを入れることになるんだろうな~と思いますが、経営企画の方が安価なBIツールを探していたので、これを紹介したら喜びそうだなと感じました(ので教えようと思います)。
本記事をご覧くださった方、長文にも関わらずご覧頂きありがとうございました。
Author And Source
この問題について(RedashをAWS(EC2+RDS)で試してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/0yan/items/509cdd98155bd6c563dd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .