Eccube

ECCUBE3 * キャッシュファイルをEFS外に置く

基本的な考え方は、2.13と同じです。
参考 >> https://shoroji.com/2019/10/4355/

 

eccube3¥ efs¥ app¥、html¥、src¥、vendor¥
_cache¥

※nginx / apacheのdocument rootは、
「/var/www/html/eccube3/efs/html/」となります。

***

触るのは、2箇所。

/app/config/eccube/path.yml

template_temp_realdir: /var/www/html/eccube3/_cache/eccube/template
csv_temp_realdir: /var/www/html/eccube3/_cache/eccube/csv
plugin_temp_realdir: /var/www/html/eccube3/_cache/plugin

/src/Eccube/Application.php

「/cache/」で検索した、該当箇所

139行目 >> 'http_cache.cache_dir' => '/var/www/html/eccube3/_cache/http/'
218行目 >> 'translator.cache_dir' => $this['debug'] ? null : '/var/www/html/eccube3/_cache/translator',
240行目 >> 'session.storage.save_path' => '/var/www/html/eccube3/_cache/eccube/session',
290行目 >> $cacheBaseDir = '/var/www/html/eccube3/_cache/twig/profiler/';
292行目 >> $cacheBaseDir = '/var/www/html/eccube3/_cache/twig/production/';
483行目 >> 'orm.proxies_dir' => cache_dir. 'doctrine/proxies',

見落としがあれば、修正下さい。

-

ECCUBE3 x EFS x Cloudfrontが、遅すぎて使えなかった件

誰もやっていないのか、Eccube3をEFS上で運用していないのか?
まったく、記事が見当たりませんでしたので。

***

もう手放せないEFS

今回、遅くてx2、使い物にならなくて、

  • EFS mountedフォルダーだと、10秒。
  • EC2直下だと、2、3秒。

/app/cache/は、それぞれのEC2下のフォルダーに配置しています。

 

開発環境は、エラーログの確認が面倒なので、
ロードバランサー(ALB)を付けずに、シングルサーバーで、
SSLを付けたいので、Cloudfrontを経由していました。

個別のフォルダーで、書き換えが置きているのかと思い、
/html/、/src/、/vendor/などを、
シンボルリンクで、直下のフォルダーと置き換えたりしましたが、

置き換えフォルダー数に応じて、遅くなります。。。

そんなこんなを、1週間弱格闘しました、、、

***

Cloudfront ?

まさかと思って、Cloudforntを外し、ALB経由してみたところ、
直下のファイルと同等の速度が出ました。

2.13のときは、同じ設定で、Cloudfrontと同速だったのに、
3から、キャッシュのあたりで、Cloudfrontと相性が悪いようです。
設定の見直しが必要なのかもしれませんが、

EFS上のフォルダーを、1つでも、シンボルリンクで置き換えると、
劇的に遅くなるのは、どうしてなんでしょうかね?
当初は、書き込みが遅延していると思いましたが、
cacheはEFS外だし・・・

 

参考 >> cacheファイルをEFS外に置く方法

-