【らくちんAWS】 LightsailからはじめるAWSエンジニア (前編) 【EC2よりカンタン】

後編: [【らくちんAWS】LightsailからはじめるAWSエンジニア (後編)【AWS完全に理解した】](https://qiita.com/H40831/items/717d009fc36d3933e8ba)



![Lightsailロゴ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365927/5582f1f3-ff42-7c81-36ad-17ff44a582e3.png)
#この記事について
この記事は、「AWSは難しくて嫌だ！」と感じる人の苦手意識を克服するために、
とっても簡単に使える[AWS Lightsail](https://aws.amazon.com/jp/lightsail-vps/)というサービスを紹介させていただく記事になります。
後編では、Lightsail基準で見るAWSの各種サービスの紹介をさせていただきますので、
今までよりも簡単に、AWSの理解を広げていけると思います。

※AWSのデファクトスタンダードである「EC2」を基準に各サービスの理解を広げることができる方は、この記事を読む必要はありません。
※LightsailをWordPress環境として構築する使い方が主流のようですが、この記事ではシンプルなWEBサーバーとして使用することを想定しています。

#自己紹介と、記事を書いたきっかけ
わたしは世間で言うところの「駆け出しエンジニア」になります。
HTML/CSS、JavaScript、PHPなどを経験してきて、もうすぐ２年弱になります。
技術力が強いエンジニアではありませんが、挫折しなかった駆け出しエンジニアとして、
「未習得の方にとってわかりやすい記事」をコンセプトに、Qiitaを書かせていただいてます！

わたしは[エンジニアのタイプ](http://otihateten.hatenablog.com/entry/2019/09/23/005302)でいうと、
「ものづくりタイプ（作る物が好きな方）」「解決思考タイプ」のエンジニアです。
AWSを学ぶ際も「どんな物が作れそうか」「何が解決できそうか」に注目しておりました。
わたしの制作の規模で考えると、AWSはその点が他サービスと比べてどう優れているのかよくわからないし、掘り下げるのが難しいというのが正直な感想でした。
「技術好きタイプ」や「職業人タイプ」とは違い、
「技術的に面白いか」「次のプロジェクトで使うか」の基準で学習のモチベーションを保つことは難しいため、AWSは、気になるけど手をつけにくい存在となっていました。

仕事上、AWSの基本的なサービス（EC2など）に触れる機会はありましたが、
個人で開発・学習のために使うとなると
「支払い総額がわからない」
「（詳しく調べないと）使い方もわからない」
「使ったところで、どんなメリットがあるかもわからない」
と、ないないづくしの印象を持っていました。

そんなときに知ったのが、AWS Lightsailでした。
「月額固定料金」
「ぱっと見ただけで使い方がわかるUI」
「必要な機能がすべてセットになっている」
そんなLightsailと出会い、わたしの興味は一気に惹きつけられました！

当初は、Lightsail以外のサービスには一切興味がなく、
ひたすらLightsailの使い方・使いやすさ・口コミなどばかり調べていました。
そんな中、[AWSマンガ](https://aws.amazon.com/jp/campaigns/manga/series/)と出会いました。
第１話で紹介されるサービスがLightsailだったので、
Lightsailを基準にAWSを深く知ることができる！と歓喜しました。
読みすすめると、物語中の開発規模は壮大で、一生使うことがなさそうなサービスもたくさん紹介されていましたが、
それでもAWSの入り口が、ぐぐっと広がった気がしました！
紹介されていたサービスや、紹介されなかったサービスを、より詳しく知りたくなって、
読破後の興奮冷めやらぬまま、ひたすらAWSを調べてメモをしていきました。
このとき調べた知識を共有することで、
わたしと同じようにAWSに苦手意識を持っている駆け出しエンジニアのみなさんも、
AWSの扉を開くことができたらいいな、と思い記事にまとめました。

長い内容になりますが、小分けにしながら読み進めていただければと思います。
よろしくお願いいたします！

#記事のコンセプト
**記事のターゲット層について**
この記事は、フロントエンドからデビューした駆け出しエンジニアをメインターゲットとしております。
自分で知識を広げられる段階までもっていくことを最優先と考えているため、
記事の中には、できるだけカンタンに説明するための独特な表現（＝正確ではない表現）があるかもしれません。

この記事の内容を理解したあとは、
他の情報や、記事のコメントなどを参考にして、より知識を深めていただければと思います。

**記事タイトルについて**
記事タイトルで掲げている「AWSエンジニア」というのは「AWSが使えるエンジニア」という意味であり、
「AWSのプロフェッショナル」という意味ではありません。

#Lightsailとは
AWS Lightsailは、クラウド上に自分専用のサーバーをつくれるサービスです。
一般的に「VPS」や「レンタルサーバー」と呼ばれる類のサービスになります。

AWSは本来、AWSの各サービスを組み合わせて構築していくのが特徴なのですが、
Lightsailは、各サービスをいい感じのセットにして提供してくれています。
そのため、余計なことを考えなくていい、わかりやすさ重視のサービスとなっています。

Lightsailについて調べると、よくEC2を中心としたAWSの各サービスと比較されていますが、
本来は、他社のレンタルサーバー（さくらのVPS、GMOクラウドVPS、ロリポップ！等）や、
サービスを簡単にWEBに公開することを目的とした HerokuやFirebaseなどのサービスが比較対象として適しているのではないかと思います。

わかりやすさ重視なので、インフラの管理に時間を割けない個人開発や、少数開発にぴったりです！
パッケージされているサービスなので、費用が高いのでは？と思うかもしれませんが、
AWSの他サービスを利用するときにかかる時間と手間を時給に換算して考えれば、
圧倒的にコスパは良いと思います！

ただし、最近できたサービスであるのと、
もともとAWSに手を付けていた層が「難しい技術大歓迎！」なエンジニアが多いかと思うので、
Lightsail自体の認知度が低く、QiitaやGoogleで探しても情報が見つかりにくいのが欠点です。
この記事で、たくさんの人がLightsailに興味を持って、もっともっと情報共有が盛んになることを祈ってます！

[公式ドキュメントでも、EC2ではなくLightsailを使う手順を解説するようになったそうなので、](https://www.isoroot.jp/blog/2529/)
公式としても、まずは簡単なLightsailから初めて、必要になったらEC2などを利用する流れにした方がわかりやすいと考えているのかと思います。

#サーバーとは
さきほど説明したように、Lightsailはあくまでサーバーを提供するサービスです。
そのため、サーバーでできること・やることについては、わたしたちがあらかじめ把握しておく必要があります。
もし、あなたが「そもそもサーバーのことを知らない」「サーバーを使ってやりたい事がわからない」という場合は、
Lightsailを始めるまえに、サーバーについて勉強してください。

サーバーで出来ることをイメージできない方には、以前わたしが書いた記事をオススメさせていただきます。
記事を読んで、サーバーを使う目的が決められるようになってから、Lightsailをはじめましょう。
参考: [駆け出しエンジニア「サーバーサイド言語を勉強したら、何ができるようになるの？」](https://qiita.com/H40831/items/3857a45a6291e7a7e67e)

#メリット・デメリットについて
2020年現在、ネットでLightsailを調べると出てくるメリット・デメリットの情報は、
AWSの各サービス（というかEC2）と比較した上での情報が多く、
AWSを使い慣れてない人にとっては誤解しやすい表現が多いと感じたので、補足させていただきます。

##拡張性
Lightsailのデメリットを調べるとよく見かける「拡張性が低い」という情報がありますが、
ここでいう「拡張性が低い」は、EC2と比較したときの話です。
EC2ではなく他社サービスと比べて考えると、むしろ拡張性は高いと言えます。

また、拡張性について語る上で複雑なのが、「拡張性」と一言でいっても、
「スペックの拡張性」と「機能の拡張性」という、２つの側面があるということです。
Lightsailの拡張性について調べる際は、情報がこのどちらの拡張性について語っているのか、
把握しながら読んだほうがよいと思います。

###スペック
サーバーのスペック面では、
LighSailはあらかじめ用意されたいくつかのスペックに従ってアップグレードしていくことしかできませんが、
EC2であれば、Lightsailの何倍もの数のプラン（＝スペック）が用意されています。
そのため、
「データの保存を大量に行うから、ストレージ容量が沢山ほしい」とか、
「AIやディープラーニングなどを行うのでCPUが強いサーバーを使いたい」など、
一般的なバランスとは違ったスペックのサーバーに育てていく可能性がある場合は、最初からEC2を選ぶべきでしょう。

ただし、他社サービスと比べればLightsailのスペックの選択肢は少ないとは言えません。
ほとんどのサービスはLightsailと同じくらい、またはそれよりも少ない数のプランしか用意されていないかと思います。
そして、スペックに不満がでてきたときにEC2に簡単に移行できるのもLightsailの特徴となりますので、
それも含めて考えれば、やはりLightsailのスペックの拡張性はすばらしいと言ってもよいと思います。

###機能
LightsailはサーバーにSSH接続してアプリ（＝パッケージ）のインストールができるので、
それができないHerokuやFirebaseと比べると、圧倒的に拡張性が高いです。
また、サーバーへのSSH接続が可能な他社のVPSと比べても、
LightsailであればEC2への移行ができる点や、Lightsailにパッケージされている各AWS機能が使えるということを考えると、拡張性はかなり高いと思います。

しかし、先に言ったとおり、EC2とLightsailを比べている情報では、Lightsailの拡張性は低いと言われています。
これはなぜかというと、Lightsailは「他のAWSのサービスと組み合わせた使い方がしづらい」特徴があります。
たとえば、AWSにはEC2のような仮想コンピュータ機能以外にも、
以下のようなサービスがあります。

 * **Connect:** 自動電話対応窓口（＝コンタクトセンター）の作成。
 * **Pinpoint:** ユーザーの行動（アプリの使用日時など）と連動してスマホへのプッシュ通知などを行う。
 * **SES:** メールの送受信サービス。メールマガジン配信など。
 * **Athena:** AWSのストレージサービス内に保存されたCSV形式などのファイルの内容を、SQL文を使って取得できる。
 * **Lambda:** バッチ処理の管理＆実行。

これらとの連携ができない可能性があるという意味で「拡張性が低い」と言われているのでしょう。
（上記はあくまで「AWSの他サービスの例」であり、実際にLightsailと連携できないかどうかは未確認です。）

しかし、勘違いしてはいけないのが、もし仮に上記のサービスとの連携ができない場合でも、
「Lightsailを使うと上記のような機能を持ったサービスを作れない」わけではない事です。
AWSのサービスを使わない方法で実装することや、
AWSが用意した以外のやりかたで連携できるのであれば、実装は可能です。

また、データベースやロードバランサー、CDNや独自ドメインなどの機能は利用可能だと公言されていますし、
[AWSの一部サービス（Cloud9など）と連携できている前例](https://dev.classmethod.jp/articles/aws-reinvent-clud9-on-lightsail/)もあるため、
「AWSの他サービスとまったく連携ができない」わけではないのです。

##費用
※わたし自身、Lightsailでの本格的な運用や、長期的な運用の経験がないので、情報が正確ではない可能性があります。あくまで、軽く調べてみた感想であることをご了承ください。

[Lightsailの料金表](https://aws.amazon.com/jp/lightsail/pricing/)
![Lightsailの料金表.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365927/63473fb4-b478-696b-527a-77a49d1b7019.png)


EC2で運用した場合と比べて安く済むのか高くつくのかは、正直わかりません。
ネットで調べても誰に聞いても具体的な答えは返ってこないので、答えはどこにも無いものと認識しています。
もし、詳しい方がいらっしゃいましたら、コメントをお願いいたします。

ふつう、あらゆるサービスがパッケージ化されていると聞くと、高いのだろうと考えるのが当然ですが、
[ざっくりAWS](https://aws-rough.cc/)でざっくり計算してみようかと思ったのですが、
通信量で比較すると圧倒的にLightsailのほうが安く、比較すべきポイントがよくわかりませんでした。
[AWSの他サービスをLightsailに移行して費用を1/10にした](https://qiita.com/kamihork/items/7774f1b8fbfe1faabf80)や[AWSで10万円溶かした話](https://qiita.com/revvve44/items/4d95d451898b1e023919)という記事があるように、
パッケージサービスだから高い、というような簡単な話ではないようです。

勤務先で運用中のAWSの料金と比べてみた印象だと、
24時間運用しつづけるサーバーの場合、サーバー単体で見るとLightsailのほうが安く、
きっちり停止して費用を節約しながらEC2を使っていく場合や、
データベースやストレージ、CDN配信などのLightsailの追加機能をフルに使おうとするほど、
Lightsailのほうが高くなってくるかも？というような印象です。

ただし、安いか高いかにかかわらず、
AWSの他サービスは基本的に基本料金＋従量課金制なので、
どういう使い方をすると費用が高くなりやすいか等をあらかじめ勉強し、管理しなければ安心して使えないものがほとんどです。
つまり「利用するサービスの数に比例して、必要学習時間や考慮すべきリスクが増える」ということですので、
このリスクを無くせるLightsailは、個人開発はもちろんのこと、仕事上でも導入するメリットは大きいかと思います。

しかし、Lightsailは初心者向けなのに無料で使い続けられるプランがなく、
無料期間も１ヶ月と、他のAWSのサービスと比べるとしょぼいので、
これはLightsailが普及しない原因のひとつかと思います。

###料金を比較して考える
Lightsailの一番安いプランと、他サービスの月額費用を比べてみた感想です。
各社の料金の決め方がバラバラで、まったく同じ条件での比較ができないため、
ざっくりご理解いただければと思います。

ちなみに、$3.5プランのスペックは下記です。
**メモリ:** 512MB / **CPU:** 1コアプロセッサ / **ストレージ:** 20GB SSDディスク / **転送量:** 1TB（=1000GB）
（**無料期間:** １ヶ月間）

**AWS（[ざっくりAWS](https://aws-rough.cc/)にて計算）**
- **EC2:** t2.microプランだと、容量20GBで781円。1000GBの転送料は12,596円。 
- **S3:** 容量20GBで52円。1000GBの転送料は12,068円。

**VPS、クラウドサーバー**

- **さくらのVPS:** 512MB/1コア/25GBの最安プランが、585円。無料期間は14日間。
- **GMOクラウドVPS:** 1GB/2コア/50GB/転送量無制限の最安プランが、780円（１年契約の場合）。無料期間は15日間。
- **ロリポップ！:** スペック非公開のため比較できず。最安プランは100円、大量アクセスでも高速表示できるハイスピードプランは500円。

**◯aaS系サービス**

- **Heroku:** 無料プランあり。メモリ512MBのプロダクションプランは \$25~。
- **Firebase:** 月20GBのストレージ利用で \$0.39。ホスティングサービスの1000GBの転送料は \$149。


#はじめ方
つぎは、実際にLightsailを使ってみましょう。

先にお伝えしたように、Lightsailはわかりやすさを重視したサービスです。
画面を見れば、だいたいの使い方はわかるかと思うので、かなり大雑把に解説していきます。

##インスタンスの作成
まずは（[インスタンスの作成画面](https://lightsail.aws.amazon.com/ls/webapp/create/instance)）をご覧ください！
![Lightsail_インスタンスの作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365927/1a54a0c7-0d1b-3446-216a-8b47fbc27f07.png)

はい！！
もう説明はいらないかもしれませんが、簡潔に補足させていただきます。

※AWSでよく出てくる「インスタンス」という言葉は、Lightsailにおいては「サーバー」と同じ意味で考えて大丈夫です。（厳密に言えば、AWSの「サーバー」はたくさんのユーザーがつくったサーバーを動かしている大元のPC（＝親機）のことで、それと区別するための呼び方が「インスタンス」となります。）

###インスタンスロケーション
**意味:**
物理的な意味で、どこに置いてあるPCにサーバーを構築するかどうかです。
**決め方:**
サーバーの所在地は、アクセス速度に影響します。
日本向けのサービスを作るなら、東京がベストです。
###インスタンスイメージの選択
**意味:**
サーバーのOSと、あらかじめ導入しておくアプリを選びます。
**決め方:**
メジャーなプラットフォームはLinux/Unix、
メジャーなアプリはWEBサーバーならLAMP、Node.js、Nginxなどです。
###インスタンスプランの選択
**意味:**
サーバーのスペックです。
**決め方:**
[後々変更する方法](https://aws.amazon.com/jp/premiumsupport/knowledge-center/change-lightsail-plan/)があるので、よくわからなければ一番安いプランにしましょう。
###インスタンスを確認
**意味:**
今回つくるサーバーの名前と数を指定します。
**決め方:**
今後何台もサーバーを作る可能性があるならば、サーバー名が一覧表示されたときに、
目的のサーバーを間違えずに見つけられるような名前をつけてあげてください。

###インスタンスの作成
上記項目を入力したら「インスタンスの作成」ボタンを押してください。
無事、サーバーを作ることができたと思います！

##静的IPの作成
IPアドレスについては皆さんご存知でしょうか？（ご存知出ない方は、調べてみてください。）
「静的IP」というものについてざっくり説明すると、
たとえばAWSの他サービス（というかEC2）は、インスタンスを停止するたびにIPが変わってしまうので、ElasticIPという「固定IP（＝静的IP）」の設定をする必要があります。
Lightsailも、同じ仕組みなので、停止・再起動したあとも同じIPアドレスでサーバーを使用したい場合は、
静的IPを設定しておく必要があります。
同じIPアドレスでサーバーを使用したい場合というのは、主にサーバーに独自ドメイン（URL）でアクセスできるように設定する場合などですね。

作り方はカンタンです。
管理画面（＝AWSコンソール）の「ネットワーキング」メニューから「静的IPの作成」ボタンをクリックし、
さきほど作ったサーバーを選択して、静的IPを作成してください。

作成されたIPアドレスをブラウザのアドレスバーに入力すれば、自身のサーバーにアクセスできると思います。

##SSH接続
SSH接続とは、サーバーを操作するために、サーバーの[CUI](https://wa3.i-3-i.info/word1373.html)に接続する方法のことです。
（CUIとは、Macでいう「Terminal」、Windowsでいう「コマンドプロンプト」や「PowerShell」のことです）

通常サーバーにSSH接続するためには鍵となるファイルを作成してユーザー作成を行う必要があるのですが、
AWSの場合はそれが不要になります！
Lightsailのコンソールから「SSHを使用して接続」ボタンを押すだけでSSH接続ができます！感動！！
もちろん、あなたのPCのターミナルアプリを利用してSSH接続することも可能ですので、やりたかったら調べてみてください。

**（以降、順次追記予定…）**

#おわり
いかがでしょうか？
Lightsailの管理画面を触っていただいて、
AWSの他サービスより格段にわかりやすく作られているという実感ができたのではないでしょうか？
SSH接続ができるようになれば、このサーバーを使って何をつくるかはあなた次第です！
これにてLightsailの説明は以上となります。

後編では、Lightsailしか知らない人でも理解しやすいように、
他のAWSのサービスにはどんなものがあるのか説明させていただきます。
AWSの理解を広げるために、ぜひ読んでみてください！

後編: [【らくちんAWS】LightsailからはじめるAWSエンジニア (後編)【AWS完全に理解した】](https://qiita.com/H40831/items/717d009fc36d3933e8ba)