SUZURIをHerokuからAmazon EKSに移設するためにやったこと

これは🎄GMOペパボ エンジニア Advent Calendar 2024の15日目の記事です。 14日目はk4tayaさんのDKIM2についての所感でした。 ペパボのエンジニアAdvent Calendarにはもうひとつの会場もありますので、ぜひこちらもご覧ください。 HerokuからAmazon EKSへ移設 SUZURIでは2014年のサービス開始当初からHerokuを利用しており、2018年からはHeroku Enterpriseを契約し、ここまで運用してきました。 今年、10年間使ってきたHerokuからAmazon EKSに移設することを決定し、2024年6月に完了しました。 これまでHeroku関連の記事をいくつか書いたり、Salesforceのセミナーで登壇する機会もいただくなど、長年付き合ってきたプラットフォームなので思い出深いものがあります。 ...

2024/12/15 · Hiroshi Shimoju

Herokuでzip_code_jp gemの郵便番号データを定期更新したい

日本の郵便番号データを扱うRuby gemとしてはzip_code_jpが有名です。ECサイトなどでは郵便番号から住所を補完する機能はもはや当たり前になっていますが、そのような機能を作りたいときに便利なライブラリです。 この郵便番号データはZipCodeJp.export_jsonで更新できますが、このときgemのdata/zip_codeディレクトリ内にあるJSONファイルを直接更新します。 一般的なサーバ環境であればcronで回すなどすれば普通に更新できますが、Herokuの場合はローカルにファイルを書き込んでも再起動のタイミングで自動で消滅します。Heroku Schedulerなどで定期実行しても、既にパッケージされたslug内のデータは変更できないので意味がありません。 Release Phaseでいけないかな?とも思いましたが、Release Phaseはslugのビルド後に実行されるのでこれも使えません。 ...

2018/09/17 · Hiroshi Shimoju

Sidekiq + Heroku RedisでERROR: ERR max number of clients reachedと言われたら

Redisの同時接続数制限が原因です。 Sidekiqのconcurrencyのデフォルトは25となっており、Redisにもその数だけ接続するため、デフォルトのままだと一気に25接続を消費します。Heroku RedisのHobby Dev(接続数制限20)のような低価格なプランでは、concurrencyの設定をせずにデプロイすると一瞬でログがエラーまみれになってしまうので注意しましょう……。 上記Wikiにもあるように、変更するにはsidekiq.ymlに以下のように書きます。RAILS_ENVごとに切り替えることもできます。 ...

2018/08/05 · Hiroshi Shimoju

HerokuのRelease PhaseでDBマイグレーション忘れを防ぐ

HerokuにはRelease Phaseという機能があります。 これはアプリケーションのビルドが終わってリリースする直前に任意のコマンドを実行するもので、DBのマイグレーションやキャッシュの削除といった用途に使えます。 設定方法はProcfileにrelease: commandの形式で書くだけです。例えば、Railsでmigrateとseed-fuを実行するのであれば以下のようになります。 ...

2018/07/29 · Hiroshi Shimoju

Herokuはスケーラブルなアプリ養成ギプス

社内勉強会でHerokuでの本番運用について発表しました。 いま携わっているSUZURIはHerokuで運用しており、個人でもHerokuで運用しているアプリがあります。その中で経験したことや知見を話しました。 Herokuで本番運用する技術 目次を見るとわかるようにテーマは多岐にわたっており、ざっと&ゆるめに発表しようという趣旨です。 Herokuはスケーラブルなアプリ養成ギプス Herokuのいいところといえば、マネージドで手軽に使えること、開発者にとって便利な機能が豊富なこともそうですが、アプリケーション設計に良い影響を与える点もあります。 ...

2017/11/11 · Hiroshi Shimoju