きゃまなかのブログ

新卒6年目の WEB エンジニアです。 直近3年間は大規模システムの運用を担当していました。 今期から開発チームに移動になって、Java を勉強しています。 好きな言語が Ruby なので、Ruby 系の記事が多いです。

【Apache】502 Bad Gateway proxy: error reading status line from remote server

概要 内部ネットワークからインターネットへのアクセスをプロキシしているサーバで稀に 502 Bad Gateway のエラーを返していることがありました。 リクエスト元のサーバではリトライ処理を入れていたので問題は無かったのですが、通常時は 200 で成功してい…

【Apache】http 通信を https 通信に変換してプロキシする

概要 内部ネットワークのサーバがインターネット上のサーバにアクセスする場合、セキュリティ上の理由でプロキシサーバを経由してアクセスする場合が多いと思います。 参考:プロキシサーバーを使うと、なぜセキュリティが向上するのか? tech.nikkeibp.co.j…

【備忘録】HBase とは?HBase の構成とデータ構造について!

概要 新しく HBase を扱うサーバの担当になりました。 IT 業界ではデータ利活用の分野が活発になっており、ビッグデータを安全かつ高速に扱える HBase のようなプラットフォームは今後ますます注目されると思います。 しかし、自分は HBase について全く知識…

【Ruby on Rails】whenever を使って定期的にバッチ処理を行う

概要 Ruby on Rails で定期的にバッチ処理を実行する方法をまとめます。 定期的に処理を実行したい場合、クーロンを利用するのが定石かと思います。 クーロンを実行するには、crontab に設定を記載する必要があります。 Ruby on Rails の場合、lib ディレク…

【Linux】xargs コマンドの使い方がよく分からない

概要 結構複雑な処理をサーバーサイドでやりたいなと思って検索すると xargs コマンドを利用するケースが多々見受けられます。 ただし、使う機会は多くないので、検索して見つけたコマンドをコピペして使っていたり、xargs コマンドが何者なのかよく理解して…

【Linux】コマンドの標準出力を色付けして運用を楽しくする

概要 単色の標準出力だと見づらいですし、運用していて楽しくないので、コマンドの標準出力を色付けしてくれる拡張パッケージをまとめました。 導入方法 拡張パッケージをインストールして、その後 bashrc か bash_profile に標準コマンドの alius を設定し…

【Apache】graceful 再起動でホットデプロイを行う

概要 自分のお仕事は運用メインなので、リリース作業を行う機会が多いです。 正直、数年間同じ仕事をしているので、リリース作業は慣れましたし飽きました(苦笑) そこで、少しでも今のリリース作業が簡略化できる方法が無いか調べてみました。 そこで見つ…

【Ruby on Rails】ログ出力とログローテートの設定まとめ【Logger】

