アプリ屋とは言え、スモールスタートの時は、インフラ担当(仮)となって、環境構築をすることがあります。レンタルサーバー内だけのセッティングだけのこともあれば、クラウド上のサーバー1台をOSからインストールする場合もあります。
そんな時に最低でも気を付けることは次のようなことです。
- 必要なスペック以上のものではないか
- セキュリティ対策が取りやすいか
- 運用しやすいか
この辺りを特に重視して気を付けています。
必要なスペック以上のものではないか?
何で使いたいのか、合わせたサーバー選びが大切。
やりたいことに合わせたインフラ要件(OSの種類、性能、セキュリティ、使いたいアプリ、外部との接続は必要か等)は、選べるサーバーに影響してきます。
例えば、レンタルサーバーって全部そろっていて楽ですよね。
簡単なサイトであればレンタルサーバーでも構わないことが多いのですが、
外部からデータをドンドン持ってきて蓄積するようなアプリを使いたい場合、
本当にレンタルサーバーでいいのか?
という疑問がでてきます。
アプリの性質を考えると
データが増え続ける場合はどうなるのか?
保存できなくなるのか?
そもそも増強ということはできないが、途中でバックアップをするか?
いった点に不安がでてくるためです。
一方、不安を解消するために良い性能を求めて、何TBものハードディスクを持ったVPSを選んだとして、そのディスを使い切るまでに5年以上もかかるなら、コストが高くなるだけで非効率的と考えます。
私はアプリが大きく変わる節目は、最短で1年、最大で3年以内に来ると思っています。(今までの経験より。)
そこで、
3年ぐらいは“持つ”ように、アプリの要件を考えて選択
するようにしています。
なお、「突貫工事」だ!とわかっているアプリの場合は半年以内のリプレイスはあるだろうな~ということで、特例にて、「とりあえず、サーバー作っとけ」でミニマムに作ることもあります。
セキュリティ対策が取りやすいか
開発するアプリはほとんどが、“情報”を扱っています。個人だけでなく、会社の情報も含まれる場合があります。
こうしたアプリが稼働する場合、DoS攻撃やSQLインジェクションなどのサーバー攻撃をされても、情報が守れるようにしなくてはなりません。
そのため、ネットワークの設定や、証明書の設定などが思ったようにできるか、そもそもサーバー側に設定がされているか、などをチェックするようにしています。
そして何よりも、サーバーにアクセスできるユーザー権限の扱いがしやすいか、をチェックします。
ヒューマンエラーによる障害も防ぎやすくなるので、とても重要だと考えています。
運用しやすいか
アプリはリリースしたら終わりではありません。1か月、1年と継続して利用されていくものです。
そのためにはサーバーが安定稼働してくれないことには何もできません。安定稼働を支えるためには、ログ監視やネットワーク監視、障害発生時の通知など、運用中の様々な情報を収集する活動を行います。
また、いざ障害があった場合に、すぐに復旧できるようなバックアップをこまめに取っておきたいものです。こうした活動が簡単にできるか?というのも重要と考えます。
専門家ではないインフラ担当(仮)の私にとっては毎回、胃が痛くなる選定ですが、逆にアプリ作りの時の必要な対応部分などの理解ができたりもするので、毎度がんばっております。