$30 off During Our Annual Pro Sale. View Details »

Drupal7×Cloudfront×SSL

 Drupal7×Cloudfront×SSL

kazukomurata

May 30, 2017
Tweet

More Decks by kazukomurata

Other Decks in Programming

Transcript

  1. Drupal7×CloudFront×SSL
    村⽥ 和⼦ (@kazuno_ko85)

    View Slide

  2. ⾃⼰紹介
    ´ 村⽥ 和⼦ (@kazuno_ko85)
    ´ デジタルサーカス株式会社 所属
    ´ Drupal は、2015年1⽉〜
    ´ 最近はずっとD7対応しています。
    ´ Drupal meetup Tokyo にもいます。

    View Slide

  3. 概要
    ´ AWS EC2×Drupal7で運⽤していたサイトにCloudFront + AWS Certificate
    Manager を組み合わせて、CDN + 常時SSL化を対応したときのメモです。
    ´ Drupalを中⼼にはまったこと、実際設定したことを中⼼にお話しします。

    View Slide

  4. 概要
    -サーバ構成-
    Cloudfront
    EC2
    port: 433
    port: 80
    IP制限あり
    http://admin.XXXX.co.jpでアクセス
    http://www.XXXX.co.jpでアクセス
    http://www-org.XXXX.com
    port: 80
    SSL
    AWS Certificate
    Manager

    View Slide

  5. 概要
    -作業リスト-
    ´ Drupal
    ´ URL書換
    ´ キャッシュ 無効化
    ´ Cloudfront
    ´ Behaviorsの設定
    ´ AWS Certificate Manager
    ´ 証明書発⾏ & Cloudfrontに設定

    View Slide

  6. Drupal
    -URL書換-
    ´ アクセスされた経路によって、settings.phpにてbase_rootとbase_urlを上書き
    ´ 実際設定した内容(抜粋)
    ´ https://gist.github.com/kazukomurata/9f0de6734fcf892c374fbae0d9b7f663

    View Slide

  7. Drupal
    -キャッシュ 無効化-
    ´ URL⽂字列をキャッシュする機能は無効化
    ´ Metatag
    ´ 匿名ユーザー向けページのキャッシュ
    ´ ブロック キャッシュ
    ´ CSSファイル圧縮
    ´ モジュールが独⾃にCSSを定義しているときに要注意

    View Slide

  8. Cloudfront
    -Behaviorsの設定1-
    ´ キャッシュの定義はURLパスベース
    ´ 参考にしまくったサイト「DrupalをCDNで爆速にする⽅法」
    ´ http://blog.redbox.ne.jp/drupal-advent-calendar2016-cdn.html

    View Slide

  9. Cloudfront
    -Behaviorsの設定2-
    ´ Headerに「CloudFront-Forwarded-Proto」を追加
    ´ ユーザが実際アクセスしているURLをDrupalが知るため

    View Slide

  10. Cloudfront
    -Behaviorsの設定3-
    ´ 画像URLに「itok」のパラメタを許可
    ´ DrupalのImage Styleの仕様
    ´ 例 /sites/default/files/styles/from_our_blog/public/images.jpg?itok=bTXGvg6Mで
    アクセスされた場合、対象画像がない場合はDrupalが⽣成した上で画像をレスポンスす
    る。

    View Slide

  11. Cloudfront
    -Behaviorsの設定4-
    ´ 多⾔語化の場合、URLに⾔語を表す⽂字が⼊ることが多い。
    ´ キャッシュ対象外を設定するときに要注意
    ´ 例 : 「/contact」から始まるURLでフォームの場合、英語ページが
    「/en/contact」で存在するため、以下のようなパス設定でしのいだ。

    View Slide

  12. AWS Certificate Manager
    -証明書発⾏ & Cloudfrontに設定
    ´ AWS Certificate Manager
    ´ Cloudfront かELBにセットする分には無料
    ´ 申し込むとサイト管理者向けにメールが届いて、URLにアクセスすれば完了。

    View Slide

  13. ありがとうございました
    ´ 次回もなにか発表します。
    ´ 枠があれば!
    ´ そろそろDrupal8がやりたい!

    View Slide