投稿日: Aug 19, 2019
Linux で EC2 起動タイプを使って Amazon ECS を使用する際に、スワップ領域の使用をコンテナ単位ベースで制御できるようになりました。スワップ領域は Linux などのオペレーティングシステムで使用され、ホストで物理的に使用できる以上のメモリをプロセスで使用することが可能になります。オペレーティングシステムカーネルでは、ホストで実行中のソフトウェアの要求に応えるため、必要に応じて物理メモリをディスクに "スワップ" します。スワップ領域を使用すると、アプリケーションでは他の方法でメモリにアクセスする場合より多くのメモリを使用できるようになりますが、レイテンシーが高くなり、スループットも低下します。メモリ要件が大きく変動するとともにレイテンシーに敏感ではないアプリケーションなどで、スワップメモリの使用によるメリットが得られます。
ECS のコンテナ単位のスワップ設定を使用して、各コンテナでのスワップの使用を制御できます。異なるコンテナでスワップをそれぞれ有効または無効にでき、スワップを有効にしたコンテナでは、使用するスワップの最大量をコンテナ単位で制限できます。つまり、例えばレイテンシーが重要なコンテナではスワップを無効にできるのに対し、一時的に高いメモリ要件のあるコンテナではスワップを有効にして、負荷がかかっている時のメモリ不足エラーの可能性を減らすことができます。ECS では、複数のコンテナが同じ EC2 インスタンスで実行されているとしても、希望するスワップ設定で各コンテナが実行されるようにします。
新しい ECS のスワップ領域制御は、ECS が利用可能なすべてのリージョンで利用できます。EC2 Linux インスタンスで実行中のタスクの ECS タスク定義で、コンテナ単位のスワップ制御を有効にできます。使用を開始するには、ドキュメントを参照してください。