3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS Cloudfront + ALB + EC2 + EFS + RDS で ECCUBE

Posted at

ECCUBE を冗長構成をとりながらAWS上にセットアップしてみたのですが、いくつか工夫が必要だったのでメモしておきます。

とりあえず一般的な構成で Cloudfront + ALB + EC2 + EFS + RDS はセットアップしておきます。

Cloudfrontのキャッシュ設定

キャッシュは基本は無効化して、下記のディレクトリだけキャッシュ対象にしておきます。

/app
/html

(/app ってどういうときにブラウザから参照されるんだ...?)

SSLの強制

ECCUBEは X-Forwarded-Proto を考慮してくれないようなので、 index.php の最初の方に

$_SERVER['HTTPS'] = 'on';

を追加しておきます。

(本当はウェブサーバーの方で設定したほうがいいのだけど、手っ取り早く動かしたかったので...)

キャッシュディレクトリをローカルのディスクへ

ECCUBEはキャッシュファイルを大量に作成するようです。

ドキュメントルートをEFS上にしてECCUBEをインストールしますが、そのままだとキャッシュが全部EFS上に置かれてしまい、パフォーマンスが著しく低下します。

シンボリックリンクで var ディレクトリはローカルのディスク上のディレクトリを指すよう変更します。

$ cd /path/to/document/root/
$ rm -rf var
$ ln -s /path/to/dir/on/local/disk/ var

セッションの保存先をDBに変更

EC-CUBE4 セッション情報の出力先をデータベースに変更 を参考に設定変更します


負荷が抑えられなくなってきたら考慮すること

  • ヘッダー部分のカートに入っている商品の表示とかを辞めればページ類もキャッシュできる(CSRFで問題出る?)
  • クエリキャッシュ
  • スレーブDBの参照
3
2
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?