すぐに使える、手軽に使えるクラウド上のMySQL
 Amazon RDSの使い方



TIS株式会社 SonicGarden
並河 祐貴
2010/4/12


セキュリティの設定

 DBインスタンスへのアクセスは、デフォルトで外部からのアクセスが許可されていないため「rds-authorize-db-security-group-ingress」コマンドにて設定を変更します。

 下記のコマンド実行例は、すべてのアクセスを許可(0.0.0.0/0からのアクセスを許可)する設定となりますが、実際の運用時には、正しいアクセス制限を行うようにしてください。IPアドレス(v4)のxxx.xxx.xxx.xxx/xx形式で、許可する接続元のネットワーク・IPアドレスを指定することができます。

$ rds-authorize-db-security-group-ingress default --cidr-ip 0.0.0.0/0 --headers
SECGROUP  Name     Description
SECGROUP  default  default
      IP-RANGE  IP Range   Status
      IP-RANGE  0.0.0.0/0  authorizing

 セキュリティの設定を行った後は、下記のように「rds-describe-db-security-groups」コマンドで、現在の設定を確認することが可能です。

$ rds-describe-db-security-groups
SECGROUP default default
      IP-RANGE  0.0.0.0/0  authorized

DBインスタンスへの接続

 では、DBインスタンスを起動し、セキュリティの設定が完了したところで、DBインスタンスへアクセスしてみましょう。

 DB(MySQL)へのアクセスはさまざまなクライアントツールから行うことが可能ですが、今回の例では「mysql」コマンドを利用してアクセスします(注2)。

注2:この際、クライアント環境にMySQLが必要です。RedHat/CentOS/Fedoraの場合は「yum install mysql」、Debian/Ubuntuの場合は「apt-get install mysql-client」でインストールを行ってください。

$ mysql -h myinstance.cynm7muqcmsz.us-east-1.rds.amazonaws.com -u testuser -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 97
Server version: 5.1.42-log MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

 -hオプションには、接続先のDBインスタンスのIPアドレスもしくはホスト名を入力します。事前に「rds-describe-db-instances」コマンドで確認しておきしょう。

 下記のように「show databases;」を実行すると、DBインスタンス作成時に指定したデータベース名(MyDatabase)が確認できます。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| MyDatabase         |
| innodb             |
| mysql              |
+--------------------+
4 rows in set (0.20 sec)

 あとは、データベースに対して自由にDDLやSQLなどの操作を行ってみてください。ローカル環境と同じように操作できることがお分かりいただけると思います。

スケールアップしてみる

 前述のとおりAmazon RDSでは、サーバのスペックを簡単にグレードアップ(スケールアップ)する機能が準備されています。

 スケールアップを実施する際は、すでに起動しているDBインスタンスに対して「rds-modify-db-instance myinstance」コマンドを実行します。下記が、コマンド実行例です。

$ rds-modify-db-instance myinstance --db-instance-class db.m1.large -apply-immediately
DBINSTANCE  myinstance  2010-03-14T07:07:30.599Z  db.m1.small  mysql5.1  10  testuser  available  myinstance.cynm7muqcmsz.us-east-1.rds.amazonaws.com  3306  us-east-1b  1  db.m1.large
      SECGROUP  default  active
      PARAMGRP  default.mysql5.1  in-sync

 上記の実行例にある「myinstance」はDBインスタンスの識別名で、DBインスタンスの起動時に指定した任意の文字列です。--db-instance-classオプションで、スケールアップ後のインスタンスの種類を指定します。上記では、db.m1.smallからdb.m1.largeへスケールアップする場合の例を示しました。最後に、-apply-immediatelyオプションを付けることで、コマンド実行後、即座にスケールアップ作業が開始されます。

 実行後に「rds-describe-db-instances」コマンドにて状況を確認すると、「Status」項目が「modifying」と表示されます。

