月曜日, 11月 02, 2009

【Amazon RDS】DBインスタンスの作成(コマンド編)

AmazonクラウドがAmazon Relational Database Serviceを開始しました。
Amazonのスタートガイドを参考に試してみました。

私の環境はMac OS X 10.6.1です。
そこからAmazon Relational Database Serviceへコマンドを使用してインスタンスを作成します。
その後、テーブルを作成してみます。

まずはMac(ローカル)側のRDSコマンドの準備です。

  1. JAVAをインストールします。ダウンロードしてインストールして下さい。
    インストール済であれば、次へ進んでください。
  1. Amazon RDS Command Line ToolkitというRDSコマンドをセットアップします。
  • (1) ここからダウンロードし、適当なところへインストールします。
  • (2) ターミナルを起動してコマンドをインストールしたディレクトリへ移動後、lsコマンドでRDSコマンドフォルダであるRDSCli-1.0.001の中身を確認します。
    $ls 
    README.TXT THIRDPARTYLICENSE.TXT credential-file-path.template lib
    RELEASENOTES.TXT bin
  • (3) credential-file-path.templateをコピーしてcredential-file-path.txtを作成します。
    $ls 
    README.TXT THIRDPARTYLICENSE.TXT credential-file-path.template lib
    RELEASENOTES.TXT bin credential-file-path.txt
  • (4) credential-file-path.txtを編集します。
    (編集前)
    AWSAccessKeyId=<Write your AWS access ID> 
    AWSSecretKey=<Write your AWS secret key>
    (編集後)
    AWSAccessKeyId=xxxx 
    AWSSecretKey=yyyy
  • (5) credential-file-path.txtのパーミションを変更します。
    $chmod 600 credential-file-path.txt
    
  1. 次にJAVAとRDSコマンドが動作する為の環境変数を設定します。
    Macの場合、自分のアカウント直下のディレクトリ直下の.bash_profileを編集します。
    以下は編集後の状態です。
    $cat .bash_profile 
    # .bash_profile export AWS_RDS_HOME=~/EC2/RDSCli-1.0.001 ・・・・(a)
    export AWS_CREDENTIAL_FILE=$AWS_RDS_HOME/credential-file-path.txt・・・・(b)
    export PATH=$PATH:$AWS_RDS_HOME/bin・・・・(c)
    export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6./Home・(d)
    • (a) コマンドをインストールしたディレクトリを指定します。
    • (b) credential-fileを指定します。
    • (c) コマンドがどこのディレクトリからでも実行できるようにパスを通します。
    • (d) JAVAをインストールしたディレクトリを指定します。
  1. ターミナルを一旦クローズし再度オープン後、動作確認を行ないます。
  • (1) JAVAが動作するか確認します。
    $ java -version 
    java version "1.6.0_15" Java(TM) SE Runtime Environment (build 1.6.0_15-b03-219) Java HotSpot(TM) 64-Bit Server VM (build 14.1-b02-90, mixed mode)
    インストールしたにもかかわらず、JAVAのバージョンが表示されない場合、「JAVAインストールディレクトリ¥bin」にもパスを通してださい。
  • (2) RDSコマンドが動作するか確認します。
    $ rds -version 
    Relational Database Service CLI version 1.0.001 (API 2009-10-16)
    表示されなければ、環境変数の設定を再度、確認して下さい。
  1. 次にAmazon Relational Database Service上のインスタンスへ接続する為のツールをダウンロードします。AmazonのスタートガイドではMySQLモニタを使用していますが、今回はOracle SQL Developerを使用してみます。(Oracle SQL DeveloperはJDBC経由でOracle、MySQL、SQLServer、Sybaseと接続可能ないろいろと便利なツールです。OTNへの登録が前提になります。)
  • (1) Oracle SQL Developer 1.5.5をここからダウンロードします。
  • (2) ツーループリファレンスー拡張機能でMySQLJDBC Driverを追加してください。

