サーバ環境
・さくら、AWS
・CentOS 6、Amazom Linux
・Apache 2、Nginx
など。ミドルウェアやバージョンに指定があるか確認する。
レンタルサーバの場合、原則としてroot権限が無いので自由にミドルウェアをインストールできないので注意。
プログラム環境(PHPを使う場合の例)
以下は2018年2月時点での例。
・PHP5.6以降。
「マルチバイト関数」「PDO(MySQL)」「GD関数」が使える。
PHP5.6を使うならApacheは2.4をインストールする必要がある。それ以前なら2.2で大丈夫。
・MySQL5.6以降。
文字コードutf8を扱える。可能ならutf8mb4。
・.htaccessからPHPとmod_rewriteの設定ができる。
アクセス制限設定やBasic認証もできると後々スムーズ。
・Cronの設定ができる。
WordPressなどオープンソースのプログラムを使用する場合、
そのソフトに致命的なセキュリティ問題が発生したときの対応はよく確認しておく。
「致命的な問題があった場合、有償でバージョンアップします」など契約上明確にしておかないと揉める可能性がある。
AWSなどでサーバを複数台構成にする場合、
「セッションをどのように保持するか」「アップロードファイルはどこに保存するか」「アップロード(デプロイ)はどのように行うか」
などを考える必要がある。
複数台構成を考慮していないアプリケーションの場合、プログラムに手を加える必要がある可能性がある。
対応する環境
サーバサイドではないが、クライアントサイドの対応ブラウザも確認すること。
以下は2018年2月時点での例。
・Windows 7, 8, 8.1, 10 IE11、Edge、Chrome、Firefoxの最新版
・macOS 10.12, 10.13 Safari、Chrome、Firefoxの最新版
・Android 5以降 Chromeの最新版
・iOS 10以降 Safariの最新版
など。
※2018年1月時点で、IEでサポートされるのはIE11のみ。
※2016年1月時点で、IEでサポートされるのはIE11。ただしVistaのみIE9対応。(2017年4月11日まで。)
※2018年6月1日以降、Yahoo!はWindowsXP、Vista、IE10、Chrome29などのサポートを終了する。(「TLS1.0」「TLS1.1」のサポートを終了するため。)
これも古いブラウザのサポートを終了する説明に使えそう。
Microsoft ライフサイクル ポリシー
https://www.microsoft.com/ja-jp/windows/lifecycle/iesupport/
一目で分かる、各Windows OSでのInternet Explorerのサポート終了時期
http://www.atmarkit.co.jp/ait/articles/1503/11/news134.html
古いInternet Explorerは2016年1月にサポート終了! その対策は?
http://www.atmarkit.co.jp/ait/articles/1507/13/news025.html
各Windows OSで利用できるIEのバージョン
http://www.atmarkit.co.jp/ait/articles/1405/30/news092.html
WindowsXP/VistaにChromeは新規インストールできないらしい
http://forest.watch.impress.co.jp/docs/serial/yajiuma/753562.html
Yahoo!セキュリティセンター | 2018年6月1日以降、古いブラウザー、パソコン、スマートフォンなどでは、Yahoo! JAPANのウェブサービスが順次ご利用いただけなくなります。
https://security.yahoo.co.jp/news/tls12.html
IE11は2025年にサポート終了とされている。(Windows10のライフサイクルと同じ。)
IE10は2016年1月12日にサポートが終了した。
IEは11が最後のバージョンで、IE12の予定は無いとのこと。
いよいよ?まだまだ?IE11のサポート終了までのカウントダウンが始まる | コリス
https://coliss.com/articles/build-websites/operation/work/ie11-end-of-support-countdown.html
メール送信数
メールの送信数や一括送信には制限があるので注意。
プログラム側でも、順次配信など工夫が必要。
エックスサーバー
https://www.xserver.ne.jp/news_detail.php?view_id=1783
基本仕様を知りたい(さくらのレンタルサーバ) | さくらのサポート情報
https://help.sakura.ad.jp/rs/2251/?article_anchor=js-nav-12
さくらVPS・専用サーバ(非公式の記事)
http://www.fse.jp.net/detail/1/17
ヘテムル
http://heteml.jp/ordermenu/prohibition/
ロリポップ
http://lolipop.jp/order/kinshi/
・エコノミープラン … 1時間 100件、かつ1日 1,000件まで
・ライトプラン … 1時間 300件、かつ1日 3,000件まで
・スタンダードプラン … 1時間 1,000件、かつ1日 10,000件まで
・エンタープライズプラン … 1時間 1,000件、かつ1日 10,000件まで
(お試し期間中は、全プランともに1日50件まで)
転送量
サーバからのデータ送受信の合計サイズ。
そのページの転送量は、Chromeのデベロッパーツールの「Network」で確認できる。
(2回目以降のアクセスでは、キャッシュが使われるので転送量が半分くらいになる。)
8秒ルール
https://ja.wikipedia.org/wiki/8%E7%A7%92%E3%83%AB%E3%83%BC%E3%83%AB
ページは8秒以内に表示されるようにする。
ただし今は「6秒以内に表示されるべき」「3秒以内に表示されるべき」という意見も多い。
トップページの転送量はキャッシュなしだと1MB〜3MBくらいが多い。
freo.jpだと画像量が少なくて100Kくらい。
Amazonは情報量が多くて3MBくらい。
動画や巨大なPDFを扱う場合、サーバの性能よりも転送量の制限にひっかかることが多い。
トップページの転送量が1MBだとして、
月間10万アクセスなら、月の転送量は100GBくらい。
一日3300アクセスくらいなので、日の転送量は3.3GBくらい。
見落しがちな『転送量制限』とは?
http://server.rich-navi.com/transmission.html
転送量について(レンタルサーバでの転送量確認方法など)
http://hikaku-server.com/rentalserver/entry478.html
VPS・クラウドのネットワーク帯域・転送量制限・仕様一覧 - Qiita
https://qiita.com/CloudRemix/items/20caea11fae08d3c0c81
※Zabbixでの確認方法はnetworkの値を見る。inとoutの合計値をもとに、1日の転送サイズを計算できる。
■さくら
さくらのレンタルサーバ | 高速・安定WordPressなら!無料2週間お試し
https://rs.sakura.ad.jp/
回線・ルータ・スイッチの制限について | さくらのクラウド ドキュメント
https://manual.sakura.ad.jp/cloud/support/technical/network.html#support-network-07
快適にご利用いただける転送量の目安
http://support.kagoya.jp/manual/limit/limit_transfer.html#trans
さくらのVPS、本稼動開始(さくらVPSでの転送量確認方法など)
http://web.tvbok.com/web/vps/start.html
さくらのレンタルサーバは、2022年3月2日以降は転送量制限が無くなった。
ただし、一律での転送容量制限は撤廃されるが、サーバーの負荷によってプログラム実行制限や個別の転送量制限がかかる場合があるとのこと。
【さくらのレンタルサーバ / マネージドサーバ】転送量の無制限化実施のお知らせ | さくらインターネット
https://www.sakura.ad.jp/information/announcements/2022/03/02/1968209100/
■ロリポップ
ロリポップは、2022年3月7日以降は転送量制限が無くなった。
ただし、ネットワークやサーバーに負荷がかかり他ユーザへの影響が確認された場合や、
短時間に大量のデータ通信が行われた場合は、制限が実施される可能性があるとのこと。
ご利用料金 - ロリポップ!レンタルサーバー
https://lolipop.jp/pricing/
以下は過去の情報。
ロリポップ!レンタルサーバー 転送量上限変更のお知らせ - 2020年02月20日 / 新着情報 / お知らせ - ロリポップ!レンタルサーバー
https://lolipop.jp/info/news/6529/
通信量の制限
http://lolipop.jp/order/kinshi/
・エコノミープラン … 40GB/日
・ライトプラン … 60GB/日
・スタンダードプラン … 100GB/日
・エンタープライズ … 無制限
(著しい負荷が発生した場合、一時的に同時接続数の制限を行う場合がある)
帯域(回線)
瞬間の転送サイズ。
100Mbpsなら1秒間に100Mbit(12.5Mbyte)のデータを送信できる。
ただしベストエフォート100Mbpsなら普段は30Mbpsくらいと考える。
つまり、1秒間に30MBit(3.8MByte)のデータを送信できる。
優先制御回線なら、他の通信よりも優先して通信させてくれる。
今はサーバが高性能なので、サーバよりも回線が持たないことの方が多い。
特に動画などを配信する場合、サーバスペックよりも帯域がネックになることがあるので注意。
サーバ選定時、「トップページにはこれくらい、それ以外にはこれくらいのサイズのコンテンツが置かれることを想定しています」と伝えておく。
お試し期間中の制限と本登録について(さくらVPS)
http://vps.sakura.ad.jp/flow/
「サーバからの発信(Outgoing/Incoming)についてデータ転送帯域を「2Mbps」に制限します。」
1,000円を切る低価格で登場、「さくらのVPS」をチェック――徹底ベンチマーク編 2ページ
http://osdn.jp/magazine/10/09/02/1757222/2
「さくらのVPSでは各VPSに100Mbpsの回線が提供されており」
専用サーバに転送量制限はありますか
https://help.sakura.ad.jp/hc/ja/articles/206072522-%E5%B0%82%E7%94%A8%E3%82%B5%E3%83%BC%E3%83%90%E3%...
「転送量制限を設けていません。」
「他のお客様にご迷惑がかかる場合には、上位プランへの変更の要請や、場合によっては帯域制限をかけさせていただくことがございます。」
回線アップグレード
http://server.sakura.ad.jp/function/connect-up/
「標準提供の「スタンダード」(100Mbpsアップリンク ベストエフォート回線。
専用サーバPlatform系では、10Mプレミアム)回線をアップグレードするサービスです。」
共有サーバーの運用方針を大手各社に聞いてみた
http://www.hikakubu.com/spec-hikaku/question/
ヘテムルやロリポップでは、帯域の目安は非公開の模様。もちろん無制限ではない。
VPS・クラウドのネットワーク帯域・転送量制限・仕様一覧 - Qiita
https://qiita.com/CloudRemix/items/20caea11fae08d3c0c81
※Zabbixでは瞬間の転送サイズを調べることは難しいので、Sysstatやiperfを使うなどする。
■さくらのクラウド
回線・ルータ・スイッチの制限について | さくらのクラウド ドキュメント
https://manual.sakura.ad.jp/cloud/support/technical/network.html
https://manual.sakura.ad.jp/cloud/support/technical/network.html#support-network-07
・サーバの搭載メモリ量により、サーバ&スイッチ間の回線帯域が制限される。
例えばメモリが16GB未満のサーバなら、500Mbpsの帯域制限がある。
制限のルールは色々あるので、上記ページをひととおり確認する。
・接続する回線ごとに、以下の転送量目安を大幅に超過した場合、
弊社バックボーン帯域の状況により、個々のお客様サーバの帯域制限を実施することがあります。
・250Mbpsにした時点で結構高額。(月額2,160円 → 月額25,920円。)
・250Mbpsの場合、「月間 8.1TB (平均25Mbps)」を大幅に超過した場合に帯域制限を受ける。
・3000Mbpsはかなり高額。(月額321,840円。)
・回線帯域保証プランの提供予定は現在は無い。
・ルータ・スイッチを使った場合でも、専有回線では無いみたい?要調査。
さくらのクラウドでルータ機能を利用してみる(1) - Qiita
https://qiita.com/sato-w-m/items/2f4f2bb1c80b6e5822e7
さくらのクラウドでルータ機能を利用してみる(2) - Qiita
https://qiita.com/sato-w-m/items/8acdcdd3b4b6e01b81ae
さくらのクラウドでルータ機能を利用してみる(3) - Qiita
https://qiita.com/sato-w-m/items/da42e358a71d22e7006c
回線速度の妥当性計算メモ
■想定
・ピーク時のPVを1時間あたり9,000と仮定する。
・1PVあたり合計2MBのページを表示すると仮定する。
・使用する回線速度は10Mbps、ベストエフォート。(論理的な最大値。回線の限界)100Mbpsと仮定する。
■要件
・ピーク時のPV「1時間当たり9,000」をさばけるかを調べたい。
・ページの表示が4秒以内に完了できる前提で、許容できるPV数を求めたい。
■算出
合計2MBのページを表示するので
2 * 1024 * 1024 = 2,097,152 bytes
2,097,152 * 8 = 16,777,216 bits
つまり、ページサイズは 16,777,216 bits である。
回線速度は10Mbpsなので
10 * 1024 * 1024 = 10,485,760 bps
つまり、1秒間に 10,485,760 bits のデータを流すことができる。
よって
10,485,760 / 16,777,216 = 0.625
となり、1秒間に0.625PVをさばけると言えるので、
0.625 * 60 * 60 = 2,250
となり、1時間に2,250PVまでなら回線的にはさばけると言える。
■ベストエフォート
上の計算は回線速度が10Mbpsでの計算だが、ベストエフォートは100Mbps。
実際に速度を計測してみると、40〜50Mbps程度出ている。
よって、普段の回線速度は30Mbpsと仮定する。
回線速度を3倍にして計算してみると
2,250 * 3 = 6,750
となり、1時間にさばける現実的なリクエスト数は6,750になる。(9,000には届かない。)
結論として、現在の想定では回線速度に不安があると言える。
コンテンツを軽くする、回線のグレードを上げる、などの対策を考慮する必要がある。
■4秒で表示できる目安
「8秒ルール」という言葉があり、Webページは8秒以内に表示されるべきとされている。
ただしブラウザによるページ構築時間なども含まれているため、ここでは4秒という想定で計算してみる。
1秒間に0.625PVをさばけるなら、
0.625 * 4 = 2.5
となり、同時に2.5PVまでなら4秒で表示できると言える。
つまり4秒での表示完了を前提とするなら、回線的に2.5人の同時アクセスをさばけると言える。
よって、サーバは同時に2.5人以上を捌けるスペックである必要がある(負荷テストの目安にする。)
ただし最近は「6秒ルール」「3秒ルール」という言葉も使われるくらいなので注意。
その他
・固定IPの有無。
・開発用サーバや検収用サーバの要不要。
・個人情報を扱う場合、保有する数とその内容。
・必要な機能。
・開発期間&検収期間&公開日時。
・瑕疵担保範囲。
・オープンソースのプログラムを使っている場合はそのライセンス。
・保守の内容と期間。
・プログラム以外に納品すべき内容。(設計書やテスト仕様書など。)
固定IPが必要だが個人での取得は大変…という場合、以下などのサービスを利用できる。
マイIPはどこでも固定IP環境を実現します - INTERLINK
https://www.interlink.or.jp/service/myip/