kasei_sanのブログ

かせいさんのIT系のおぼえがきです。胡乱の方はnoteとtwitterへ

Elastic Beanstalk

elasticbeanstalkのプラットフォーム(ruby puma)のバージョンを上げると、nio4r の依存関係でエラーが発生する件

elasticbeanstalkのプラットフォーム(ruby puma)のバージョンを上げると、こんなエラーが出るようになる /opt/rubies/ruby-2.7.3/lib/ruby/site_ruby/2.7.0/bundler/runtime.rb:302:in `check_for_activated_spec!': You have already activated nio4r 2.5.7…

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

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

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インスタンスを環境外に作成して、環境に接続し…

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

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

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…

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 に接…

AWS Elastic Beanstalk まずは動かしてみる

AWS CLIツールのインストール $ pip install awsebcli Rails環境の用意 $ rails g controller hello index Rails環境上で、EBS初期化 $ eb init リージョンどこにするか聞かれる Select a default region 1) us-east-1 : US East (N. Virginia) 2) us-west-1…