AWS でWEBサイト構築する6つの方法

今回はAWS上でWEBサイト構築する際に、どのサービスを使えばいいのー?について考えていきます。

    (最近、AWSのサービス、どんな時に、どんなサービス使えばいいのー?について調べるのにはまってます)

    6つの構築方法を紹介し、それぞれ特徴やメリットとデメリットがありますので、この点について書いていきます。

    まずはどのような構築方法があるかについて記載していきます。

    スポンサーリンク

    6つのWEBサイト構築方式

    WEBサイト構築方式は以下の6つを想定しています。

    構築方式概要
    EC2自由度が高い、仮想サーバサービス。インストールしたプログラムでHTMLを生成して返す
    S3オブジェクトストレージ。格納した静的HTMLを返す。
    ECSコンテナ実行サービス。コンテナ内のプログラムがHTMLを生成して返す
    EKSKubernetesで管理されたコンテナがHTMLを生成して返す
    Lightsailとにかく設定が簡単。インストールしたプログラムでHTMLを生成して返す
    Beanstalkデプロイメントと管理が簡単。インストールしたプログラムでHTMLを生成して返す

    6つのWEBサイト構築方式の詳細情報

    それぞれのWEBサイト構築方式について詳細を見ていきます。

    EC2について

    概要

    自由度が高い、仮想サーバサービス。インストールしたプログラムでHTMLを生成して返す

    組み合わせて使用するAWSサービス

    • CloudFront
    • ロードバランサ

    メリット

    自由度が高い

    デメリット

    自由度が高く、自前での多くの設定が必要なため、難易度が高い

    S3

    概要

    オブジェクトストレージ。格納した静的HTMLを返す。基本的にCloudFrontと組み合わせて使用する。

    組み合わせて使用するAWSサービス

    • CloudFront

    メリット

    可用性が高い

    レスポンスが早い

    デメリット

    静的ページしか対応できない

    ECS

    概要

    コンテナ実行サービス。コンテナ内のプログラムがHTMLを生成して返す

    組み合わせて使用するAWSサービス

    • CloudFront
    • ロードバランサ

    メリット

    コンテナ内のプロセス異常があった場合、コンテナが自動的に落ちて、新しいコンテナが立ち上がる→プロセスの監視が不要

    デメリット

    コンテナの知識が必要

    EKS

    概要

    Kubernetesで管理されたコンテナがHTMLを生成して返す

    組み合わせて使用するAWSサービス

    • CloudFront
    • ロードバランサ

    メリット

    当たり前ですが、Kubernetesが使える!

    デメリット

    Kubernetesの知識が必要

    Lightsail

    概要

    とにかく設定が簡単。インストールしたプログラムでHTMLを生成して返す

    組み合わせて使用するAWSサービス

    • CloudFront
    • ロードバランサ

    メリット

    とにかく設定が簡単。LAMP環境などが簡単な画面操作で作れる

    月額料金で安い

    デメリット

    拡張性は低い

    Beanstalk

    概要

    デプロイメントと管理が簡単。インストールしたプログラムでHTMLを生成して返す

    組み合わせて使用するAWSサービス

    • CloudFront
    • ロードバランサ

    メリット

    デプロイメントと管理が簡単

    デメリット

    デプロイ時にサービス停止する。

    どのサービスを使えばよいか

    静的WEBサイト

    「S3」です。速度、可用性の面で優れています。

    コンテナの場合

    「ECS(Fargate)」または「EKS」です。

    k8s使いたい場合はEKS、使いたくない場合はECSかと思います。

    コンテナでない場合

    「EC2」です。消去法…

    そのほか安く簡単に構築したい場合

    「Lightsail」です。

    まとめ

    WEBサイトを構築する際の方式について記載しました。

    AWSはサービスがいっぱいあり、WEBサイト構築時にどのサービスを使えばいいか迷うことも多いと思いますが、迷った時は本記事の「どのサービスを使えばよいか」が参考になると嬉しいです。

    S3以外はバックエンドにサーバまたはコンテナがいて、ロードバランサでアクセスを振り分けることになり、挙動としてはほぼ同じですね。アプリケーションの管理の仕方(コンテナを使用するかなどなど)の面が大きく異なってくることになると思います。

    バッチについての記事もありますので、よろしければ★

    AWS でバッチ処理・定期実行する4つの方法
    AWS上でバッチ処理を行う場合に、 「どのサービスが選択肢として考えられるか」 「どのサービスを選択すればいいのか」 についてです。 バッチの起動方式として「Cron」 「ECS Task Scheduler」 「キュー」 「Web API」をあげて、特徴等を踏まえて、どのような場合にどのような選択をすればいいか記載。