BT

Herokuでのipifyサービスのスケーリング

| 作者: Hrishikesh Barua フォローする 15 人のフォロワー , 翻訳者 編集部T フォローする 1 人のフォロワー 投稿日 2018年2月16日. 推定読書時間: 3 分 |

原文(投稿日:2018/02/10)へのリンク

読者の皆様へ:お客様のご要望に応じて、重要なものを逃すことなく、ノイズを低減できる一連の機能を開発しました。興味のあるトピックを選択して、電子メールとWeb通知を入手してください

ipifyサービスの開発者は、Heroku上の30億件以上のリクエストにサービスをスケールした経験を共有した。ipifyは、アプリケーションが外部IPアドレスを取得するために呼び出すことができるAPIを公開するオンラインサービスである。当初node.jsで書かれていたこのサービスは、より良いスケーラビリティを得るためにGoで書き直された。

自身の1プロジェクトにおける必要を解決するために、Randall Degges氏によってipifyが開始された。最初のバージョンはnode.jsで作成され、Herokuにデプロイされた。このサービスは、プログラムで使用できるように、curlのようなツールを介してアクセス可能であった。このウェブサイトは、後段をS3バケットとするCloudFrontに配備されたシンプルなフロントエンドであった。Herokuにはdynosと呼ばれるサーバ単位があり、最小のものは512MBのRAMと1つのCPU共有を提供する。Herokuはメンテナンスが少なくて済むサービス選択であった。プロセスの失敗時に自動再起動し、フロントにロードバランサを配置できた。この初期設定コストは約7ドル/月である。HerokuはAWSでホストされ、AWSの根底にある信頼性を活用することもできる。

サービスの人気が出たことによって、いくつかのスケーリングに関する問題が明らかになった。これは、ハードウェアを追加することでは解決できなかった。いくつかの調査によると、スループットはわずか約10リクエスト/秒であった。ノードクラスタモジュールを使用することで、いくつか改善された。ノードクラスタモジュールでは、マルチコアシステムを利用するために複数のプロセスが起動される。これが増加するトラフィックを処理するには不十分であると判明したとき、サービスはGoに書き直された。

Goのhttprouterパッケージが、他の選択肢よりも性能が優れていたために、採用された。書き直されたサービスは大幅に改善され、1dynoのデプロイで、より少ないメモリ(約5MB)で、2000以上のリクエスト/秒を処理できた。文字列処理のさらなる改善により、追加で1,000リクエスト/秒のパフォーマンス向上につながった。これにより、1dyno上で実行されるコストも下がった。AWSでホストされているipinfo.ioのようなサービスも、スケーラビリティの問題に直面し、コストアップにつながり、サービスの収益化は1つの解決策である。

ipifyは、通常の開発者だけでなく、マルウェアの作者によっても使用されており、スパイクトラフィックが大量に発生した。このため、ウイルス対策ベンダーによって、パブリックブロックリストに基づいて、ブロックされていた。現在のサービスの使用状況は、最大で月あたり300億リクエストに達し、平均応答時間は1~20ミリ秒である。位置情報の提供などの、他のサービスでは、ipifyと違い速度制限がある

ipifyのクライアントライブラリはいくつかの言語で利用できる。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

特集コンテンツ一覧

.NETの派生を理解する

Wayne Citrin 2018年7月18日 午前3時44分

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT