今回はAWS上でWEBサイト構築する際に、どのサービスを使えばいいのー?について考えていきます。
(最近、AWSのサービス、どんな時に、どんなサービス使えばいいのー?について調べるのにはまってます)
6つの構築方法を紹介し、それぞれ特徴やメリットとデメリットがありますので、この点について書いていきます。
まずはどのような構築方法があるかについて記載していきます。
6つのWEBサイト構築方式
WEBサイト構築方式は以下の6つを想定しています。
構築方式 | 概要 |
EC2 | 自由度が高い、仮想サーバサービス。インストールしたプログラムでHTMLを生成して返す |
S3 | オブジェクトストレージ。格納した静的HTMLを返す。 |
ECS | コンテナ実行サービス。コンテナ内のプログラムがHTMLを生成して返す |
EKS | Kubernetesで管理されたコンテナが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以外はバックエンドにサーバまたはコンテナがいて、ロードバランサでアクセスを振り分けることになり、挙動としてはほぼ同じですね。アプリケーションの管理の仕方(コンテナを使用するかなどなど)の面が大きく異なってくることになると思います。
バッチについての記事もありますので、よろしければ★