11
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

はじめに

この記事は JSL (日本システム技研) Advent Calendar 2021 - Qiita 20日目の記事です。

毎年恒例、一人アニバーサリー記念です。:tada:
現場を離れているせいで、いよいよネタが無くなってきました。

たまたま案件で使用したAmazon Lightsailを使う機会があったので、特徴や使ってみた感想を書きます。

Amazon Lightsail とは

AWSが提供するVPSです。月額定額3.5$(*1)から始められるのが特徴でEC2と同様の使用感で扱えます。
インスタンス立ち上げ時も以下のように用途に応じて、プランを提案してくれるので非常に便利です。

*1 厳密いうと、通信料は上限あり、超過分は課金されます。

Lightsail-plan.gif

  • メリット

    • 月額固定料金でEC2を実行できる
    • Bitnamiのアプリケーションテンプレートを使用できる
    • ブラウザからSSH接続が可能
  • デメリット

    • 月額固定のためインスタンスを停止しても課金されてしまう
    • 他アカウントからの移行ができない?
    • Autoscalingが出来ない。大規模なアプリケーション開発には向いていない(ただし手動では増やせる)

今回のゴール

  • Lightsailについて調べてみる
  • Lightsail上でBitnamiのDjangoテンプレートを使用してみる

インスタンスを立ち上げてみる

ひとまずOSのみ(Amazon Linux2)を選択して、その他は、特になにも設定しなくても、以下のような感じでブラウザよりSSH接続可能です。いわゆるAmazon Linux2のAMIイメージのインスタンスが起動します。

レンタルサーバーだとパーミッションの制限がありスクラッチ開発で使いづらいですが、Lightsailは月額固定でAmazon EC2が使用できるため小規模開発やランニングコストが気になる時に使用すると良いと思いした。

Screen Shot 2021-12-17 at 20.17.45.png

Djangoテンプレートをでインスタンスを立ち上げてみる

次にDjangoテンプレートを使用してインスタンスを起動してみます。
5$/月以上のプランでないと使用できないようです。

また、デフォルトではユーザーがec2-userではなく、bitnamiになったり、OSはDebianが起動するようです。

Screen Shot 2021-12-17 at 20.29.42.png
バージョン確認

10.11

Djangoテンプレートの各種バージョン

テンプレートによってインストールされたライブラリを確認してみます

$ python --version
Python 3.8.12

pipを確認すると、MySQL、PostgreSQL、Sqliteへの接続ライブラリがインストールされている模様。

$ pip freeze
asgiref==3.4.1
backports.entry-points-selectable==1.1.1
distlib==0.3.3
Django==3.2.9
filelock==3.3.2
mysqlclient==1.4.6
platformdirs==2.4.0
psycopg2==2.9.2
pytz==2021.3
six==1.16.0
sqlparse==0.4.2
virtualenv==20.10.0
  • WebサーバーはApache・・
  • DBもMySQL、PostgreSQL、Sqlite
$ httpd -v
Server version: Apache/2.4.51 (Unix)
Server built:   Oct  7 2021 18:37:56

$ mysql --version
mysql  Ver 15.1 Distrib 10.6.5-MariaDB, for Linux (x86_64) using readline 5.1

$ psql --version
psql (PostgreSQL) 11.14

$ sqlite3 -version
3.27.2 2019-02-25 16:06:06 bd49a8271d650fa89e446b42e513b595a717b9212c91dd384aab871fc1d0alt
1

テンプレートを見た感覚ですが、同一インスタンス内にアプリケーション/DBサーバーを同居させる前提のようです。

DjangoをWebサーバー上で起動してみる

Bitnamiの公式チュートリアル通りに立ち上げてみました。
Apache + mod_wsgiへのデプロイ例でした。
もう少しモダンなnginx + gunicornのような構成の方が人気でそうな気がするのだけど・・(とはいえこの構成自体もだいぶ枯れているような)。

感想

  • LightSailは、月額固定でEC2を立ち上げられると考えれば、個人利用や小規模開発には使えると思いました。
  • bitnamiのDjangoテンプレートをを使用した場合、プロジェクトをEC2上で作成しないとメリットが無いように思いました。gitを使用することを考慮すると、ローカル環境でDjangoプロジェクトを作成してデプロイした方が開発しやすく感じました。
  • bitnamiの公式チュートリアルをもう少しモダンなものに変えると初学者にオススメしやすいと思いました。
11
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?