カテゴリー : Amazon,ubuntu,MacOSX

このカテゴリーの登録数:2件 表示 : 1 - 2 / 2

Jan 20, 2010

Amazon EC2再び・続き

ポスト @ 7:54:37 , 修正 @ Jan 19, 2010 22:54:37 | Amazon,ubuntu,MacOSX

 個人的備忘録の続き。

 Apache、PHP、MySQLのインストールから。

 sudo apt-get install apache2とやってインストール。http://ec2-xxxx.compute-1.amazonaws.comをブラウザで開いて、It works! と表示されればいい。

sudo apt-get install php5-cli
sudo apt-get install libapache2-mod-php5
sudo apt-get install mysql-server
 *rootのパスワード設定を求める画面が出てくるので入力
sudo apt-get install php5-mysql
 /etc/mysql/my.cnfに以下の2行を追加。 [mysqld]
default-character-set = utf8
skip-character-set-client-handshake
 /etc/php5/apache2/php.iniを少し修正。/etc/php5/cli/php.iniも。
magic_quotes_gpc Off
default_charset = "UTF-8"
mbstring.language Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = pass
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = none;
 一通り設定したら、apacheの設定更新を
sudo /etc/init.d/apache2 reload
とやって反映させる。

 pythonは入っていたので、python-mySQLdb libapache2-mod-pythonだけ追加しておく。あと、phpmyadminもインストール。

 確認すると、MySQLにパスワードのないユーザは存在しなかったので、追加のみ。

sudo /etc/init.d/mysql restart
mysql> show variables like "char%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       | 
| character_set_connection | utf8                       | 
| character_set_database   | utf8                       | 
| character_set_filesystem | binary                     | 
| character_set_results    | utf8                       | 
| character_set_server     | utf8                       | 
| character_set_system     | utf8                       | 
| character_sets_dir       | /usr/share/mysql/charsets/ | 
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
となっていることを確認。

 次に、EBSにMySQLのデータベースを置くための設定。インスタンスが停止してもデータが消えないように。EBSのvolumeは前に作っておいたものを使う。まず、SSHでログインして、sfsprogsをインストール。
 次に、volumeとinstanceの対応付けを行う。

ec2-attach-volume -d /dev/sdh -i i-2exxxx vol-xxxx
次のような表示がなされる。
ATTACHMENT  vol-xxxxxx  i-2exxxxx   /dev/sdh    attaching   2010-01-19T03:18:31+0000
EC2のシステムに戻って、
sudo mkfs.xfs /dev/sdh
mkfs.xfs: /dev/sdh appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.
という表示が出たので、
sudo mkfs.xfs -f /dev/sdh
meta-data=/dev/sdh               isize=256    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=4096   blocks=0, rtextents=0
続いて、
sudo echo "/dev/sdh /vol xfs noatime 0 0" >> /etc/fstab
-bash: /etc/fstab: Permission denied
としたら、拒否されたので、/etc/fstabを開いて書き込んだ。
echo "/dev/sdh /vol xfs noatime 0 0" | sudo tee -a /etc/fstab
とすればよかったのか。
sudo mkdir /vol
sudo mount /vol
次にMySQLをいったん止め、MySQLデータの保存場所の設定を変更する。
sudo /etc/init.d/mysql stop
sudo mkdir /vol/etc /vol/lib /vol/log
sudo mv /etc/mysql     /vol/etc/
sudo mv /var/lib/mysql /vol/lib/
sudo mv /var/log/mysql /vol/log/
sudo mkdir /etc/mysql
sudo mkdir /var/lib/mysql
sudo mkdir /var/log/mysql
echo "/vol/etc/mysql /etc/mysql     none bind" | sudo tee -a /etc/fstab
    /vol/etc/mysql /etc/mysql     none bind
sudo mount /etc/mysql
echo "/vol/lib/mysql /var/lib/mysql none bind" | sudo tee -a /etc/fstab
    /vol/lib/mysql /var/lib/mysql none bind
