IDC フロンティア様が運営する IDCF クラウドが(今の形になって)1周年を迎えました。おめでとうございます!
IDCF クラウド1周年記念キャンペーン!
私自身は(当時はノアクラウドとか呼ばれてたと思うけど・・・まだ残ってるよね?)以前から IDC フロンティア様のクラウド利用させていただいていたので「1周年」という感覚はあまりないのですが、代名詞※にもなった「ワンコイン(=月額500円)」でありながら一級品のネットワークバックボーンを備えたこの IDCF クラウドが個人のウェブサービス運用では手放せないくらい便利で、使わせていただいています。
※「500円 クラウド」で検索すると、広告を抜いたトップは IDCF クラウドになってます。
なお、以前に私が別クラウドを使っていて、IDCF クラウドに乗り換えた時の様子は当時のブログエントリにしているので、そちらも参照ください:
IDCFクラウドに乗り換えました
で、この「ワンコイン」のインスタンスは、IDCF クラウド的には light.S1 と呼ばれるマシンタイプのものです。スペックは 0.8GHz の vCPU 1つ、メモリ 1GB(ここまで200円/月)、ディスク 15GB(300円/月)、これをCentOS などの無料 OS で運用すると 200 + 300 = 500円/月 というものです:
実際にインターネットに公開するサービスを作ろうとすると、パブリック IP アドレスが必要になります。パブリック IP アドレスは1つに付き 500円/月 ですが、アカウントに対して最初の1つ目(ソースアドレス)は無料で提供されます。なので1インスタンス月額500円運用が可能になります:
さて、では2台目のインスタンスを同じスペックで作るとどうでしょう。インスタンス自体は 500円/月ですが、2つ目以降のパブリック IP アドレスは 500 円/月です。つまり2台目以降は1台につき 1000 円/月かかる、ということになります。。。
月500円くらいケチケチすんな! という声が聞こえてきそうですが、でも割合で言えば 500 か 1000 かは倍違います。3台目、4台目となった時にそれなりの差が出てきてしまいます。また IDCF 以外でも IP アドレス付きで1インスタンス500円前後で提供している所はあるので、比較した際に価格的な差も生じてしまいます。
そんな理由で愛する IDCF クラウドが不利になるのは納得できない!
というわけで、2台目以降の light.S1 インスタンスを 500 円で使ってみました(IDC フロンティア様が期待しているのはそういう使い方じゃないかも・・・)。
まずサーバー用途でなく、クローラー用途など、「外部からアクセスして利用するわけではない用途」のインスタンスであれば、そもそもパブリック IP アドレスを付与する必要はありません(あると直接ログインできて何かと便利だけど)。外部に公開する IP アドレスが不要な使い方であれば、プライベート IP アドレスだけで運用すれば月額 500 円です。
次にサーバー用途の場合、こちらが本題です。端的に言えば「ポートフォワーディングでなんとかする」という考え方です。2つ目以降のパブリック IP アドレスに料金がかかるならそこは使わず、1つ目の IP アドレスをうまい具合に流用して2台目以降のインスタンスでも使っちゃおう、というやり方です。多くの人にとっては今更感のある方法かもしれませんが、貴重な無料クーポンを効率よく使う IDCF といえばワンコインクラウド、を実践するための知恵です。
具体的にはこんな感じです。まず現状、light.S1 の仮想マシンが2台あるとします:
この2台をそれぞれこんな感じで使えるようにしたい、とします:
要は1台目は一般的な LAMP サーバーで MySQL まで外部に公開。SSH もデフォルトの 22 番ポートで公開する、というものにします。一方2台目はちょっと目的が異なり、流行りの Node-RED 環境を用意しようとしています。外部に公開するポートは Node-RED サーバーのデフォルトである 1880 と、MQTT ブローカーの 1883、そしてこのサーバーにも SSH でアクセスできるようにしたいのですが、デフォルトの 22 番ポートだと1台目の SSH と衝突してしまうので、2台目の SSH には 10022 番を割り当てるものとしています。
実際には2台目のマシンで MySQL を動かして公開したり、1台目のマシンに別の HTTP を動かしたりすることもできますが、いずれのケースでもポート番号だけは衝突しないようにする必要があります(そしてその結果、デフォルト設定とは違う値を設定する必要が出てきます)。
この内容を IP アドレスの設定に反映させます。まずはファイアウォールの設定で開ける必要のある全ポート番号(上記例では 22(ssh), 80(http), 1880(http), 1883(mqtt), 3306(mysql), 10022(ssh) の6つ)を通すよう設定しておきます:
次にポートフォワードの設定です。先程ファイアウォール設定で開けた各ポート毎に振り分け先を指定してあげます。その際、パブリックポートには開けたポート番号を、プライベートポートには実際に動いているポート番号を指定します。多くの場合は同じ数字(実際に動いているポート番号)を指定しますが、今回の例だと2台目の SSH だけは実際には 22 番ポートで動いている SSH に、ファイアウォールで開けた 10022 番ポートから繋がるよう設定する必要があります。そのため、パブリックポートを 10022 に、プライベートポートを 22 に指定しています:
これで1つのパブリック IP アドレスを2台のマシンで共有する形で割り振ることができました。なお、実際に2台目のマシンに SSH でログインする場合は、ポート番号に 10022 を指定して接続する必要があります(デフォルトの 22 番だと1台目のマシンに繋がります):
これで「2台目以降も 500 円の IDCF クラウド」になりました。
これからも遠慮無く使わせていただきます。よろしくおねがいします。
IDCF クラウド1周年記念キャンペーン!
私自身は(当時はノアクラウドとか呼ばれてたと思うけど・・・まだ残ってるよね?)以前から IDC フロンティア様のクラウド利用させていただいていたので「1周年」という感覚はあまりないのですが、代名詞※にもなった「ワンコイン(=月額500円)」でありながら一級品のネットワークバックボーンを備えたこの IDCF クラウドが個人のウェブサービス運用では手放せないくらい便利で、使わせていただいています。
※「500円 クラウド」で検索すると、広告を抜いたトップは IDCF クラウドになってます。
なお、以前に私が別クラウドを使っていて、IDCF クラウドに乗り換えた時の様子は当時のブログエントリにしているので、そちらも参照ください:
IDCFクラウドに乗り換えました
で、この「ワンコイン」のインスタンスは、IDCF クラウド的には light.S1 と呼ばれるマシンタイプのものです。スペックは 0.8GHz の vCPU 1つ、メモリ 1GB(ここまで200円/月)、ディスク 15GB(300円/月)、これをCentOS などの無料 OS で運用すると 200 + 300 = 500円/月 というものです:
実際にインターネットに公開するサービスを作ろうとすると、パブリック IP アドレスが必要になります。パブリック IP アドレスは1つに付き 500円/月 ですが、アカウントに対して最初の1つ目(ソースアドレス)は無料で提供されます。なので1インスタンス月額500円運用が可能になります:
さて、では2台目のインスタンスを同じスペックで作るとどうでしょう。インスタンス自体は 500円/月ですが、2つ目以降のパブリック IP アドレスは 500 円/月です。つまり2台目以降は1台につき 1000 円/月かかる、ということになります。。。
月500円くらいケチケチすんな! という声が聞こえてきそうですが、でも割合で言えば 500 か 1000 かは倍違います。3台目、4台目となった時にそれなりの差が出てきてしまいます。また IDCF 以外でも IP アドレス付きで1インスタンス500円前後で提供している所はあるので、比較した際に価格的な差も生じてしまいます。
そんな理由で愛する IDCF クラウドが不利になるのは納得できない!
というわけで、2台目以降の light.S1 インスタンスを 500 円で使ってみました(IDC フロンティア様が期待しているのはそういう使い方じゃないかも・・・)。
まずサーバー用途でなく、クローラー用途など、「外部からアクセスして利用するわけではない用途」のインスタンスであれば、そもそもパブリック IP アドレスを付与する必要はありません(あると直接ログインできて何かと便利だけど)。外部に公開する IP アドレスが不要な使い方であれば、プライベート IP アドレスだけで運用すれば月額 500 円です。
次にサーバー用途の場合、こちらが本題です。端的に言えば「ポートフォワーディングでなんとかする」という考え方です。2つ目以降のパブリック IP アドレスに料金がかかるならそこは使わず、1つ目の IP アドレスをうまい具合に流用して2台目以降のインスタンスでも使っちゃおう、というやり方です。多くの人にとっては今更感のある方法かもしれませんが、
具体的にはこんな感じです。まず現状、light.S1 の仮想マシンが2台あるとします:
この2台をそれぞれこんな感じで使えるようにしたい、とします:
1台目(dotnsf-neppico) | 2台目(dotnsf-misc) | ||
---|---|---|---|
目的 | 接続ポート番号 | 目的 | 接続ポート番号 |
SSH | 22 | SSH | 10022 |
HTTP | 80 | HTTP | 1880 |
MySQL | 3306 | MQTT | 1883 |
要は1台目は一般的な LAMP サーバーで MySQL まで外部に公開。SSH もデフォルトの 22 番ポートで公開する、というものにします。一方2台目はちょっと目的が異なり、流行りの Node-RED 環境を用意しようとしています。外部に公開するポートは Node-RED サーバーのデフォルトである 1880 と、MQTT ブローカーの 1883、そしてこのサーバーにも SSH でアクセスできるようにしたいのですが、デフォルトの 22 番ポートだと1台目の SSH と衝突してしまうので、2台目の SSH には 10022 番を割り当てるものとしています。
実際には2台目のマシンで MySQL を動かして公開したり、1台目のマシンに別の HTTP を動かしたりすることもできますが、いずれのケースでもポート番号だけは衝突しないようにする必要があります(そしてその結果、デフォルト設定とは違う値を設定する必要が出てきます)。
この内容を IP アドレスの設定に反映させます。まずはファイアウォールの設定で開ける必要のある全ポート番号(上記例では 22(ssh), 80(http), 1880(http), 1883(mqtt), 3306(mysql), 10022(ssh) の6つ)を通すよう設定しておきます:
次にポートフォワードの設定です。先程ファイアウォール設定で開けた各ポート毎に振り分け先を指定してあげます。その際、パブリックポートには開けたポート番号を、プライベートポートには実際に動いているポート番号を指定します。多くの場合は同じ数字(実際に動いているポート番号)を指定しますが、今回の例だと2台目の SSH だけは実際には 22 番ポートで動いている SSH に、ファイアウォールで開けた 10022 番ポートから繋がるよう設定する必要があります。そのため、パブリックポートを 10022 に、プライベートポートを 22 に指定しています:
これで1つのパブリック IP アドレスを2台のマシンで共有する形で割り振ることができました。なお、実際に2台目のマシンに SSH でログインする場合は、ポート番号に 10022 を指定して接続する必要があります(デフォルトの 22 番だと1台目のマシンに繋がります):
これで「2台目以降も 500 円の IDCF クラウド」になりました。
これからも遠慮無く使わせていただきます。よろしくおねがいします。