ぐるなび自動更新。 食べログ・ぐるなび・ホットペッパー・ヒトサラに対応の自動更新システム 更新革命

WEB制作・アプリ開発・各種CMS・次世代ネットワーク

ぐるなび自動更新

こんにちは!店舗開発チームの滝口です。 ぐるなびでは、認証・認可のプラットフォーム開発に携わったのち、現在はレストランデータの運用をしつつ、ぐるなび掲載ページや、店舗向け管理画面の開発をしています。 はじめに このたび、オンプレで稼働していた「非構造化データストレージ(通称:UDS)」をAWSに移行しました。 UDS は NAS に保存されているファイルを REST API を介して CRUD 操作できるシステムで、ぐるなびで掲載している店舗の画像や CSS 、Javascript 等の保存に利用されています。 この記事では NAS に保存されたファイルをどのようにして AWS に移行したのか、その移行方式や AWS アーキテクチャを紹介します。 UDS 基本情報 アクセス数 データ参照 約 900 万/日 CDN 経由を除くオリジンリクエストのみ データ登録・更新・削除 約 100 万/日 データ量 データ数 約 2 億 ぐるなびで掲載している店舗の画像や javascript 、 css はほぼここに入っています データサイズ合計 約 20 TB 今回使った主な AWS サービス名 用途 CDN サービスで、S3のオリジナルキャッシュとして利用しました。 AWS を自動構築するためのサービスで、本記事では S3 の自動構築を紹介します。 データ移行中のエラー検知仕組みとして利用しました。 NAS のデータ移行先として利用しました。 オンプレ-AWS 間のデータ同期を実現するために利用しました。 AWS を活用して実現したいこと UDS のサーバが保守切れを迎えるため、その対応を検討していました。 以下がその候補です。 保守延長• 単純リプレイス 新しいサーバへの乗せかえ• 新アーキテクチャ UDS は物理サーバ上で稼働していたのですが、サーバが古かっため、保守延長は今回除外しました。 単純リプレイスでも良かったのですが、サーバリソースの最適化やコストの可視化および削減をしたいと思い、新アーキテクチャも検討することにしました。 ぐるなびではクラウドとして AWS の利用が推奨されているため、新アーキテクチャとしては、AWS への移行を前提に構成を検討しました。 総合的に判断して、新アーキテクチャを採用することになりました。 他にも色々あると思いますが、クラウドのメリットをあげておきます。 サービスに対して最適なアーキテクチャを考えて適応できる• 特にAWSはサービスが豊富で選択肢が多いところが魅力• サーバリソース最適化• ガラガラなCPUやメモリが最適化される• マシンリソースの増減を調整できる• 繁忙期だけマシンを増設することも容易に可能• コストが可視化されることでROIが明確になる• サービスのクローズが容易• サーバは一度購入してしまうとしばらく運用し続けなければならないが、クラウドであればいつでもやめられる• コピー環境を容易に作れる• (こちらは 2020 年 6 月 30 日に提供終了予定です)• AWSオフィスアワー• 弊社では、AWS の方に月に数回、オフィスアワーを実施していただいてます• S3 は、NAS に API が追加されたようなサービスで、UDS が提供していたようなファイルの CRUD 操作ができました。 画像の最適化(リサイズ、クロップ、圧縮等)のために Lambda Edge を使用しています。 AWS への移行方式 これまでは UDS がファイルを NAS で一元管理していましたが、移行後はファイルを登録したチームが直接ファイルを管理できるようにするため、移行時に各チームが保持している AWS アカウントにファイルを配布していきました。 また、並行稼働中に新旧ドメインでアクセス可能なように逆同期の仕組みを用意しました。 データ移行アーキテクチャ スケジュール 以下のスケジュールで AWS 移行を実施しました。 初期データ転送が終わったあとは、差分データを転送し続けていました。 転送方法 S3 Sync でデータ転送をしました。 S3 Sync は rsync のようなコマンドで、ローカルファイルと S3 を同期してくれます。 ただし、NAS をまるごとそのまま S3 Sync で同期すると、ファイル数が多すぎるため、途方もない時間がかかってしまいます。 そこで、NAS のディレクトリをある程度の単位に分割し、並列で転送するようにしました。 以下は NAS のディレクトリ階層例です。 具体的には以下のようなディレクトリ変換をしました。 jpg 上記の変換を実現するために、テンポラリーの S3 バケットにデータを入れ、それをトリガーに Lambda を実行させ変換処理をしました。 クロスアカウント 今回、複数の AWS アカウントに対して、ファイルを振り分けながらデータ転送しました。 クロスアカウントは S3 のバケットポリシーで実現しました。 (クロスアカウントするサービスが、S3 のみであれば AssumeRole は使わずとも実現ができます。 ) 以下はバケットポリシーの例となります。 CloudFront から S3 参照(公開権限)• S3 のクロスリージョンレプリケーション(オーナー権限) レプリケーションするにはファイルにオーナー権限が必要なため、別AWSアカウントから登録したファイルには、オーナー権限を付与する必要があります。 そのため、同期先にファイルを更新後、以下のように権限を変更しました。 以下はそのときのサンプルコードです。 nodejs (プリセットのACLにpublic-readがありますが、これだと公開権限しか付かないため、別途オーナー権限を付与する必要があります。 Owner. amazonaws. 原因はサービスと同じプロキシサーバを使っていたためでした。 S3 Sync ように一度に大量データを同期する場合、ネットワーク帯域を制限するか、サービスとは別のプロキシサーバを構築することが必要です。 今回のデータ移行では、後者で対応しました。 SDK は、今回のデータ移行で、S3 を更新するように改修しました。 更新はデータ不整合が発生しないようにメンテナンス日にサービスを停止して切り替えを実施しました。 SDK切り替えイメージ パフォーマンス改善 AWS に限った話ではありませんが、クラウド化することでオンプレに比べ、物理的に距離の遠くなるクラウドは、レスポンス性能が劣化します。 オンプレのときは、以下の処理のようにファイル更新をファイル数分ループするような処理でもパフォーマンスはそこまで問題にはなりませんでした。 そこで、大量更新にも耐えられるように、一件ずつループするのではなく、一括で処理できるようにSDKを改修しました。 以下はそのときのサンプルコードです。 PHP を使っています。 gnst. gnst. jpg UDSの参照は、利用者が多いため以下の方針で切り替えを実施しました。 S3 への更新をトリガーに Lambda を実行させ、UDS API を経由してファイルを NAS に保存しました。 並行稼働イメージ ドメイン救済措置 UDSのファイル(主に画像)は、個人ブログ等にリンクが貼られていたり、検索エンジン等のサムネイルで参照されていたりと、こちらからはコントロールできない部分のアクセスがそこそこあります。 そのため、旧ドメインへのアクセスをしばらくの間、新ドメインへリダイレクトさせる救済措置を行いました。 参照救済イメージ バックアップ これまでは NAS の snapshot 機能でデータの断面を定期的に取得していましたが、S3 にその機能はありません。 代替として、S3 のバージョニング機能を使いました。 バージョニングは、有効化することで、ファイルに更新があるたびに履歴を持ってくれます。 これにより、誤ってファイルを削除してしまっても、履歴から復元することができるようになります。 バージョニング設定 災害対策 S3 は東京リージョンを使っているのですが、万が一東京リージョンがダウンした場合に備えて、ソウルにも同じファイルをレプリケーションするようにしました。 ソウルとマルチリージョン化することで可用性を向上させました。 レプリケーションルールは以下となります。 レプリケーションルール設定 移行中にエラーが発生した場合のエラー通知 Lambda でエラーが発生した場合に、Slack 通知するような仕組みを作りました。 細かい部分は割愛しますが、エラー通知は以下の流れで設定できます。 CloudWatch Logs にメトリクスフィルターを追加 フィルターパターンは"ERROR"とする 2. アラームを作成 3. トピックを作成 4. サブスクリプションを作成 Slack通知はLambdaでします。 以下はLambdaのサンプルコードです。 env. env. env. env. Records [0 ]. host, port : 443, path : parser. env. setEncoding 'utf8' ; res. write JSON. stringify PAYLOAD ; req. CloudWatch Logs Insights でエラーリストを作成し、それをバッチオペレーション経由で Lambda を実行させました。 エラーリストは以下のクエリ結果となります。 ここでは、S3 構築時の設定ファイルを紹介します。 CloudFormation は json or yaml で記述ができますが、コメントが入れられるので yaml での記述がおすすめです。 Parameters S3 バケット名は、世界一意にする必要があるため、環境名をパラメータとして受け取るようにしました。 Parameters : テスト環境 or 本番環境 ENV : Type : String Description : Required "test" or "prod" AllowedValues : - test - prod ConstraintDescription : must specify prod, or test. S3バケット名 UdsBucketGroup : Type : String Description : Required enter the UDS bucket group. Mappings : Map01 : 移行用AWSアカウントのID 以下は、UDSのAWSアカウントIDが設定です。 UdsAwsAccountId : prod : 111111111111 test : 222222222222 Resources サービスの構築内容を Resources に記述していきます。 Resources : -. S3 -. ContentS3Bucket : Type : AWS::S3::Bucket DeletionPolicy : Retain Properties : S3バケット名 BucketName :! Join [ '', [ 'arn:aws:s3:::',! UDS移行後に、設定は削除するため、ドリフトとして検出されます。 Join - '' - - 'arn:aws:lambda:ap-northeast-1:' -! FindInMap [Map01, UdsAwsAccountId,! Join - '' - - 'arn:aws:lambda:ap-northeast-1:' -! FindInMap [Map01, UdsAwsAccountId,! Ref ENV ] - ':function:uds-sync' バケットポリシー ContentS3BucketPolicy : Type : AWS::S3::BucketPolicy DeletionPolicy : Retain Properties : Bucket :! Join [ '', [ 'arn:aws:s3:::',! Ref ContentS3Bucket ]] -! Join [ '', [ 'arn:aws:s3:::',! Join - '' - - 'arn:aws:iam::' -! FindInMap [Map01, UdsAwsAccountId,! Ref ENV ] - ':root' S3バケットの削除を制限 - Action : - s3:DeleteBucket Effect : Deny Resource : -! Join [ '', [ 'arn:aws:s3:::',! Join [ '', [ 'arn:aws:s3:::',! Join [ '', [ 'arn:aws:s3:::',! Ref ContentS3Bucket ]] Principal : CanonicalUser : - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Outputs 構築内容を参照して CloudFormation の画面に表示させることができます。 Outputs : S3BucketSecureURL : Value :! GetAtt [ContentS3Bucket, DomainName ]]] Description : Name of S3 bucket to hold website content さいごに 今回のデータ移行は多くの方にご協力いただきました。 関係者のみなさまありがとうございました。 本記事のノウハウがどなたかの一助になれば幸いです。 Special Thanks アマゾン ウェブ サービス ジャパン株式会社 ・武市 慶太郎 さん ・桑野 章弘 さん.

次の

30日間の無料お試し|食べログ・ぐるなび・ホットペッパー・ヒトサラに対応の自動更新システム 更新革命

ぐるなび自動更新

ぐるなび・食べログを最大限に活用したいが、うまくいかない• 集客にあまりお金をかけたくない方が、どうしたらいいか分からない• ぐるなび・食べログの表示順位が不満• ページへのアクセス数をアップさせたいが、その方法が思いつかない• 手動で情報を更新しているが、とても手間がかかる• 特集・トピックスを契約したが、お金だけかかっている• 他社で更新代行サービスをご利用中だが、何かしら不満がある お悩み解決は、是非「更新代行君」へ!まずは2週間無料トライアルをお試しください! 通常検索とは、お客様がお店のエリア・料理ジャンル・シチュエーションで行きたいお店を検索する方法です。 掲載順位は、「お店の最新情報2つ」と「こだわり5つ」をきちんと入れているお店から順番に表示されます。 お店の最新情報は1週間に1度消えてしまいます。 しかし、更新代行君ではお店の担当者様に代わり情報を更新するので、いつでも最新の状態をお客様に見てもらえます。 特集・トピックスを掲載しただけでは効果はありません。 ぐるなび営業担当に表示順位と更新の関係がどれだけ重要か聞いてみて下さい。 更新の重要性についてご存知の方は是非、私どもの更新代行君をご利用下さい! ぐるなび・食べログは更新することにより表示順位が変わります。 表示順位が上がると、アクセス数も上がります。 食べログの「空席情報」は最低1日1回は更新しないと、更新してあるお店より下位に表示されてしまいます。 ぐるなびの「お店の最新情報」・「特集情報」・「Topics」は1日24回、食べログは1日1回更新すると効果的です。 更新代行君は、ぐるなびの「お店の最新情報」・「特集情報」・「Topics」と食べログの「空席情報」を自動で更新してくれます。 11月1日から更新代行君を導入したお店のアクセス数グラフです。 波はあるものの、2週間無料トライアルだけでこのような効果が出ます。 ご体験いただけたお店だけ、ノーリスクでこの効果を実感できます。 海鮮・和食店 店長様 更新代行くんを導入したとたん、予約が次々入るようになってびっくりです。 今までなんで更新しなかったのかと後悔しきりです。 焼肉店 オーナー様 忘れてしまいがちな空席情報の更新も毎日やってくれて大助かりです。 これからもよろしくお願いします。 イタリア料理店 店長様 他の更新サービスを利用していたのですが、設定を少し間違えただけで更新できなかったりしたので、こちらに乗り換えました。 更新が連続して失敗すると連絡してくれるので安心して利用できます。 2.2週間無料トライアル 担当よりご連絡いたしまして、ぐるなび・食べログの更新設定を行います。 3.ご契約 サービスを気に入っていただけたら、担当にご連絡ください。 本契約のご案内をいたします。 4.ご請求 毎月月末に請求書を作成いたします、ご確認の上お振込みをお願いします。 無料でのお試しはできますか? A. 2週間無料トライアルを用意しております。 こちらよりお問い合わせください。 48時間以内にご連絡差し上げます。 無料体験後、すぐお断りできますか? A. 無料体験がお気に召さない場合には如何なる理由に関わらず、サービスを停止できます。 その場合、料金は頂きません。 割引はありますか? A. 年間一括でご契約いただいた場合には割引がございます。 初期費用・解約料はかかりますか? A. 一切かかりません。 解約の際には一か月前にお申し付けください。 隔月での契約は可能ですか? A. もちろんです。 お気軽にお申し付けください。 copyright c 2016 更新代行君 All Rights Reserved.

次の

「ぐるなび」「食べログ」「ホットペッパー」「ヒトサラ」に対応の自動更新システムの革命児「更新革命」を正式リリース!|株式会社アイビスのプレスリリース

ぐるなび自動更新

wikipedia. 最近はホットペッパーや食べログも人気を博している。 」と書いてあるのですがこれは日本では一番ぐるなびが... 月額400円。 仕方がなく、標準検索で標準したら、上位表示されるのは広告費を払... 事務の仕事を長年していたのですが外に出て人と会って仕事ができる職業に就きたいと思い転職をしようと考えています。 そこで「ぐるなび巡回スタッフ」の仕事募集を見かけました。 店舗を回ってヒアリングやアドバイスなどを行う仕事で... gnavi. gnavi. gnavi. 私はアイフォンを使用してます。 PCは使用してますがプリンターはありません。 ぐるなびってなんですか?本日お伺いする店に入ったらぐるなびの... gnavi. 皆さんはどちらがどういう理由で好きなのか教えてください。 リクルートのホットペッパーが糞なのは分かります。 お勧めの料理店検索サイトを教えてください。 gnavi. gnavi. gnavi. gnavi. gnavi. ぐるなびと食べログを著作権侵害で民事訴訟を起こすと勝てる見込みがあるのか教えてください。 ぐるなびと食べログは店の外観と内覧の写真を故意に転載しているので、著作権法違反に該当すると思います。 ななつぼしのロゴを転載して商標権違反で... gnavi. gnavi. php? gnavi. 会社の部門の報奨金で購入して、職場の仲間との飲み会などに使用したいと思います。 場所は主に東京23区。 メールマガジン解除しました。 しかし解除から3日、4日、5日と1週間たちましたが一向に配信しつづけてきます。 私はさらにぐるなみを退会しました。 でも退会してから今日で1... アップル関係の記事だったように思うのですが、いま、ぐぐってもそれらしいも... そしてそれはなぜでしょうか。 よろしくお願い致します。 そこで、ぐるなびの更新代行サービスを見つけたのですが似ていてどこが良いのかよく分かりませんこのサービス、利用した事のある方がおりましたら、... ぐるなびの更新作業は、なかなか大変で、サービス内容を聞いて、いいサービスだと思い利用しようかと考えています。 そこで、ネットでぐるな... ぐるなびにて出店しているのですが、ぐるなびPROのサービスの中に特集情報と新着テキストを更新することで、エリア内の検索順位が上位になる仕組みがあります。 月々結構な金額をはらって利用しているのですが、更新する人手が足りずにフルに... 私は、飲食店(居酒屋)の店長をしています。 ぐるなびの更新が、ピークタイムだとどーしても店内が忙しくて出来ません。 ぐるなび更新作業代行で、検索すると色々出てきますが周りにぐるなび更新代行を、利用したことがあ... 最近Xperiaを買いました。 Xperiaのフルブラウザを使っているのですが、色々なサイトで度々ログインできないような状態が起きて困っています。 正確なIDとパスワードを入れているのに、「IDかパスワードが間違っていま... 彼女もわたしも25歳で芸術学部出身のフリーターなので、経験がないのです。 わたしは神奈川に住んでいて、彼女は都内で暮らしています。 予算はランチ... というものなのですがそのコースを頼むのには予約が必要らしいのです。 この場合、クーポンを使う旨を予約時に伝えるべきなのでしょうか?クー... 何か情報をお持ちのかた教えてください。 ぐるなびのHPは見られるのですが、クーポンの所をクリックして、クーポン内容と地図も見れるのですが、「このページを印刷する」をクリックすると、画面が真っ白になり出力する事が出来ません。。 ちなみにソースネクスト社のウィルスセキ... テキストボックスに住所を打って、送信ボタンでぐるなびAPIにURLを送り単純にXMLを受け取るページを作って見たのですがうまく動きません。 HTMLとjava... 今、ぐるなびのような情報サイトを作りたいと思い、Javaのスクールに通おうと思っています。 知人に聞いたら「JavaでもPHPでも出来る」と言われました。 Javaコースに進むかPHPコースに進むか迷っているのですが、どちらの方が良いのか分からず判断がつかな... これはなんですか?とりあえず、行けば「親子なかよしプラン」... 311,000で購入。 さっさと損切りしたほうがいいんですか? ここ最近株をやり始めたばかりで もうショック。 あと、板情報で 金額がずらーっと並んでるのが普通かと思いきや、なぜ、ひとつの金額しか... 探したい店は、関東(主に東京)で、お店の種類としては、バー・クラブ・スナック・キャバレー系でしょうか。 飲みながら食事を済ませた後に行くようなお店を探したいのですが。 あれって、ぐるなび側がただで作ってあげてるのですか?誰でも登録などすれば自分ちの飲食店を載せてもらうことってできるんでしょうか?それともお店側がいくらか払って載せてもら...

次の