Engineの値上げはGAE上で無償サービスを運用していた人たちをパニックに陥れたが、tDiaryとて無関係ではない。API用リバースプロキシがGAE上で稼動しているからだ。GAEの値上げ自体は11月まで猶予されたが、それでもやはり、ああいうロックインされやすい環境に依存するのは危険だ。Sinatraに移植してくれたので、そちらに引っ越すことに。10月末に予定されているtDiaryの次のリリースからはこちらを使うことになると思う。リバースプロキシだけでなく、認証プロキシの方もいつまでもCGIじゃねーだろというかもっと移植性の高い環境で動かさないとね、ということで。Sinatra移植に挑戦してみた。仕事でRuby使ってるつっても主にデータ処理なのでWebアプリの新作はもう何年も作ってないわけで、新しい技術のキャッチアップはぜんぜんしていないのだ。Railsでもいいわけだけど、そんなデカいものを作る予定もないのでまずはSinatraから。いうわけでGithubの方にいろいろ追加→amazon-auth-proxy。元のCGIをそのままライブラリとして使っているのでかなりひどいアーキテクチャだが、RSpecで不完全ながらテストも書いたし、Rack上で動くようにしたし、Bundler対応もした(というか対応しないとHerokuで動かせないみたい......なのかな?)。なんかモダンじゃーん。これをHerokuで動かす。この手順を簡潔にしておけば、誰もがプロキシを運用できるはず。added%これでamazon-auth-proxy-tdtds.heroku.comというサイトができた。pushすればデプロイできるのだけど、さて、ここで問題が。設定ファイルには秘密にしておかなければならないAmazonのキーが含まれるので、これをGitHub上に公開するわけにはいかない。良いプラクティスがあるのだと思うが、とりあえずローカルにreleaseというブランチを切って、そこに設定ファイルを含めてHerokuにpushすることにした。masterありゃー、いりもしないRSpecまでインストールされちゃってるな。これはGemfileで開発用のgemだけ分離するような書き方があるのだろう(と、tDiaryのGemfileを見ながら学習)。なんにせよ、本当に簡単で拍子抜けするくらいだなぁ。これが現代のPaaSか!(今ごろなに言ってんだ)というわけでいちおう動くようになったけど(プロクシなのでブラウザからアクセスしてもなにもないよ)、まだ異常系もロクにできていないのでもうちょっといじってから本番投入するとしよう。いやまぁ、環境変数くらいどこでも設定できるだろうとは思うけど。Pitは普段から使っているけど、この場合の解決になるのかどうかよくわからない......。11:36)dotCloundの場合は、設定ファイル(dotcloud.yml)に環境変数を書くやり方みたいですね。18:54)まぁたしかに、ソースツリーに設定ファイル含めちゃったら、サーバ増やせないもんなぁ。環境変数を使うとサーバはスケールするけど、PaaSごとに使い方を説明しなくちゃいけなくなるから人がスケールしない......。BUNDLE_WITHOUT=development:testAmazonのキーも環境変数を使うのがベターでしょうねえ。読み出して無いなら環境変数という感じと思います。18:30)あー、次善の策として環境変数を使うというのはいいね。development:test」とあるので、指定さえしておけば向こうで除外してくれるという認識なんだけど......。09:17)ああ、それはもちろん。プログラマ、Webアクセス解析士を経て、現在はサイバーセキュリティ関連事業に従事。学生時代からフリーソフトウェア開発に関わりはじめ、かれこれ30年。RubyではWebアプリケーションを中心に開発。tDiaryプロジェクト創始者。2.6.5-p114。