Amazon ECS サービスを更新する
サービスを作成した後、タスクの数など、サービスパラメータを更新する必要がある場合があります。
Amazon ECS サーキットブレーカーを使用するサービスを更新すると、Amazon ECS はサービスデプロイとサービスリビジョンを作成します。これらのリソースを使用すると、サービス履歴に関する詳細情報を表示できます。詳細については、「Amazon ECS サービスデプロイを使用してサービス履歴を表示する」を参照してください。
前提条件
サービスを更新する前に、デプロイタイプで変更可能なサービスパラメータを確認してください。変更可能なパラメータの詳細なリストについては、「Amazon ECS サービスのパラメータの更新」を参照してください。
手順
- Console
-
コンソールをhttps://console.aws.amazon.com/ecs/v2
で開きます。 -
[Clusters] (クラスター) ページで、クラスターを選択します。
-
クラスターの詳細ページの [サービス] セクションで、サービスの横にあるチェックボックスを選択し、[更新] を選択します。
-
サービスで新しいデプロイを開始するには、[Force new deployment] (新しいデプロイの強制) を選択します。
-
[タスク定義] の場合、タスク定義ファミリーとリビジョンを選択します。
重要
コンソールは、選択したタスク定義ファミリーおよびリビジョンが、定義されたコンピューティング設定と互換性があることを確認します。警告が表示された場合は、タスク定義の互換性と、選択したコンピューティング設定の両方を確認します。
-
[Replica] (レプリカ) を使用した場合、[Desired tasks] (必要なタスク) に、サービス内で起動および維持するタスクの数を入力します。
-
[レプリカ] を選択した場合、Amazon ECS がアベイラビリティーゾーン間のタスクの分散をモニタリングし、不均衡が発生したときにタスクを再分散させるには、[アベイラビリティーゾーンのサービス再調整] で、[アベイラビリティーゾーンのサービス再調整] を選択します。
-
[Min running tasks] (実行中のタスクの最小化) の場合、デプロイ時に
RUNNING
の状態に保つ必要のあるサービス内のタスクの下限数をタスクの必要数のパーセント値 (最も近い整数に切り上げ) で入力します。詳細については、[Deployment configuration] (デプロイ設定) を参照してください。 -
[Max running tasks] (実行中のタスクの最大化)) には、デプロイ時に
RUNNING
またはPENDING
状態にできるサービスのタスクの上限数を必要数のタスクのパーセント値 (最も近い整数に切り下げ) で入力します。 -
Amazon ECS がデプロイの障害を検出して処理する方法を設定するには、[Deployment failure detection] (デプロイ障害検出) を展開し、オプションを選択します。
-
タスクを開始できない場合にデプロイを停止するには、[Use the Amazon ECS deployment circuit breaker] (Amazon ECS デプロイサーキットブレーカーを使用する) を選択します。
デプロイサーキットブレーカーによってデプロイが失敗状態に設定されたときに、ソフトウェアがデプロイを最後に完了したデプロイ状態に自動的にロールバックするようにするには、[失敗時のロールバック] を選択します。
-
アプリケーションメトリクスに基づいてデプロイを停止するには、[CloudWatch アラームを使用する] を選択します。次に、[CloudWatch アラーム名] からアラームを選択します。新しいアラームを作成するには、CloudWatch コンソールに移動します。
CloudWatch アラームによってデプロイが失敗状態に設定されたときに、ソフトウェアがデプロイを最後に完了したデプロイ状態に自動的にロールバックするようにするには、[失敗時のロールバック] を選択します。
-
-
計算オプションを変更するには、[コンピュート構成] を展開してから以下の操作を実行します。
-
AWS Fargate のサービスにとって、[Platform version] (プラットフォームのバージョン) で、新しいバージョンを選択します。
-
キャパシティプロバイダー戦略を使用するサービスの場合、[キャパシティプロバイダー戦略] で、次を実行します。
-
キャパシティプロバイダーをさらに追加するには、[さらに追加] を選択します。その後、[キャパシティプロバイダー] で、キャパシティプロバイダーを選択します。
-
キャパシティプロバイダーを削除するには、キャパシティプロバイダーの右側にある [削除] を選択します。
Auto Scaling グループキャパシティープロバイダーを使用するサービスは、Fargate キャパシティープロバイダーを使用するように更新することはできません。Fargate キャパシティプロバイダーを使用するサービスは、Auto Scaling グループキャパシティプロバイダーを使用するように更新できません。
-
-
-
(オプション) サービスの自動スケーリングを設定するには、[サービスの自動スケーリング] を展開し、次のパラメータを指定します。トラフィックフローからの過去のロードデータを調べる予測自動スケーリングを使用するには、サービスを作成した後にそれを設定します。詳細については、「履歴パターンを使用して予測スケーリングで Amazon ECS サービスをスケールする」を参照してください。
-
サービスの自動スケーリングを使用するには、[Service auto scaling] (サービスの自動スケーリング) を選択します。
-
[タスクの最小数] に、サービスの自動スケーリングで使用するタスクの下限数を入力します。必要な数がこの数を下回ることはありません。
-
[タスクの最大数] に、サービスの自動スケーリングで使用するタスクの上限数を入力します。必要な数がこの数を超えることはありません。
-
ポリシータイプを選択します。[スケーリングポリシータイプ] で、次のいずれかのオプションを選択します。
使用するポリシータイプ この操作を行います ターゲット追跡
-
[スケーリングポリシータイプ] で [ターゲットの追跡] を選択します。
-
[Policy Name] (ポリシー名) にこのポリシーの名前を入力します。
-
[ECS サービスメトリクス] で次のいずれかのメトリクスを選択します。
-
[ECSServiceAverageCPUUtilization] — サービスの平均 CPU 使用率。
-
[ECSServiceAverageMemoryUtilization] — サービスのメモリ平均使用率。
-
[ALBRequestCountPerTarget] - Application Load Balancer ターゲットグループ内のターゲットごとに完了したリクエストの数。
-
-
[Target value] (ターゲット値) には、選択したメトリックに対してサービスが保持する値を入力します。
-
[スケールアウトのクールダウン期間] には、スケールインアクティビティが完了してから別のスケールアウトアクティビティが開始されるまでの時間 (秒) を入力します。
-
[スケールインのクールダウン期間] には、スケールインアクティビティが完了してから別のスケールインアクティビティが開始されるまでの時間 (秒) を入力します。
-
ポリシーがスケールインアクティビティを実行しないようにするには、[Turn off scale-in] (スケールインをオフにする) を選択します。
-
• (オプション) トラフィックの増加に合わせてスケーリングポリシーをスケールアウトさせたいが、トラフィックが減少してもスケールインする必要がない場合は、[スケールインをオフにする] を選択します。
ステップスケーリング -
[スケーリングポリシータイプ] で [ステップスケーリング] を選択します。
-
[ポリシー名] で、このポリシー名を入力します。
-
[アラーム名] に、アラームの一意の名前を入力します。
-
[Amazon ECS サービスメトリクス] で、アラームに使用するサービスメトリクスを選択します。
-
[統計] で、アラーム統計を選択します。
-
[期間] で、アラームの期間を選択します。
-
[アラーム条件] で、選択したメトリクスを定義されたしきい値と比較する方法を選択します。
-
[メトリクスを比較するためのしきい値] と [アラームを開始する評価期間] に、アラームに使用するしきい値としきい値を評価する期間を入力します。
-
[スケーリングアクション]で、次の手順を実行します。
-
[アクション] には、サービスに対してタスクを追加する、削除する、または特定の必要数を設定するかを選択します。
-
タスクの追加または削除を選択した場合は、スケーリングアクションの開始時に追加または削除するタスクの数 (または既存のタスクの割合) を [値] に入力します。希望の数を設定することを選択した場合は、タスクの数を入力します。[タイプ] で、[値] が整数であるか、既存の必要なカウントのパーセント値であるかを選択します。
-
[下限] と [上限] に、ステップスケーリング調整の下限と上限を入力します。デフォルトでは、[ポリシーを追加] の下限はアラームしきい値であり、上限は正 (+) の無限大です。デフォルトでは、[ポリシーを削除] の上限はアラームしきい値であり、下限は負 (-) の無限大です。
-
(オプション) さらにスケーリングオプションを追加します。[新しいスケーリングアクションの追加] を選択し、[アクションのスケーリング] の手順を繰り返します。
-
[クールダウン期間] には、前回のスケーリングアクティビティが有効になるまで待機する時間を秒単位で入力します。追加ポリシーの場合、スケールアウトアクティビティの終了後、スケーリングポリシーによってスケールインアクティビティがブロックされ、一度にスケールアウトできるタスクの数が制限されます。削除ポリシーの場合、これはスケールインアクティビティの後、別のスケールインアクティビティが開始されるまでに経過する必要がある時間です。
-
-
-
-
(オプション) Service Connect を使用するには、[Turn on Service Connect] (Service Connect をオンにする) を選択し、以下を指定します。
-
[Service Connect configuration] (Service Connect 設定) で、クライアントモードを指定します。
-
サービスが名前空間内の他のサービスへの接続のみを必要とするネットワーククライアントアプリケーションを実行している場合は、[クライアント側のみ] を選択します。
-
サービスがネットワークまたは Web サービスアプリケーションを実行していて、このサービスにエンドポイントを提供し、名前空間内の他のサービスに接続する必要がある場合は、[Client and server] (クライアントとサーバー) を選択します。
-
-
デフォルトのクラスター名前空間ではない名前空間を使用するには、[Namespace] (名前空間) でサービス名前空間を選択します。
-
-
デプロイ時の設定と互換性のあるデータボリュームをタスクで使用する場合は、[ボリューム] を拡張してボリュームを設定できます。
ボリューム名とボリュームタイプはタスク定義リビジョンを作成するときに設定され、サービスの更新時には変更できません。ボリューム名とタイプを更新するには、新しいタスク定義リビジョンを作成し、新しいリビジョンを使用してサービスを更新する必要があります。
このボリュームタイプを設定するには この操作を行います Amazon EBS
-
[EBS ボリュームタイプ] には、タスクにアタッチする EBS ボリュームのタイプを選択します。
-
[サイズ (GiB)] には、ボリュームサイズの有効な値をギビバイト (GiB) 単位で入力します。最小で 1 GiB、最大で 16,384 GiB のボリュームサイズを指定できます。スナップショット ID を指定しない限り、この値は必須です。
-
[IOPS] には、ボリュームが提供する入力/出力オペレーションの数 (IOPS) の最大数を入力します。この値は
io1
、io2
、およびgp3
ボリュームタイプでのみ設定できます。 -
[スループット (MiB/秒)] には、ボリュームが提供すべきスループットをメビバイト/秒 (MiBps または MiB/s) で入力します。この値は
gp3
ボリュームタイプでのみ設定できます。 -
[スナップショット ID] には、既存の Amazon EBS ボリュームスナップショットを選択するか、スナップショットからボリュームを作成する場合はスナップショットの ARN を入力します。新しい空のボリュームは、スナップショット ID を選択または入力しないで作成することもできます。
-
スナップショット ID を指定すると、ボリューム初期化レート (MiB/秒) を指定できます。100 から 300 の値 (MiB/秒単位) を入力して、スナップショット ID を使用してボリュームを作成する際のスナップショットからのデータ読込み速度を指定します。
-
[ファイルシステムのタイプ] では、ボリューム上のデータストレージおよび取得に使用するファイルシステムの種類を選択します。オペレーティングシステムのデフォルトまたは特定のファイルシステムタイプのいずれかを選択できます。Linux のデフォルトは
XFS
です。スナップショットから作成されたボリュームでは、スナップショットの作成時にボリュームが使用していたのと同じファイルシステムタイプを指定する必要があります。ファイルシステムのタイプが一致しない場合、タスクは開始できません。 -
[インフラストラクチャロール] には、Amazon ECS がタスクの Amazon EBS ボリュームを管理できるようにするために必要な権限を持つ IAM ロールを選択します。
AmazonECSInfrastructureRolePolicyForVolumes
管理ポリシーをロールにアタッチすることも、このポリシーをガイドとして使用して、特定のニーズを満たすアクセス権限を持つ独自のポリシーを作成してアタッチすることもできます。必要なアクセス権限の詳細については、「Amazon ECS インフラストラクチャ IAM ロール」を参照してください。 -
デフォルト設定で Amazon EBS 暗号化を使用する場合は、[暗号化] で [デフォルト] を選択します。アカウントにデフォルトで暗号化が設定されている場合、ボリュームは設定で指定されている AWS Key Management Service (AWS KMS) キーで暗号化されます。[デフォルト] を選択し、Amazon EBS のデフォルト暗号化がオンになっていない場合、ボリュームは暗号化されません。
[カスタム] を選択した場合は、ボリューム暗号化に任意の AWS KMS key を指定できます。
[なし] を選択すると、デフォルトで暗号化が設定されている場合や、暗号化されたスナップショットからボリュームを作成した場合を除き、ボリュームは暗号化されません。
-
[暗号化] に [カスタム] を選択した場合は、使用する AWS KMS key を指定する必要があります。[KMS キー] には、AWS KMS key を選択するか、キーの ARN を入力します。対称型のカスタマー管理キーを使用してボリュームを暗号化する場合は、AWS KMS key ポリシーに適切な権限が定義されていることを確認してください。詳細については、「Amazon EBS ボリュームのデータ暗号化」を参照してください。
-
(オプション) [タグ] では、タスク定義またはサービスからタグを伝達するか、独自のタグを指定することで、Amazon EBS ボリュームにタグを追加できます。
タスク定義からタグを伝達する場合は、[タグの伝播元] で [タスク定義] を選択します。サービスからタグを伝達する場合は、[タグの伝播元] で [サービス] を選択します。[伝播しない] を選択した場合、または値を選択しなかった場合、タグは伝播されません。
独自のタグを指定する場合は、[タグの追加] を選択し、追加する各タグのキーと値を指定します。
Amazon EBS ボリュームのタグ付けの詳細については、「Amazon EBS ボリュームのタグ付け」を参照してください。
-
-
(オプション) サービスを識別しやすくするには、[Tags] (タグ) セクションを展開し、タグを設定します。
-
[タグの追加] [タグの追加] を選択して、以下を実行します。
-
[キー] にはキー名を入力します。
-
[値] にキー値を入力します。
-
-
[タグの削除] タグの横にある [タグの削除] を選択します。
-
-
[更新] を選択します。
- AWS CLI
-
update-service
を実行します。コマンドの実行の詳細ついては、「AWS Command Line Interfaceリファレンス」の「update-service」を参照してください。次の
update-service
の例では、my-http-service
サービスのタスクの数を 2 に更新します。user-input
を独自の値に置き換えます。aws ecs update-service \ --cluster
MyCluster
\ --servicemy-http-service
\ --desired-count 2
次のステップ
Amazon ECS サーキットブレーカーのサービスのデプロイを追跡し、サービス履歴を表示します。詳細については、「Amazon ECS サービスデプロイを使用してサービス履歴を表示する」を参照してください。