すぐに使える、手軽に使えるクラウド上の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 |
セキュリティの設定を行った後は、下記のように「rds-describe-db-security-groups」コマンドで、現在の設定を確認することが可能です。
$ rds-describe-db-security-groups |
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 |
-hオプションには、接続先のDBインスタンスのIPアドレスもしくはホスト名を入力します。事前に「rds-describe-db-instances」コマンドで確認しておきしょう。
下記のように「show databases;」を実行すると、DBインスタンス作成時に指定したデータベース名(MyDatabase)が確認できます。
mysql> show databases; |
あとは、データベースに対して自由にDDLやSQLなどの操作を行ってみてください。ローカル環境と同じように操作できることがお分かりいただけると思います。
スケールアップしてみる
前述のとおりAmazon RDSでは、サーバのスペックを簡単にグレードアップ(スケールアップ)する機能が準備されています。
スケールアップを実施する際は、すでに起動しているDBインスタンスに対して「rds-modify-db-instance myinstance」コマンドを実行します。下記が、コマンド実行例です。
$ rds-modify-db-instance myinstance --db-instance-class db.m1.large -apply-immediately |
上記の実行例にある「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 |
スケールアップの実施中は、以下のようにDBへの接続ができなくなります。スケールアップに必要となる時間はおよそ数分程度ですが、その間データベースが不通となるため、システム運用中にスケールアップを実施する際は、事前に計画停止を検討するようにしてください。
$ mysql -h myinstance.cynm7muqcmsz.us-east-1.rds.amazonaws.com -u testuser -p |
実施後しばらくしてから、下記のように「rds-describe-db-instances」コマンドを実行し、Status項目が「available」と表示されていれば、スケールアップ作業は完了です。
$ rds-describe-db-instances --headers |
スケールアップ後は、以前と同じアドレスで問題なくデータベースに接続することが可能です。
$ mysql -h myinstance.cynm7muqcmsz.us-east-1.rds.amazonaws.com -u testuser -p |
DBインスタンスの停止・削除
最後に、作成したDBインスタンスを停止・削除を行います。スナップショット(バックアップ)の取得をDBインスタンスの停止を行うと、データベースのデータが削除されてしまうため、注意してください。
DBインスタンスの停止・削除は、rds-delete-db-instance myinstanceコマンドを利用します。
$ rds-delete-db-instance myinstance --skip-final-snapshot --headers |
上記のコマンド実行例では、削除したい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 |
|
||||||
|
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フォーラム全記事インデックス |
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|