nginx+pumaでRailsで動かす場合コネクションプールの数を増やさないと `ConnectionTimeoutError` が発生するよ

先に結論 pumaは worker * スレッド の数だけコネクションを使う しかし、ActiveRecordのコネクションプールの数はデフォルトで 5 なので大抵不足する コネクションが不足すると、DBへの接続リクエストは待ち状態に 待ち状態のまま一定時間が経過すると、Act…

「カンバン:ソフトウェア開発の変革」の読書メモ

カンバン: ソフトウェア開発の変革作者: David J. Anderson出版社/メーカー: リックテレコム発売日: 2014/10/10メディア: Kindle版この商品を含むブログ (1件) を見る カンバン手法の目的って何? ワークフローの見える化による段階的なカイゼン 仕掛り(WIP)…

Amazon Lambda おぼえがき

いろいろ忘れるのでメモ 環境変数を使いたい コードタブの下の方に入力するカラムがある 環境変数を暗号化したい KMSを使って暗号化する方法がある KMSで認証情報を暗号化しLambda実行時に復号化する | Developers.IO このとき、ロールにKMSへのアクセス…

ElasticBeanstalkでメモリ使用率が一定値を超えたらslackでアラートを出したい

ElasticBeanstalkでメモリ使用率やHDD残量をモニタリングする方法の続き ざっくり解説 ElasticBeanstalkの「アラーム」では、CloudWatchでメトリクスしている項目が設定した閾値を超えた時、AmazonSNSのSNSトピックに通知を渡すことができる AmazonSNSと…

ElasticBeanstalkでメモリ使用率やHDD残量をモニタリングする方法

最初に ここに書いてある 例: カスタム Amazon CloudWatch メトリクスの使用 - AWS Elastic Beanstalk ざっくり解説 ElasticBeanstalkでは、CloudWatchを使って各項目のモニタリングが可能 CloudWatchがEC2でモニタリングしている項目に、メモリ使用量やHDD…

ElasticBeanstalkで独立したRDSに接続する手順(Railsの場合)

解説 ElasticBeanstalkでは、環境にRDSインスタンスを作成することができる しかし、環境内にRDSインスタンスを作成した場合、環境を終了させると、RDSインスタンスも終了してしまう そのため、本番環境ではRDSインスタンスを環境外に作成して、環境に接続し…

クイズで学ぶ初心者がハマりがちなRubyの代入いろいろ

クイズ1 以下のコードを実行した場合、変数 a の値はどうなるでしょう? a=100 b=a b=200 答え 100 解説 a=100では、変数aに数値オブジェクト100を参照させている b=aでは、変数bに変数aと同じオブジェクトを参照させている そして、b=200では、変数bに数値オ…

Rubyの代入では参照値が代入先に格納される

先に結論 rubyの代入はオブジェクトの参照値(ポインタのようなもの)が代入先に格納される もし、格納元が参照値の場合、同一の参照値が代入先に格納される(参照の参照にはならない) イメージとしては、C++のポインタの値の代入に近い 文字列"aaa"を変数aに代…

「アジャイルコーチング 2章 みんなと一緒に働く」の読書メモ

アジャイルコーチング作者: Rachel Davies,Liz Sedley,永瀬美穂,角征典出版社/メーカー: オーム社発売日: 2017/01/21メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る チームで一緒に働くためのスキルの章 2.1 傾聴と、2.3 フィードバ…

2016年を(いまさら)振り返る

1年の約20%が経過しましたが、皆様いかがお過ごしでしょうか? 今年の目標も20%ほど達成しましたか? 私といいますと、これから今年の目標を定めるために2016年を振り返ろうと思います…! 去年の振り返り kasei-san.hatenablog.com Keep 副業はじめました sugi…

Railsを動かしているElasticBeanstalkにpuma_worker_killerを入れる方法

経緯 Railsを動かしているElasticBeanstalkでメモリの消費量が増大している 定期的/一定量のメモリを消費したらアプリをリスタートしたい 注意事項 まずはRailsやpumaなどを最新にして、自アプリ以外が原因のメモリリークをなくしましょう っていうか自アプ…

「入門 考える技術・書く技術」読んだ

入門 考える技術・書く技術作者: 山崎康司 出版社/メーカー: ダイヤモンド社発売日: 2011/04/08メディア: 単行本(ソフトカバー)購入: 15人 クリック: 71回この商品を含むブログ (24件) を見る この本で何を解決したくて読んだの? 「伝わりやすい」文章を書…

かせいさんの開発環境2017

会社で新しいMacBookPro頂いたので、環境構築がてら最近の自分の開発環境を記録してみます あんまり珍しいものは入れてないですね GUIアプリ Vivaldi Chromeベースのwebブラウザ Vimperator に慣れすぎてFireFoxから出れなかった自分を動かしてくれた神ブラ…

Amazon Elastic Beanstalk でデプロイ時に database.yml に database.example.yml をsymlinkする方法

database.yml をgitにcommitしたくないよね... そんな時に 先に方法 files: "/opt/elasticbeanstalk/hooks/appdeploy/pre/01a_symlink_database_yml.sh": mode: "000777" content: | #!/bin/bash cd /var/app/ondeck/config ln -sf database.example.yml dat…

ロードバランシングしている場合、サーバまたいでもRailsのcookie sessionって保持されるか不安になった時に見るページ

いつもはkey-valueストアでやっているので、cookie sessionを使うとなった時に心配になったのでメモ 先に結論 sessionは保持される 理由 cookie sessionは、ブラウザ側でsessionの情報を保持して、サーバ側に情報を持たないから cookieおさらい cookie : web…

