自社サーバー環境について

(2013.7.24)AWS Route53のDNSフェイルオーバー機能については、AWS外部へのヘルスチェック1件あたり月$0.75の課金が発生することが漏れていたので、追記しました。

(2015.10.28)最新のサーバー環境と月額料金を追記しました。


「稲葉サーバーデザイン」の自社サーバー環境がひととおりできあがりました。
(会社じゃないので「自社」というのも変なのですが、よい言葉が見当たりません。)
「サーバーデザイン専門業者」として、せっかくなのでその構成についてここで公開します。
構成は下図のとおりで、「オールクラウド」といってもよい構成だと思います。


 

要件は下記のとおりです。

  • 信頼できるクラウドサービスを使用する。
  • できるだけサーバー費用を抑える。
  • 外部公開するWebサーバーと開発サーバーを別にする。
  • (自分が使う)SSHの踏み台となるよう固定IPアドレスのサーバーを1台用意する。
  • できる限り可用性を確保する。

各サーバーについて説明します。

isd公開Webサーバー

自社ホームページは、簡単な説明書きとブログを用意するということで、ソフトウエアとしてはWordPressを選択しました。
利用者が多い=情報も多く、テンプレートも豊富で、デザインのセンスがない自分でもなんとかWebページを作れそうだと思ったからです。

サーバーの選択

アクセス数もさほどないので、当初は月額500円の「さくらのレンタルサーバー スタンダード」などの共用ホスティングサーバーを利用するつもりでした。
ですが、先に「さくらのメールボックス」を使用していて、そちらのサービスで独自ドメインを使っていたら、「さくらのレンタルサーバ」のほうで同じ独自ドメインを使用する設定がうまくいきませんでした。(うまくできる方法があるのかもしれませんが。)
※ドメインはさくらインターネットではない業者で取得し、DNSもさくらインターネットには委譲していません。

というところで、ちょうど、さくらインターネットが主催した「さくらの夕べ in 札幌」でいただいた「さくらのVPS 2Gプラン1年間無料券」があったので、それを使用させていただきました。
月額1,780円のサーバーがなんと、1年間無料です!
さくらインターネットさんからは、ほかにも「さくらのクラウド 2万円分」と「さくらのレンタルサーバープレミアム1年分」の無料券をいただきました。
これらも開発・調査環境として利用させていただきます。
さくらインターネットさん、ありがとうございます!

さくらのVPSはディスクの性能がよいですし、自社Webサイトとしては明らかにオーバースペックですね(笑)
無料期間が過ぎたら、「さくらのVPS 1Gプラン(月額980円)」に移行する予定です。

・さくらのVPS
https://vps.sakura.ad.jp/

なお、WordPressサイトの編集についていろいろ練習した際は、AWSの1年間無料利用枠+「網元AMI」を利用しました。
ありがとうございました。

・超高速WordPress 網元AMI
https://ja.amimoto-ami.com/

アクセス解析ツール

WordPressのUltimate Google Analyticsプラグインをインストールして、Google Analyticsで解析しています。
また、このサーバー上にAWStats 7.1.1日本語版を設置して解析を行っています。

サーバー構築業務を請け負うと、「Google Analyticsを使うから、AWStatsやWebalizerなどのアクセス解析は不要。」とおっしゃるお客様もおられるのですが、僕はこれらは全く別の用途のソフトウェアだと考えていまして、両方使うことをおすすめします。

Google Analyticsは、ユーザーの行動を分析するための、いわばマーケティングツールですね。
一方、AWStatsやWebalizerは、HTTPリクエストをサーバーインフラ的な統計情報として見せるツールだと考えています。
ネットワークトラフィックや、ロボット・クローラーによるアクセス数、ファイルタイプごとのリクエスト数などは、日々のサイト運用保守やパフォーマンスチューニングに必要な情報ですので、ぜひ、設置することをおすすめします。

