EC-CUBE on AWS (インストール編)

AWS運用自動化サービス「Cloud Automator」
この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。


on

こんにちは、開発部の千葉です。
さっそくですが、EC-CUBEはご存知ですか?

PHPで開発された、国産のオープンソースECサイト用CMSで、2006年に正式版をリリースされてから
3,500以上のECサイトで利用されている、とても便利なパッケージです。

今回、私が参加しているプロジェクトで、EC-CUBEを構築・カスタマイズすることとなりました。
AWS+EC-CUBEの環境は、セミナー等で良く事例として紹介されていたので
勝手ながら環境構築手順的な情報は多々あるものだと思っていました。

しかし、実際のところは私が求めていた様な情報は多くはなく
存在しても、実運用までは想定されておらず『インストールした』で終わってしまっていました。

そこで、無いなら作ろうと思い立ち、本投稿に至りました。
AWSを上手に活用して、以下の様な環境を構築したいと考えています。





  • ELB+CloudWatch+AutoScalingによる、負荷分散+冗長化
  • RDS+MultiAZによる、データベース可用性の確保
  • S3に画像ファイルを設置することによる、スケールアウトの簡易化
  • SESの利用による、メール配信の信頼性を確保

全部やろうとすると、とても長い記事になってしまうので数回に分けてポストしようと思います。
(何回になるかな。。。)
第1回目の今回は『インストール編』とし、以下のシングル構成でEC-CUBEを動作させてみます。





1. EC2インスタンスの起動

今回は『Basic Amazon Linux AMI 2011.09(64bit)』を利用しました。
EC2インスタンス起動の手順については、割愛させて頂きます。

以降のステップでは、ec2-userにてssh接続した後の処理を記載します。


2. タイムゾーンの設定


3. RPMパッケージのインストール


4. PHPの設定

『date.timezone』の設定値を変更します。
【編集前】

【編集後】


5. RDSの設定

※{}内は、適切な値を入力してください。
RDSインスタンス起動の手順については、割愛させて頂きます。
(RDS:DB Security Groups:Descriptionにて、対象EC2インスタンスからの接続を許可してください)

AWSアカウント認証設定ファイルの作成・編集

環境変数の追加・読込

RDSパラメータの変更
※{}内は、RDS:DB Parameter Groupを指定してください。


6. データベースの作成

※{}内は、適切な値を入力してください。


7. EC-CUBEの設置

httpd.confの編集・起動

【編集前】

【編集後】


8. EC-CUBEのインストール

※{}内は、適切な値を入力してください。
http://{ec2:Public DNS}/install/ にアクセスし、インストール画面を表示します。

以下、画面キャプチャを記載します。

step1 step2




step3 step4




step5 step6




step7 step8




step9 step10





9. 接続してみる

※{}内は、適切な値を入力してください。

  • 管理サイト
  • http://{ec2:Public DNS}/admin/

  • ECサイト
  • http://{ec2:Public DNS}/


    10. installディレクトリの削除

    installディレクトリの削除


    11. RDS:MySQLのタイムゾーンについて

    RDSでは、MySQLのタイムゾーンがUTCとなっており、変更不可パラメータとなっています。
    Webサーバのタイムスタンプを利用する様に実装していれば問題ないのですが
    EC-CUBEでの実装の多くは、タイムスタンプにMySQLの『CURRENT_TIMESTAMP』を利用しています。

    この問題の解決策として、少し面倒ですがセッション確立時に『SET time_zone = ‘+9:00’;』を発行することとしました。
    具体的な修正箇所は以下のとおりです。

    【編集前】

    【編集後】


    最後に

    以上で、EC-CUBEの動作環境は構築できました。
    RDS:MySQLのパラメータ設定、タイムゾーンの設定箇所を除けば、AWS以外の環境で構築するのと変わりはなさそうです。

    次回は『S3に画像ファイルを設置する』を書きたいと思います。

    AWS運用自動化サービス「Cloud Automator」