月曜日, 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
    後でスナップショットから新しいインスタンスが作成できます。

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

1 コメント:

Nick Bill さんのコメント...

Where to find a latest result of Philippine Charity Sweepstakes Office or PCSO Results.PSCO is the Lotto Lottery PCSO Lotto Result

コメントを投稿