Amazon EBSで Apache2とmysqlを動かしてみた

2009/04/12

どうもこんにちは!!
そろそろエンジニアに転職できるのでは?と、錯覚し始めたWebデザイナーです。

先日、Amazon EC2に Amazon EBS をアタッチ(接続) してみたのですが、
EBS側に直接データを保存しなきゃ意味が無いことに
家路の途中で気がつきました…。(´・ω・) 

Mac OSX ターミナルを起動して、SSHで EC2へログインします。

  1. EC2へSSHログイン
    # ssh -i EC2key.pem root@ec2-XXXX.amazonaws.com
  2. nanoエディタでバーチャルドメインの設定ファイル「mysite01.com」を編集
    # nano /etc/apache2/sites-available/mysite01.com
    ↓↓該当部分に「/vol」を追加するだけ。
  3. NameVirtualHost 00.00.00.00
    <VirtualHost *:80>
    ServerName www.mysite01.com
    DocumentRoot /vol/var/www/mysite01.com
    AddHandler cgi-script .cgi .pl
    CustomLog /vol/var/www/mysite01.com/access.log combined env=!no
    ErrorLog /vol/var/www/mysite01.com/
    <Directory /vol/var/www/mysite01.com>
    Options IncludesNoExec ExecCGI FollowSymLinks Indexes
    AllowOverride None
    </Directory>
    </VirtualHost>
  4. [ctrl]+x
    Save modified buffer ?と聞かれたら
    y → [Enter]
    と打って、nanoエディタを終了
  5. ログ用のディレクトリをEBSをアタッチした「vol」ディレクトリ以下に作成
    # mkdir -m 755 /vol/var/log/apache2/mysite01.com
  6. www用のディレクトリをEBSをアタッチした「vol」ディレクトリ以下に作成
    # mkdir -m 755 /vol/var/www/mysite01.com
  7. 必要であれば、既存wwwファイルを「vol」以下へ移動
    # mv /var/www/mysite01.com/* /vol/var/www/mysite01.com
  8. Apache2を再起動
    # /etc/init.d/apache2 restart

ホームページファイルをアップする時は、「vol」以下の
/var/www/バーチャルドメイン用ディレクトリにアップすること。


ついでにデータベース ( mysql ) も、EBS側の「vol」以下で動くように設定しちゃう。

  1. mysqlを停止する
    # /etc/init.d/mysql stop
  2. 「vol」以下にシンボリックリンクを作成
    # ln -s /var/lib/mysql /vol/lib/mysql
  3. mysqlを起動
    # /etc/init.d/mysql start
  4. rootユーザでmysqlへ接続
    # mysql -u root -p
  5. パスワードを入力
    Enter password: rootユーザのパスワード
  6. データベースが作成できるかテスト
    mysql > create database test00;
    Query OK, 1 row affected (0.00 sec)
    と表示されればOK
  7. mysqlから脱出
    mysql > exit
  8. シンボリックリンクをはったディレクトリ内部を参照
    # ls /vol/lib/mysql/
    「test00」と表示されていれば、万事OK!!


これで万が一、Amazon EC2がダウンしちゃっても、
大事な大事なWebデータ&データベースの内容は、
EBS側に保存されているので超安心!!(・∀・)


なのに 2010年Amazonの旅は、まだまだ続きがあるのです…。

関連エントリー

  1. こんなにスゴイぞ、Amazon EC2
  2. Amazon Web Service、アカウントを取得してみた
  3. Amazon EC2/S3を申し込んでみた
  4. Amazon EC2、X.509証明書を取得してみた
  5. AWS Management Consoleで Key Pairsを取得してみた
  6. Mac OSXでAmazon EC2 Command-Line Toolsを使ってみた
  7. Amazon EC2、インスタンスを立ち上げてみた
  8. Amazon EC2、SSHでログインしてApacheを起動してみた
  9. Amazon EC2、Debianを設定してみた
  10. Amazon EC2、DebianでFTP(vsftpd)設定
  11. Amazon EC2のイメージファイルをS3に保存する
  12. Amazon EC2で固定IPを取得する
  13. Amazon EC2を独自ドメインで使う
  14. Amazon EC2をバーチャルドメインで運用する
  15. Amazon EC2、EBS(Elastic Block Store)を使ってみた
  16. Amazon EBSで Apache2とmysqlを動かしてみた
  17. Amazon CloudFront でちょっぱやを実装してみた
  18. Amazon EC2、AMIを共有する
  19. Amazon EC2上でインスタンスをオートスケールできる「Wakame」
  20. [ 非常事態宣言!!] Amazon EC2、ホームページが消えました
  21. Amazon サポートセンターに連絡を取ってみた
  22. Amazon EC2、SSH(22番ポート)の設定方法はこうすべき!

Amazon EBSで Apache2とmysqlを動かしてみたへのコメント数: 4

  • コメント:kato

    よくサイトを参考にさせていただいています。

    # ln -s /var/lib/mysql /vol/lib/mysql
    これだと実態は /var/lib/mysql になるので、EBSには保存されないのではないかと思うのですが。

    cp -a /var/lib/mysql /vol/lib/mysql
    ln -s /vol/lib/mysql /var/lib/mysql
    これであれば、実態はEBSに移り、mysqlの設定を変えることなく動くと思います。

  • コメント:Kaoru Maruko

    katoさん はじめまして。(^-^)
    コメントどうもありがとうございます。

    ># ln -s /var/lib/mysql /vol/lib/mysql
    >これだと実態は /var/lib/mysql になるので、
    >EBSには保存されないのではないかと思うのですが。

    え、ホントですか?! 
    /vol/lib/mysql の中には、ちゃんとDBが出来上がっているのですが
    上記で記載した以外のコマンド叩いた記憶がありません…。
    私、なにかミラクルを起こしたかしら…。(^-^;)

    わざわざご丁寧なご指摘をくださって、ありがとうございました。
    また頑張ってお勉強して、ご指摘の意味を理解できたら
    加筆するようにしますね!

    Webデザイナーが書いたエントリーなのに
    katoさんのようにスキルのある方に見ていただけてること、とても嬉しいです。
    どうもありがとうございました!!

  • コメント:junichiro

    それはミラクルじゃないですねw

    ln -s はいわばショートカット(エイリアス)を作るコマンドですので、
    /vol/lib/mysql が /var/lib/mysql のショートカットになっているに過ぎません。

    つまり、実体というか本体は依然として、/var/lib/mysql にあり、
    /vol/lib/mysql はそれのショートカット(別名)として存在している状態です。

    ですので、/vol/lib/mysql をのぞいてみても、DB が出来あがっているように見えます。

    ls -la /vol/lib

    を見て、mysql -> /var/lib/mysql
    とかになっていたら、それは /var/lib/mysql に実体があることを示しています。

    古い記事でしたが、このまま気づかずに1年以上運用されていたら… と
    他人事なのに不安になってしまい、余計なコメントをさせて頂きました。

  • コメント:admin

    ですって!ですって! 良い子のみんなは真似しないでくださいね!!
    junichiroさん、ご指摘どうもありがとうございました!!

コメントを投稿する