AWSのMySQLベースのリレーショナル・データベースを使ってDrupalをインストールしてみました。
AWS RDSのサービス申込をしてから、Javaベースのコマンドを用意します。こちらからダウンロードできます。これを端末にインストールします。インストールはここにある通りやれば簡単に動作させることができます。このコマンドはEC2のコマンドツール同様にEC2のインスタンスマシンにインストールする必要はありません。手元のWinやMacOSでもまったく構いません。コマンド・ツールのインストールと設定についてはここに詳しいので、ここではデータベースの作成方法とアクセスするまでについてメモしておきます。
次にDB専用のインスタンスを立ち上げるのですが、このコマンドが
#rds-create-db-instance tosharecomudb --allocated-storage 20 --db-instance-class db.m1.small --engine MySQL5.1 --master-username tosharecomu --master-user-password tosharecomu --db-name tosharecomu001 --headersこれで簡単に、20GBのtosharecomudbという名前のMySQL5.1ベースのデータベース・インスタンスがスモール(Small DB Instance: 1.7 GB memory, 1 ECU (1 virtual core with 1 ECU), 64-bit platform)をベースに作られます。さらに、データベースにアクセスするためのユーザとパスワード'tosharecomu'とデータベース'tosharecomu001'が作られます。
作成に成功すると次のような応答があります。
DBINSTANCE DBInstanceId Class Engine Storage Master Username Status Backup Retention PendingCredentials
DBINSTANCE tosharecomudb db.m1.small mysql5.1 20 tosharecomu creating 1 ****
SECGROUP Name Status
SECGROUP default active
PARAMGRP Group Name Apply Status
PARAMGRP default.mysql5.1 in-syncまだ、作成中(creating)のステータスなのでどこにアクセスしたら良いかわかりません。しばらくして、
#rds-describe-db-instances --headersを実行して状態を確認します。
DBINSTANCE DBInstanceId Created Class Engine Storage Master Username Status Endpoint Address Port AZ Backup Retention
DBINSTANCE tosharecomudb 2010-02-15T06:44:20.788Z db.m1.small mysql5.1 20 tosharecomu available tosharecomudb.cdsfas9rufpivtr.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ここに利用状態が可能(available)に変わっています。これでデータベースにアクセス出来る状態になります。これでひとまず準備完了です。接続セキュリティを以下の方法で設定します。
rds-authorize-db-security-group-ingress default --cidr-ip 0.0.0.0/0 --headers これで全てのIPアドレスからアクセスできるようになります。本番で使うのであれば、CIDRの部分をサーバのIPアドレスに変えて下さい。このコマンドも即時適用ができないので、暫く待ちます。※確認する方法は、rds-describe-db-security-groups default --headers を使います。
ここまで来たらあとは、通常のMySQLと同じ方法で接続してユーザ追加、テーブル作成が可能です。
mysql -h tosharecomudb.cdsfas9rufpivtr.us-east-1.rds.amazonaws.com -u tosharecomu -p今回はレイテンシの少ないWest(カリフォルニア)に立ち上げたEC2のインスタンスから接続してみましたが、スモールサイズのDBではやはり少し重く感じます。memcacheの利用で閲覧速度には多少改善できますが、実用に耐えるレベルでは無いようです。mysqlコマンドレベルではそれ程速度の違いは感じられないのですが、実際にDrupalと連動させてみると使えるレベルにはならないようです。あと、現在、EC2のインスタンスと違いEast/Westの選択ができないので恐らくEastしか使えないのかと思います。
まだ1GB以上使っているような大規模なDrupal運用は当分なさそうなので、コンテンツ配信に利用できそうなS3の方をもう少し研究いこうかと思います。
2010-02-16追記:先にDBを作って、RDSと同じゾーン(二回とも東)にEC2インスタンスを作って接続したら、ちゃんと内部接続になってレイテンシーの問題が解決されました。
Tweeterでこのブログをつぶやいたり、ソーシャル・ブックマークに登録する時は以下のリンクをお使い下さい。
コメント
新しいコメントの投稿