Linux Virtual ServerとKeepalivedで作る冗長化ロードバランサ
多数のクライアントがアクセスするような負荷の高いサービスや停止させられないサービスを運用する場合、複数のサーバーを使ってサービスの負荷分散や冗長化を行うのが一般的だ。本記事では、「Linux Virtual Server(LVS)」を使ってこのような構成を実現する方法について紹介する。
多数のクライアントがアクセスするような負荷の高いサービスや停止させられないサービスを運用する場合、複数のサーバーを使ってサービスの負荷分散や冗長化を行うのが一般的だ。本記事では、「Linux Virtual Server(LVS)」を使ってこのような構成を実現する方法について紹介する。
OpenStackではRESTベースのAPIを使用してインスタンスやオブジェクトストレージの操作や管理が行える。提供されるAPIは独自のものだけでなくAmazon Web Services(AWS)互換のものもあり、EC2やS3に対応するクライアントなどからの操作が可能だ。本記事では、OpenStackでこのようなAPIを利用する方法や、OpenStackの操作に利用できるツールを紹介する。
Node.jsは原則としてシングルスレッドで動作する。そのため、多くのリソースを消費するプログラムでは、リクエストを受信してからレスポンスを返すまでの遅延が大きくなってしまう可能性がある。このような場合、複数のプロセスでプログラムを実行し、リクエストを振り分けることでサーバーのCPUリソースをより効率良く利用できる可能性がある。今回はNode.jsで複数プロセスを利用するための方法を紹介する。
クラウドインフラストラクチャ構築ソフトウェアであるOpenStackには、クラウドストレージシステムを提供する「Swift」というコンポーネントが含まれている。Swiftを利用することで、自動レプリケーションや分散化といった機能を持つクラウドストレージサービスを構築することが可能だ。本記事ではこのSwiftが持つ機能を紹介するとともに、Swiftによるストレージサービスの構築手順を解説する。
Node.jsアプリケーションのデバッグを行う際に、変数の値や実行中の関数、実行した関数の戻り値といったプログラムの内部的な状態を外部から確認することで、デバッグの効率が大幅に向上する。本記事ではこれらを実現できるNode.js組み込みのデバッグ機能や、GUIで操作できるデバッガ「node-inspector」について紹介する。
OpenStack 2012.2(「Folsom」)で新たに追加された新コンポーネント「Quantum」は、クラウド環境内での仮想ネットワーク作成や管理を行うためのサービスだ。柔軟に仮想ネットワークを作成でき、またネットワーク仮想化に対応したハードウェアとの連携機能も搭載している。今回はこのQuantumの導入方法や、シンプルな仮想ネットワーク環境の構築方法について解説する。
JavaScriptの標準規格であるECMA-262においては、ファイルシステムにアクセスするための機能やバイナリデータを処理するための機能については定義されていない。そのためNode.jsでは、ファイルに対する入出力およびファイルシステム操作を行うためのfsモジュールや、バイナリデータを扱うためのBufferクラスが用意されている。本記事では、Bufferクラスを使ったバイナリデータの処理について紹介する。
OpenStack 2012.2(コードネーム「Folsom」)で追加された新たなコンポーネントの1つに、ブロックストレージの管理を行う「Cinder」がある。従来は「Nova」というコンポーネントがこの機能を提供していたが、Folsom以降ではCinderへの移行が進められている。本記事では、LVMおよびNFSと組み合わせてCinderを利用するための基本的な設定やその使い方を紹介する。
サーバーの基本的なセキュリティ対策の1つとして重要なのが、ネットワーク内のどのマシンがどのポートでサービスを提供しているのかを把握することだ。このために有用なのが、ポートスキャナと呼ばれるツールだ。本記事ではポートスキャナとして有名な「Nmap」というソフトウェアを使用し、ポートスキャンを行う方法について解説する。
Node.jsがWebブラウザのJavaScript実行環境と異なるのは、関数やクラスが定義された「モジュール」が利用できる点と、「イベント」と呼ばれる機構を多用する点、そして対話的な実行環境であるREPLが備えられている点だ。Node.jsに初めて触れるユーザーに向け、これらの機能について紹介しよう。