Railsで複数のログにリクエストIDを出力する


Railsで標準のログ(Rails.logger)以外にオリジナルのログを出力している時、なんらかの共通のキーを出力していないとログ間の対応が取りづらい、もしくは取れない時がある。それを解決するため、1つのHTTPリクエストごとに振られるリクエストIDを各ログに出力することで対応を取りやすくした時のメモ。

まとめ

  • RackMiddlewareでFiberローカル変数にリクエストIDを入れる。
  • 各ログではFiberローカル変数からリクエストIDを取得して、ログに出力する。
  • さくっと扱うためのGemを作ったので、使ってみてください。

続きを読む →


PostgreSQLに負荷テスト用のデータを高速にINSERTする


業務で負荷テスト用のレコードを大量(7000万行ほど)にPostgreSQLのDBに作成しなければいけなかったのですが、それを高速(1時間弱)に実施できたのでメモ。

まとめ

  • PostgreSQLの GENERATE_SERIES 関数と INSERT SELECT文を組み合わせて数万レコードを一気に作成します。
  • Railsでちょっとだけ使いやすいgem作ったのでよかったらどうぞ。

続きを読む →


DTI ServersMan@VPSのサーバーにsshで接続できなくなった


更新が滞ってしまったので、小さなことですが一個書いておきます。

このブログは、DTI社のServersMan@VPSというVPSのサービスを使って運営しています。このサーバーにsshで接続して、メンテナンスしたり、機能追加したりしているのですが、今日sshで接続できなくなっていることがわかりました。2ヶ月前くらいは普通に接続できたはずなのに…。

ちょっと調べて解決できたのですが、同じ問題で苦しむ人がいるかもしれないと思ったので、メモを残します。

まとめ

sshコマンドで接続する時に「-4」オプション(IPv4を使う)を指定する。

続きを読む →


OSS Gateワークショップ2016-07-30 参加メモ


2016年7月30日(土)に開催されたOSS Gateワークショップに参加してきましたので、そこで実施した内容や今後参加を考えている人へのアドバイスなどをメモしておきます。

https://oss-gate.doorkeeper.jp/events/42159

まとめ

  • OSSへの貢献の最初の一歩を踏み出すにはとてもよいきっかけになった。
  • 対象のOSSが決まっていると充実した1日になるかも。

続きを読む →


一時的なセキュリティ認証情報を使用した署名なしURLでS3のファイルを取得する


AWSの一時的なセキュリティ認証情報を使用して署名なしURLでS3のファイルを取得する方法がわかったのでメモ。

まとめ

  • AWS側に最低限の権限だけをもたせたユーザーを作成
  • サーバー側でこのユーザーの一時的な認証情報を発行し、クライアントに配布。クライアント側はこの認証情報を使用してS3にアクセスする。
  • あんまり使いどころないかも。

続きを読む →