本文へジャンプします。

ニフティクラウド 技術仕様

Automation:レイヤー

レイヤーは、サーバーの設計図のようなものです。

サーバーにインストールするパッケージの一覧を定義したり、それぞれのパッケージにどのような設定をするか定義したりすることができます。
スタックには複数のレイヤーが存在し、スタックがどのように機能するかを決定します。

スタック内レイヤー作成上限 20個/1スタック

レイヤーの種類

レイヤーには、「デフォルトレイヤー」と「カスタムレイヤー」があります。
各スタックに対して、デフォルトレイヤーは1つずつしか作成することができませんが、カスタムレイヤーは複数作成することができます。

デフォルトレイヤー

「PHPアプリを提供する」、「静的なHTMLを提供する」といったよくあるケースに対応するために、あらかじめ用意されたレイヤーです。
カスタムChefレシピを実装して適切なライフサイクルイベントへ割り当てることでカスタマイズして利用することも可能です。

下記のレイヤーを用意しております。

ロードバランサーレイヤーロードバランサーを作成することができます。
MySQLレイヤーMySQLサーバーを作成することができます。
Webレイヤー静的なHTMLページを提供することができます。クライアントサイドのJavaScriptを提供することもできます。
RailsアプリレイヤーRuby on Railsアプリケーションを提供することができます。
Node.jsアプリレイヤーNode.jsアプリケーションを提供することができます。
PHPアプリレイヤーPHPアプリケーションを提供することができます。
Memcachedレイヤーキャッシュサーバーを作成することができます。
Gangliaレイヤー監視サーバーを作成することができます。
カスタムレイヤー

独自のレイヤーを作成することができます。

ライフサイクルイベント

レイヤーにはライフサイクルイベントが存在し、各イベントにはそのレイヤー特有のレシピを紐付けることができます。
レイヤーに所属するサーバーにイベントが発生すると、自動的にそのイベントに紐付いたレシピを実行します。

Setupイベント サーバーが起動したタイミングで発生します。
レイヤーの設定に基づき、サーバーを構築するために必要なレシピを実行します。
SetupレシピにはDeployレシピも含まれ、Setupが完了すると自動で既存の全アプリがデプロイされます。
Configureイベント スタック内の1サーバーのステータスが「オンライン」になるか、「オンライン」から別のステータスに変化した場合に、ほかのすべてのサーバーに発生します。
Deployイベント アプリをアプリサーバーへデプロイするために「アプリデプロイ」を実行すると発生します。
各アプリサーバーで、デプロイレシピが実行され、アプリのリポジトリからソースコードがデプロイされます。
アプリサーバー以外のサーバーにデプロイを行い、新しくデプロイされたアプリの情報を設定ファイルに反映させることもできます。
Undeployイベント アプリを削除したとき、またはアプリレイヤーのサーバーからアプリを削除するためにundeployコマンドを実行したときに、発生します。
サーバーでUndeployレシピが実行され、すべてのバージョンのアプリの削除と必要なクリーンアップ処理が行われます。
Shutdownイベント Automationでサーバーを停止したときに発生します。
サーバーでShutdownレシピが実行され、サービスの停止などのタスクが実行されます。
Shutdownレシピの完了を90秒待ち、それでも終了しない場合は強制的にサーバーの停止を実行します。

Chef設定

各レイヤーには、各ライフサイクルイベント毎に実行されるデフォルトレシピが設定されています。

また、各レイヤーにはデフォルトレシピ以外にお客様が作成した独自のカスタムレシピを指定することも可能です。
カスタムレシピとして指定するレシピは、スタックのカスタムCookbooksに存在するレシピでなければなりません。

ディスク設定

レイヤー内の全サーバーでマウントするディスクの設定を行うことができます。

単純なディスクのマウントから、RAID構成までを選択することができます。
実際のディスク作成・マウント処理は、レイヤー内のサーバーを初めて起動したタイミングで、Automationが自動的に行います。

