ELBを後からSSL化した時に設定し忘れたもの

HTTPで動かしてたELB配下のサービスをSSL対応しよう!
Listenersから443→80の転送設定追加。以上!!

…ではない。

タイムアウトする

Security Groupの設定を忘れてた。
443を開放。

Stickyが効かない

Stickinessはポートごとに設定が別。
DescriptionPort Configuration:から設定。

AWS高くて個人で使えないから全然慣れないなぁ…。

presence_inを知った。

Rails 4.1.0 で新しく導入された便利メソッド - willnet.in

def available_locale(parsed_locale)
  I18n.available_locales.map(&:to_s).include?(parsed_locale) ? parsed_locale : nil
end

def available_locale(parsed_locale)
  parsed_locale.presence_in(I18n.available_locales.map(&:to_s))
end

これで済む。

知らなかった…使っていこう。

またsing_inって書いてた…

did_you_meanめっちゃ便利。
Ruby - スペルミスでエラーが出たら、正しい名前を教えてくれる gem を作った - Qiita

destoryもよくやる。恥ずかしい。

donwloadもよくやるなぁ。

Nginxのデフォルトサーバーで特定URLだけ200を返す。

IPでアクセスされた時は404にしたいけど、ヘルスチェックの応答には200で応えたい。

/etc/nginx/conf.d/default.conf

server {
  listen 80 default_server;
  server_name _;

  location / {
    return 404;
  }

  location = /healthcheck.html {
    empty_gif;
    access_log off;
    break;
  }
}

を書いたら行けた。

参考

http://qiita.com/yumiyon/items/5cd2c6b4c696355926dc

CarrierWave・Fog・S3でファイルをダウンロードさせる

前提は、

class Model < ActiveRecord::Base
  mount_uploader :file, FileUploader
end
class FileUploader < CarrierWave::Uploader::Base
  storage :fog
end

こんな感じ。

model = Model.take
model.file.url

こうすればS3のURLが取れる。
が、このままだとブラウザ内で開かれる。まぁ別にいいんだけど、要件ってやつがあってね。

いろいろやってみたけど、最終的に、

model.file.url(query: { 'response-content-disposition' => 'attachment' })

に落ち着いた。

参考

http://stackoverflow.com/questions/24947512/rails-carrierwave-s3-get-url-with-content-disposition-header