なお、AWStats 7.1.1日本語版は比較的新しめのモバイルにも対応していてすばらしいですね。
ただ、そのままでは使いにくい部分があるのでカスタマイズして使っています。
カスタマイズ内容については、別途このブログで紹介したいと考えています。

・AWStats 7.1.1日本語版
http://hobbit.ddo.jp/html/awstats.html

セカンダリHPとDNSフェイルオーバー

Amazon S3に静的なセカンダリHPファイルを設置して、Amazon Route 53のDNSフェイルオーバーの設定を行いました。
これで、公開Webサーバーがダウンしても自動的にDNSが切り替わって、セカンダリHPが表示されます。
費用はAWS外部へのヘルスチェック1件あたり月額$0.75(=75円程度)です。

・【AWS発表】Route53にDNSフェイルオーバー機能が追加。
S3のウェブホスティング機能と連携したバックアップサイトを作成可能に。
http://aws.typepad.com/aws_japan/2013/02/create-a-backup-website-using-route-53-dns-failover-and-s3-website-hosting-.html

isd開発サーバー

自社の構成管理、プロジェクト管理や開発・実験環境については、OSやサービスの再起動をちょこちょこ行うこともありそうなので、公開Webサーバーとは別に用意しました。

サーバーの選択

このサーバーの選択にはすごく悩んだのですが、最終的には、NTTコミュニケーションズ社のIaaSサービス、cloud(n)(クラウド・エヌ)としました。

選択した理由は下記のとおりです。

  • NTTコミュニケーションズ社という安心感。同社の別IaaSサービスであるBizホスティングベーシックの利用経験があった。
  • ネットワーク転送量無料、月額最大945円という安さ。さらに、3ヶ月5,000円までの無料キャンペーンあり。
  • SSHのたたき台として使う場合、サーバーノード障害が発生しても、クラウドならば同じ固定IPアドレスですぐに再起動・復旧できるはず。

「SSHのたたき台として使う~」については、僕の今のインターネット接続環境は固定IPアドレスではないので、アクセス元IPアドレスによる制限があるお客様のサーバーにSSHログインするときに、いったんこの開発サーバーにSSHログインしてからさらに目的のサーバーにSSHログインする、ということです。
もしサーバーに障害が発生した場合は、VPSよりはクラウドIaaSサーバーのほうが復旧が早いのではないかと考えました。

ですが、各IaaS業者の最低料金プランは、月額3,000円ぐらいするのですよね。
ニフティクラウドが5,040円、IDCフロンティアが3,000円、さくらのクラウドが2,500円(その後1,900円のプランが新設された。)、AWSが$20。
そんな中、cloud(n)だけは、945円という破格の安さなので、使い勝手やディスク性能を確認したうえで、これに決めました。
使い勝手については、コントロールパネルがやや使いにくいですが、サーバーやネットワークの理解があれば特に問題ありません。
性能についても、ディスクはやや遅いのですが、AWSのmicroインスタンスよりは速いです。
他の業者さんも、1,000円程度で、できる限りスペックを落としたサーバープランを用意してくれるとよいのですが、そうするとサーバーの数が増えてIPアドレスの使用量も増えるので、好ましくないのかもしれませんね。

cloud(n)はあまり知られていないようなのですが、安定していて、(あまり試していませんが)機能も豊富です。
Amazon RDSのようなフェイルオーバー付きRDBサービスもあるので、無料キャンペーン枠が残っているうちに、いろいろ試してみたいと思っています。

・パブリッククラウドサービス Cloudn
http://www.ntt.com/business/services/cloud/iaas/cloudn.html

なお、AWSの1年間無料利用枠については、microインスタンスのサーバーを常時起動して使ってしまうより、AWSの技術調査などでときどきサーバーを起動して無料枠を使うほうが効率がよいと考え、常時起動する開発サーバーとしては採用しませんでした。

構成管理、プロジェクト管理ツール

