<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Heroku on shimoju.diary</title><link>https://shimoju.jp/tags/heroku/</link><description>Recent content in Heroku on shimoju.diary</description><generator>Hugo -- 0.152.2</generator><language>ja</language><lastBuildDate>Sun, 15 Dec 2024 23:58:00 +0900</lastBuildDate><atom:link href="https://shimoju.jp/tags/heroku/index.xml" rel="self" type="application/rss+xml"/><item><title>SUZURIをHerokuからAmazon EKSに移設するためにやったこと</title><link>https://shimoju.jp/2024/12/15/suzuri-heroku-to-amazon-eks/</link><pubDate>Sun, 15 Dec 2024 23:58:00 +0900</pubDate><guid>https://shimoju.jp/2024/12/15/suzuri-heroku-to-amazon-eks/</guid><description>&lt;p&gt;これは&lt;a href="https://adventar.org/calendars/10317"&gt;🎄GMOペパボ エンジニア Advent Calendar 2024&lt;/a&gt;の15日目の記事です。&lt;/p&gt;
&lt;p&gt;14日目はk4tayaさんの&lt;a href="https://zenn.dev/k4taya/articles/ec4c117e9e9b32"&gt;DKIM2についての所感&lt;/a&gt;でした。
ペパボのエンジニアAdvent Calendarには&lt;a href="https://adventar.org/calendars/10036"&gt;もうひとつの会場&lt;/a&gt;もありますので、ぜひこちらもご覧ください。&lt;/p&gt;
&lt;h2 id="herokuからamazon-eksへ移設"&gt;HerokuからAmazon EKSへ移設&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://suzuri.jp/"&gt;SUZURI&lt;/a&gt;では2014年のサービス開始当初からHerokuを利用しており、2018年からは&lt;a href="https://jp.heroku.com/enterprise"&gt;Heroku Enterprise&lt;/a&gt;を契約し、ここまで運用してきました。&lt;/p&gt;
&lt;p&gt;今年、10年間使ってきたHerokuからAmazon EKSに移設することを決定し、2024年6月に完了しました。
これまで&lt;a href="https://shimoju.jp/tags/heroku/"&gt;Heroku関連の記事をいくつか書いたり&lt;/a&gt;、&lt;a href="https://www.slideshare.net/slideshow/gmoheroku-154211436/154211436"&gt;Salesforceのセミナーで登壇する&lt;/a&gt;機会もいただくなど、長年付き合ってきたプラットフォームなので思い出深いものがあります。&lt;/p&gt;</description></item><item><title>Herokuでzip_code_jp gemの郵便番号データを定期更新したい</title><link>https://shimoju.jp/2018/09/17/zip-code-jp-on-heroku/</link><pubDate>Mon, 17 Sep 2018 22:50:34 +0900</pubDate><guid>https://shimoju.jp/2018/09/17/zip-code-jp-on-heroku/</guid><description>&lt;p&gt;日本の郵便番号データを扱うRuby gemとしては&lt;a href="https://github.com/tanihiro/zip-code-jp"&gt;zip_code_jp&lt;/a&gt;が有名です。ECサイトなどでは郵便番号から住所を補完する機能はもはや当たり前になっていますが、そのような機能を作りたいときに便利なライブラリです。&lt;/p&gt;
&lt;p&gt;この郵便番号データは&lt;code&gt;ZipCodeJp.export_json&lt;/code&gt;で更新できますが、このときgemの&lt;a href="https://github.com/tanihiro/zip-code-jp/tree/master/data/zip_code"&gt;&lt;code&gt;data/zip_code&lt;/code&gt;&lt;/a&gt;ディレクトリ内にあるJSONファイルを直接更新します。
一般的なサーバ環境であればcronで回すなどすれば普通に更新できますが、Herokuの場合はローカルにファイルを書き込んでも再起動のタイミングで自動で消滅します。&lt;a href="https://elements.heroku.com/addons/scheduler"&gt;Heroku Scheduler&lt;/a&gt;などで定期実行しても、既にパッケージされたslug内のデータは変更できないので意味がありません。
&lt;a href="https://shimoju.jp/2018/07/29/heroku-release-phase/"&gt;Release Phase&lt;/a&gt;でいけないかな？とも思いましたが、&lt;a href="https://devcenter.heroku.com/articles/release-phase#when-does-the-release-command-run"&gt;Release Phaseはslugのビルド後に実行される&lt;/a&gt;のでこれも使えません。&lt;/p&gt;</description></item><item><title>Sidekiq + Heroku RedisでERROR: ERR max number of clients reachedと言われたら</title><link>https://shimoju.jp/2018/08/05/heroku-redis-connection-limit/</link><pubDate>Sun, 05 Aug 2018 23:41:33 +0900</pubDate><guid>https://shimoju.jp/2018/08/05/heroku-redis-connection-limit/</guid><description>&lt;p&gt;Redisの同時接続数制限が原因です。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/mperham/sidekiq/wiki/Advanced-Options#concurrency"&gt;Sidekiqのconcurrencyのデフォルトは25&lt;/a&gt;となっており、Redisにもその数だけ接続するため、デフォルトのままだと一気に25接続を消費します。&lt;a href="https://elements.heroku.com/addons/heroku-redis"&gt;Heroku Redis&lt;/a&gt;のHobby Dev(接続数制限20)のような低価格なプランでは、concurrencyの設定をせずにデプロイすると一瞬でログがエラーまみれになってしまうので注意しましょう……。&lt;/p&gt;
&lt;p&gt;上記Wikiにもあるように、変更するには&lt;code&gt;sidekiq.yml&lt;/code&gt;に以下のように書きます。&lt;code&gt;RAILS_ENV&lt;/code&gt;ごとに切り替えることもできます。&lt;/p&gt;</description></item><item><title>HerokuのRelease PhaseでDBマイグレーション忘れを防ぐ</title><link>https://shimoju.jp/2018/07/29/heroku-release-phase/</link><pubDate>Sun, 29 Jul 2018 21:46:04 +0900</pubDate><guid>https://shimoju.jp/2018/07/29/heroku-release-phase/</guid><description>&lt;p&gt;Herokuには&lt;a href="https://devcenter.heroku.com/articles/release-phase"&gt;Release Phase&lt;/a&gt;という機能があります。
これはアプリケーションのビルドが終わってリリースする直前に任意のコマンドを実行するもので、DBのマイグレーションやキャッシュの削除といった用途に使えます。&lt;/p&gt;
&lt;p&gt;設定方法は&lt;code&gt;Procfile&lt;/code&gt;に&lt;code&gt;release: command&lt;/code&gt;の形式で書くだけです。例えば、Railsでmigrateと&lt;a href="https://github.com/mbleigh/seed-fu"&gt;seed-fu&lt;/a&gt;を実行するのであれば以下のようになります。&lt;/p&gt;</description></item><item><title>Herokuはスケーラブルなアプリ養成ギプス</title><link>https://shimoju.jp/2017/11/11/twelve-factor-app-on-heroku/</link><pubDate>Sat, 11 Nov 2017 22:39:05 +0900</pubDate><guid>https://shimoju.jp/2017/11/11/twelve-factor-app-on-heroku/</guid><description>&lt;p&gt;社内勉強会でHerokuでの本番運用について発表しました。
いま携わっている&lt;a href="https://suzuri.jp/"&gt;SUZURI&lt;/a&gt;はHerokuで運用しており、個人でもHerokuで運用しているアプリがあります。その中で経験したことや知見を話しました。&lt;/p&gt;
&lt;script async class="speakerdeck-embed" data-id="457f092496ab4856b7c3cef5bcd2babb" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;
&lt;p&gt;&lt;a href="https://speakerdeck.com/shimoju/heroku-production"&gt;Herokuで本番運用する技術&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;目次を見るとわかるようにテーマは多岐にわたっており、ざっと＆ゆるめに発表しようという趣旨です。&lt;/p&gt;
&lt;h2 id="herokuはスケーラブルなアプリ養成ギプス"&gt;Herokuはスケーラブルなアプリ養成ギプス&lt;/h2&gt;
&lt;p&gt;Herokuのいいところといえば、マネージドで手軽に使えること、開発者にとって便利な機能が豊富なこともそうですが、アプリケーション設計に良い影響を与える点もあります。&lt;/p&gt;</description></item></channel></rss>