DEVELOPER’s BLOG

技術ブログ

Herokuアドオンで詰まったところ Part3

2018.10.09 森久 正樹
体験記
Herokuアドオンで詰まったところ Part3

2018年4月から2年目を迎えた。森久です。


前々回はHerokuについて紹介致しました。
https://www.acceluniverse.com/blog/developers/2018/04/heroku-part1.html

前回はHerokuのアドオンついて紹介致しました。
https://www.acceluniverse.com/blog/developers/2018/06/heroku-part2.html


今回は題名にもある通りアドオンで詰まった備忘録を記載致します。
詰まったアドオンは「QuotaGuard Static」です。


結論から記載すると原因はHeroku Schedulerの一時的なDyno(one-off dynos)に関して設定がなされていなかったためです。


要件は下記になります。
1. アプリ自体をHerokuのPrivate Spaces(AWS VPCを用いた隔離環境)からCommon Runtime(Private Spacesとは逆にpublicに開かれた環境)に移行する。
2. DBはシステムの構成上、Private Spacesに残す。
3. DBにアクセスし更新するバッチはHeroku Schedulerにて設定している。(Common Runtime上)

※AWSとはクラウドサービスで、HerokuはAWS上で動いています。
AWS VPCについては以下を参照してください。(今後ブログで紹介するかもしれないです。)
https://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/VPC_Introduction.html

QuotaGuard Staticの手順に則り下記のように設定を進めました。
少し詳細を説明させていただくと、まず接続するにあたって、HTTPプロキシを使用するかSOCKS5プロキシを使用するかを決めます。
今回はDBにアクセスするためSOCKS5プロキシを指定しました。(Herokuの公式によるとwebはHTTPプロキシ・それ以外はSOCKS5プロキシがオススメだったため)
参考:https://devcenter.heroku.com/articles/quotaguardstatic


SOCKS5プロキシを使用して「Common Runtimeのアプリ」から「Private SpacesのDB」にアクセスするにはproxyを通す必要があります。

Proxyの通す方法

1. 下記コマンドでpgtunnelをインストール

Herokuアドオンで詰まったところ Part3のエラーログ1.webp


2. Procfileを編集(Dynoの設定を記述するファイル)
web: bin/bgtunnel アプリケーションサーバ名 ドキュメントルート
上記の「bin/bgtunnel」を先頭に付けることでDynoに対しproxyを通せます。


ダッシュボード画面.webp

準備は整いました。新たにCommon Runtime上でproxyを通したアプリ(Private Spacesで展開していたアプリと同様のもの)を作成します。
ログイン画面に遷移し、ログイン情報を入力するとログインできました。(ログイン情報はDBに格納)
これでDBに接続できることは確認できました。


~~数日後~~


バッチが動いていません...
下記エラーが発生していました。


Herokuアドオンで詰まったところ Part3のエラーログ2.webp

DBに接続できていない。先ほど記載した通りログインはできますし、アプリからDBの更新処理も行えます。
調査を行いましたが分からず、Herokuに問い合わせました。


迅速な対応をしていただき、共に調査を行なったことで原因が判明。
アプリのDynoにはproxyを通したためDBに接続できましたが、Heroku Schedulerはバッチ処理を行う際、一時的にアプリとは異なるDynoを立ち上げます。
そのDynoにはproxyが通っていないためDBに接続できなかったのでした。
一度気づけば、納得ですが気づかないと詰まると思いました。(他のアドオンとかでも場合によっては起きそう)


proxyを通し無事解決

Scheduler設定画面.webp

まとめ

1. Heroku Schedulerで立ち上げるDynoはアプリのDynoとは別物(もはや関係すらない)
2. Herokuに問い合わせた際の対応が迅速でよかった。


以上3回に渡ってありがとうございました。

関連記事

AWS Kiro Spec駆動開発とは - AIとの対話を構造化する新しいアプローチ

目次 はじめに Kiroについて 実際に触ってみた 感想 おまけ 1. はじめに AIを使用してコーディングする場面を思い浮かべてください。 コード生成した結果、周辺とは違った書き方をされたり、余計な箇所を直されたり、意図しない修正をされて困った経験はありませんか? 他機能への影響が限定的な箇所や、とても簡単な機能の修正は、思い通りにいくことが多いですが、 他機能への影響が大きい改修など、機能の複雑度が高くなればなるほど

記事詳細
AWS Kiro Spec駆動開発とは - AIとの対話を構造化する新しいアプローチ
体験記 生成AI
Amazon Connectを使って占い案内IVRをつくってみた

目次 挨拶 Amazon Connectとは? 目的と経緯 仕様 作業手順 作業内容 最後に 挨拶 こんにちは、システム部の長森です。 皆様は 自動音声応答システム(IVR) を利用したことはありますか? IVRとは Interactive Voice Response の略で、架電時に音声が流れ、番号をプッシュすると適切なオペレーターまたは次の音声に繋がるシステムのことを指します。 企業への電話問い合わせ、商品の電話注文などによく使われているシステムなの

記事詳細
Amazon Connectを使って占い案内IVRをつくってみた
AWS 体験記
実務経験ナシでも30時間でAWSソリューションアーキテクトアソシエイトを取得した話

はじめに 私文大学生でクラウドの実務経験は皆無です。普段は機械学習などをぽちぽちしています。緊急事態宣言も解除され、次の試験受験を考え始めたので、次に活かせるようにソリューションアーキテクト c02に至った動機や学習方法をまとめていきます。 資格名そのままだと長いので、以降ソリューションアーキテクトアソシエイトをSAA、クラウドプラクティショナーをCLFと略します。 タイトルでは30時間で〜と謳っていますがSAAをパスするCLFに合格していますので、その時

記事詳細
実務経験ナシでも30時間でAWSソリューションアーキテクトアソシエイトを取得した話
コラム 体験記
弊社のAWS利用事情

AUCのAWS環境構築はEBがメイン  こんにちは。社員の大田です。この秋就任したCTOに、うちの会社の諸々のAWS環境について少しだけ話を聞く機会がありました。  僕は若手なので日々勉強をしながら、プロジェクトの隅っこで小さな仕事をしています。AWSに関してはちょうどこの冬あたりからSAAの勉強を始めました。大体のサービスのかんたんなことは知っているつもりですが、何しろ、インフラ周りは全体に影響がでる大切なところなので、これまであまり実環境に触れることは

記事詳細
弊社のAWS利用事情
体験記

お問い合わせはこちらから