Lightsailについてまとめてみた

Lightsailについて色々まとめてみました。

## この記事で紹介する内容
- 顧客にAWS Lightsailを提案したい方
- Lightsailのユースケースを把握したい方

## Lightsail とは?
Lightsailとは以下のようにAWS クラウドに常駐する仮想プライベートサーバー (VPS)であり、EC2のように自前でネットワーク環境を整備する必要なくサーバをホスティングできるサービスになります。
EC2と比較し費用対効果が高く素早く環境を構築できるため、
〇〇をすぐ使ってみたいといった方におすすめとなります。

https://aws.amazon.com/jp/lightsail/features/
> Lightsail インスタンスは AWS クラウドに常駐する仮想プライベートサーバー (VPS) です。Lightsail インスタンスを使用して、データの保存、コードの実行、ウェブベースのアプリケーションやウェブサイトの構築が行えます。インスタンスは、パブリック (インターネット) とプライベート (VPC) ネットワーキングの両方を通じて、相互接続やその他の AWS リソースへの接続ができます。インスタンスの作成、管理、接続は Lightsail コンソールから直接、簡単に実行できます。

## チュートリアル
チュートリアルとしてWordPressサーバをホスティングしてみます。

Lightsail画面から「インスタンスの作成」をクリックします。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/872532/4c4184d7-d398-9d10-4220-5c0b71af64b7.png)

いかのようにWordPressやDjangoなどなどのOS + アプリであらかじめ利用可能なアプリケーションを指定することができます。台数などの設定をして「インスタンスの作成」をクリックすることでインスタンスを作成することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/872532/4f135bc1-d472-2ee5-4f51-68e35cfbfb0e.png)

これだけでインスタンスが立ち上がります。VPCもセキュリティグループもなしでインスタンスを実行するのはかなり便利です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/872532/98e5178b-2cc0-26e1-1a6a-130de38e0228.png)

ターミナルを立ち上げることもできますし、払い出されたパブリックIPアドレスで接続することもできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/872532/ee3d94e8-8120-9aca-3e50-8e30564b45e7.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/872532/0531786d-80bf-93b9-8fd6-66fa42e1b001.png)

また、同様にデータベースやロードバランサをLightsail上で設定することも可能です。

## できること/できないこと

ここからはLightsailを使用する上でEC2やVPCで設定できた内容/できないことについて色々解説していこうと思います。

### ネットワークについて
EC2と同じように静的IP(EIP)を付与することで固定のIPアドレスを使用することができます。

またロードバランサーも提供できるため、複数EC2を立ち上げて、負荷分散することも可能です。
また、キャッシュなどを考慮するならCDNサービスも利用できるます。

### アクセス許可
SecurityGroupのように特定のIPからのインバウンド許可を設定することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/872532/2686be38-6066-8065-5b73-d37486b78b4a.png)


### バージョン指定について
Lightsailでのきめ細かいバージョン指定はできないものと認識した方がいいです。
以下はOSの例ですが、利用できるディストリビューションのバージョンは最新のものが提供されているため、細かいバージョン指定はできないものと認識いただければ。。。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/872532/c77f0952-05d0-f5e5-0ed6-693d64d1c695.png)

MySQLについても同様です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/872532/ce5c600e-dcb6-6138-d889-ce0288eafb5f.png)

### モニタリングについて
Lightsail画面上ではCPUやネットワークのトラフィックはモニタリングできますが、これはあくまでlightsail用のものであり、CloudWatchではありません。
つまりはCloudWatch上では監視できないということです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/872532/daeb5435-0212-be6f-7c47-eb2076f507ad.png)


### 障害対応について
そもそも CloudWatch 上では監視できない理由から、CloudWatch Alarm の設定はできないです。そのため、SSM RunCommandやLambdaなどによる復旧コマンドは実行できません。
但しLightsailのアラーム画面上でEメールやSMSでの通知設定は可能なため、それらを利用していただければと。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/872532/36b27c0a-2c2b-cca6-ebe3-6779ff0d9be7.png)

### スケーリングについて
上記CloudWatch Alarmのようなアラーム設定ができないことから、負荷に応じた自動スケーリングは設定できないものだと認識したほうが良いです。

### セキュリティについて
CDNは利用できるけどWAFは設定できなかったはず、、そもそもセキュリティを意識するならLightsailは利用しない方が良いかと思います。
また、Logsなどのログ管理やCloudTrailといった監査目的のサービスも利用できないため、コンプライアンス諸々厳しい企業だとそもそも利用しないとか。

### AWS サービスとの連携
自身のAWSアカウント上にある、S3などの他AWSサービスとシームレスに接続することはできないと考えて良さそうです。
できるとしたらRoute 53 でのドメインくらい。。
ある意味Lightsail上で完結するもののため他のサービスとシームレスに連携したいならEC2を利用した方が良さそうです。

### スナップショットについて
手動でのスナップショットと自動スナップショット両方をサポートしています。自動スナップショットでは時刻を指定うすることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/872532/40b4c4d1-e073-d62c-0637-1ac74582c52d.png)

### Lightsail -> EC2への移行
イメージをEC2へエクスポート可能なため、将来的にEC2を使用する場合スナップショットのエクスポートで利用可能に。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/872532/7e29711a-51c3-c803-892b-4fe2b38c51d9.png)

エクスポートが完了するとEC2上のAMI画面に自己所有のAMIとしてエクスポートされます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/872532/9854c0e1-d29a-e9fd-b53b-5989e03ef43a.png)

## その他ユースケースについて
HowToが公式ドキュメントでも公開されているため、〇〇できるんだっけ？と疑問に思ったら下記のリンクを参照いただければと思います。
https://lightsail.aws.amazon.com/ls/docs/ja_jp/how-to


## Lightsailを利用するケース/しないケース
利用するケースとしてはいかのとおりかと思います。
- 専門知識なしで数クリックでインスタンス等の環境を構築したい場合
- デモ版のアプリを公開したい場合
- 費用をなるべく抑えたい場合

利用を推奨しないケースとしてはいかのとおりかと思います。
- 柔軟なシステムを構築したい場合
- WAFなどのセキュリティ設定はできない。
- そもそもセキュリティやコンプライアンスを意識するケースではVPCを作成し、EC2を構築した方が良い。


## まとめ
今回はLightsailについてまとめてみました。
普段利用していないサービスについても触れることで、できること/できないことを学ぶことができ、顧客への提案時に役立てられたらと考えます。