12月 1st, 2009/mntを有効活用しよう
今回もしつこくEC2ネタ。
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/sda1 9.9G 8.9G 467M 96% /
/dev/sda2 147G 34G 107G 24% /mnt
none 854M 0 854M 0% /dev/shm
上記はスモールインスタンスのサーバーの状況です。
EC2はインスタンスを立ち上げたらすぐでも使えるけれども、実際は設定をちょこちょこ変えないと本番環境としては使えません。
その代表たるものが/dev/sda1の容量。
/dev/sda1にOSが入っていてwindowsでいうところのCドライブで、/dev/sda1がDドライブになります。
この/dev/sda1というのが最大10Gとなっており、OSをインストール後は実際使えるのは5〜6Gくらいしかない状態になります。
バックアップデータ等人為的に作成するデータはもちろん/mnt(/dev/sda1)以下におけばいいのだけど、システム的に肥大化していくファイルたちも/mntで展開するようにしないといけません。
これを忘れるとあっという間にHDがいっぱいになってしまいます。
/mntに移すファイルとしては下記のようなものがあります。
1、/var/log/httpd→/mnt/log/httpd
アクセスログやエラーログの保存場所を変更ローテーションしていても少し大きなサイトなら5Gくらいのログはあっという間です。
httpd.confで設定変更
2、/var/lib/mysql/→/mnt/mysql
mySQLのデータが肥大化していくので保存先を変更。
バイナリログを吐き出す設定にしている場合はなおさら。
my.confで設定変更
3、/var/www/→/mnt/www
apacheの公開ディレクトリもサービスによってはユーザーのデータが増えたりログが増えたりするので変更。
httpd.confで設定変更
4、/home/(ユーザーディレクトリ)/→/mnt/home/(ユーザーディレクトリ)
ユーザーによってどんなファイルをおくかわかないのでユーザー作成時に/mnt以下にホームディレクトリを作るように癖付けとく。
useradd -d /mnt/home hogeで明示
もちろんシンボリックでもOK。
但しこの/mnt以下はイメージを作成しようとしても対象外となる。
イメージ化できるのは/dev/sda1のみです。
またこうしてできたAMIで新たにインスタンスを立ち上げても/mnt以下に適切なディレクトリができてないためapacheやmySQLの起動にこけるので注意。
ここは起動スクリプトでも書いとけばok。