以上でRDSコマンドの準備ができました。

さぁRDSコマンドを使ってDBインスタンスの準備を行ないま〜す!

  1. DBインスタンスを作成します。
    次のコマンドを実行します。
    $ rds-create-db-instance --db-instance-identifier myinstance --allocated-storage 20 --db-instance-class db.m1.xlarge --engine MySQL5.1 --master-username mymasteruser --master-user-password mymasterpass --db-name MyDatabase --headers  
    DBINSTANCE DBInstanceId Class Engine Storage Master Username Status Backup Retention
    DBINSTANCE myinstance db.m1.xlarge mysql5.1 20 mymasteruser creating 1 SECGROUP Name Status SECGROUP default active PARAMGRP Group Name Apply Status PARAMGRP default.mysql5.1 in-sync
    パラメータの意味は以下です。
    •  myinstance:DBインスタンス名
    •  20:割当てるストレージサイズ(単位:GByte) 5〜1024GByteの範囲で指定。
    •  db.m1.xlarge:メモリレベル
      • db.m1.small または db.m1.large または db.m1.xlarge または db.m2.2xlargeまたはdb.m2.4xlarge
    •  MySQL5.1:データベースエンジン。現状、MySQL5.1のみです。
    •  mymasteruser:ユーザ名(1〜16文字)
    •  mymasterpass:パスワード(4〜16文字)
    •  MyDatabase:データベース名

    ここで一つ注意ですが「rds-create-db-instance」は、デフォルトで自動バックアップ期間を1日で作成します。
    自動でバックアップしてくれるので、もちろん便利ですが、費用( $0.15 per GB-month)はかかります。
    バックアップが不要の場合は--backup-retention-period 0」というコマンドパラメータを追加して下さい。
  1. インスタンス状況を確認します。StatusがavailableであればOKです。
    表示されているEndpoint Addressは接続時に使用しますのでメモしておいて下さい。
    $ rds-describe-db-instances --headers 
    DBINSTANCE DBInstanceId Created Class Engine Storage Master Username Status Endpoint Address Port AZ Backup Retention
    DBINSTANCE myinstance 2009-10-30T07:43:14.153Z db.m1.xlarge mysql5.1 20 mymasteruser available myinstance.cm43wa9866cy.us-east-1.rds.amazonaws.com 3306 us-east-1d 1 SECGROUP Name Status SECGROUP default active PARAMGRP Group Name Apply Status PARAMGRP default.mysql5.1 in-sync
  1. 次にインスタンスへアクセスを許可するIPアドレスを設定します。
    次のコマンドを実行します。
  2. $ rds-authorize-db-security-group-ingress default --cidr-ip AAA.BBB.CCC.DDD/32 --headers  
    SECGROUP Name Description SECGROUP default default IP-RANGE IP Range Status IP-RANGE AAA.BBB.CCC.DDD/32 authorizing
    パラメータの意味は以下です。
    •  AAA.BBB.CCC.DDD/32:自分のIPアドレスを指定します。自分のIPアドレスはここで確認してください。
    間違えた場合は以下で取り消しできます。
    $rds-revoke-db-security-group-ingress default --cidr-ip AAA.BBB.CCC.DDD/32
    
    以上で準備完了です。

