本文へジャンプします。

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

Automation:アプリ

ニフティクラウド Automationの「アプリ」は、アプリレイヤーのサーバー上で実行させたいソースコードのことを指しています。静的なHTMLページもアプリに含みます。

ソースコード自体はGitやニフティクラウドストレージのようなリポジトリに保存しておき、アプリにはソースコードをアプリサーバーへデプロイする際に必要な情報を保存しておきます。

アプリのタイプ

アプリには、下記5つのタイプが存在します。タイプによってソースコードがデプロイされる対象のサーバーが異なります。

Ruby on Rails Ruby on Railsのアプリ情報を保存しておくことができます。
指定したソースコードはRailsアプリレイヤーのサーバーへデプロイされます。
Railsの環境名とデプロイ時にbundle installを実行するかどうかを指定することができます。
PHP PHPのアプリ情報を保存しておくことができます。
指定したソースコードはPHPアプリレイヤーのサーバーへデプロイされます。
Node.js Node.jsのアプリ情報を保存しておくことができます。
指定したソースコードはNode.jsアプリレイヤーのサーバーへデプロイされます。
Static 静的なHTML(およびクライアントサイドJavaScript)の情報を保存しておくことができます。
指定したソースコードはWebレイヤーのサーバーへデプロイされます。
Other その他のアプリ情報を保存しておくことができます。
指定したソースコードはどのレイヤーのサーバーにもデプロイされません。
お客様が作成したカスタムレシピの中でデプロイを実施する必要があります。
  • ※アプリタイプがNode.js以外の場合、アプリのドキュメントルートを任意で入力できます。

リポジトリ設定

アプリには、ソースコードを取得するために外部リポジトリの情報を設定する必要があります。リポジトリは、4つのタイプを選択することができます。

設定について、詳しくは下記ページをご覧ください。

アーカイブ(HTTP) どこからもアクセスできるアーカイブとして利用するのに向いています。BASIC認証による保護を行うこともできます。
アーカイブ(クラウドストレージ) プライベートなアーカイブとして利用するのに向いています。
Gitリポジトリ ソースのバージョン管理を行うことができ、複数ブランチを持たせることもできます。
Subversionリポジトリ

アプリのデプロイ先

リポジトリに設定したアプリは、デプロイを行うことでサーバー内の下記の場所に配置されます。

デプロイ先 /srv/www/${アプリ短縮名}/current/
currentディレクトリ(※) /srv/www/${アプリ短縮名}/releases/${%Y%m%d%H%M%S形式の日時}/
  • ※releasesディレクトリの中の最新のディレクトリへのシンボリックリンクとなっています。
  • ※${%Y%m%d%H%M%S形式の日時}のディレクトリはデプロイが行われる度に追加され最大5世代まで保存されます。

SSL証明書設定

アプリにはSSL証明書を設定することができます。省略することも可能です。
証明書を設定すると、設定したアプリに対してSSL通信が可能になります(通常のHTTPによる通信も可能です)。

設定項目 証明書/秘密鍵/中間CA証明書(省略可)
設定方法 ニフティクラウドからインポート/直接入力
  • ※ニフティクラウドのSSL証明書をインポートした場合、ニフティクラウド側でSSL証明書を更新しても自動な同期は行わません。
    アプリの編集を行い、手動で再設定しなおしてください。

指定したSSL証明書は、アプリがデプロイされたサーバー内で下記のように配置・設定されます。

