Webサイト公開にあたり、弊社で利用しているプラットフォーム

こんにちは。植松です。
弊社ではWebサイトやWebアプリを公開するプラットフォームとして、さくらインターネットが提供する「さくらのレンタルサーバ」かAWSを主としています。
レンタルサーバは基本的には決められたスペックで稼働させるため、アクセス数が多かったり、特定のセキュリティ・技術要件があったりする場合は選定しにくいです。
ただ、その分金額としては安価です。自社のホームページを公開したい!というレベルなら、レンタルサーバーでも十分な場合が多いです。
レンタルサーバーのメリットデメリットはいくつかあるのですが、今回は説明省略します。(かなりのボリュームになるので)

弊社で構築する一般的な環境構成

弊社でAWSを使ったWebサイト公開用の環境を構築する場合、以下の構成が一般的です。

構成パターン1

20240409_1.png

パブリックサブネットにEC2を配置する、シンプルな構成です。
この構成はEC2がインターネットからアクセスできるようになっているので、セキュリティ要件に合わない場合があります。
実際はWeb公開用のドメインはELB(ALB)を通過するようにしていますし、セキュリティグループで直接EC2へアクセス可能なIPは制限しています。
さらにEC2のパブリックIPやパブリックDNSでアクセスしてきても、Apacheの設定で閲覧不可能にしています。

とはいえ、要件でEC2をインターネットから完全分断させるように構築してほしいと決まっている時もあります。
その場合は以下の構成で構築することで、プライベートサブネットにEC2を配置し、インターネットからはEC2へアクセスできないようにしています。

構成パターン2

20240409_2.png

EC2のシングル構成

実はAWSとしてはEC2インスタンスを単一(シングル)で使うことは推奨していません。

高度な可用性の実現にフォーカスしている AWS のお客様は、複数の AZ で実行するようにアプリケーションの設計をすることで、より強力な障害耐性を実現できます。

https://aws.amazon.com/jp/about-aws/global-infrastructure/regions_az/

EC2を複数作成、複数AZで稼働させ、ロードバランサーで負荷分散をかける(冗長構成化・スケールアウトする)ことで耐障害性、可用性を向上させてくださいね。とのことです。
ただ、費用が高くなるのでEC2はシングルで、スケールアップで対応する場合もあったり。ここは要件に応じてどのような構成がベストかを都度検討します。

ダウンタイム(ホームページやWebアプリが閲覧・操作できない時間)が多少はあっても問題ない場合、弊社ではシングルで構成するケースが多いです。
関連記事:AWSでLAMP環境を構築

プライベートサブネットへのアクセス問題


構成パターン2の場合、EC2へのSSH接続や、EC2↔︎S3のデータ連携方法が特殊になります。
インターネットに接続していないEC2へアクセスする方法はいくつかありますが、弊社ではEC2 Instance Connect EndpointとS3 Endpoint Gatewayを使っています。