AWS

AWSのEC2でWordPressを移行するまでにしたこと。

2011-12-04 環境構築 , , ,

AWSでEC2を作成し、WordpressをこれまでのさくらのVPSから移行してきた。

その際に作業した内容をメモ。

1) EC2にインスタンスを作成

 

2) EC2のインスタンスのセットアップ

Apache, PHP,  MySQLのアプリケーション、PHPからMySQLへの接続extention

$ sudo yum -y install httpd
$ sudo yum -y install php
$ sudo yum -y install mysql
$ sudo yum -y install php-mysql

Rootのパスワード設定

$ sudo passwd root

サーバーのタイムゾーンの修正(デフォルトではUTC標準時になっているので日本になおす)

$ sudo cp /usr/share/zoneinfo/Japan /etc/localtime

 

3) RDSにMySQLを作成し、EC2から接続できるようにする 同時にさくらのVPSからもつながるようにしておく

 

4) さくらのVPSのWordpressのDBをEC2にコピー(ダンプ&リストア)

$ mysqldump -u VPS側のDBユーザー名 -pVPS側のパスワード DB名 | \
> mysql -h ENDPOINT -P 3306 -u AWSRDsのユーザー名 -pAWSRDsのパスワード AWSRDsのDB名

 

5) さくらのVPSでワードプレスのソースを圧縮

 

6) 圧縮したソースをSCPでコピーしAWSのEC2側で展開(さくらのVPSにはEC2の秘密鍵をあらかじめ設置しておく)

 

7) wp-config.phpを修正

// ** MySQL 設定 - こちらの情報はホスティング先から入手してください。 ** //
/** WordPress のデータベース名 */
define('DB_NAME', 'RDsのDB名');

/** MySQL のユーザー名 */
define('DB_USER', 'RDsのDBユーザー');

/** MySQL のパスワード */
define('DB_PASSWORD', 'RDsのパスワード');

/** MySQL のホスト名 (ほとんどの場合変更する必要はありません。) */
define('DB_HOST', 'RDsのENDPOINT');

 

8) ApacheにVirtualhostの追加

 

9) Apacheの再起動

 

10) blog.eumyang.netのDNS切り替え

 

とりあえずこの10ステップだけで今のところ動いている。S3を利用するなどは今後対応してみたい。

 

AmazonRDSにEC2から接続できるようにする。

2011-12-04 環境構築 , ,

AWSでEC2からRDsに接続するのに、結構はまったので、メモ。

AWSでMySQLが使えるAmazonRDSというサービスがあるのだが、デフォルトではDBインスタンスの作成後、どこからも接続ができない状態になっている。

これをEC2から接続できるようにするためには、セキュリティグループの設定が必要。

具体的には、RDsのDBインスタンスのMySQLに接続したい、EC2のセキュリティグループをDBのセキュリティグループに追加するという作業が必要。

その際に、EC2のセキュリティグループとAWSのアカウントIDが必要になる。
アカウントIDは、ログインIDではなく、アカウント毎に別途発行されているIDになるので注意。

A) デフォルトの何も許可されていない状態(AWS Management Console›Amazon RDS > DB Security Groups)

DBSecurityGroup Default

B)  EC2のグループを確認する(AWS Management Console > Amazon EC2 > Instances)

EC2SecurityGroup

C) AWS Account IDを確認する(アカウントアクティビティ > セキュリティ証明書 > アカウント識別子)

AWSのアカウントIDの確認

D) RDSのセキュリティグループに追加する(AWS Management Console›Amazon RDS > DB Security Groups)

BとCで確認した内容をそれぞれ入力してAddを押す
EC2のグループを追加する画面
これでEC2のインスタンスからRDsのインスタンスのインスタンスへ接続が可能になる。

E) 実際に接続するための確認項目

RDsへの接続ホスト名は以下のDB Instancesの画面からインスタンスを選択した際に表示されるEndpointが該当する

DBインスタンス

mysqlコマンドを利用しての接続例(ENDPOINTを上のものに置き換える)

mysql -h ENDPOINT -P 3306 -u ユーザー名 -pパスワード DB名

 

おまけ

ちなみに、EC2のセキュリティグループ以外にも特定のIP等を指定する方法もある。
DB Security GroupsのEC2セキュリティグループのところで「 CIDR/IP 」を選択し、xxx.xxx.xxx.xxx/32 のように特定のIPやネットワークを設定すればOK

自分は現在つかっている、さくらのVPSからAWSに移行するために、さくらのVPSのグローバルIPを指定して、ちょくせつ さくらのVPSからAWSにWordpressのDBを移行した。
参考までに、さくらのVPS上で実行したコマンドは以下。

$ mysqldump -u VPS側のDBユーザー名 -pVPS側のパスワード DB名 | \
> mysql -h ENDPOINT -P 3306 -u AWSRDsのユーザー名 -pAWSRDsのパスワード AWSRDsのDB名

パスワードの入力を標準入力でキーボードから打とうとすると、Poderosaだけなのかわからないが、画面がおかしくなってしまったので、コマンド実行時にパスワードも両方記載した。MySQLの場合、パスワードはオプションからスペースをあけずに、つまり、-pに続けて書く必要がある。

AWSにPoderosaでつなぐ

2011-12-04 環境構築

今の会社に入社してから、WindowsからSSHでサーバーにつなぐってなるとずっとPoderosaを使ってきた。

AWSにも当然、Poderosaで繋ぎたかったのだが、AWSでインスタンス生成時につくられるキーではPoderosaからはつなげないので、Pemを変換して、Poderosaで利用できるようにした。

その際の手順。
■事前条件:
1) PuTTY Key Generatorがインストール済みであること。(WinSCPをインストールしたらセットではいってます)
2) AWSでインスタンスを作成して秘密鍵(A)をダウンロードしてきていること。

▼作業手順
PuTTY Genを起動し、【File】 → 【Load Private Key】押してAのファイルを読み込む

【Conversions】 →【Export ssh.com key 】を押して、鍵を保存(B)

Bの鍵を利用してPoderosaから接続。