6
1

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.

EC2オートスケーリングの為のステートレスサーバー化についての備忘録

Last updated at Posted at 2021-04-29

オートスケーリングについて

AWS EC2インスタンスの運用時には単体EC2インスタンスの場合でも、
将来的な拡張性に備えてAutoScalingグループ内での運用が望ましいようです。

参考

すべてのEC2インスタンスは、Auto Scaling グループ内で実行されるべきです。たとえEC2インスタンスが1つだったとしても同じです。Auto Scaling グループは、EC2インスタンスをモニタリングし、仮想マシンの論理グループとして機能するもので、しかも無償なのです。

メリット

  1. 可用性の向上
  2. 負荷分散
  3. 運用コストの最適化

ステートレスサーバー化

オートスケーリングはAMI(Amazon Machine Image)を利用して
インスタンスをスケーリングする為、
サーバー内に変更点があった場合、
スケーリング時にAMIの時点のサーバーの状態へと先祖返りしてしまいます。

これを回避する為には、
サーバーのステートレス化(サーバーが状態を持たないようにする)を実現する為の
アーキテクチャ設計の工夫が色々と必要になってきます。

参考

不安定になったEC2はいつでも捨てられる(Terminateできる)よう内部にデータは保持しないことが重要となります。データを保持していると不安定になった際にインスタンスがTerminateされて、なくなってしまいます。ここでいうデータには次のものが考えられます。

・アプリケーションで生成された永続的に保管すべきデータ
・アップロードされた画像ファイルなど
・HTTPなどのセッションデータ
・ApacheやTomcatなどのログファイル
・/var/log/messages などOSのログファイル

静的アセット

CloudFront(CDN)、S3を用いてサーバー外へ配置

セッション、キャッシュデータ

ElastiCache(Redis)を利用したインメモリの外部化

サーバー内ログファイル

CloudTrailを利用したログファイルの監視

マウント先のボリューム

ElasticFileSystem(NFS)を利用したボリュームのネットワーク共有

ステートレスなオートスケーリング利用のアーキテクチャ設計一案(個人的見解に基づく)
AutoScaling.png

もちろんここであげたものはあくまで一例にすぎず
ケースに応じたインフラ設計が必要になってくることかと思います。

参考

6
1
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
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?