toto_1212

技術のログをツラツラ書きます。自分用ですが参考にしていただけたら嬉しいです。間違ってたらドンドン突っ込んでください。

Amazon RDSを使う

AWSのリレーショナルデータベースサービスを起動し接続するところを書きます。RDS Command Line Toolkitを使えるようにセットアップするところも書きます。

1.ダッシュボードにてRDSをクリックする。
f:id:toatoshi:20130710132744j:plain


2.「Launch DB Instance」をクリックし、新規DBを作成する。
f:id:toatoshi:20130710132814j:plain


3.任意で利用したいDBソフトを選択。今回はmysqlを選択。
f:id:toatoshi:20130710132832j:plain


4.DB構成を入力し「Continue」をクリックする。
f:id:toatoshi:20130710132853j:plain

・Licence Model:ライセンスモデル指定(mysqlGPL
・DB Engine Version:バージョン指定
・DB Instance Class:インスタンスサイズ指定
・Multi-AZ Deployment:マルチAZ化の指定
・Auto Minor Version Upgrade:自動アップデートの指定
・Allocated Storage:サイズ指定
・Use Provisiond IOPS:IOPS保証を指定
・DB Instance Identifier:DBのインスタンス名称の指定
・Master User name:管理者ユーザー名の指定
・Master Password:パスワードの指定


5.環境構成を入力し「Continue」をクリックする。
f:id:toatoshi:20130710132921j:plain

・Database Name:データベース名の指定
・Database Port:DB接続ポートの指定
・Choose a VPCVPC利用の指定
・DB Subnet Group:サブネットグループの指定
・Publicly Accessible:パブリック接続の指定(VPC外からの接続)
・Availability Zone:AZの指定
・Option Group:データベースオプションの指定(mysqlは利用不可)
・Parameter Group:起動パラメータ利用の指定
VPC Security Group(s):セキュリティグループの指定


6.管理構成を入力し「Continue」をクリックする。
f:id:toatoshi:20130710132957j:plain

・Enabled Automatic Backups:自動定期バックアップの指定
・Backup Retention Period:バックアップの保持時間
・Backup Window:バックアップの時間帯
・Maintenance Window:メンテナンスの時間帯


7.設定を確認して「Launch DB Instance」をクリックする。
f:id:toatoshi:20130710133040j:plain


8.「Close」をクリックする。
f:id:toatoshi:20130710133107j:plain


9.ダッシュボード画面より「Instance」をクリックする。
f:id:toatoshi:20130710133138j:plain


10.作成したDBが出来ていることを確認する。”Available”にて利用可能状態。
f:id:toatoshi:20130710133215j:plain


【RDSインスタンスへ接続】
RDSインスタンへ接続する際は、基本的にEC2からの接続となるため、RDSにセットしたセキュリティグループへ接続元のEC2からのアクセス許可を設定する必要がある。

11.EC2のダッシュボードへ遷移し、「Security Groups」をクリックする。
f:id:toatoshi:20130710133521j:plain


12.RDSでVPC Security Group(s)に設定したセキュリティグループの設定を変更する。
0.0.0.0/0にすることで全てから接続を許可してもいいが、セキュリティ上好ましくないので接続元EC2のセキュリティグループIDの3306(MYSQL)を透過する設定を行う。
ここでは接続元EC2にtest_FWが適応されており、sg-x4d5xxxからのmysqlポートを許可する設定をしています。
f:id:toatoshi:20130710133605j:plain


13.TeratarmのようなエミュレータソフトでRDS接続元のEC2へログインし、以下コマンドにてDBへ接続する。

mysql -h <エンドポイント> -P 3306 -u  -p 

今回の環境でコマンドは
mysql -h testdb.cjn2yim4kcvc.ap-northeast-1.rds.amazonaws.com -P 3306 -u dbuser -p testdatabase

エンドポイントはRDSインスタンス一覧上で▼をクリックし"Endpoint:"で表示されたアクセス先になります。
f:id:toatoshi:20130710134520j:plain

Passwordを聞かれるので指定したパスワードを入力する。
mysqlコマンドを発行できないと接続できないので、”bash: mysql: command not found”とエラーを返された場合は、管理者権限で$ yum install mysqlを実行して再度接続する。

以下、表示にて接続していることが確認できる。
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 27
Server version: 5.5.31-log Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

【RDS コマンドラインツール導入】
●Windowsクライアント端末に導入する場合

1.Amazon RDS Command Line Toolkitをダウンロードし、解凍後に任意のフォルダへ展開する。
http://aws.amazon.com/developertools/2928?_encoding=UTF8&jiveRedirect=1


2.コマンドラインツールを利用する為の環境設定を行う。
JAVA環境が必要になりますので、jre6とかをインストールします。
解凍したRDSコマンドツールはD:\tools\awsフォルダはD:\tools\awsへ配置(配置場所は任意)し、以下コマンドプロンプトを開きsetにて環境変数を指定する。

set JAVA_HOME=C:\Program Files\Java\jre6
set AWS_RDS_HOME=D:\tools\aws\RDSCli-1.14.001
set PATH=%PATH%;%AWS_RDS_HOME%\bin
set AWS_CREDENTIAL_FILE=D:\tools\aws\RDSCli-1.14.001\credential-file.txt
set RDS_URL=https://rds.ap-northeast-1.amazonaws.com
set EC2_REGION=ap-northeast-1

※上記をバッチ化しておくと便利です。


3.credential-fileを設定する。
1.で展開したフォルダ内にcredential-file-path.templateというファイルがあるので同一フォルダにコピーしリネーム(credential-file.txt)する。
※ファイル名は任意。変えた場合はsetでの環境変数パス指定も変更する。
リネーム後のファイルを開き、セキュリティ証明書を記載する。
AWSAccessKeyId=アクセスキーID
AWSSecretKey=シークレットアクセスキー

※AWSAccessKeyId及びAWSSecretKeyは以下を参照のこと
f:id:toatoshi:20130710135048j:plain
f:id:toatoshi:20130710135059j:plain


4.setコマンドを実行した同一のコマンドプロンプト内で以下のコマンドを発行し、rdsコマンド一覧が表示されれば利用可能です。

rds --help


●接続用EC2に導入する場合

1.任意のフォルダを作成しAmazon RDS Command Line Toolkitをダウンロードし、解凍する。

mkdir -p tools/aws	#ホームdirは/home/ec2-user
cd /tools/aws
curl -LO http://s3.amazonaws.com/rds-downloads/RDSCli.zip
unzip RDSCli.zip
rm ./RDSCli.zip


2.credential-fileを設定する。

cd /home/ec2-user/tools/aws
cp credential-file-path.template credentialfile
vi credentialfile
AWSAccessKeyId=アクセスキーID
AWSSecretKey=シークレットアクセスキー


3.自分以外は見えないようにパーミッションを変更する

chmod 600 credentialfile


4.コマンドラインツールを利用する為の環境設定を行う。

該当ユーザーの.bashrcに書込みリロードする。
echo 'export JAVA_HOME=/etc/alternatives/jre' >> ~/.bashrc
echo 'export AWS_RDS_HOME=/home/ec2-user/tools/aws' >> ~/.bashrc
echo 'export RDS_URL=https://rds.ap-northeast-1.amazonaws.com' >> ~/.bashrc
echo 'export AWS_CREDENTIAL_FILE=/home/ec2-user/tools/aws/credentialfile' >> ~/.bashrc
echo 'export PATH=$PATH:$JAVA_HOME/bin:$AWS_RDS_HOME/bin' >> ~/.bashrc
source ~/.bashrc 


5.rdsコマンド一覧が表示されれば利用可能です。

rds --help