27日目 サーバーの設定
サーバーはお好みで。無料期間がある場所も多いのでそこで一度試してみるといいかも。
簡単なアプリであれば楽にHerokuとかPythonAnywhereとかのPaaSでいいかと思います。
「じゃぁ、公開の準備をするためにサーバーの準備をしていこう。前にも言った通り今回はVPSで準備する。IaaSでも同じような手順だからもしクラウドに移行したくなっても大丈夫。PaaSの場合はこの手順がほとんどいらないから、どちらにせよ経験しておくといいかな」
「サーバー準備かぁ、大変そうだなぁ」
* * *
「じゃぁ、まずはサーバー会社と契約してVPSを用意する。
有名なのはさくらインターネットやConoHa、KAGOYA、GMOが有名だね、いくつかの会社で無料お試し期間があるから使いやすい物を選ぶといいかな。
あぁ、もしR18コンテンツを配信するのであれば禁止されていない会社を選ぶこと。これを間違えるとサーバーから追い出されるから注意してね。R18を載せたい場合はGMOになるかな。
契約したそのあとは自分でサーバーの準備をする。最低限必要な物は、これくらい。
■OS Linux
■Webサーバー Nginx、Apache
■データベース sqlite3、PostgreSQL、MySQL
■プログラミング言語 PHP、Ruby、Python等(開発で選んだ言語)
それぞれの頭文字をとってLAMP(Linux Apache MySQL PHP)と呼ばれることもある。これに加えて、セキュリティ設定が必要になってくるね。
それぞれ説明していこう。
■OS Linux
まずサーバーにOSをインストールする。普段使ってるPCだとOSはWindowsかmacOS、iOS、Androidだけど、Webサービスを動かすためのサーバーではLinuxを使うことが多い。
これは単にOSに求められていることの違い。Webサービスを動かすサーバー用に作られたOSがあるからそれを選ぶこと、まぁ会社によってインストールできるOSはある程度限られているからお勧めなものを選ぶといい。
■セキュリティ設定
サーバーとのやり取りはSSH接続して行う。その場合にいくつかすることがある。
まずは一般ユーザーの作成、OSをインストールするときにrootユーザー、管理者ユーザーが作成されるけど、何でもできるから攻撃対象になることが多い。なので、一般ユーザーを作成して、rootでのログインを禁止するのが鉄板。あとパスワード認証ではなく、公開鍵認証にしてセキュリティを上げておく。最後にポート番号を変更する。
これでサーバーが乗っ取られるリスクを下げることができる。
くわしいやり方は各会社のマニュアルにあると思うからそれを参考にしてやれば大丈夫。
■Webサーバー Nginx、Apache
Webサーバーはユーザーからのリクエストを解釈し、サーバー上に用意された該当ファイルを返すことが基本。このやり取りは、 HTTPという決まりごとで動いている。この決まりを処理できるプログラムをWebサーバーと呼ぶ。
OSを入れただけではだめで、こういった処理できるプログラムを入れないとWebサービス用のサーバーにはならない。いくつかWebサーバーはあって、一昔前はApacheというWebサーバーが人気だったけど、最近はNginxが人気かな。NginxはApacheの不満な部分を解消するために作られたから、大規模のリクエストでも捌くことができるし早い。
特にこだわりがなければNginxにするといいかな。
■データベース
データを格納するためのデータベースも入れる必要がある。sqlite3、PostgreSQL、MySQLが有名だね。sqlite3はそれほど大きくないWebサービスの場合はおすすめかな。デフォルトでついている場合も多いし。
ただ、大規模なサービスを考えている場合はPostgreSQL、MySQLを入れておくといいかと。
■プログラミング言語
RubyとかPHP、Pythonはデフォルトで入っている場合も多いけど、バージョンが古い時もあるので開発環境のバージョンに合わせておく。
フレームワークを使う場合はそれもインストールすること。
大体こんな感じかな。というわけで実際にやってみよう。だいたいサーバー会社に導入マニュアルがあるから大丈夫。データベースやプログラミング言語はフレームワークとVPSの名称で検索すれば大体の場合、出てくるからわからなかったら調べてみて」
「大変そうだけど、頑張ってみよう」
ここさえ乗り越えたらあとはもうクリアも同然。この公開までのハードルがちょっと高いかなって思います。
公開方法を知ってしまえばあとは何だってできると思います。
大抵の場合はマニュアルがあって、あとは大きなサービスだとQuiitaとかnoteとかブログで設定方法を書いている人もいるのでそれを参考にすればよいかと。