クラウドサーバはコピーできる-お手軽VMコピー

クラウドnでサーバを構築すると簡単にそのサーバをコピーして新しくサーバを構築できます。

ある程度設定したものをもう一度作り直すのは大変ですが、コピーして必要なところだけ変えていくというのはとってもラクチン。

既存の仮想サーバーの複製を作成できますか。

今回は映像配信用に構築したサーバをコピーします。映像配信サーバなので配信帯域を必要とします。なので、極力論理的に離れた位置のサーバの方が有利です。そこで異なるリージョンにサーバをコピーします。

<C:異なるリージョンの場合>
例:西日本リージョンにある仮想サーバから、東日本リージョンで複製サーバを作成

【手順(パターンC)】

※スナップショットの作成には少し時間がかかりました。なかなか終わらなかったので、一晩おいてから確認しました。

表示-スナップショット

(マイテンプレートとして作成される)

※仮想サーバを停止した場合は、直接、ROOTディスクからテンプレートの作成が可能

テンプレートの作成でOSの種類を問われました。Ubuntuである事は覚えていたのですがバージョンは、、、。

バージョンの確認方法

root@Cloudn01:/etc# cat /etc/issue
Ubuntu 16.04.4 LTS \n \l

32bitナノか?64bitナノか?

root@Cloudn01:/etc# uname -a
Linux Cloudn01 4.4.0-104-generic #127-Ubuntu SMP Mon Dec 11 12:16:42 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

x86_64 と書いてあるので64bitですね。

※テンプレートの作成にも時間がかかります。こちらも30分ほどかかりました。

※テンプレートをダウンロードする際に、.qcow2 という拡張子がつかない状態で
ダウンロードされる場合があるため、その際は .qcow2 をつけるように、ダウン
ロード後にリネームしてください。
※テンプレートをダウンロードする際に、失敗する事象が見つかっております。
もし失敗した場合は、チケットにてカスタマーサポートまでご連絡をお願いいた
します。
※作業が完了するまでお時間がかかりますのでご了承ください。

テンプレートは13.1GBになっていました。

(HTTPアクセス可能な場所、またはObjectStorageサービスもご利用可能)

Google Driveにアップしてみましたが、Google DriveのURLリンクはhttpsになるため、テンプレート追加時点でエラーが出ました。

 

※作業が完了するまでお時間がかかりますのでご了承ください。

※Google Drive (https://)だと失敗します

それから、http://でダウンロードできる位置にファイルを置いて登録すると、すぐに「テンプレート登録完了」とでますが、実際にはまだ利用できる状態ではありません。

ゾーンIDの下に、テンプレートのコピー、ダウンロードなどの表示が出ていない間はまだ利用できる状態じゃない。私の場合、利用できるようになるまで2時間かかりました。

で、無事に起動しました。最近cloudnは混雑がひどいようなのでcreateに失敗する事もありますが、無事に稼働してます。

これで、東日本リージョン、西日本リージョンに1台ずつ仮想サーバを構築できました。パスワードもすべて同じ!!嬉しい。これは同じ構成のサーバ構築するのにすごい手間を軽減できます。

コピーしたサーバを映像配信サーバに仕立てます。

SSH: 22

RTMP: 1935

HTTP:80

GoAccess:7890

refererで制約かけている部分などipアドレスが変わるので書き換えます。cloudn.hanako.jpから、cloudn0a.hanako.jpに変えたので

        location ~ ^/hls/ {
             valid_referers server_names cloudn.hanako.jp;
             if ($invalid_referer) { return 403; }
        }

これから

        location ~ ^/hls/ {
             valid_referers server_names cloudn0a.hanako.jp;
             if ($invalid_referer) { return 403; }
        }

といった感じにします。

URLが変わるので、web playerのコンフィグを変更します。必要に応じてリアルタイム配信ポイントなどもあれ、

# cat jp.html
<script src="../hlsjs/hls.min.js"></script>
<video id="video" controls width="1280" height="720"></video>
<script>
  if(Hls.isSupported()) {
    var video = document.getElementById('video');
    var hls = new Hls();
    hls.loadSource('http://cloudn0a.hanako.jp/hls/stream.m3u8');
    hls.attachMedia(video);
    hls.on(Hls.Events.MANIFEST_PARSED,function() {
      video.play();
  });
 }
 // hls.js is not supported on platforms that do not have Media Source Extensions (MSE) enabled.
 // When the browser has built-in HLS support (check using `canPlayType`), we can provide an HLS manifest (i.e. .m3u8 URL) directly to the video element throught the `src` property.
 // This is using the built-in support of the plain video element, without using hls.js.
  else if (video.canPlayType('application/vnd.apple.mpegurl')) {
    video.src = 'http://cloudn0a.hanako.jp/hls/stream.m3u8';
    video.addEventListener('canplay',function() {
      video.play();
    });
  }
</script>

コンフィグを書き換えているのに、リスタートしていないとそりゃうまくいきません。これもはまるポイントになるので忘れないようにします。

# /etc/init.d/nginx restart

テンプレートを保存するには、ディスク領域を利用するのでその分お金がかかります。15GBのディスク領域を1か月利用するとおよそ150円ほどの料金が発生します。

私はとっても節約家なのでダウンロードしたテンプレートイメージを別場所で補完し、cloudn上のスナップショット、テンプレートは全て削除しました。

またコピーしなきゃいけなくなったら、ダウンロードしたイメージを2~3時間かけてアップすればいいですし。