素人がゼロからWebサービスを作るノウハウ!④サーバーをAWS.EC2.t2.microにした理由

素人がゼロからWebサービスを作るノウハウ!④サーバーをAWS.EC2.t2.microにした理由

前回は、Paizaを使った効率的な学習方法について解説しました。
今回は、使用するサーバーについて説明します。

本来だったら、作りたいシステムや規模など様々な要素を元に最適なサービスを選択するのが良いのかも知れませんが、まず初めてみたいという場合は、AWS(Amazon Web Service)で立ち上げちゃえばOKです。今回は、AWSにした理由、EC2にした理由t2.microにした理由を説明します。

AWSを選択した理由

ネット上にサーバーを立てる場合、自宅サーバー (又は自社サーバ)かVPS(バーチャル プライベート サーバー)か クラウド型のサービスが選択肢に上がると思います。AWSはAmazonが提供するクラウド型のサービスです。

自宅サーバーはあまりメリットなし

自宅で24時間サーバーを稼働するとざっくり1000円/月(サーバーの消費電力によるのでほんとざっくり)かかります。

電気料金計算例
消費電力0.05kw×24時間×30日×単価28円/kwh=1008円/月

1000円あれば外部にVPSを借りられます。また、電気代+ハード代+日常的な運用+トラブル発生時の対応+セキュリティ対策を考えると、メリットがないと考え、自宅サーバーは選択肢から外しました。

VPSかクラウドサービスか

乱暴な言い方をすると、OSが入っているサーバーを丸ごと借りて運用する場合は、VPSでもクラウド型サービスでも大差ないと思います。

コストを極力抑えたいのならVPSを使うと良いと思いますが。ですが、あとからサーバーのスペックを変えるのが難しかったり、クラウドで使われている色々な最新技術を使いたくなってもつかえませんので、そこまでシビアにコストのことも考えなくてOKでこだわりも無ければクラウドを選択しましょう。

クラウド型のサービス

クラウド型サービスは、AWS(Amazon Web Services)GCP(Google Cloud Platform)Microsoft Azureが有名ですが、AWSはドキュメントが充実していますし、ネット上の情報も多いです。下図にもある通り、マーケットシェアも高く、実績もあります。みんなが選ぶものは大体正しいという考え方でAWSを選んでおけば間違いないです。

クラウドインフラサービスのマーケットシェア推移

個人的には、マイクロソフトが好きなので最初はAzure前提で考えていました。ですが、やりたいことを実現する為の方法がネット上で見つけられない事が多く、途中からAWSに切り替えました。知識があれば、GCPでもAzureでもAWSでも、問題ないと思いますが、知識がないと情報量の多さがとても重要になってくるので、何を選んでよいかわからなければAWSを使いましょう。

費用面について

AWSには1年間の無料使用枠が有ります。これを使えば一年間は数百円/月のコストで運用出来ます。

私の場合は、AWSを使いはじめて4か月ですが、月に200円程度しか支払っていませんので、わたしの財力の前では問題になる金額ではありません。

私がAWSに支払っている金額

1年間の無料使用枠が切れるとEC2 t2microで約1100円/月でRDS db.t2.microで約1400円/月+その他約500円/月と考えて大体3000円/月くらいかかってくると考えています。こうなるとわたしの財力を持ってしても問題が出て来ます。
ちなみに、AWS以外にかけているコストとしてはドメイン取得、維持コストがあります。私は2個の.comドメインをムームードメインで取得しているので、2個のドメイン名維持費として247円/月のコストが必要となります。

1年後に毎月3000円出す価値が無い(誰も私が作ったサービスを使ってくれていなかったら)と判断したら、RDSを解約してEC2にDBを抱き合わせたり、他の安いクラウドサービスやVPSに乗り換えて節約しようと思っています。1年使ってきちんとネットワークやシステムについて勉強しておき、乗換前提でシステムを組んでおけば(Dockerを使おう!で解説)、乗換はそれほど難しくは無いと考えています。

ここまででAWSを選んだ理由を述べました。

AWSのEC2を選んだ理由

EC2というのはAWSの中のサービスの名前です。
他のクラウドサービスもそうですが、いろいろなサービスが提供されており最初は戸惑うと思います。AWSの場合はEC2、Lambada、Lightsail、Elastic Container Service、S3,EFS、RDS・・・・など134のサービスがあるらしいです。

