tag: aws

ECS Blue/Green デプロイでもリクエストカウント追跡のオートスケーリングを利用したい

By msysh on 2021-08-22

コンテナワークロードでは CodeDeploy などで継続的なデリバリを行い、Auto Scaling を利用して負荷に応じて、動的にコンテナを増減させて運用されているのではないかと思います。特に ECS では CodeDeploy を利用して、Blue/Green デプロイメントを行うことができます。また、Auto Scaling ではスケーリングを判断する指標の1つとして Application Load Balancer(ALB)ターゲットグループ内のターゲットごとに完了したリクエストの数(ALBRequestCountPerTarget)を利用することができます。が、実は現時点ではそれらを一緒に使うと、そのままでは期待通りに動作してくれません。それぞれをうまく利用するために検討する機会がありましたので、考え方のベースとして記録に残しておきたいと思います。

#aws #ecs #bluegreen #alb #autoscale

Read more

ECS タスクの各コンテナ単位のパフォーマンスメトリクスを取得する方法

By msysh on 2021-08-08

ECS での標準的に利用できるメトリクスとしては、サービス単位での CPU 利用率、メモリ利用率であり、タスク毎にどんなパフォーマンスなのかというのはわかりません。そこで Container Insights を利用することで、マネジメントコンソールからは現在値になりますがタスク単位での平均 CPU 使用率、メモリ利用率の他、サービス単位で時系列のネットワーク I/O、ストレージ I/O などが確認可能になります。これらでも充分有用なのですが、タスクにサイドカーも備えるなど複数コンテナで構成しているケースで、時には調査のため “コンテナ単位” でのパフォーマンス値を確認したいことがあるかもしれません。一発でグラフなどに出せるわけではありませんが、そんなシーンで利用できる Tips を紹介します。

#aws #ecs #containerinsights

Read more

API Gateway の IP を固定にしてアクセスしたい

By msysh on 2021-08-06

“固定 IP で接続したい・・・” 送信元、あるいは接続先の IP を固定して接続したいケース、いろいろあるかと思います。最近はゼロトラストな考えでどんな IP だろうと信用しない、という考え方も見受けられるようになってきましたが、会社をまたいだ旧来のシステム間の連携など、まだまだ要件としては根強い状況かと思います。今回は “接続先の API Gateway の IP の固定化” について検討する機会がありましたので記録として残しておきたいと思います。

#aws #apigateway #nlb #vpcendpoint #staticip

Read more

DynamoDB テーブルの内容をキャパシティ消費なしで CSV に出力する方法

By msysh on 2021-04-08

レガシーなシステムとの連携のために DynamoDB テーブルの内容を CSV に出力したいという要件、まあまああるのではないかなと思います。そもそもその CSV 連携をやめてもっと効率の良いやり方で、、、と言いたくなるところではありますが、しがらみの多い世界だとそうもいきません。一方で、CSV 出力のために稼働中の DynamoDB テーブルに対して全件スキャンとかもキャパシティのことを考えるとしたくないものです。
2020年11月に DynamoDB テーブルデータを Amazon S3 のデータレイクにエクスポート する機能が発表されました。この機能を使って、キャパシティを消費することなく CSV 出力し、さらに Step Functions で自動化を実現する機会がありましたのでメモとして残しておきたいと思います。

#dynamodb #csv #athena #stepfunctions #sam #aws

Read more

CDK で既存のタスク定義を参照する場合のリビジョン指定について

By msysh on 2020-12-23

AWS CDK (Cloud Development Kit) の小ネタです。

CDK で既存のタスク定義を参照したい場合、ecs.TaskDefinition.fromTaskDefinitionArn で arn からタスク定義がとってこれるわけですが、タスク定義の arn はマネジメントコンソールから確認できる JSON や CLI から参照すると末尾にリビジョン番号がついてきます。

#cdk #ecs #taskdefinition #aws

Read more

describe で出力した ECS タスク定義をさくっと登録可能な形に整形する

By msysh on 2020-12-12

Amazon ECS (以下、ECS) のタスク定義は aws cli などの describe-task-definition で JSON 形式で出力することができますが、その JSON ファイルはそのままではタスク定義の登録や更新(register-task-definition)には使えなかったりします。
うまく整形してやれば、タスク定義の登録や更新に利用できるので jq などを駆使してさくっと整形する方法をメモっておきます。

#aws #ecs #jq #awscli

Read more

ALB と docker ヘルスチェックによる ECS の挙動について

By msysh on 2020-08-30

AWS による docker コンテナのオーケストレーションサービスである Amazon ECS / Fargate のヘルスチェックの挙動について調査する機会がありましたのでアウトプットしておきたいと思います。
前提として Fargate で ECS のサービスとして、ロードバランサーは Application Load Balancer(ALB)を利用して実行するケースで調査しました。網羅的ではない点、ご了承ください。

#aws #alb #ecs #docker #healthcheck

Read more

FireLens で rewrite_tag による複数ターゲットへのログの振り分け

By msysh on 2020-07-19

FireLens fluent bit でログを振り分けたい場合、 fluent bit の設定ファイル内で Parsers_File などで指定した別のファイルを用いて、カスタム docker イメージを作成するサンプルが多いかと思いますが、カスタムイメージを作成することなく( Parsers_File 無しで)ささやかながら実現した例を紹介したいと思います。

#aws #fluentbit #firelens #ecs #logging #firehose #elasticsearch

Read more

SpringBoot Micrometer を Amazon CloudWatch へ送信するための設定

By msysh on 2020-06-16

maven や Gradle、application.properties に設定してしまえば、自動的に CloudWatch に送信されるようになるようです。最近、10年ぶりぐらいに Java をいじっているのですが、最近はこんなに便利なんですね。

#aws #cloudwatch #springboot #micrometer #java

Read more