ALBでSSL TerminateしているEC2で稼働するfuelphpをいい感じに動かしていい感じにhttpsで喋らす方法なお俺は喋るのが下手です

俺です。

ちょっとだけハマったピーエッチピーネタです。

ALB/ELB ClassicでSSL Terminateしている環境で動作するFuel PHPなWebページがあったときに、
トップページはhttpsでアクセスできるのに、他のページに遷移しようとするとhttpになっちゃうって現象たまーにありますよね。
そんなときはallow_x_headersでXヘッダを利用できるよう、有効にしておきましょう。

  • fuel/app/config/config.php
security.allow_x_headers

ドキュメントはこれ

おわり

続きを読む

CircleCIでRailsアプリをAmazon ECRにpushする

概要

railsアプリのテストとECRへのプッシュが目的。

サンプルコード

circle.yml
machine:
  services:
    - docker
  timezone:
    Asia/Tokyo
  environment:
    CIRCLE_ENV: test
dependencies:
  pre:
    - if [[ -e ~/docker/ruby.tar ]]; then docker load --input ~/docker/ruby.tar; fi
    - if [[ -e ~/docker/awesome-app-$CIRCLE_BRANCH.tar ]]; then docker load --input ~/docker/awesome-app-$CIRCLE_BRANCH.tar; fi
    - bundle --path=vendor/bundle
    - bundle exec rake assets:precompile
  cache_directories:
    - "~/docker"
    - "vendor/bundle"
    - "public/assets"
  override:
    - docker info
    - docker build -t $DOCKER_REPOS/awesome-app:$CIRCLE_BRANCH .
    - mkdir -p ~/docker
    - docker save -o ~/docker/ruby.tar ruby
    - docker save -o ~/docker/awesome-app-$CIRCLE_BRANCH.tar $DOCKER_REPOS/awesome-app:$CIRCLE_BRANCH
database:
  override:
    - bundle exec rake db:create db:schema:load db:migrate rake db:seed_fu
test:
  override:
    - bundle exec rubocop
    - bundle exec rspec
deployment:
  hub:
    branch: /^(master|staging)$/
    commands:
      - $(aws ecr get-login --region $AWS_REGION)
      - docker push $DOCKER_REPOS/awesome-app:$CIRCLE_BRANCH

dependencies

CircleCIだと、dockerイメージのキャッシュがされないので、
docker save & loadするっていうハックが一般的みたい。
~/dockerに逃してるが、将来docker imageがキャッシュされたら再検討。

bundleも忘れずにキャッシュされるようにしておく。

deployment

deploymentのセクションに関して、
master、stagingブランチの時だけECRにpushしたいという意図がある。
CIRCLE_BRANCHには、pushされたブランチ名が入るので、正規表現で切り分ける。

ENV

事前にCircleCI側にENVを設定する必要あり。
画面遷移: Setting->BUILD SETTINGS->Environment Variables

  • AWS_ACCESS_KEY_ID
  • AWS_ACCOUNT_ID
  • AWS_REGION
  • AWS_SECRET_ACCESS_KEY
  • DOCKER_REPOS
  • SECRET_KEY_BASE

続きを読む

リバーベッド、ベライゾンとの協力でクラウドへのネットワーク接続を強化するAWS Direct Connect Bundle …

本ソリューションにより、企業は支社およびデータセンタを、セキュアかつ管理・最適化されたネットワークサービスを通じて、AWS環境に接続することができます。 続きを読む