FANCOMI Ad-Tech Blog

株式会社ファンコミュニケーションズ nend・新規事業のエンジニア・技術ブログ

【インフラインターン2019(1)】 本番サーバを作る Redis

はじめまして

ファンコミュニケーションズさんで2週間のインターンに参加させていただきました熊田です。

今回のインターンでは、3つのメニューをこなさせていただきました。 本記事ではその1つ目である「本番サーバを作る Redis」について書かせていただきます。

メニューについて

このメニューは、実際に稼働しているRedisサーバをDockerのコンテナに置き換えることを主目的としたもので、以下のように進めました。

  1. プロダクトの処理の流れを把握する

  2. Redisの設定などを確認する

  3. docker-compose.yamlを書く(コンテナを作る)

  4. 本番環境へのデプロイ手順をまとめ、メンターなどに問題がないか確認

  5. 実際にデプロイ

実際したこと

1. プロダクトの流れを把握する

まず最初に、サーバの構成一覧やnendのソースコードを眺めながら処理の流れを把握し、概略図を書き出しました。

2. Redisの設定などを確認する

実際に置き換えるサーバへSSHでログインし、Redisの稼働状況や設定などを確認しました。

3. docker-compose.yamlを書く(コンテナを作る)

1や2で得た知識を踏まえて、コンテナを作ります。

今回は管理のしやすさを考えdocker-composeを用い、コンテナを作成しました。

コンテナを作成する際に、confファイルやlogファイルなどをコンテナの中に入れずに、ホストからアクセスできるようにコンテナの外に置くようにしました。また、logファイルはlogrotateを仕掛けることで、1日毎にlogファイルを生成し、肥大化しないようにしました。

コンテナ外からファイルにアクセスできるようにしたかったのですが、直接パスをserviceセクションのvolumesに書くとreadはできてもwriteができないという現象に陥りました。解決策として、ちゃんとvolumeコンテナを作り、それをserviceにマウントすることで、正常に読み書きできるようになりました。

4. 本番環境へのデプロイ手順をまとめ、メンターなどに問題がないか確認

コンテナを作った後は、本番環境へのデプロイです。今回のインターンでは作ったものを本番の環境に導入し、問題がないかを確認します。本番環境でなにか不具合があった場合にすぐ復旧できるように、また操作を間違えることがないように実行する操作を書き出し、それをメンターやインフラ部門の方々に検証していただきました。

5. 実際にデプロイ

実際に作ったコンテナを、デプロイ手順に従ってデプロイしました。入念なチェックを行ってからのデプロイだったので、大きな問題が発生することなく終わりました。

感想

初めてプロダクトが稼働している環境を触りました。今まで、自宅サーバの運用くらいしか行っていなかったため、操作自体は大したことをしているわけではないのに、変に緊張することがありました。コンテナの作成やデプロイはうまくいったので、良かったです。