僕はプログラマーではないので簡単なシェルスクリプト以外、プログラムを書くことはなく、ソースコードのリビジョン管理をすることはまずありません。
それでも、サーバーインフラの設計書や手順書などのドキュメントやサーバーのConfig, バックアップ処理等のスクリプトは作成しますし、データ保護のためにもリビジョン管理のためにも、何らかの構成管理ツールで管理したいです。
前職ではSubversionを使っていましたが、せっかくなので、GitoliteでGitサーバーを立ててみました。
ただし、クライアントとしてTortiseGitを使っているのですが、イマイチ使いこなせていません。
今一番困っているのは、「PushしたときにどのファイルがPushされたのかわからない。」ということです。
これは、クライアントソフトの問題だと思うので、ほかのソフトを使えるよう工夫してみたいと思います。

プロジェクト管理ツールとしてはRedmineを立てました。
サーバーの負荷を抑えるため、DBはMySQLではなくSQLiteとしています。
僕は基本的にひとりで作業しますし、山ほどタスクがあるわけではないので、「タスク管理、時間管理をすべてチケットで行う。」という運用はしません。(もちろん、そのような運用を否定はしません。)
ですが、ToDoの管理として使うにはRedmineのチケットは便利ですし、プロジェクトの概要やTips的な情報をWikiにまとめるのにも便利ですね。
たぶん、Redmineの機能の5%ぐらいしか使っていないのだと思いますが(笑)

isdメールサーバー

メールサーバーについては、マルチバーチャルドメイン、メーリングリスト、Webメール、ユーザー管理ツールなどの機能や、ウイルスチェック、スパムメール対策などのセキュリティ対策面で構築・運用コストが非常に大きいため、僕は自社で運用せずに外部サービスを使用することをおすすめします。

エンジニア仲間の方から「さくらのメールボックスがよい」と教えてもらったので、2週間の無料お試しで確認したうで、これを採用しました。
独自ドメインが使えて、年額1,000円は安いですね。

・さくらのメールボックス
https://www.sakura.ne.jp/mail/

なお、PCの故障によるメールの損失やメールサーバーの障害に備えて、MicrosoftのOutlook.comにメールを転送(というかOutlook.comからPOPS)しています。
Outlook.comのアカウントを取得すると、MS-Officeのライセンスを持っていなくてもオンライン版のOfficeが使用できて、SkyDriveにもデータを保存できるようになります。
Gmailのような「メールの内容を見て広告を表示する」ということもないですし、よいサービスだと思います。

・Outlook.com
http://www.microsoft.com/ja-jp/outlook-com/

isdDNS

DNSサーバーは、頻繁に発見されるbindの脆弱性、DNSサーバーを利用した攻撃の多さ、キャッシュによる設定ミスの時限爆弾化、仕様や設定の複雑さなどのため、自前で運用するのは非常にコストがかかります。
また、DNSサーバーの障害は、サーバーのダウンにつながるため、とても重要なサービスでもあります。
ですので、メールサーバーと同様、自前でDNSサーバーを立てて運用するよりは外部サービスを利用すべきと思います。

これは以前から使い慣れているAWS Route 53を使用しています。
コントロールパネルで簡単に操作でき、伝播もすごく速くて便利です。
重みづけラウンドロビンや、DNSフェイルオーバーなどの独自機能を持っているのもよいですね。
SLA 100%で、費用は1ゾーンあたり月額$0.50(=50円程度)ととっても安いです。

・AWS Route 53
https://aws.amazon.com/jp/route53/

isdデータバックアップ

サーバーの障害や作業ミスによるデータの損失に備え、毎日自動的にバックアップをとるようにしました。
安価に使用できるサーバーだからこそ、データ保護はしっかり自分で行う必要があります。

