サーバー専門のフリーランスエンジニアです。クラウドサーバー環境を利用してWebサイト、ITシステムのサーバー全体構成やサーバー内部構成をデザインします。Route53のDNSフェイルオーバー機能については、AWS外部へのヘルスチェック1件あたり月$0.75の課金が発生することが漏れていたので、追記しました。(2015.10.28)最新のサーバー環境と月額料金を追記しました。「稲葉サーバーデザイン」の自社サーバー環境がひととおりできあがりました。(会社じゃないので「自社」というのも変なのですが、よい言葉が見当たりません。)「サーバーデザイン専門業者」として、せっかくなのでその構成についてここで公開します。構成は下図のとおりで、「オールクラウド」といってもよい構成だと思います。要件は下記のとおりです。信頼できるクラウドサービスを使用する。できるだけサーバー費用を抑える。外部公開するWebサーバーと開発サーバーを別にする。(自分が使う)SSHの踏み台となるよう固定IPアドレスのサーバーを1台用意する。できる限り可用性を確保する。各サーバーについて説明します。自社ホームページは、簡単な説明書きとブログを用意するということで、ソフトウエアとしてはWordPressを選択しました。利用者が多い=情報も多く、テンプレートも豊富で、デザインのセンスがない自分でもなんとかWebページを作れそうだと思ったからです。スタンダード」などの共用ホスティングサーバーを利用するつもりでした。先に「さくらのメールボックス」を使用していて、そちらのサービスで独自ドメインを使っていたら、「さくらのレンタルサーバ」のほうで同じ独自ドメインを使用する設定がうまくいきませんでした。(うまくできる方法があるのかもしれませんが。)※ドメインはさくらインターネットではない業者で取得し、DNSもさくらインターネットには委譲していません。2Gプラン1年間無料券」があったので、それを使用させていただきました。2万円分」と「さくらのレンタルサーバープレミアム1年分」の無料券をいただきました。これらも開発・調査環境として利用させていただきます。1Gプラン(月額980円)」に移行する予定です。・さくらのVPShttps://vps.sakura.ad.jp/なお、WordPressサイトの編集についていろいろ練習した際は、AWSの1年間無料利用枠+「網元AMI」を利用しました。ありがとうございました。Analyticsで解析しています。7.1.1日本語版を設置して解析を行っています。Analyticsを使うから、AWStatsやWebalizerなどのアクセス解析は不要。」とおっしゃるお客様もおられるのですが、僕はこれらは全く別の用途のソフトウェアだと考えていまして、両方使うことをおすすめします。Analyticsは、ユーザーの行動を分析するための、いわばマーケティングツールですね。AWStatsやWebalizerは、HTTPリクエストをサーバーインフラ的な統計情報として見せるツールだと考えています。ネットワークトラフィックや、ロボット・クローラーによるアクセス数、ファイルタイプごとのリクエスト数などは、日々のサイト運用保守やパフォーマンスチューニングに必要な情報ですので、ぜひ、設置することをおすすめします。7.1.1日本語版は比較的新しめのモバイルにも対応していてすばらしいですね。そのままでは使いにくい部分があるのでカスタマイズして使っています。カスタマイズ内容については、別途このブログで紹介したいと考えています。53のDNSフェイルオーバーの設定を行いました。これで、公開Webサーバーがダウンしても自動的にDNSが切り替わって、セカンダリHPが表示されます。費用はAWS外部へのヘルスチェック1件あたり月額$0.75(=75円程度)です。・【AWS発表】Route53にDNSフェイルオーバー機能が追加。S3のウェブホスティング機能と連携したバックアップサイトを作成可能に。自社の構成管理、プロジェクト管理や開発・実験環境については、OSやサービスの再起動をちょこちょこ行うこともありそうなので、公開Webサーバーとは別に用意しました。サーバーの選択このサーバーの選択にはすごく悩んだのですが、最終的には、NTTコミュニケーションズ社のIaaSサービス、cloud(n)(クラウド・エヌ)としました。選択した理由は下記のとおりです。NTTコミュニケーションズ社という安心感。同社の別IaaSサービスであるBizホスティングベーシックの利用経験があった。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円のプランが新設された。そんな中、cloud(n)だけは、945円という破格の安さなので、使い勝手やディスク性能を確認したうえで、これに決めました。使い勝手については、コントロールパネルがやや使いにくいですが、サーバーやネットワークの理解があれば特に問題ありません。性能についても、ディスクはやや遅いのですが、AWSのmicroインスタンスよりは速いです。他の業者さんも、1,000円程度で、できる限りスペックを落としたサーバープランを用意してくれるとよいのですが、そうするとサーバーの数が増えてIPアドレスの使用量も増えるので、好ましくないのかもしれませんね。cloud(n)はあまり知られていないようなのですが、安定していて、(あまり試していませんが)機能も豊富です。RDSのようなフェイルオーバー付きRDBサービスもあるので、無料キャンペーン枠が残っているうちに、いろいろ試してみたいと思っています。Cloudnhttp://www.ntt.com/business/services/cloud/iaas/cloudn.htmlなお、AWSの1年間無料利用枠については、microインスタンスのサーバーを常時起動して使ってしまうより、AWSの技術調査などでときどきサーバーを起動して無料枠を使うほうが効率がよいと考え、常時起動する開発サーバーとしては採用しませんでした。構成管理、プロジェクト管理ツール僕はプログラマーではないので簡単なシェルスクリプト以外、プログラムを書くことはなく、ソースコードのリビジョン管理をすることはまずありません。バックアップ処理等のスクリプトは作成しますし、データ保護のためにもリビジョン管理のためにも、何らかの構成管理ツールで管理したいです。前職ではSubversionを使っていましたが、せっかくなので、GitoliteでGitサーバーを立ててみました。クライアントとしてTortiseGitを使っているのですが、イマイチ使いこなせていません。今一番困っているのは、「PushしたときにどのファイルがPushされたのかわからない。これは、クライアントソフトの問題だと思うので、ほかのソフトを使えるよう工夫してみたいと思います。プロジェクト管理ツールとしてはRedmineを立てました。サーバーの負荷を抑えるため、DBはMySQLではなくSQLiteとしています。僕は基本的にひとりで作業しますし、山ほどタスクがあるわけではないので、「タスク管理、時間管理をすべてチケットで行う。」という運用はしません。(もちろん、そのような運用を否定はしません。)ですが、ToDoの管理として使うにはRedmineのチケットは便利ですし、プロジェクトの概要やTips的な情報をWikiにまとめるのにも便利ですね。Redmineの機能の5%ぐらいしか使っていないのだと思いますが(笑)メールサーバーメールサーバーについては、マルチバーチャルドメイン、メーリングリスト、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.comhttp://www.microsoft.com/ja-jp/outlook-com/DNSDNSサーバーは、頻繁に発見されるbindの脆弱性、DNSサーバーを利用した攻撃の多さ、キャッシュによる設定ミスの時限爆弾化、仕様や設定の複雑さなどのため、自前で運用するのは非常にコストがかかります。DNSサーバーの障害は、サーバーのダウンにつながるため、とても重要なサービスでもあります。メールサーバーと同様、自前でDNSサーバーを立てて運用するよりは外部サービスを利用すべきと思います。53を使用しています。コントロールパネルで簡単に操作でき、伝播もすごく速くて便利です。重みづけラウンドロビンや、DNSフェイルオーバーなどの独自機能を持っているのもよいですね。100%で、費用は1ゾーンあたり月額$0.50(=50円程度)ととっても安いです。53https://aws.amazon.com/jp/route53/データバックアップサーバーの障害や作業ミスによるデータの損失に備え、毎日自動的にバックアップをとるようにしました。安価に使用できるサーバーだからこそ、データ保護はしっかり自分で行う必要があります。S3を使用することにしました。今回初めてS3Syncというツールを使ってみたのですが、これは設定がとても簡単でいいですね!サーバー内の指定したディレクトリとS3バケット内の指定したフォルダ間で、rsyncコマンドのように同期をとってくれます。サーバー間でSSHによる自動転送設定を行うより全然簡単です。サーバーConfig、WordPressデータ、アクセスログ、システムログ、Gitデータ、Redmineデータ、AWStatsデータなどの保護したいデータをサーバー側でtar+gzipしてアーカイブファイルを作成してから、S3へ転送し、4世代保存するようにしています。S3の費用は、1GBあたり月額$0.10です。1年間の無料利用枠により月5GBまで無料で使用できます。僕の環境のバックアップデータは今のところ、gzip圧縮後で500MBもありませんので、無料でバックアップできています。(s3sync)https://risin.jp/blog/2011/02/08/aws_S3_s3sync/費用(2013年7月時点)この自社サーバー環境の現在の月額費用をまとめます。各社の1年間無料利用キャンペーンがなくなったときの月額費用はどうでしょう。1GBのプランに移行すると仮定します。2,334円やっぱり安いですね!例えば5年ぐらい前だと、この10倍は必要だったのではないでしょうか。クラウドサービスの普及により、僕のようなフリーランスエンジニアや、少人数のIT企業のスタートアップも低コストで実現できる時代となりました。長くなってしまいましたが、「稲葉サーバーデザイン」の自社サーバー環境の紹介を終わります。開発サーバー環境やメール環境にお困りの企業様、クラウドに移行したい企業様、ご相談がありましたら、お問い合わせページよりご連絡をお願いいたします。費用(2015年10月時点)最近なぜか急にこの記事のアクセスが増えたのですが、情報が古くて、その後公開Webサーバーを変更したり、料金が値下げされたりしたので、2015年10月時点のサーバー環境について追記します。2015年10月時点のサーバー構成図は以下のとおりです。公開WebサーバーをさくらのVPSからIDCFクラウドに移行したのが大きな変更点です。月額費用は次のとおりです。公開Webサーバーについては、IDCFクラウドのRDBなどの新機能リリースに合わせた配布クーポン利用で、0円となる月も多いです。その他、調査や検証環境で都度使用するサーバー環境についても、AWS→新規アカウント作成時の無料利用枠やスポットインスタンスを利用。さくらのクラウド→さくらの夕べやOSCなどで配布された2万円無料クーポンを利用。IDCFクラウド→配布クーポンを利用。無料もしくは安価で使用できています。labsサーバー部9Uに参加しました。labsサーバー部10Uに参加しました。(必須)↑お問い合わせ内容をご確認のうえ、チェックを入れてから「送信」してください。