production.log

ピクスタ株式会社で開発部の部長をやっている星直史のブログです。

メモ

bundle install時に--path vendor/bundleを付ける

自分は、bundle installをする時に--path vendor/bundleを付けてプロジェクトごとにgemを管理しているのですが、なぜかこのオプションだけ覚えることができないので、備忘録的に書く

Apache Bench(abコマンド)をmacOSで実行した場合に出るエラー「socket: Too many open files (24)」の回避方法

AWS ELBの暖気申請(Pre-Warming)をしたかったのですが、サポートのプランがBusiness以上でなければ申請できないため、自前でPre-Warmingをする必要がありました。 AWS ELBは負荷が上がった場合に、AutoScaleするLBです。 通常、事前に大量のトラフィックが予…

ReactNative 0.59.8のCameraRoll.getPhotosでInvalid filter option: '(null)'. Expected one of 'photos','videos' or 'all'.が発生した場合の回避方法

タイトルの通り、ReactNative 0.59.8において、`CameraRoll.getPhotos({first:1234})`がエラーになってしまいます。また、これはiOSのみで発生します。エラー文を見た感じ、optionとしてassetTypeに何かしら指定すれば良さそうです。ただ、ドキュメントを見…

AWS IAM ユーザー各自のMFA設定ポリシーの登録

AWS IAMでは、特定のグループにポリシー(権限)を設定し、そのグループにユーザーを追加することで、権限管理が容易になります。設定できるポリシーは、AWSが用意しているポリシーと、独自に設定できるポリシーの2パターンあります。 今回は、AWS IAM ユーザ…

Linuxでduコマンドとdfコマンドを使って空き容量を増やす方法

サービスを運用していると、サーバー内のディスク空き容量が枯渇してしまうことがしばしばあると思います。以前「AWS EC2のルートボリューム(EBS)をダウンタイム0で拡張する方法」について書きましたが、対応の一つとして格納されているファイルを整理するこ…

SnapmartのWebサーバーにmonitを導入してunicornを不死鳥にした

Webサービスを運営していると、夜中にWebサーバーのプロセスが突然死してしまい、朝に気づくということが多々あります。 流石に人間が24時間365日監視しているのはツラいので、ある特定のプロセスが落ちたら自動で検知と再起動という処理を行いたいです。 今…

特定の名前のEC2のPublicIPを取得する方法

TV放映などで、一時的にスケールアップさせたい時に、オートスケールの機構がなければ職人による技が光ります。 今回は、スポットリクエストで増やしたEC2インスタンスのIPをAWS ESS access policyに登録したかったので、IPを取得する必要がありました。

MySQL Staging環境のDBをdumpしてローカル環境のMySQLにimportする方法

Snapmart社のstagingのDB環境は、AWS RDSを使用しています。 毎日24時にproduction環境のスナップショットからstaging用DBを作成し、update文で個人情報やメールアドレスなどをマスクした状態にしています。 また、stagingが配置されているVPCは社内ネットワ…

vimでsnake_caseをCamelCaseに置換する

RailsとJavaScriptを同時に扱っていると((Style Guideで記法が異なる言語を同時に扱っている場合))、snake_caseからCamelCaseに置換したい時がしばしば訪れます。 一つずつ修正した方が、人間の温かみを感じることができるコードになると思うのですが、置換…

TreasureDataのCLIで各テーブルのスキーマを取得するためのワンライナー

TreasureDataを運用していて、存在するDBとその中のテーブルのスキーマを一覧で取得したいことがあったので調べて見ました。 GUI上からDBとテーブルを一つずつ確認するのはさすがにツラいのでサクッと見れる方法はこちらです。 `td db:list -f tsv | awk '{ …

リモートのブランチを削除する

リモートのブランチを削除する git push origin :branch_name