バックアップデータの保存先としては、99.999999999%の堅牢性を誇る、Amazon S3を使用することにしました。
今回初めてS3Syncというツールを使ってみたのですが、これは設定がとても簡単でいいですね!
サーバー内の指定したディレクトリとS3バケット内の指定したフォルダ間で、rsyncコマンドのように同期をとってくれます。
サーバー間でSSHによる自動転送設定を行うより全然簡単です。
サーバーConfig、WordPressデータ、アクセスログ、システムログ、Gitデータ、Redmineデータ、AWStatsデータなどの保護したいデータをサーバー側でtar+gzipしてアーカイブファイルを作成してから、S3へ転送し、4世代保存するようにしています。

Amazon S3の費用は、1GBあたり月額$0.10です。
また、1年間の無料利用枠により月5GBまで無料で使用できます。
僕の環境のバックアップデータは今のところ、gzip圧縮後で500MBもありませんので、無料でバックアップできています。

・S3にデータをバックアップ (s3sync)
https://risin.jp/blog/2011/02/08/aws_S3_s3sync/

isd費用(2013年7月時点)

この自社サーバー環境の現在の月額費用をまとめます。

項目 サービス 費用
公開Webサーバー さくらのVPS 2G 0円(1年間無料)
開発サーバー cloud(n) vQ 945円(キャンペーン期間3か月間は無料)
メールサーバー さくらのメールボックス 84円(年額1,000円)
DNS Amazon Route 53 125円 ($1.25)
データバックアップ Amazon S3 0円(1年間無料)
合計 1,154円

 

各社の1年間無料利用キャンペーンがなくなったときの月額費用はどうでしょう。
公開Webサーバーは、経費削減のため、さくらのVPS 1GBのプランに移行すると仮定します。

項目 サービス 費用
公開Webサーバー さくらのVPS 1G 980円
開発サーバー cloud(n) vQ 945円
メールサーバー さくらのメールボックス 84円(年額1,000円)
DNS Amazon Route 53 125円 ($1.25)
データバックアップ Amazon S3 200円(20GBとする)
合計 2,334円

 

やっぱり安いですね!
例えば5年ぐらい前だと、この10倍は必要だったのではないでしょうか。
クラウドサービスの普及により、僕のようなフリーランスエンジニアや、少人数のIT企業のスタートアップも低コストで実現できる時代となりました。

長くなってしまいましたが、「稲葉サーバーデザイン」の自社サーバー環境の紹介を終わります。

開発サーバー環境やメール環境にお困りの企業様、クラウドに移行したい企業様、ご相談がありましたら、お問い合わせページよりご連絡をお願いいたします。

isd費用(2015年10月時点)

最近なぜか急にこの記事のアクセスが増えたのですが、情報が古くて、その後公開Webサーバーを変更したり、料金が値下げされたりしたので、2015年10月時点のサーバー環境について追記します。

2015年10月時点のサーバー構成図は以下のとおりです。


 

公開WebサーバーをさくらのVPSからIDCFクラウドに移行したのが大きな変更点です。
(参考)WebサイトのサーバーをIDCFクラウドに移行

月額費用は次のとおりです。

項目 サービス 費用(税込)
公開Webサーバー IDCFクラウド S1 540円
開発サーバー cloud(n) vQ 486円
メールサーバー さくらのメールボックス 86円(年額1,029円)
DNS Amazon Route 53 175円 ($1.25)
データバックアップ Amazon S3 93円(20GBとする)
合計 1,380円

 

公開Webサーバーについては、IDCFクラウドのRDBなどの新機能リリースに合わせた配布クーポン利用で、0円となる月も多いです。

その他、調査や検証環境で都度使用するサーバー環境についても、

  • AWS→新規アカウント作成時の無料利用枠やスポットインスタンスを利用。
  • さくらのクラウド→さくらの夕べやOSCなどで配布された2万円無料クーポンを利用。
  • IDCFクラウド→配布クーポンを利用。

などで、無料もしくは安価で使用できています。
各クラウドベンダーさんに感謝です!

 

Follow me!