概要 Rails では ActiveSupport::Logger クラスを利用してログ出力ができます。 railsguides.jp 今回、ログの設定変更やログローテート方法、古いログの削除、オススメのプラグインなどをまとめました。 ログの設定 基本的には app/config/environments/*.rb…

【Ruby on Rails】API のレスポンスを生成するメソッドを紹介

概要 Ruby on Rails 5 からは API モードが導入され、API 専用のアプリケーションを簡単に作成できるようになりました。 railsguides.jp Ruby on Rails では CRUD と呼ばれる HTTP メソッドを利用して、RESTful なアプリケーション(API)を作成できるように…

【備忘録】RAID とは? RAID の種類と仕組みまとめ

概要 最近、仮想サーバばかり扱っていて、実機サーバを自分で購入する機会が無かったので、RAID の種類と仕組みを忘れてしまいました。 忘れないように RAID について調べたことを簡単にまとめました。 RAID とは 複数の HDD を組み合わせて、1 つの論理的な…

【AWS】OpsWorks を使って Chef サーバの構築とノード追加

概要 Chef サーバを構築してサーバの構成管理を行いたいと思っています。 AWS には OpsWorks と言うサービスがあって、簡単に Chef サーバを構築できるようです。 OpsWorks を使って Chef サーバを構築して、ノード追加を行う工程までをまとめました。 参考…

【画像解析 API を使ってみる】食べ物の画像は解析できるのか?

概要 最近、食べ物の写真を撮って SNS にシェアする人が増えています。 自分も SNS に食べ物の写真をアップロードした経験があります。 ラーメン屋に行くと、サラリーマンのおっちゃんまで写真を撮っている時代です。( ˙灬˙ ) そんな時代背景もあってか、友…

【Ruby on Rails】重複しているレコードを取得する【MySQL】

概要 Ruby on Rails で DB から重複しているレコードを取得したい時がありました。 MySQL で重複しているレコードを取得する方法は分かるのですが、Ruby on Rails で同じ処理を書く場合、どうしたら良いのか分からなかったので調べて見ました。 MySQL で書く…

【Ruby on Rails】画像は public と app/assets/images のどちらに設置すべき?

概要 Rails ではアプリケーション内で使用される画像の設置場所に、現在 2つの場所が存在します 。 public ディレクトリ app/assets/images ディレクトリ どちらに設置しても画像の読み込みに困りませんが、設置場所によってどんな違いがあるのか、今回調べ…

【AWS】サーバ間でファイルのリアルタイム同期を行う【rsync + xinetd + lsyncd】

概要 サーバ間でファイルのリアルタイム同期を行った時の方法をまとめました。 サーバ環境は Amazon Linux を利用しました。 リアルタイム同期を行うためには rsync, xinetd, lsynd の調査が必要でした。 はじめに rsync とは? リモート・ローカルに関わら…

【Ruby on Rails】deleted_at を使って論理削除をしよう

概要 Rails には DB のカラム名に『created_at』『updated_at』と言う、設定しておくだけで、作成日時と更新日時を自動記録してくれる、お決まりの便利な機能が用意されています。 このカラムのデータはアプリケーション内で利用するデータと言うよりも、DB …

SSL 証明書をどうやって管理する?

概要 SSL 証明書を購入した時の話です。 購入した SSL 証明書をどうやって管理しようか悩んだことがあります。 開発に関するものは全て GitHub で一元管理しているので、SSL 証明書も GitHub に置きたいと思っていました。 SSL 証明書はインスタンスを作り直…

【Ruby on Rails】require と permit の使い方がよく分からない

概要 Rails 4 からストロングパラメータと言う新機能が導入されました。 具体的には require と permit と言うメソッドのことです。 Scaffold で Controller を作成する際にデフォルトで適用されるのですが、使い方がよく分からず、いつも削除していました。…

【AWS】.ssh/config を利用して、ログイン時のコマンドを省略する

概要 インスタンスに毎回ログインする際、ユーザ名と鍵 PATH を記載するのが面倒くさいので、設定ファイル (.ssh/config) にログインに必要な情報を記載して、ログイン時のコマンドを省略しようと思います。 .ssh/config とは SSH を利用してインスタンスへ…

【Ruby on Rails】ルーティング member と collection の違い

概要 Rails には index, show, new, edit, create, update, destroy の 7 つのデフォルトアクションが用意されています。 もし、これ以外のアクションを新しく追加したい場合、ルーティングに設定を追記する必要があります。 この場合、routes.rb をどう書く…

【Ruby on Rails】ルーティング scope と namespace の違い

概要 Rails で API を作成するときに、URL 設計を気にすると思います。 例えは、ユーザ情報を操作する users API のエンドポイントを下記のようなパスで作成したいとします。 http://$(DNS)/api/v1/users この場合、routes.rb をどう書くのか調べたところル…

【AWS】Ruby on Rails + Nginx + Unicorn + MySQL 環境構築

概要 AWS に初めて Rails のアプリを作成した時の手順をまとめました。 はじめに こちらの環境でアプリケーションを作成しました。 サーバOS Amazon Linux Web サーバ Nginx Rack サーバ Unicorn データベース MySQL フレームワーク Rails 5.0.X プログラミ…

【Ruby on Rails】緯度経度から 2 点間の距離を算出する

概要 今日では、企業が公開している API を利用して、簡単にアプリケーションを作成できるようになりました。 その中には、店舗情報を扱う API も数多く存在しています。 店舗情報を扱う API の多くは、店舗の位置情報を表すため、緯度経度を利用しています…

【Ruby on Rails】 gem を使わないで環境毎に定数管理をする

概要 Rails で定数管理するにはたくさんの gem が存在しています。 定数管理の gem で有名なものだとここら辺の名前が上がるかと思います。 github.com github.com config は環境毎に Yaml ファイルを用意して定数を管理するので、大規模アプリケーション向…