さぁ、いよいよ、作成したDBインスタンスへアクセスします。
Oracle SQL Developerを使用します。

  1. 新規接続を作成します。

  1. 以下の接続パラメータを設定し保存します。

    •  接続名:何でもいいです。
    •  ユーザ名:DBインスタンス作成時に指定したユーザ名
    •  パスワード:DBインスタンス作成時に指定したパスワード
    •  ホスト名:インスタンス状況を確認したEndpoint Addressを指定します。
    •  ポート名:3306
  1. 接続します。

  1. 接続できました。インスタンス作成時に指定したデータベース「MyDatabase」が作成されています。

  1. MyDatabaseにbook2というテーブルを作成してみます。
    以下のSQL文を書いてください。
    create table MyDatabase.book2(bookname char(10), kakaku int(10), zaiko int(5));

  1. SQLを実行します。赤枠のスクリプト実行を選択して下さい。

  1. 左の接続ペインのMyDatabaseー表ーbook2を選択して内容を確認してください。

  1. テーブルが出来たのでデータをインサートしてみます。
    以下のSQL文を書いて下さい。
    INSERT MyDatabase.book2 (bookname,kakaku,zaiko) VALUES ('book1',1000,10);

  1. データがインサートされたか確認します。

    あとは、いろいろSQL文を書いて試してみてください。
    ただし、稼働中のままだと料金がかかりますので注意して下さい。
    料金はこちらのPricingを見て下さい。
  1. 料金をおさえる為、スナップショットを保存して終了しておきます。
    $ rds-delete-db-instance myinstance --final-db-snapshot-identifier myfinalsnapshot 
    Once you begin deleting this database, it will no longer be able to accept connections. Are you sure you want to delete this database? [Ny]y
    DBINSTANCE  myinstance  2009-10-30T07:43:14.153Z  db.m1.xlarge mysql5.1  20 mymasteruser  deleting  us-east-1d 1 SECGROUP  default active PARAMGRP  default.mysql5.1 in-sync
    後でスナップショットから新しいインスタンスが作成できます。

今回、参考したマニュアルは以下です。
  • スタートガイドはここにあります。
  • コマンドマニュアルはここにあります。

3 コメント:

huangqing さんのコメント...

longchamp pas cher
gucci sunglasses uk
mbt shoes
christian louboutin outlet
ray ban sunglasses
gucci sunglasses
soccer jerseys
tory burch shoes
michael kors wholesale
louis vuitton outlet
mulberry uk
ray ban sunglasses
polo ralph lauren
michael kors handbags
kobe shoes
michael kors outlet
juicy couture tracksuit
tiffany and co
ralph lauren outlet
prada sunglasses
michael kors outlet
true religion uk
coach outlet
mbt shoes outlet
tiffany outlet
soccer jerseys
louis vuitton bags
ralph lauren pas cher
pandora outlet
cheap mlb jerseys
oakley sunglasses wholesale
ralph lauren uk
burberry outlet online
pandora jewelry
rolex watches
16.6.6qqqqqing

Gege Dai さんのコメント...

jianbin0809
cheap oakley sunglasses
louis vuitton outlet
michael kors outlet clearance
ferragamo shoes
ralph lauren outlet
coach outlet online
fitflops outlet
fitflops clearance
rolex watches
michael kors outlet
ed hardy tshirts
puma outlet
michael kors clearance
true religion outlet
nike air max 90
uggs outlet
nike uk store
tiffany and co
ugg boots
coach outlet store
coach outlet
vans outlet
longchamp handbags
ferragamo shoes
louis vuitton pas cher
ugg outlet
ugg outlet
air jordan 13
nike air force 1
ugg outlet uk
converse shoes sale
chrome hearts sunglasses
tiffany and co

John さんのコメント...

christian louboutin
tiffany and co jewelry
omega replica watches
yeezy boost 350
uggs outlet
prada outlet
michael kors outlet
ralph lauren outlet
gucci borse
bottega veneta handbags
cheap uggs
uggs
adidas nmd
louis vuitton outlet online
armani exchange
oakley vault
coach purses
ugg australia
ugg outlet
chi flat iron
louis vuitton handbags outlet
discount oakley sunglasses
oakley vault
nike trainers
vans shoes
adidas supercolor
ralph lauren outlet
nike free run
moncler jackets
christian louboutin outlet
oakley sunglasses
lebron james shoes
pandora outlet
michael kors handbags outlet
cheap jerseys wholesale
201695yuanyuan

コメントを投稿