ディスク設定上限 2個/1レイヤー
設定可能な項目 マウント先 サーバー内でのマウントポイントを指定することができます。
タイプ ディスクの種類を指定します。
ニフティクラウドの増設ディスクを選択することができます。 増設ディスクについては下記ページをご覧ください。
RAID RAIDレベルを選択できます。なし/1/0/10から選択できます。
ディスク数 1つのディスク設定内で利用するディスク数を選択します。
RAIDを「なし」を選択した場合は、1のみが選択できます。
RAIDを「なし」以外を選択した場合は、2/4のどちらかを選択できます。
実効サイズ サーバー内で利用可能な実効サイズを選択します。
料金コース 従量または月額を選択することができます。
ディスク設定の削除についての注意事項
  • レイヤーのディスク設定を削除しても、ニフティクラウドに作成したディスクの削除は行われません。コントロールパネルから削除を行ってください。
  • すでにディスク設定が適用されたサーバーを停止し、ディスク設定の追加・削除を行い、サーバーを起動させた場合、 追加されたディスク設定を元にディスクの作成・アタッチが行われ、サーバーにマウントされますが、 削除されたディスク設定は無視されるため、すでにアタッチされていたディスクはマウントされたままとなります。

パッケージ設定

各レイヤーには、レイヤーに所属するサーバーへインストールするパッケージの一覧を指定することができます。

OS毎に指定できるパッケージは下記のようになっています。

Ubuntu 12.04 64bit Plain OS標準のリポジトリに存在するパッケージ
CentOS 6.3 64bit Plain OS標準のリポジトリまたはEPELリポジトリに存在するパッケージ
  • ※指定したパッケージは、サーバーが起動した時点でSetupイベントに指定されたデフォルトレシピのdependenciesによってインストールされます。
  • ※レイヤーの編集により新たにパッケージを追加した場合、既存のサーバーには適用されません。
    既存サーバーへの適用は、「デプロイ」ページの「コマンド実行」からパッケージをインストールしたいサーバーに対してinstall_dependenciesコマンドを実行する必要があります。
  • ※一度インストールしたパッケージをアップデートしたい場合には、「デプロイ」ページの「コマンド実行」から更新対象のサーバーへupdate_dependenciesコマンドを実行してください。 update_dependenciesコマンドを実行すると、各サーバーのOS毎のパッケージマネージャーが更新を行います。
    詳しくは「ニフティクラウド Automation Cookbooks」の「dependencies::updateレシピ」をご覧ください。

ロードバランサーの追加

レイヤーにロードバランサーを追加することができます。複数のロードバランサーを追加することが可能です。

ロードバランサーを追加すると、追加した時点でステータスが「オンライン」のサーバーがすべてロードバランサーの振り分け対象となります。
レイヤーへロードバランサーを追加した後で、そのレイヤーにサーバーを作成・起動すると、サーバー起動時にロードバランサーの振り分け対象への追加が行われます。

一度、レイヤーに追加したロードバランサーを削除すると、その時点でステータスが「オンライン」のサーバーがすべてロードバランサーの振り分け対象から外されます。
また、サーバーを停止した場合にも、レイヤーに紐付いたロードバランサーの振り分け対象から外されます。

注意事項

  • スタック内の各レイヤーには少なくとも1台のサーバーを所属させる必要があります。場合によってはレイヤーに複数のサーバーを所属させることもできます。
  • スタック内のサーバーは必ずレイヤーに所属する必要があります。
    サーバーに直接設定できる項目はSSHキーやホスト名ぐらいの限られたものなので、適切なレイヤーを作成・設定し、そのレイヤーへサーバーを所属させるようにする必要があります。
  • レイヤーの作成自体にご利用料金はかかりません。レイヤー内のサーバーを起動した時点で料金がかかります。
  • レイヤーの編集を行ってもレイヤー内の既存サーバーへ即時反映は行われません。新たに作成したサーバーにのみ適用されます。
  • レイヤーのディスク設定によっては、サーバー起動時に大量のご利用料金がかかる可能性があります。サーバー起動時に「合計金額」をよく確認した上でサーバーの起動を行ってください。
  • レイヤーを削除するためには、レイヤー内のサーバーをすべて削除しておく必要があります。

推奨画面サイズ 1024×768 以上