アプリタイプ 証明書タイプ 配置先 参照ファイル・読み出し方法
Railsアプリ
(Apache+Passenger)
証明書 /etc/httpd/ssl/${ドメイン名またはアプリ短縮名}.crt /etc/httpd/sites-available/${アプリ短縮名}.conf
秘密鍵 /etc/httpd/ssl/${ドメイン名またはアプリ短縮名}.key
中間CA証明書 /etc/httpd/ssl/${ドメイン名またはアプリ短縮名}.ca
Railsアプリ
(Nginx+Unicorn)
証明書 /etc/nginx/ssl/${ドメイン名またはアプリ短縮名}.crt /etc/nginx/sites-available/${アプリ短縮名}
秘密鍵 /etc/nginx/ssl/${ドメイン名またはアプリ短縮名}.key
中間CA証明書 /etc/nginx/ssl/${ドメイン名またはアプリ短縮名}.ca
Node.jsアプリ 証明書 /srv/www/${アプリ短縮名}/shared/ssl/${アプリ短縮名}.crt Node.jsアプリ内から読みだしてご利用ください。
秘密鍵 /srv/www/${アプリ短縮名}/shared/ssl/${アプリ短縮名}.key
中間CA証明書 /srv/www/${アプリ短縮名}/shared/ssl/${アプリ短縮名}.ca
PHPアプリ 証明書 /etc/httpd/ssl/${ドメイン名またはアプリ短縮名}.crt /etc/httpd/sites-available/${アプリ短縮名}.conf
秘密鍵 /etc/httpd/ssl/${ドメイン名またはアプリ短縮名}.key
中間CA証明書 /etc/httpd/ssl/${ドメイン名またはアプリ短縮名}.ca
Webアプリ 証明書 /etc/nginx/ssl/${ドメイン名またはアプリ短縮名}.crt /etc/nginx/sites-available/${アプリ短縮名}
秘密鍵 /etc/nginx/ssl/${ドメイン名またはアプリ短縮名}.key
中間CA証明書 /etc/nginx/ssl/${ドメイン名またはアプリ短縮名}.ca

ドメイン設定

アプリには複数のドメインを設定することが可能です。
指定したドメインはアプリがデプロイされたサーバー内で下記のように設定され、名前ベースのバーチャルホストとして利用することができるようになります。

アプリタイプ 設定ファイル 設定箇所
Railsアプリ
(Apache+Passenger)
/etc/httpd/sites-available/${アプリ短縮名}.conf

<VirtualHost *:80>ディレクティブ内のServerName

  • ※SSL証明書が指定されている場合
    <VirtualHost *:443>ディレクティブ内のServerName
Railsアプリ
(Nginx+Unicorn)
/etc/nginx/sites-available/${アプリ短縮名} server.server_nameディレクティブ
Node.jsアプリ 特に設定ファイルへの反映は行われません。
PHPアプリ /etc/httpd/sites-available/${アプリ短縮名}.conf

<VirtualHost *:80>ディレクティブ内のServerName

  • ※SSL証明書が指定されている場合
    <VirtualHost *:443>ディレクティブ内のServerName
Webアプリ /etc/nginx/sites-available/${アプリ短縮名} server.server_nameディレクティブ
  • ※ドメインを設定しても自動でドメイン取得が行われるわけではありません。
    あらかじめ、ニフティクラウド DNSを利用してドメインを取得し、スタック内のサーバーまたはロードバランサーのIPアドレスへ紐付ける必要があります。
ドメインを指定しない場合

下記のように利用することができます。

  アプリ短縮名設定箇所 ご利用方法
Apache ServerNameディレクティブ アプリサーバーへのHTTPリクエストで「HOST: ${アプリ短縮名}」を送信
Nginx server.server_nameディレクティブ

注意事項

  • アプリの作成自体にご利用料金はかかりません。アプリをデプロイするためにサーバーを起動するとご利用料金がかかります。
  • コントロールパネル自体にはアプリ用のドメインを取得する機能はありません。あらかじめ、お客様自身でドメインを取得するか、ニフティクラウドDNSを利用してドメインを取得してください。
  • ニフティクラウドのSSL証明書を更新しても、ニフティクラウド Automationのアプリへ自動的な同期は行わません。アプリの編集を行い、手動で再設定しなおしてください。
  • サーバー起動時にスタック内にアプリが存在している場合、Setupコマンド実行時にDeployイベントのレシピが実行され、アプリのデプロイが行われます。

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