$ rds-describe-db-instances --headers
DBINSTANCE  DBInstanceId  Created                   Class        Engine    Storage  Master Username  Status     Endpoint Address                                     Port  AZ          Backup Retention  PendingClass
DBINSTANCE  myinstance    2010-03-14T07:07:30.599Z  db.m1.small  mysql5.1  10       testuser         modifying myinstance.cynm7muqcmsz.us-east-1.rds.amazonaws.com  3306  us-east-1b  1                 db.m1.large
      SECGROUP  Name     Status
      SECGROUP  default  active
      PARAMGRP  Group Name        Apply Status
      PARAMGRP  default.mysql5.1  in-sync

 スケールアップの実施中は、以下のようにDBへの接続ができなくなります。スケールアップに必要となる時間はおよそ数分程度ですが、その間データベースが不通となるため、システム運用中にスケールアップを実施する際は、事前に計画停止を検討するようにしてください。

$ mysql -h myinstance.cynm7muqcmsz.us-east-1.rds.amazonaws.com -u testuser -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on 'myinstance.cynm7muqcmsz.us-east-1.rds.amazonaws.com' (111)

 実施後しばらくしてから、下記のように「rds-describe-db-instances」コマンドを実行し、Status項目が「available」と表示されていれば、スケールアップ作業は完了です。

$ rds-describe-db-instances --headers
DBINSTANCE  DBInstanceId  Created                   Class        Engine    Storage  Master Username  Status     Endpoint Address                                     Port  AZ          Backup Retention
DBINSTANCE  myinstance    2010-03-14T07:07:30.599Z  db.m1.large  mysql5.1  10       testuser         available  myinstance.cynm7muqcmsz.us-east-1.rds.amazonaws.com  3306  us-east-1b  1
      SECGROUP  Name     Status
      SECGROUP  default  active
      PARAMGRP  Group Name        Apply Status
      PARAMGRP  default.mysql5.1  in-sync

 スケールアップ後は、以前と同じアドレスで問題なくデータベースに接続することが可能です。

$ mysql -h myinstance.cynm7muqcmsz.us-east-1.rds.amazonaws.com -u testuser -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 87
Server version: 5.1.42-log MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| MyDatabase         |
| innodb             |
| mysql              |
+--------------------+
4 rows in set (0.19 sec)

mysql>

DBインスタンスの停止・削除

 最後に、作成したDBインスタンスを停止・削除を行います。スナップショット(バックアップ)の取得をDBインスタンスの停止を行うと、データベースのデータが削除されてしまうため、注意してください。

 DBインスタンスの停止・削除は、rds-delete-db-instance myinstanceコマンドを利用します。

$ rds-delete-db-instance myinstance --skip-final-snapshot --headers
    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  DBInstanceId  Created                   Class        Engine    Storage  Master Username  Status    Endpoint Address                                     Port  AZ          Backup Retention
DBINSTANCE  myinstance    2010-03-14T07:07:30.599Z  db.m1.large  mysql5.1  10       testuser         deleting  myinstance.cynm7muqcmsz.us-east-1.rds.amazonaws.com  3306  us-east-1b  1
      SECGROUP  Name     Status
      SECGROUP  default  active
      PARAMGRP  Group Name        Apply Status
      PARAMGRP  default.mysql5.1  in-sync

 上記のコマンド実行例では、削除したいDBインスタンスの識別名である「myinstance」を指定し、--skip-final-snapshotオプションを指定することで、最後にスナップショット(バックアップ)を取得せず、DBインスタンスを停止します。

 もし停止前にスナップショットの取得を行う場合は、「--skip-final-snapshot」のオプションを付けずに、「--final-db-snapshot-identifier スナップショット識別名」のオプションを指定してください。

 DBインスタンスの停止後にrds-describe-db-instancesコマンドを実行し、該当するDBインスタンスが表示されていなければ、停止は完了です。

 1台もDBインスタンスが起動していない場合は、下記の例のように何も表示されません。

$ rds-describe-db-instances --headers
$

 以上で、Amazon RDSの基本的な使い方の紹介は終了です。

  そのほか、各コマンドの詳細なオプション仕様については、Amazon Web Services公式のドキュメント(英語)に記載されています。

【関連リンク】
Amazon Relational Database Service Command Line Interface Reference

