Amazon Web Services ブログ

Amazon ECS on AWS Fargate で最大 200 GiB のエフェメラルストレージを設定できるようになりました

この記事は、Amazon ECS on AWS Fargate now enables customers to configure ephemeral storage up to 200GiB を翻訳したものです。

本日、AWS Fargate で最大 200 GiB のエフェメラルストレージをサポートしたことを発表いたしました。何万人ものお客様が Amazon Elastic Container Service (Amazon ECS) を AWS Fargate と共に利用されており、多種多様なコンテナベースのアプリケーションでサーバーレスコンピュートモデルの恩恵を受けています。コンテナの導入が拡大するにつれて、コンテナのユースケースは単にマイクロサービスを実行するだけではなくなりました。より大きなストレージへのニーズは、機械学習の推論を実行するお客様や、より大きな Docker イメージ (20 GiB 超) を使用するお客様、さらにはコンテナ内の大規模なデータセットを使用したデータ処理を行うお客様など多岐にわたります。本リリース以前は、Amazon ECS や Amazon Elastic Kubernetes Service (Amazon EKS) でコンテナを実行する際に、お客様はコンピュートオプションとして EC2 を選択する必要がありました。この最新の機能により、タスクが完了するまでの間、Fargate は指定したサイズのストレージを自動的にプロビジョニングし、管理します。

Fargate タスクにストレージを設定する方法をデモするために、AWS Copilot CLI を利用してコンテナをデプロイします。希望するストレージサイズを設定し、コンテナ内で状態を確認します。さあ始めましょう!

今回はシンプルなデモをデプロイするために、アプリケーションをどのようにパッケージングおよび実行するかを定義した Dockerfile を作成します。実行するとコンテナは sleep するので、コンテナ内でストレージを調査する時間を得ることができます。

FROM public.ecr.aws/ubuntu/ubuntu:18.04

CMD ["/bin/sleep", "10000"]

この時点で、このコンテナを本番環境にデプロイする準備ができました。まず、アプリケーションを初期化し、Copilot CLI を利用して Application と Service の構造を定義するためにいくつかの基本的な質問に答えていきます。

Fargate タスクのストレージサイズを設定するために Manifest ファイルを編集する必要があります。そのため Environment が作成され、Service がデプロイされるのを待ちます。 このデモでは、ストレージのサイズを最大サイズである 200 GiB に設定します。

Manifest ファイルは /present-directory/copilot/svc-name/manifest.yml に作成されます。storage パラメータを追加し、ストレージサイズの 200 を指定します (単位は GiB)。詳細については Copilot のドキュメントを参照してください。

storage:  
  ephemeral: 200

この時点で、Environment をデプロイする準備ができました。Environment を作成しましょう!

それでは、コンテナをデプロイしてみましょう!

Environment がデプロイされると、ECS Exec with Copilot を利用して対話型シェルでコンテナに接続することができます。ECS Exec は最近リリースされた機能です。まだ馴染みがない方は、この機能を紹介しているブログ記事がありますので読んでみてください。

さて、コンテナ内で利用可能なディスクスペースを確認してみましょう。簡単な df コマンドを実行します。

df -H

利用可能なストレージが 200 GiB であることが確認できました。

このデモでは、Amazon ECS に Fargate タスクをデプロイし、要件に応じてエフェメラルストレージのサイズを 200 GiB に設定しました。コンテナに対話型シェルで接続し、利用可能なディスク容量が設定されていることを確認しました。ブログの冒頭で述べたように、デフォルトのエフェメラルストレージのサイズが 20 GiB であることで制約を受けていたお客様も、この機能によって、Fargate でサーバーレスの機能を活用いただけます。この機能は AWS Copilot のサポートがなくとも、AWS CloudFormation や AWS CLI を利用して Fargate タスクをデプロイするときに利用可能です。詳細については AWS Fargate のドキュメントをご参照ください。この新機能を AWS Fargate で利用する場合、タスク定義の Platform Version に 1.4 もしくは LATEST を指定します。

翻訳はソリューションアーキテクト加治が担当しました。原文はこちらです。