AWSの提供するサービスの全体像
(出典:https://aws.amazon.com/jp/s/dm/landing-page/start-your-free-trial-c/)

最初は何が何だかわからないと思います。そんな時は、まずはEC2( Amazon Elastic Compute Cloud )で始めればよいと考えましょう。(後々必要に応じて他のサービスも使っていくようになります)
EC2はAWSが提供するIaaS(Infrastructure as a Service )で、『一台のサーバーを丸ごと借すので後は好きにして!』というサービスです。
EC2を使う場合はOSを選んで必要なソフトをインストールして、バックアップを取って・・等、意外とめんどくさいですが、EC2が基本になると思います。

先ほど、『OSが入っているサーバーを丸ごと借りて運用する場合は、どこのサービスを使っても大差ない』と述べました。VPSでもOSが入っているサーバーを丸ごと借りますし、AzureではVM(Virtual Machine )、GCPにはGCE(Google Compute Engine )というEC2と同じようなサービスがあります。結局、どのサービスでも、サーバーを借りてサーバーにログインしてOSの設定を行うので、どこのサービスを使っても大差はないと考える理由です。

AWSにある色々なサービスの説明を読んでいくと、サーバーレスでWebサービスが展開できるサービス等が目に付いて、こっちのほうが運用楽そうだし素人向き?とか考えてしまいます。ですが、EC2でシステムの全体像が把握できるようになってからほかのサービスに手を出すのがいいと思います。EC2を使って勉強できていれば、他のサービスのメリットやデメリットそして使い方も想像できるようになると思います。ですが、勉強を始めたばかりの時期にEC2以外のサービスを使おうとしても理解しづらいと感じました。

先ほども述べたようにEC2の場合、1台のサーバーを丸ごと借りる感じになるので、CPUもメモリーもストレージも普通のパソコンと同じように使えますし、通常のパソコンと同じように必要なソフトウェアをインストールして使うことができます。EC2にログインしてしまえば、AWSの知識というよりはOSの知識が必要になってきます。

AWSのEC2のt2.microを選んだ理由

t2.microとはEC2で立ち上げるサーバーのスペックのことです。サーバーのスペックには、たくさん種類がありますが、私はt2.microを選びました。
理由は、簡単です。AWSの無料使用枠を使えるからです。t2.microより低いスペックのt2.nanoなんかもあって、こっちのほうが節約できるかな?っと思ったりしましたが無料使用枠が使えないようです。また、t2microのスペックは低すぎないかな?とも思いますが、仮にスペックが足りなかったら後からスケールアップ(サーバーのスペックを上げる)が行えます。とりあえずt2.microを選べばOKです。

っということで、サーバーはAWS EC2 のt2.microで決まりです!
別の記事(開発環境もEC2 )で説明いたしますが、t2.microにインストールするOSはAmazonLinuxを選ぶのが無難です。

まとめると、こだわりがなければ、下で決まり!

ここまで三回に分けて、言語、学習方法、サーバについて説明してきましたが。
知識も、こだわりもなければ下の3つで決まりです!

言語は、Python!

学習は、Paizaで基礎を身に着け→足りない部分はWeb検索!

③サーバーは、AWSのEC2のt2.micro!

この三つがブレると、寄り道が多くなります。

なぜなら、壁にぶつかったときに、他の言語、他の学習サイト、他のサーバーの方が楽だと感じて浮気してしまうからです。

結局浮気先でも、同じように調べて勉強して・・・が始まって、同じような、又は違う壁にぶつかりまた浮気してしまいます。

浮気が始まるととっても効率が落ちるので、言語、学習方法、サーバーは固定して考えましょう。(基礎が身についたら浮気してもOKだと思います。必要に応じていろいろな言語やサービスに手を出しましょう)

ちなみに、わたしは、沢山浮気してしまい、ここにたどり着くまで何日も費やしてしまいました・・・

ここまで決まれば、次はPaizaラーニングで勉強です!

選択するレッスンは
Python3入門編→HTML/CSS入門編→Webアプリ開発入門 Flask編→シェルコマンド入門編→AWS入門編
ここまでの学習が修了したらAWSにEC2が稼働しているので(AWS入門編でEC2を立ち上げるので)、実際に開発に入ります。この段階ではレッスンの内容を完璧に覚えていなくてもOKです。開発を進めていく中で、自分が理解できていないと思ったらPaizaに戻って復習をしたりWeb検索でより深い知識を身に着けていきましょう。

あとは、必要の応じてJavaScript入門編、DB/SQL入門編などを受講すればいいと思います。

次回は開発環境についてご説明させていただきます。

連載記事一覧

素人がゼロからWebサービスを作るノウハウ!①最初にやること
素人がゼロからWebサービスを作るノウハウ!②Pythonにする理由
素人がゼロからWebサービスを作るノウハウ!③学習はpaizaにする理由
素人がゼロからWebサービスを作るノウハウ!④サーバーをAWS.EC2.t2.microにした理由
素人がゼロからWebサービスを作るノウハウ!⑤開発環境もEC2
素人がゼロからWebサービスを作るノウハウ!⑥Dockerを使おう