AWS Fargate で Amazon Elastic Container Service (Amazon ECS) タスクを実行しているときに発生した Network Load Balancer のヘルスチェックの失敗をトラブルシューティングしたいと考えています。 簡潔な説明 ヘルスチェックを設定すると、Network Load Balancer は登録された各ターゲットに定期的にヘルスチェックリクエストを送信します。TCP のヘルスチェックの場合は、指定されたポートで TCP 接続を開こうとするだけです。設定されたタイムアウト時間内に指定されたポートで接続を開けなかった場合は、異常と見なされます。UDP サービスの場合、ターゲットの可用性は、ターゲットグループに対する、UDP ヘルスチェック以外のヘルスチェックを使用してテストされます。HTTP と HTTPS のヘルスチェックについ
簡単な説明 AWS API を呼び出すとき、コンテナ化されたアプリケーションは AWS 認証情報を使用して AWS API リクエストに署名する必要があります。Amazon ECS タスクの場合、AWS アイデンティティとアクセス管理 (IAM) タスクロールを使用して、AWS 認証情報を使用して API リクエストに署名します。次に、IAM ロールを Amazon ECS タスク定義または RunTask API オペレーションに関連付けます。これを行うと、コンテナは AWS SDK または AWS コマンドラインインターフェイス (AWS CLI) を使用して、承認された AWS サービスに API リクエストを行うことができます。 **注:**AWS CLI コマンドを実行したときにエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。 この記
Amazon ECS で発生したエラー「ExecuteCommand オペレーションを呼び出す際にエラーが発生しました (TargetNotConnectedException)」を解決するにはどうすればよいですか? Amazon Elastic Container Service (Amazon ECS) で コマンド実行コマンド「AWS Command Line Interface (AWS CLI)」を実行しようとすると、以下のエラーが表示されます: ExecuteCommand のオペレーションを呼び出し時に、「内部エラーのため、実行コマンドが失敗しました。後でもう一度お試しください」というエラーが発生しました (targetNotConnectedException)。 簡単な説明 このエラーは、次の理由により発生する可能性があります: Amazon ECS タスクロールには、
ECS を利用すると「タスクロール」と「タスク実行ロール」というものが出てきます。名前が似ている上に、どのように設定するのが良いか分かりづらかったので調べたことをメモ。 目次 タスクロール タスク実行ロール 番外編:EC2 起動タイプのコンテナインスタンスの IAM ロール まとめ タスクロール コンテナで利用される IAM ロールです。コンテナの中のアプリケーションから AWS のサービスを利用する場合にこのロールを設定します。 たとえば、コンテナの中のアプリケーションから S3 を利用する場合にはここを設定します。アプリケーションから AWS サービスを利用しない場合は「なし」で良いです。EC2 インスタンスに設定する IAM ロールのコンテナ版をイメージすると理解しやすいと思います。 詳細は タスク用の IAM ロール - Amazon Elastic Container Servi
はじめに 踏み台経由 LB経由 前提条件 必要知識 作業手順 イメージの準備 手順(ECRへのイメージ追加) リポジトリの作成 ECRへのDockerイメージのプッシュ ECRへのログイン イメージの作成 イメージのタグ付け イメージのプッシュ イメージの確認 手順(ECSの作成) 秘密鍵の作成 SSHログインテスト ECSクラスタの作成 ECSクラスタの状態 ECSクラスタへのサービスとタスクの作成 サービスの追加 セキュリティグループの修正 タスク定義の変更 タスク定義の修正 コンテナの修正 タスクの実行(コンテナの起動) 確認 SSHの実施 はじめに コンテナへSSHをする方法を紹介します。基本的に2つのやり方が存在します。 踏み台経由 SSH踏み台用のEC2を使いコンテナにアクセスするパターン LB経由 NLB(ネットワークロードバランサー)を使い、コンテナに対して直接グローバルI
困っていた内容 ECS on EC2 でコンテナを実行しています。ECS サービスを更新したところ、コンテナインスタンスの属性が不足している旨のサービスイベントメッセージが表示されました。 具体的に不足している属性を確認する方法を教えてください。 サービスイベントメッセージ service hato-ecs-service was unable to place a task because no container instance met all of its requirements. The closest matching container-instance abcdefg1234567890 is missing an attribute required by your task. For more information, see the Troubleshooting
やりたいこと ECSクラスターを作った後、追加でEC2インスタンスをアタッチしたい。 EC2インスタンスの設定 ECSクラスターはすでに作ってあるという前提で話を進める。 クラスターにアタッチするために、インスタンスにはいくつか設定が必要だ。 1. IAMロールは、ecsInstanceRoleにする。 起動時にロールの設定項目がある. ecsInstanceRoleが存在しない場合は、公式を参考に自分で作成する。 2. ECSコンテナエージェントをインストールする。 インスタンス起動後にsshして、GitHubから入手できる。 手順2を省略する方法 インスタンスのAMIをAmazon ECS-Optimized Amazon Linux 2 AMIに設定すれば、手順2は不要。 3. コンフィグファイル等を設定する。 手順1、2を踏んだ上でインスタンスを作成すると、インスタンスは、aws側
Amazon ECS stores logs in the /var/log/ecs folder of your container instances. There are logs available from the Amazon ECS container agent and from the ecs-init service that controls the state of the agent (start/stop) on the container instance. You can view these log files by connecting to a container instance using SSH. If you are not sure how to collect all of the logs on your container instan
要約 ECSでWebサーバーを動かしてみようとしたら、表題の通りの問題が発生。 問題解決に至るまでに何を調べたか、何を考えたかを書いた。 (2020/12/02追記) ちなみに、投稿から2年経ってますが、この記事の主眼はECSの知識と言うより原因調査の考え方なので、読む価値は無くなってないんじゃないかなと思います。 それに、ECSやVPCの仕様が根本的に変わったってことも無いと思いますし。 問題発生 いい加減にECS勉強しておかなきゃと思い、試しにウィザードに沿ってECSクラスターを作って見たところ、Run Taskでエラーになる。 Unable to run task No Container Instances were found in your cluster. 確かに、ECS Instancesのタブには1つもインスタンスが表示されない。だが、EC2のダッシュボードには「ECS
Im trying to deploy a docker container image to AWS using ECS, but the EC2 instance is not being created. I have scoured the internet looking for an explanation as to why I'm receiving the following error: "A client error (InvalidParameterException) occurred when calling the RunTask operation: No Container Instances were found in your cluster." Here are my steps: 1. Pushed a docker image FROM Ubun
AWS Command Line Interface (AWS CLI) または API を使用して、Amazon Elastic Container Service (Amazon ECS) クラスターのキャパシティープロバイダーを削除すると、エラーが発生します。 簡単な説明 AWS CLI または API を使用してクラスターのキャパシティープロバイダーを削除しようとすると、次のいずれかのエラーを受け取ることがあります。 "updateStatus": "DELETE_FAILED" 「updateStatusReason」:「キャパシティープロバイダーはクラスター (your-cluster-name) に関連付けられているため、キャパシティープロバイダーを削除できません。クラスターからキャパシティープロバイダーを削除して、もう一度やり直してください」。 このエラーは次の原因で発生す
はじめに デジタルイノベーション部の浅田です。 AWSをはじめとしたクラウドがオンプレミスに対してもつ優位性の一つに、インフラストラクチャーをコードとして管理できることがあります。いわゆる、Infrastucture As a Codeというわけですが、そのためにAWSではCloudFormationを利用することが一般的です。 CloudFormationも十分に強力な機能ですが、それをさらに強化するものとして、AWS Cloud Development Kit(以下、CDK)があります。 そこで、今回はCDK(on TypeScript)を使ってECS上のサービスを作成することで、いかに簡単にCDKでAWSのインフラを作成できるかをご紹介したいと思います。なお、動作確認済みのCDKバージョンは執筆時点で最新の2.15.0となります。また、CDKの初期設定などは紙面の都合上省略致します(
Amazon Elastic Container Service (Amazon ECS) と AWS CDK で起動テンプレートを利用した Capacity Providers を設定するAmazonECSAWSCDK 小ネタです。 CDK の AutoScalingGroup は、起動テンプレートに対応しておらず、現時点 (2021/12) では起動設定を利用します。 ECS の Capacity Providers を CDK で設定する場合、以下のように AutoScalingGroup を利用するので、普通にやると起動設定が利用されるわけですね。 private addCapacity(capacity: number) { // 起動設定で ASG が作成される const autoScalingGroup = new autoscaling.AutoScalingGroup(
解決策 注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーを受け取った場合は、最新の AWS CLI バージョンを使用していることを確認してください。 ポートリスナーを確認する ロードバランサーポートに適したリスナーが正しく設定されていることを確認します。 Application Load Balancer のリスナー Classic Load Balancer のリスナー Network Load Balancer のリスナー ターゲットインスタンスのセキュリティグループを確認する ロードバランサーの背後にあるインスタンスのセキュリティグループの設定を確認します。ロードバランサーに接続されている各サブネットについて、リスナーポートとヘルスチェックポートの両方向でトラフィックが許可されていることを確認します。 ターゲットをターゲットグループに登録する
ECS を Cloud Formation で作成してたら The target group does not have an associated load balancer が発生した 参考 The target group does not have an associated load balancer 解決方法 ECS のサービスの定義に「DependsOn: リスナー」を追加する。 ######################################################## ### ECS Service ######################################################## HogeEcsServiceA: Type: "AWS::ECS::Service" DependsOn: HogeALBListener P
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く