Symfoware

Symfowareについての考察blog

RDS + PostgreSQL 9.3にEC2からプライベートIPで接続

AWS + EC2を触ってみています。
はじめてのアマゾンウェブサービス(AWS) nginx + php-fpmでCodeIgniterを動かす

今回はEC2ではなく、RDSサービスでPostgreSQLを動かしてみようと思います。


RDS



まず、RDSサービスにインスタンスを一つ作成します。

管理コンソールに接続。
https://ap-northeast-1.console.aws.amazon.com/console/home

RDSをクリックします。

590_01.png


「Get Started Now」をクリック。

590_02.png


PostgreSQLを選択しました。

590_03.png


Productionの選択では、無料枠で使用してみたいので「No」を選択しました。

590_04.png


DB Instance Classは「db.t2.micro」を選択しました。
Free Tier Eligible:Yesなので、これが無料枠で使用できるインスタンスですね。

その他、データベースの接続ユーザとパスワードを設定します。

590_05.png


VPC Security Group(s)では「default(VPC)」を選択しました。
データベース名は「mydb」、ポートはデフォルトの「5432」にしています。

590_06.png


作成完了です。

590_07.png


しばらく待つと、データベースインスタンスが起動します。

590_08.png







EC2からプライベートIPで接続



こちらで作成したEC2インスタンスからプライベートIPで接続してみます。
はじめてのアマゾンウェブサービス(AWS) nginx + php-fpmでCodeIgniterを動かす

RDSインスタンスのSecurity Groupsのリンクをクリック。

590_09.png


RDSインスタンスが割り当てられているセキュリティーグループが表示されます。
絞りこまれているので解除。

590_10.png


せっかくなので、EC2インスタンスのIPではなくGroup IDを指定して許可してみます。
EC2インスタンスが所属するGroup IDを確認して、RDSのセキュリティグループのEditをクリック。

590_11.png


Typeは「All traffic」、Sourceは「Custom IP」でEC2インスタンスのグループ名を指定。

590_12.png


これでEC2インスタンスから接続できるはずです。




接続テスト



phpから接続するためのライブラリをインストール。


$ sudo apt-get install php5-pgsql





こんなサンプルで確認しました。


  1. <?php
  2. try {
  3.     // データベース「mydb」にユーザー名「pgadmin」、パスワード「Passw0rd」で接続
  4.     $db = new PDO ('pgsql:dbname=mydb;host=mydbinstance.xxx.ap-northeast-1.rds.amazonaws.com', 'pgadmin', 'Passw0rd');
  5.     echo 'PostgreSQLと接続成功';
  6.     // 切断
  7.     unset($db);
  8. } catch (PDOException $e) {
  9.     echo $e->getMessage();
  10. }




hostの指定は、RDSインスタンスの画面で表示される「Endpoint」の名称になります。

590_13.png


EC2インスタンス側でphpコマンドで実行します。


$ php sample.php
PostgreSQLと接続成功




うまく行きました。




サンプルプログラム



こちらで作成したプログラムを動かしてみます。
CodeIgniter3でPostgreSQLを使用する


マイグレーションを実行してテーブルを作成。


$ php index.php migrate




ブラウザでEC2に接続してみます。

590_14.png


590_15.png


動いてくれました。



関連記事

テーマ:サーバ - ジャンル:コンピュータ

  1. 2015/03/09(月) 23:54:27|
  2. PHP
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<AWS RDSサービスの停止(バックアップと復元) | ホーム | CodeIgniter3でPostgreSQLを使用する>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1684-c00815bd
この記事にトラックバックする(FC2ブログユーザー)