2022/09/30

テクノロジー

Lightsailを使ってみる

この記事の目次

    そもそもLightsailとは

    公式サイトより引用

    Amazon Lightsail は、数クリックでウェブアプリケーションやウェブサイトを立ち上げられる、使いやすいクラウドリソースを提供します。Lightsail は、インスタンス、コンテナ、データベース、ストレージなどの簡素化されたサービスを提供します。Lightsail では、WordPress、Prestashop、LAMP などの事前に設定されたブループリントを使用して、ウェブサイトやアプリケーションを簡単に立ち上げることができます。

    ⇒自分なりに言い換えると、
    AWSが提供している仮想プライベートサーバー(VPS)で必要な設定が少なく始めやすい。
    簡単なウェブサイトをEC2で作ろうと思ったときに通常VPC,ALB,EC2,…など必要になるところが、Lightsail内で全て完結する。(※自動でやってくれる部分が多い分ため制限もある)

    wordpress構築検証

    下図を構築します。
    HTTPSは必須として、その他も絞れるところは絞っていきます。
    lightsailのロードバランサにWAFをアタッチすることはできないため、cloudfrontを前段に置いています。

    lightsailインスタンス

    AWSコンソール画面のサービスからlightsailを選択すると、lightsail用のページへ飛びます。

    lightsailホーム画面>インスタンス>インスタンスの作成

    必要な項目

    • リージョン
      • 東京を選択
    • アベイラビリティーゾーン
      • ZoneAを選択
    • プラットフォーム
      • Linux/Unixを選択
    • 設計図
      • Apps + OS
        • WordPressを選択
    • インスタンスプラン
      • →Memory:4GB,Processing:2vCPUs,Storage:80GB,Transfer:4TBを選択

    これだけでwordpressが立ち上がります。
    インスタンスはEC2のように、画面上で停止や再起動が可能です。

    作成したインスタンスの詳細を見てみます。

    ・接続

    "SSHを使用して接続"からセッションマネージャのようにブラウザでサーバへアクセス可能です。
    "デフォルトキーのダウンロード"からSSHキーが入手できるので、SSHクライアントを使うこともできます。
    どちらの方法でも接続ができました。
    SSHクライアントでも接続できたので、どこからでも接続できるようになっている??かもということで、セキュリティグループの設定がないかどうか確認します。

    ・ネットワーキング

    "IPv4ファイアウォール"を見るとデフォルトで22,80,443が0.0.0.0/0で空いていました。
    一先ず社内IPのみを許可しておきます。

    この段階でパブリックIPでアクセスすると以下が表示されます。

    最初からwordpressが入っていることがわかります。

    ・メトリクス

    CPU,ネットワーク,ステータスがデフォルトで確認できるようになっています。

    この記事ではwordpressにログインするところは記載しませんが、wordpressのアカウント情報の確認方法はlightsailの公式ドキュメントに載っています。

    lightsailロードバランサー

    次に独自ドメインでアクセスできるようにします。
    lightsailホーム画面>ネットワーキング>ロードバランサーの作成

    必要な項目

    • リージョン
      • 東京を選択
    • 初期設定
      • HTTPを選択
        • 証明書がないのでHTTPSは選択できません

    作成したロードバランサーの詳細を設定します。
    ・ターゲットインスタンス
    作成したインスタンスをアタッチします。

    ・インバウンドトラフィック
    HTTPSに対応させるために、証明書を発行します。
    ACMと同じでドメインを入力するとDNS検証 で登録すべき値が出てくるのでDNSサーバに設定します。
    ここでのドメインはorigin-xxx.mynavi.jpとします。
    証明書が有効になるとHTTPSを選べるようになります。
    ここまで完了するとHTTPSが有効になります。

    この段階でorigin-xxx.mynavi.jpにアクセスすると以下が表示されます。
    パブリックIPでアクセスしたものと同じになりました。

    cloudfront

    ここの作業はlightsailから離れるので割愛します。
    設定した内容は以下です。

    • Cloudfront
      • オリジンはorigin-xxx.mynavi.jp
    • ACM
      • xxx.mynaiv.jpを設定
    • WAF
      • Cloudfrontにアタッチ

    この段階でxxx.mynavi.jpにアクセスすると以下が表示されます。

    アクセス制限について

    Cloudfrontのみ443で受け付けたいとします。
    ロードバランサーにはファイアウォールが備わっていないのでCloudfront外からもorigin-xxx.mynavi.jpで受けることができてしまいます。
    また、インスタンスはファイアウォールがありますがロードバランサーのIPは変動するため制限をかけることができないです。
    そのため、インスタンス内で制限をかけるしかなさそうです。
    Cloudfront→ALB→EC2の場合は
    ALB SGでCloudfront(AWSマネージドプレフィックスリスト)のみ許可し、EC2 SGでALB SGのみ許可することができましたがlightsailではこのようにできませんでした。

    費用について

    lightsailとEC2の料金を比較してみようと思います。
    前提としてスペックは以下とします。

    • 4 GB メモリ
    • 2 コアプロセッサ
    • 80 GB SSD ディスク

    比較
    lightsail:月額 $20
    EC2(t4g.medium):月額 $29.46

    lightsailの方が安いことがわかりました。
    比較するためにlightsailの中でも真ん中のサイズを選びましたが、一番小さいサイズだと月額$3.5となっていました。

    まとめ

    簡単に作ることができて、安いというのは確かにそうだなと感じました。
    冒頭にも書いた通り、細かい設定ができないところが欠点となりそうです。
    ・EC2のFirewallはIPベースのみの設定
    ・ロードバランサーにFirewallがない
    ・ロードバランサーにWAFがアタッチできない

    簡単にたてて使ってみるという点では適しているという印象を持ちました。

    ※本記事は2022年09月時点の情報です。

    著者:マイナビエンジニアブログ編集部