CDK で作成した VPC Endpoint の DNS 名を CfnOutput で出力する方法
By msysh on 2023-06-18
CDK で VPC Endpoint など作成した時に、プロビジョニングが完了したら作成した VPC Endpoint の DNS 名を CfnOutput
で出力したい、というのはよくあると思うのですが、雑に書いていたら出力できなかったので正しい出力方法を備忘録的にメモっておきます。
Service Connect を使用した ECS サービスにオートスケーリングを設定してみる
By msysh on 2022-12-26
2022年の re:Invent にて ECS の新しいネットワーク機能として Service Connect がリリースされました(アナウンス)。これまで、ECS におけるサービス間通信として ELB、Service Discovery(Cloud Map)、App Mesh がありましたが、新しく 4つ目の選択肢として登場しました。今回、この Service Connect を使用した ECS サービスにおいて Auto Scaling の設定を検討する機会がありましたのでどんなメトリクスが使えるか調査してみました。
#aws #service-connect #ecs #service-discovery #cloud-map #auto-scaling
CloudFront Continuous Deployment (継続的デプロイメント)を S3 をオリジンにして試してみた
By msysh on 2022-11-23
CloudFront で Continuous Deployment (継続的デプロイメント) がサポートされました。これまで CloudFront では Blue/Green デプロイメントを実現するには、別の Distribution を作って DNS で切り替えたり、オリジンを付け替えたりと少々作り込む必要がありました。今回のアップデートによりマネージドサービスとしてその辺りが利用できそうなので試してみました。また、Lambda@Edge、CloudFront Functions まわりもどうなるか確認してみました。
#aws #cloudfront #continuous-deployment #bluegreen #lambdaedge #cloudfront-functions #s3 #oac
AWS CDK のバグフィックスして Contribute してみた話
By msysh on 2022-07-31
CDK で Cognito をセットアップしていたのですが、コードで書いた通りにリソースがデプロイされず、GitHub で Issues を探してみるとバグとして該当しているようでした。折角なのでバグを修正し、Contribute にチャレンジしてみました。個人的な経験上、あまり GitHub で Collaborate する機会もなく、なかなかドキドキしたので今後の備忘録として初歩的な内容ですが残しておきたいと思います。
ECS Blue/Green デプロイでもリクエストカウント追跡のオートスケーリングを利用したい
By msysh on 2021-08-22
コンテナワークロードでは CodeDeploy などで継続的なデリバリを行い、Auto Scaling を利用して負荷に応じて、動的にコンテナを増減させて運用されているのではないかと思います。特に ECS では CodeDeploy を利用して、Blue/Green デプロイメントを行うことができます。また、Auto Scaling ではスケーリングを判断する指標の1つとして Application Load Balancer(ALB)ターゲットグループ内のターゲットごとに完了したリクエストの数(ALBRequestCountPerTarget
)を利用することができます。が、実は現時点ではそれらを一緒に使うと、そのままでは期待通りに動作してくれません。それぞれをうまく利用するために検討する機会がありましたので、考え方のベースとして記録に残しておきたいと思います。
ECS タスクの各コンテナ単位のパフォーマンスメトリクスを取得する方法
By msysh on 2021-08-08
ECS での標準的に利用できるメトリクスとしては、サービス単位での CPU 利用率、メモリ利用率であり、タスク毎にどんなパフォーマンスなのかというのはわかりません。そこで Container Insights を利用することで、マネジメントコンソールからは現在値になりますがタスク単位での平均 CPU 使用率、メモリ利用率の他、サービス単位で時系列のネットワーク I/O、ストレージ I/O などが確認可能になります。これらでも充分有用なのですが、タスクにサイドカーも備えるなど複数コンテナで構成しているケースで、時には調査のため “コンテナ単位” でのパフォーマンス値を確認したいことがあるかもしれません。一発でグラフなどに出せるわけではありませんが、そんなシーンで利用できる Tips を紹介します。
API Gateway の IP を固定にしてアクセスしたい
By msysh on 2021-08-06
“固定 IP で接続したい・・・” 送信元、あるいは接続先の IP を固定して接続したいケース、いろいろあるかと思います。最近はゼロトラストな考えでどんな IP だろうと信用しない、という考え方も見受けられるようになってきましたが、会社をまたいだ旧来のシステム間の連携など、まだまだ要件としては根強い状況かと思います。今回は “接続先の API Gateway の IP の固定化” について検討する機会がありましたので記録として残しておきたいと思います。
DynamoDB テーブルの内容をキャパシティ消費なしで CSV に出力する方法
By msysh on 2021-04-08
レガシーなシステムとの連携のために DynamoDB テーブルの内容を CSV に出力したいという要件、まあまああるのではないかなと思います。そもそもその CSV 連携をやめてもっと効率の良いやり方で、、、と言いたくなるところではありますが、しがらみの多い世界だとそうもいきません。一方で、CSV 出力のために稼働中の DynamoDB テーブルに対して全件スキャンとかもキャパシティのことを考えるとしたくないものです。
2020年11月に DynamoDB テーブルデータを Amazon S3 のデータレイクにエクスポート する機能が発表されました。この機能を使って、キャパシティを消費することなく CSV 出力し、さらに Step Functions で自動化を実現する機会がありましたのでメモとして残しておきたいと思います。
EventBridge API Destinations を使用して AWS コンソールログイン時に Lambda なしで Slack に通知する
By msysh on 2021-03-05
2021/3/5(日本時間)に EventBridge から外部の HTTP エンドポイントを叩けるアップデートがありましたので、Lambda なしで Slack への通知ができそうだったのでやってみました。
CDK で既存のタスク定義を参照する場合のリビジョン指定について
By msysh on 2020-12-23
AWS CDK (Cloud Development Kit) の小ネタです。
CDK で既存のタスク定義を参照したい場合、ecs.TaskDefinition.fromTaskDefinitionArn
で arn からタスク定義がとってこれるわけですが、タスク定義の arn はマネジメントコンソールから確認できる JSON や CLI から参照すると末尾にリビジョン番号がついてきます。