http://docs.amazonwebservices.com/AmazonRDS/latest/CommandLineReference/index.html?CLIReference-cmd-DeleteDBInstance.html

 このようにAmazon RDSを利用することで、とても手軽に、かつ十数円の出費から、データベースのプラットフォームを使い始めることができます。

 DBインスタンスの起動後は、通常のMySQLサーバと同じ振る舞いをするため、mysqldumpコマンドやmysqlコマンドなどを利用して、既存のMySQLデータベースからのインポート、もしくは既存のMySQLデータベースへのエクスポートといった移行を実施することが可能です。

 開発環境やテスト環境などで一時的にデータベース環境を使いたくなった際などに、すぐに使い始めることができます。読者の皆さまも一度試してみてはいかがでしょうか。

■筆者紹介
並河 祐貴
TIS株式会社 SonicGarden所属
ブログ:http://d.hatena.ne.jp/rx7/

これまで、数々のオープンソースソフトウェアおよびサーバ仮想化技術の検証/導入に注力。近年は、社内ベンチャーカンパニー「SonicGarden」にて、Amazon Web Servicesを活用したサービス構築/運用の実践、およびクラウドサービスの導入支援を展開している。 主な著書は「クラウドAmazon EC2/S3のすべて〜実践者から学ぶ設計/構築/運用ノウハウ〜」(http://www.amazon.co.jp/dp/4822234371

前のページ
3/3

Index
Amazon RDSの使い方
 すぐに使える、手軽に使えるクラウド上のMySQL
  Page 1
 Amazon Web Servicesのニューフェイス
 MySQLをクラウド上で
 いくつかの制約
 サーバスペックと料金体系
  Page 2
 利用申請手順
 Amazon RDS Command Line Toolkitのセットアップ
 DBインスタンスの起動
Page 3
 セキュリティの設定
 DBインスタンスへの接続
 スケールアップしてみる
 DBインスタンスの停止・削除

Linux Square全記事インデックス


 Linux Squareフォーラム 仮想化技術関連記事
連載:実践! Xenで実現するサーバ統合
有力な仮想化技術として注目を集めるようになった「Xen」。このXenを活用してサーバ統合を実践していく手順を具体的に紹介します
特集:サーバの仮想化技術とビジネス展開の可能性
jailからUML/VMwareまで
1台のマシンで複数のサーバを動かす「仮想化技術」。VMwareやUMLの登場により、WebサイトだけでなくOS自体を仮想化できるようになった
特集:仮想化技術のアプローチと実装
VMwareから要注目技術Xenまで

1台のサーバで複数の仮想マシンを実行する仮想化技術は、空間コストを引き下げる可能性を持つ。最新の仮想化技術を概観してみよう
特集:仮想OS「User Mode Linux」活用法
技術解説からカーネルカスタマイズまで
Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説
特集:仮想化技術の大本命「Xen」を使ってみよう
インストール & Debian環境構築編

高いパフォーマンスで本命の1つとなった仮想マシンモニタ「Xen」。日本語による情報が少ないXenを、実際に動かしてみよう
特集:仮想化技術の大本命「Xen」を使ってみよう
Xen対応カスタムカーネル構築編

Xen環境およびその上で動作する仮想マシン用カーネルを自分で構築しよう。これにより、自由にカスタマイズしたカーネルを利用できる
特集:IPv6、UML、セキュリティ機能の統合
全貌を現したLinuxカーネル2.6[第4章]

今回は、これまでに紹介し切れなかった機能を一気に紹介する。これを読めば、カーネル2.6の正式リリースが楽しみになるだろう
Linux Squareプロダクトレビュー VMware Workstation 4
PC/AT互換機エミュレータとして不動の地位を築いたVMware。その新バージョンがリリースされた。新機能を早速試してみよう
古くて新しい「サーバ仮想化技術」の行方
サーバ仮想化を実現するための技術がソフトウェア、ハードウェアの両面で出そろってきた。ハイパーバイザーのさらなる高速化に向けた動きを紹介する
Linux Squareフォーラム全記事インデックス


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間