EatSmartシステム部ブログ

ウェブサイトの開発や運営に関する情報です。

正しいインデックスを作成する

今回は、クチコミ検索のインデックスを設計するうえで失敗した話です もぐナビでは商品のクチコミを集めています 新たな機能としてクチコミ一覧ページて"追記順"でソートすることになりました この時に作成したインデックスが期待したように動かなかったこと…

http/httpsが混在する環境でのセキュアCookieの取り扱い

WEBサービスをhttpsで提供するのが当たり前になりました。 イートスマートのWEBサービスもhttpsへの移行を完了しています。 www.eatsmart.jp mognavi.jp cookingschool.jp そうした中で、社内向けツールで不具合が報告されました。 社内向けツールなので、ス…

VPN切替に伴う本番サーバー接続方法の変更について

5月上旬にインフラチームにてVPNの切替を行いましたが、切替前はVPN経由で本番サーバーへ接続出来ていましたが、切替後に接続出来なくなってしまいました。 今回はその経緯及び切替後の接続方法変更についてまとめてみました。 切替前後の構成 切替前はSSL-V…

データベースのバックアップ手順の見直し

今回は、前日実施したデータベースのバックアップに関することを書きたいと思います。 ディスク使用量の警告 イートスマートでは管理しているすべてのサーバをZabbixで監視しています。 ある日、イートスマートのデータベースとして利用しているサーバの、デ…

Postfixにたまった不要なメッセージの削除

MTAのPostfixに不正なサーバーから大量にメールを送られ、それに対して自動で返信しようとしてできなかった場合に、MAILER-DAEMONが再送しようとして輻輳することがありました。 それらを一度に削除することを試みました。 各コマンド 1. キューにたまったメ…

Spamhausにブラックリスト登録された場合の対処について

今回は、自社のSMTPサーバーがブラックリスト登録された場合の対処方法についてまとめてみました。 ブラックリストとは ブラックリストとは、DNSBL(Domain Name System Black List)と呼ばれ、こちらに登録されると各メールサービス(outlook等)から受信拒否…

テンプレートパーツで構成されるサイトのGoogleAdManager実装について

弊社のサイトは、ページ内の共通パーツをテンプレートとして作成し、ページごとに組み合わせて構成している実装が多いです。 また、ディスプレイ広告の配信には、GoogleAdManager(旧DFP)を使用していることが多いのですが、この組み合わせだと生じやすい問題…

Docker Registryのクリーンアップ

イートスマートでは、Dockerイメージを管理するため、ローカルネットワークにDocker Registoryを運用しています。 2018年にすべてのアプリケーションをDockerに移行してから約2年が経過し、ストレージの使用量が増加してきました。 今回は、Docker Registry…

Web会議を利用してみて

コロナ対策でテレワークを実施している方が多いのではないかと思います。 私も2月下旬からWFHの通達があり自宅で作業をする様になってから1ヵ月半程経ちますが、元々ノートPCやVPN等の環境が整備されていたため、勤務形態の影響を受けずにテレワークに移行…

複数ファイルのダウンロード

運用メンバーが利用するページを、イートスマートでは"バックエンド"と呼んでいます。 バックエンドでは、商品データの操作やクチコミの監視、ニュースの編集等の業務が行われています。 それらの業務のなかで、CSVをダウンロードするものがあります。 今回…

井桁と嬰記号