Amazon Elastic Beanstalk で t2.micro で Rails をデプロイすると、gem install に失敗する件

先に結論 もう少し良いインスタンスを使う 原因 bundle install 時に メモリが不足が原因で native extension のビルドに失敗している エラーメッセージ An error occurred while installing nokogiri (1.6.8.1), and Bundler cannot continue. Make sure th…

HerokuのDBにAmazon Elastic Beanstalkからアクセスする

これは何? Herokuで運用しているアプリを、ふとAmazon Elastic Beanstalkに移行したくなった けれど、軽く試すためだけのために、DBを移行するの大変 そんな時にお手軽に試す為の方法の記録 Heroku から DB の情報を取得する heroku では、database.yml に接…

slack に書かれた内容を Amazon Polly で読み上げてみた

この記事は feedforce Advent Calendar 2016の6日目です!! www.adventar.org 昨日は、tjinjin の ドラッカー風エクササイズをチームで試してみました でした cross-black777.hatenablog.com 期待マネジメント大事ですね。 ウチのチームも一度やってみたら面…

負荷テストについて思ってることをポエムする

色々知見が溜まってきたのでポエムします 言いたいこと 「なにをもってゴールとするか?」の合意を取ろう まず実測 本番環境にできうる限り近い環境でやろう 実測ツール紹介 中央値も見よう 「なにをもってゴールとするか?」の合意を取ろう やろうと思えばど…

自分の考えるリファクタリング指針

なにこれ? リファクタリングが尿を漏らしそうなくらい好きなのだけれど、気分に任せるままやっている節があるので、自分の中ののリファクタリング指針を明確にしたい— かせいさん#C90(金)東エ04-a (@kasei_san) 2016年7月14日 文書化して明確にしてみよう 目…

Serverspec本どくしょかんそうぶん

Serverspec作者: 宮下剛輔出版社/メーカー: オライリージャパン発売日: 2015/01/17メディア: 単行本(ソフトカバー)この商品を含むブログ (6件) を見る 読書メモ Serverspec本読書メモ 1章〜3.4章まで Serverspec本読書メモ 3.5章〜3.12章まで Serverspec本…

【持ってきてよかったもの】4泊6日のオーストラリア旅行に行って【持っていった方がよかったもの】

家庭の用事で4泊6日のオーストラリア旅行に行ってきました 次回の備忘のために、持ってきてよかったものと、持って行ったほうが良かったものを記します 良かったもの ファーストクラスラウンジのチケット ヤフオクで1枚3500円程度で購入 ラウンジ以外に、ち…

【1日1gem】 rspec3 でも its が使いたい! rspec/rspec-its

1日1gemとは 最近好きなgemってありますか? という質問に自分が答えられるように始めたgemを紹介する記事 rspec/rspec-its https://github.com/rspec/rspec-its 何をするの? rspec3 で core から無くなった、 its を復活させる gem 正確には、 its が別gemに…

ActiveRecordeの関連付けで、class名と異なる関連名を使いたい場合、 class_name オプションを使う

こんな場合 class Item < ActiveRecord::Base has_one :item_detail, dependent: :destroy end class ItemDetail < ActiveRecord::Base belongs_to :item end ItemDetail を参照するとき、記述が冗長になってしまう # item って単語が重複するのがキモい ite…

paperclip の写真の格納先をS3に変更する

やりたいこと paperclip の写真の格納先をS3にしたい 方法 Paperclip に S3 用のオプションがあるので、それを使う aws-sdk のインストール Gemfile gem 'aws-sdk' paperclip のデフォルトの設定を追加 config/application.rb class Application < Rails::Ap…

Paperclip を使って Rails アプリに画像アップロード機能を追加する

やりたいこと Rails アプリに画像アップロード機能を追加したい 方法 thoughtbot/paperclip を使う paperclip のインストール Gemfile # 次のイテレーションで aws-sdk を使うが、その時に ver2 を使いたいので、Paperclipを最新のものにした gem 'paperclip…

cocoon を使って、1フォームで1対多のモデルを動的に編集できるようにする

やりたいこと Railsで1対多のmodelがあるときに、 親modelのformで子modelを動的に追加したり削除したりしたい 方法 nathanvda/cocoon を使う つくりかた Gemfile gem 'cocoon' Item の scaffold を generate rails g scaffold item name:string price:integ…

過去のcommitを修正したい時は、 `git commit --fixup` と `git rebase --autofixup` を使おう!

git

先に結論 過去のcommitを修正したい時は、 git commit --fixup=#{commit番号} してから、git rebase --autofixup --autofixup オプションは、 git commit --fixup した commit を自動的に fixup してくれる git rebase の fixup は、対象の commit を上の co…

git rebase/merge をそろそろキチンと理解する

git

なんなのかと rebase 品質を落とす、品のない振る舞いをする git rebase つかいみち : ブランチにmasterの変更を取り込む 例えば、こんな感じに、 master と、branch_b がある場合... * ac7957d Add 'd' in a.txt | * 9aa15f9 (refs/heads/branch_b) Add 'c'…

DNSを良くわかっていない自分が浸透問題を理解するまでのはなし

そもそもDNSってなんだっけ? Domain Name System IPアドレスと、ドメイン名( www.google.com とか)の紐付けを行うサーバ DNSサーバは2種類 コンテンツサーバ (権威DNSサーバ) IPアドレスと、ドメイン名の紐付けを回答するサーバ キャッシュサーバ コンテンツ…