アマゾンはFacebookのデータセンターで「雲から降りる」アマゾン

従来のデータセンターからクラウドにアプリケーションを移動する多くの理由が何であれ、逆のアクションをとる理由は少なくありません。 この転送の最近の例は、InstagramサーバーのAmazonのパブリッククラウドサービスからFacebookデータセンターへの最近の移動です。







このような操作を行うために、Instagramのエンジニアは、予想外の困難を克服するために非標準的なアプローチを使用して洗脳しなければなりませんでした。 彼らのこの仕事は、クラウドに容量を配置することは、データセンターのプロバイダーと機器メーカーの両方にとって、かなり難しいタスクであり続けることを思い出させてくれます。



Facebookの創設者兼CEOであるマーク・ザッカーバーグは、インターネット大手からオンライン写真ホスティングサービスを取得した後、2012年にInstagramがFacebookエンジニアリングソリューションとインフラストラクチャのメリットを評価する機会を得たと述べました。



最初は思ったほど簡単ではなかった



チームは、Facebookシステムとの統合を促進し、エンジニアが作成したFacebookインフラストラクチャ全体を使用して大規模なサーバー容量を管理するために移動することを決定しました。 これらのアクションの後、エンジニアのチームは、Facebookインフラストラクチャとのいくつかの接点を発見しました。これにより、製品開発とセキュリティ強化の機会がさらに増えました。







移行プロジェクトは、当初の予想ほど単純ではありませんでした。 「当初、移動は簡単に思えました。AmazonElastic Compute Cloud(EC2)とFacebookデータセンターの間に安全なネットワークを設定し、サービスを部分的に徐々に移動していきました」とInstagramのエンジニアRick Branson、Pedro Kahuati、Nick Shotwayはブログ投稿で述べています。



最初は、Amazonプライベートクラウドに移行しようとしました



しかし、彼らはすぐに、それが最初に思われたほど簡単ではないことに気付きました。 主な問題は、Facebook IPアドレスとEC2の競合です。 ソリューションは、AmazonのVirtual Private Cloud(VPC)への最初の移行であり、Amazon Direct Connectを使用して初めてFacebookデータセンターに移行しました。







Direct Connectは、データセンターでAmazonが提供するサービスであり、基本的にはユーザーサービスとパブリッククラウドサービスの間のリンクです。 主に企業を対象としており、インターネットコミュニティを回避し、生産性を維持し、セキュリティを確保するために作成されました。 「AmazonのVPCは、埋もれたFacebookネットワークとの競合を回避するのに十分な柔軟性を備えています!」エンジニアは言いました。



EC2はAmazon VCPに「友好的」ではありません



ただし、アプリケーションをクラウドインフラストラクチャからプライベートクラウドに移行することも、最初のように簡単ではありません。 Instagramには1日に数千のプロセスがあります。 障害のリスクを減らし、これらのプロセスを可能な限り容易にするために、チームはEC2とVPCクラウドサービスを同時に必要とします。これが問題です。



「AWSは、セキュリティグループを交換したり、閉じたEC2とVPCネットワークをオーバーラップしたりする機能を提供していません」と彼らは書いています。 「2つの閉じたネットワーク間の相互作用の唯一の方法は、パブリックアドレススペースを作成することです。」 PythonとZookeeperは、動的IPアドレスを処理するための特別なアプリケーションを作成しました。これは、Netiと呼ばれ、安全なグループアクティビティと特定の要求ごとに個別のアドレスを提供します。



したがって、3週間後、運動はその種の最速と呼ばれました。 このスタックは、Facebookのデータセンターの新しい場所に配置する準備ができていました。



Linuxコンテナはカスタムツールを移植可能にします



プロセスのこの段階はより複雑でした。なぜなら、 Instagramチームは、EU2でホストされている運用システム用に作成されたすべての管理ツールを保持したいと考えていました。 これを行うために、Chef configuratorsとFabricと呼ばれるツールが使用されました。これらのツールは、ホストアプリケーションからデータベースのプロモーションまで、さまざまな機能を実行しました。







ツールを適切に調整されたLinuxベースのFacebook環境に配置するために、チームはすべてのバックアップツールをLinuxコンテナー(LXC)に配置しました。 「Facebookのバックアップツールを使用して基本構造を作成し、Chefがコンテナ内にInstagram固有のソフトウェアをインストールおよび構成します」とInstagramチームは述べました。



移行は経験です



このようなプロジェクトは、1つまたは2つのイノベーションを研究する必要なく通過することはできません。Instagramチームもこれに対処する必要がありました。 新しいアイデアのほんの一部を次に示します。




All Articles