もぐナビの投稿について話をしていた時に、意外とハッシュ(#)とシャープ(♯)の違いに気づいていない人が多かったので記事にしてみました。 ことの起こり 先日、もぐナビニュースの記事コンテンツにコメントできるように機能追加をしました。 コメント内でハッ…

EXISTS句を使ったサブクエリについて

今回は、もぐナビのプロジェクトの実装で学んだことについてまとめていきます。 テーマは、EXISTS句を使ったSQLの振り返りです。 実装の内容 特定条件のクチコミを抽出する際に、任意のユーザーのlikeが既にある場合は 除外クチコミとしたいので、その判定に…

ImageMagickを使った画像縮小について

以前ディスク容量逼迫に伴に、jpegtranを使った画像最適化の記事を紹介しましたが、さらにディスクの整理が必要になり、今回はImageMagickを使った画像縮小方法について紹介します。 eatsmart.hatenablog.com ImageMagickとは ImageMagickは画像を操作したり…

データベースサーバのディスク枯渇への対処

2018年3月にデータセンターからさくらインターネットへ移行して、まもなく2年が経ちます。 移行に際しての計画から実施は下記に書かれています。 eatsmart.hatenablog.com クラウド・専用サーバを中心にVPSも併用していますが、データベースサーバに利用し…

ランキング作成時に使ったSQL手法

先日、弊社サービスのもぐナビで、食品ランキングのリニューアルを行いました。 prtimes.jp 今回は、ランキング構築等で使用したいくつかのSQL手法を共有したいと思います。 ちなみに、弊社で使用しているRDBMSはPostgreSQLです。 カテゴリ毎のランクの振り…

CSVのエクスポート処理とSQL

今回は、クスパのオンライン決済のプロジェクトの実装で学んだことについてまとめていきます。 テーマは、CSVのエクスポートと出力内容を取得するSQLの内容を振り返りです。 実現したい処理の流れ 簡単に概要ですが、下記のような仕様を実現します。 オンラ…

クスパ決済サービス開始しました

以前、クスパ決済の導入に向けた記事を紹介しましたが、2020年1月7日に無事サービス開始しました。 当初、2019年12月にサービス開始する予定でしたが、ある要因で2020年1月7日サービス開始となりました。 まずは、リリース延期となった経緯を紹介します。 ea…

2019年を振り返って

もうすぐ2019年も終わりになりますが、システム部の2019年を振り返ってみたいと思います。 サービス面での振り返り 弊社のサービス的には、時系列で振り返ると 1月〜3月 クスパ 先生向け有料サービスの改善 4月〜7月 もぐナビスマフォ版UI改修 8月 クスパ 稼…

ZabbixからSSL証明書の有効期限を監視する

先日、一部のサービスで利用しているSSL証明書の有効期限が切れる障害を起こしてしまいました。 SSL証明書にはLet’s Encrypを利用しており、事前に通知が来ていたにも関わらず、更新を忘れてしまっていました。 これをふまえて、業務フローを見直すとともに…

Talend API Testerを使ってみる

今回は、API開発やテストなどに使える便利なツールTalend API Testerをご紹介します。 ※最近、プロダクト名の変更があったようなので調べる際には、Talend API Testerに変えて Restlet Clientでも情報が多くヒットします。 Talend API Testerについて 詳細に…

SMTPサーバーの逆引きエラーについて

今回は弊社で運用しているSMTPサーバー(postfix)で発生したメール送信時の逆引きエラーの調査及び対処方法についてを記事にしてみました。 正引き/逆引きとは ドメイン名に対応するIPアドレスを問い合わせることを「正引き」と言います。正引きは、主にWEB…

さくらウェブアクセラレータで使うドメインのSSL証明書更新

弊社ではサイトのCDNとして「さくらウェブアクセラレータ」を利用していて、そのドメインの証明書はLet's Encryptで発行しています。 Let's Encryptの証明書は有効期限が90日なので、3ヶ月に一度くらい証明書の入れ替えが必要です。 運用を始めた頃は、実体…

Zabbix から Spring Boot アプリケーションのデータベース接続状況を取得する

イートスマートでは、Zabbixで各サーバやコンテナのリソースを管理し、必要に応じてアラートを飛ばしています。 先日、データベースの接続数が増えてきたのでコンテナごとに接続数を把握しようと思い、Zabbixのテンプレートを使い以下の2つの項目を監視する…

SpringBootで遭遇したルーティング問題

今回は、SpringBootのプロジェクトの中で学んだことについてまとめていきます。 もぐナビのスマホページのamp対応として、別プロジェクトにSpringBootを使用しております。 簡単にプロジェクトの環境としては以下の編成になります。 SpringBoot 1.5.2 Thymel…

クスパ決済の導入について

現在クスパでは、レッスン予約のオンライン決済サービス(以降「クスパ決済」)の導入を検討しております。今回はオンライン決済の導入に向けて調査・検討している事を記事にしてみました。 cookingschool.jp クスパ決済の導入 クスパで料理教室のレッスン予…

Docker Swarmの障害への対応

イートスマートでは、提供するサービスのフロントエンドで利用するミドルウェアをDockerコンテナ化し、Swarmモード上で稼働させています。 先日発生したDocker Swarmの障害と、それへの対応をまとめました。 アラート サーバやコンテナの状態はZabbixを利用…

2019年9月のGoogleコアアルゴリズムアップデートについて

以前、2019年前半に実施されたGoogleのコアアルゴリズムアップデートについて記事を書いたのですが、 eatsmart.hatenablog.com 2019年9月の末にまたコアアルゴリズムアップデートが実施されました。 【September 2019 Core Update】Google、今年3回目のコア…

jpegtranを使った画像最適化について

今回は、jpegtranを使用した画像最適化についてまとめていきます。 経緯として、クスパ-料理教室ポータルサイトで使用している先生方のブログ画像 の容量が膨大になっており、ディスク容量を圧迫していたため画像の最適化を検討しました。 jpegtranについて …

クスパレシピページの有効インデックス数低下について

クスパでは、料理教室の先生が投稿するレシピを掲載していますが、8月下旬辺りからGoogle Search ConsoleのAMP/レシピの有効インデックス数が低下して、本日迄に行った施策を記載したいと思います。 cookingschool.jp 最初に確認したこと 有効インデックス…

ClamAVのエラーとその解決

イートスマートで提供しているサービスでは、クライアントからファイルをアップロードする機能を提供しているものがあります。 アップロードされたファイルを利用するにあたり、安全に利用するためClamAVを利用してウィルスのチェックを行っています。 ある…