Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

JAWS-UG Osaka 2013.06.22 RDBMS on EC2

No description
by

Toshiyuki Konparu

on 22 June 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of JAWS-UG Osaka 2013.06.22 RDBMS on EC2

AmazonEC2での
データベース初心者入門

ご注意
本セションは、
株式会社あすか 宗近さん
の代講です。
内容についての質問等は、宗近さんまでお願いいたします。
目的
Amazon EC2の初心者がMySQLとPostgreSQLを導入し、phpMyadminもしくはphpPgAdminから操作が出来るようになるまでを説明します。
本資料は以下のURLの内容と同一の内容です。
EC2インスタンスを立ち上げる
EC2のインスタンスを立ちあげてください(ここでは割愛します)
t1.micro で十分です。OSは、Amazon Linuxを選択してください
AmazonLinuxにyumで
関連パッケージをインストール
下記のコマンド(root権限で実行)でMySQLやPostgreSQL関連のパッケージ、PHPやApacheをインストールします

yum -y install mysql postgresql mysql-server postgresql-server php php-pdo php-mysql php-pgsql php-mbstring php-mcrypt

PostgreSQLの起動
最初の起動時は、データ領域を初期化する。
   
service postgresql initdb
次にPostgreSQLを起動し、サービスが自動起動されるようにする。
   
service postgresql start
   chkconfig postgresql on


Conclusion
t1.micro最高!
t1.microはCPU Burstが可能なので、短時間CPUを使うような処理はもっともリーズナブルに行えます
今回のpgbenchもそういうケースと言えます
本気で使う場合は、ユースケースに合わせてインスタンスタイプを選択しましょう(ご相談は「駆け込み寺コーナー」で)
経験的にはc1.mediumが色々な場面でよいバランスを見せています

http://myhome.munetika.mydns.jp/ossdbwiki/index.php/初心者向けDB入門
http://goo.gl/wLtrJ (こちらでもOK)

自己紹介
金春 利幸 (こんぱる としゆき)
アールスリーインスティテュート
    ファウンダー&マネージャー
好きなAWSサービス: Route53
MySQLの起動
初期起動時に自動的に初期化される

service mysqld start
chkconfig mysqld on


Apacheの起動
普通に起動

service httpd start
chkconfig httpd on

postgresユーザにパスワードを設定
postgresユーザになる。
su – postgres
psqlを起動
psql
alterコマンドでpostgresのパスワードを設定(パスワードは postgres )
alter user postgres with password 'postgres';

PostgreSQLの認証の設定変更
データディレクトリへ
cd /var/lib/pgsql9/data
pg_hba.confを編集
vi pg_hba.conf
以下の2箇所を修正
#local all all peer

local all all md5

#host all all 127.0.0.1/32 ident
  ↓
host all all 127.0.0.1/32 md5
postgresql.confを編集
vi postgresql.conf
以下の箇所を修正
#listen_addresses = 'localhost' # what IP address(es) to listen on;

listen_addresses = 'localhost' # what IP address(es) to listen on;
PostgreSQLの再起動
以下のコマンドで再起動
service postgresql restart
Phpmyadminの導入
最新版は http://www.phpmyadmin.net/home_page/downloads.php で確認
ダウンロード
wget -P /usr/local/src 'http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.5.8/phpMyAdmin-3.5.8-all-languages.tar.bz2‘
展開
tar -jxf /usr/local/src/phpMyAdmin-3.5.8-all-languages.tar.bz2 -C /var/www/html
ディレクトリ名の変更
cd /var/www/html
mv phpMyAdmin-3.5.8-all-languages phpmyadmin
動作確認
http://(amazonEC2のサーバ)/phpmyadmin/ にブラウザでアクセス。
「パスワードなしログインは設定 (AllowNoPassword 参照) によって禁止されています」 のエラーメッセージが出るので、一旦セキュリティを緩めrootでログインできるようにする。
config.phpの修正
cd /var/www/html/phpmyadmin
cp config.sample.inc.php config.inc.php
以下の箇所を修正する
// $cfg['Servers'][$i]['AllowNoPassword'] = false;

$cfg['Servers'][$i]['AllowNoPassword'] = true;
ログインを確認し、適切なユーザを作成したら設定を戻し、rootでログインできないようにする。
phpPgAdminの導入
最新版は http://phppgadmin.sourceforge.net/doku.php?id=download で確認
ダウンロード
wget -P /usr/local/src 'http://downloads.sourceforge.net/project/phppgadmin/phpPgAdmin%20%5Bstable%5D/phpPgAdmin-5.1/phpPgAdmin-5.1.tar.bz2'
展開
tar -jxf /usr/local/src/phpPgAdmin-5.1.tar.bz2 -C /var/www/html
ディレクトリ名の変更
cd /var/www/html
mv phpPgAdmin-5.1 phppgadmin
設定変更(config.inc.phpを編集)
cd phppgadmin/conf
vi config.inc.php

以下の箇所を修正
// Hostname or IP address for server. Use for UNIX domain socket.
// use 'localhost' for TCP/IP connection on this computer
// $conf['servers'][0]['host'] = ;

$conf['servers'][0]['host'] = 'localhost';
// passworded local connections. // $conf['extra_login_security'] = true;

$conf['extra_login_security'] = false;
ここまでのセットアップを実際に行ったインスタンスをみてみましょう
そして気になることが・・・
ここからはすべて私が追加した内容です
EC2 instance type による違い
ここで入れたPostgreSQLがEC2のinstance typeによってどれくらいパフォーマンスが違うのか????

pgbench(PostgreSQL付属のベンチマークツール)で簡易計測!

10人が同時接続し、1人あたり1000回のトランザクションを実行するモデルで計測
t1.micro ($0.027 / h)
-bash-4.1$ pgbench -c 10 -t 1000 test
Password:
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1
query mode: simple
number of clients: 10
number of threads: 1
number of transactions per client: 1000
number of transactions actually processed: 10000/10000
tps = 243.881804 (including connections establishing)
tps =
244.225490
(excluding connections establishing)
m1.small ($0.088 / h)
-bash-4.1$ pgbench -c 10 -t 1000 test
Password:
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1
query mode: simple
number of clients: 10
number of threads: 1
number of transactions per client: 1000
number of transactions actually processed: 10000/10000
tps = 308.016161 (including connections establishing)
tps =
309.150738
(excluding connections establishing)
対t1.micro 値段は3.3倍 性能は1.2倍
→ う〜ん、リーズナブルさがない

c1.medium ($0.185 / h)
-bash-4.1$ pgbench -c 10 -t 1000 test
Password:
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1
query mode: simple
number of clients: 10
number of threads: 1
number of transactions per client: 1000
number of transactions actually processed: 10000/10000
tps = 644.641252 (including connections establishing)
tps =
646.899195
(excluding connections establishing)
対t1.micro 値段は6.9倍 性能は2.6倍
→ あれ?
m3.2xlarge EBS Optimized ($1.570 / h)
-bash-4.1$ pgbench -c 10 -t 1000 test
Password:
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1
query mode: simple
number of clients: 10
number of threads: 1
number of transactions per client: 1000
number of transactions actually processed: 10000/10000
tps = 849.789074 (including connections establishing)
tps =
852.566524
(excluding connections establishing)
対t1.micro 値段は58倍 性能は3.5倍
→ えっ?
Full transcript