sudo mount /var/lib/mysql
echo "/vol/log/mysql /var/log/mysql none bind" | sudo tee -a /etc/fstab
    /vol/log/mysql /var/log/mysql none bind
sudo mount /var/log/mysql
MySQLを再起動
sudo /etc/init.d/mysql start
これでいいのだろうか。よく判らない。

 次にユーザの追加。いつもはこれはGUIでやっていたので、コマンド操作は久しぶり。Jonas Lieさんのjonasというユーザを追加するときの例。

sudo adduser jonas
Adding user `jonas' ...
Adding new group `jonas' (1002) ...
Adding new user `jonas' (1002) with group `jonas' ...
Creating home directory `/home/jonas' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for jonas
Enter the new value, or press ENTER for the default
    Full Name []: Jonas Lie
    Room Number []: 
    Work Phone []: 
    Home Phone []: 
    Other []: 
Is the information correct? [Y/n] Y
これで/homeディレクトリ下にはubuntuとjonasという二つのホームディレクトリが存在している状態になる。

Jan 19, 2010

Amazon EC2再び

ポスト @ 22:11:09 , 修正 @ Jan 19, 2010 13:11:09 | Amazon,ubuntu,MacOSX

 何度も書いているように、引っ越しである。引越しの最中は自宅サーバは動かせない。引っ越し荷物の中に入っているからだ。今回もまた、Amazon EC2で動かすことにしよう。

 前と違うのは、Ubuntu Server on Amazon EC2というのがCanonicalから正式に発表されていることである。そして、Ubuntuの解説サイトEC2StartersGuideを読めば、簡単に動かせるのだ。

 EC2のアカウント取得などは、すでにできているものとして、今回はUbuntu Server on Amazon EC2を書き留めておく。主に自分用の備忘録である。こういう最初の設定などはすぐに忘れてしまうから、手順を書き留めておかなくてはあとで困るのからだ。

 アカウントを作って、X.509 Certificateとそれのprivate keyをダウンロードしておく。private keyをなくしてしまったら、certificateを作り直さなくてはならない。後で参照することはできない仕組みになっているのだ。その辺の準備ができたらインスタンスを起動するのだが、今回は、9.10 Karmic Koala us-east ami-1515f67cを選んだ。

 まずはUbuntuで操作する場合、sudo apt-get install ec2-api-toolsとやって、ec2-api-toolsをインストール。何と便利なのだろう。
~/.bashrcに

export EC2_PRIVATE_KEY=$HOME//pk-XXX.pem
export EC2_CERT=$HOME//cert-XXX.pem
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/
 私は~/.ec2にこれらのファイルを置いたので、~/.ec2/pk-xxx.pemといった具合に記した。 次に.ec2へ移動して、
ec2-add-keypair ec2-keypair > ec2-keypair.pem
としたあと、
chmod 600 ec2-keypair.pem
とやって、このファイルを他所の人が見られないようにする。これが755だったりすると、怒られてログインできない。
ec2-run-instances ami-xxxxx -k ec2-keypair
というようにインスタンスを立ち上げて、
ssh -i /path/to/ec2-keypair.pem ubuntu@external-host-name
というようにsshでログインする。ユーザはrootで入ろうとすると、また怒られてしまってログインできない。ubuntuで入って、適宜sudoを使いなさいと言われるので、それに従う。

 MacOSXの場合は、Amazon EC2 API Toolsをダウンロードして、適当なところに配置する。その後、~/.bash_profileに

export EC2_HOME=/Users/tolleetlege/ec2-api-tools
export PATH=$PATH:$EC2_HOME/bin
export EC2_PRIVATE_KEY=/Users/tolleetlege/.ec2/pk-xxxx.pem
export EC2_CERT=/Users/tolleetlege/.ec2/cert-xxxx.pem
export JAVA_HOME=/Library/Java/Home
などと書く。あとはUbuntuとほぼ同じ。もちろん、EC2_HOMEはどこでも自分の好きなところへ。

これで最低限の準備ができたところ。続きはまた。