ようへいの日々精進XP

よかろうもん

aws

ECS クラスタをコマンドラインである程度操作出来る ecm というツールについて紹介させて下さい

この記事は YAMAP エンジニア Advent Calendar 2020 の 21 日目になる予定です。 qiita.com 頑張るぞ。 tl;dr YAMAP では、アプリケーションの多くを ECS で運用しています。 ECS クラスタ自体は、構築してしまうと、殆ど手がかからないのが魅力の一つですが…

僕の一番好きな AWS の API について書きます

この記事は tl;dr 大好き GetMetricWidgetImage GetMetricWidgetImage は、どんなことが出来るのか GetMetricWidgetImage をなぜ好きなのか GetMetricWidgetImage の惜しいポイント 以上 参考 この記事は YAMAP エンジニア Advent Calendar 2020 の 15 日目…

AWS CLI で CloudWatch Logs に手元からログを送信する一例 (そして、AWS CLI で tail -f することが出来るんだ!)

この記事は YAMAP エンジニア Advent Calendar 2020 の十二日目になる予定です。 qiita.com 尚、今後の「一例シリーズ」では、以下のようなネタを用意しています。 Github Actions (CircleCI) で GKE にアプリケーションをデプロイする一例 頑張るぞ。 tl;dr…

S3 バケットに保存されている画像ファイルのファイルサイズや大きさ (縦横) の一覧を取得する方法の一例

この記事は YAMAP エンジニア Advent Calendar 2020 の六日目になる予定です。 qiita.com tl;dr ギョームにて、S3 バケットに保存されている画像ファイルのファイルサイズや大きさの一覧が欲しいというリクエストを頂きましたので、AWS CLI と grep や awk …

AWS Lambda で Docker イメージがサポートされたのでチュートリアルしてみました

この記事は tl;dr チュートリアル アプリケーション Dockerfile ビルド 一旦、確認 コンテナイメージを push Lamda 関数を作成 API Gateway との連携 Gem パッケージを追加する場合 以上 参考 この記事は YAMAP エンジニア Advent Calendar 2020 の五日目に…

GitHub Actions や CircleCI で AWS リソースをいじる際に Assume Role を利用する

この記事は tl;dr Assume Role とは Assume Role Assume Role を利用するメリット 登場人物 実装例 リポジトリ 準備 Github リポジトリの設定 Github Actions の YAML git push 以上 ちょっと待った、CircleCI だとどうする? 参考 この記事は YAMAP エンジ…

AWS CLI で CloudFront の Alternate Domain Names (CNAMEs) から Distribution ID が欲しい + 応用編

tl;dr 実行 応用編 以上 tl;dr AWS CLI で Alternate Domain Names (CNAMEs) のドメイン名から Distribution ID が欲しい。 実行 以下のように実行する。 aws cloudfront list-distributions \ --query "DistributionList.Items[].{DistId: Id, DomainName: …

Terraform で Lambda@Edge を設定する個人的なテンプレート (2) 〜 Basic 認証を設定する 〜

tl;dr Lambda 関数を書き散らす Lambda@Edge を設定する CloudFront ビヘイビアに Lambda@Edge を設定 参考 tl;dr 個人的に Lambda のデプロイは Serverless Framework 一択のつもりだったけど, Terraform で CloudFront を作っておいて, Lambda@Edge だけ S…

Terraform で Lambda@Edge を設定する個人的なテンプレート

tl;dr Lambda 関数を書き散らす Lambda@Edge を設定する CloudFront ビヘイビアに Lambda@Edge を設定 参考 tl;dr 個人的に Lambda のデプロイは Serverless Framework 一択のつもりだったけど, Terraform で CloudFront を作っておいて, Lambda@Edge だけ S…

AWS Batch で利用する Managed なコンピューティング環境の EBS ボリュームサイズを拡張する (Amazon Linux 1 編)

tl;dr 対処 概要 EBS ボリュームサイズの拡張 Docker ストレージの拡張 Docker ストレージの拡張 インスタンス起動時に実行させる コンピューティング環境の作成 ジョブキューの修正 以上 参考 tl;dr AWS Batch で利用するマネージドなコンピューティング環…

seiton (整頓) でいにしへの AWS リソースをざっくりと整頓する

tl;dr 作ったもの seiton (整頓) する ざっくりとした使い方 (seiton の準備) ざっくりとした使い方 (例えば, 古い AMI を削除する) ざっくりとした使い方 (削除したくないリソース) seiton (整頓) されたことを確認する ざっくりとした使い方 (意図した通り…

docker コマンドで ECS クラスタにデプロイ出来るようになった (beta 版) ので試してみたけど挫折した

tl;dr チュートリアル 要件 ecs-plugin docker ecs setup コンテナイメージを Docker Hub にプッシュ コンテキストを切り替える docker ecs compose up 雑にコードリーディング 残念ながら docker ecs compose up.go convert.go 以上 tl;dr AWS より以下のよ…

シュッと CloudWatch Alarm の動作確認をしたい場合 に AWS CLI を使えば良かった

tl;dr set-alarm-state とても tl;dr CloudWatch Alarm の通知がちゃんと届くか確認したい場合, 都度, しきい値をズラしたりして確認していましたが, AWS CLI で確認することが出来るので備忘としてメモしておきます. set-alarm-state cloudwatch の set-ala…

AutoScaling Group のパラメータをいじるコマンドラインツール asg を更新しました

ti;dr 追加要件 1. 稼働中のインスタンス台数 + N 台を追加したい 2. スケーリンググループにインスタンスの追加が完了するまで待機する 以上 ti;dr 業務に asg を導入しようと思っていたら, 足りない機能があったので追加実装したのでメモ. まさに, 業務ド…

AWS の AutoScaling Group をいじるコマンドラインツールを作っていたけど, ちゃんと使ってみたら意外に便利だったのでメモ

tl;dr なにかの拍子に AWS の AutoScaling Group の以下のようなパラメータをいじるコマンドラインツールを作っていたんだけど, 実運用で使ってみたら意外に便利だったのでメモしておきます. サービスメンテナンスの際に一時的に AutoScaling Group 内の EC2…

ECS タスクメタデータエンドポイントを使ったバッチ処理コンテナのリソースモニタリングツール kobanzame を作りました

追記 (2020/06/15) Container Insights は GA しています! tl;dr kobanzame 作ったもの 仕組み なんちゃってプラグインアーキテクチャ 使い方 設定ファイル 実行 Example 参考 それ, Container Insights で良いんじゃないのか おっしゃるとおり じゃあ, な…

ゴールデンウィークは終わったけど Packer で SSM Parameter Store に AMI ID を登録するプラグインを作った

tl;dr packer-post-processor-aws-parameter-store リポジトリ Packer テンプレート 以上 おまけ tl;dr 皆さん, パカパカパッカーしてますか. 先日に引き続き, Packer で作った EC2 AMI ID を SSM Parameter Store に登録する Post Processor プラグインを作…

Packer の EC2 Launch Template AMI ID を更新するプラグインを更新した

tl;dr 修正内容 使い方 以上 tl;dr 先日, Packer の Post Processor プラグインとして, EC2 Launch Template の AMI ID を更新するプラグインを作ってみました. inokara.hateblo.jp github.com 個人的に複数の Launch Template の AMI ID 一緒に更新したいな…

ステイホームなゴールデンウィークなので Packer で EC2 Launch Template の AMI ID を更新するプラグインを作ってみたでごわす

tl;dr packer-post-processor-aws-update-launchtemplate-version リポジトリ Packer テンプレート 参考 以上 tl;dr 皆さん, 引き続き, ステイホームしてますか, そして, パカパカパッカーしてますか. Packer で AMI 作って, EC2 Launch Template に登録して…

1 円でもお安く Fargate を動かしたいので Fargate Spot についてザクッと調べた

tl;dr Fargate Spot をざっくりと理解する ドキュメント斜め読み Base と Weight が分かりづらい 稼働中のクラスタで動作確認 マネジメントコンソールからだと操作出来ない 既存のクラスタに対してキャパシティプロバイダを設定 RunTask 以上 参考 tl;dr 昨…

【俺の一行チップス】AWS Systems Manager のパラメータストアを操作する為に必要な IAM ポリシーの一例

やりたいこと やったこと 参考 以上 やりたいこと Systems Manager のパラメータストアを操作 (読み書き, 一覧取得) する為に必要な IAM ポリシーの一例 やったこと 以下のようなポリシーを書いた. { "Version": "2012-10-17", "Statement": [ { "Effect": "…

【俺の一行チップス】CloudFront で AWS CLI を利用して CNAME からディストリビューション ID を取得したい

やりたいこと やったこと 以上 やりたいこと CloudFront で AWS CLI を利用して CNAME からディストリビューション ID を取得したい やったこと 以下のように AWS CLI を書いた. $ aws cloudfront list-distributions --query "DistributionList.Items[?Alia…

【俺の一行チップス】S3 バケットポリシーをミスるととても辛いが役に立つ

やりたいこと やったこと 辛い やりたいこと S3 バケットポリシーにてオブジェクトに対する IP アドレス制御を施したい でも, タイポなくポリシーを登録しないと 403 Forbidden が返ってくるのでデバッグが辛い やったこと 以下のような S3 バケットポリシー…

【俺の一行チップス】Packer で EC2 の AMI を作ったあとに出来るだけ簡単に AMI ID を文字列でほしい場合

やりたいこと どうしたか 以上 やりたいこと Packer で EC2 の AMI を作ったあとに出来るだけ簡単に AMI ID を文字列でほしい. どうしたか まず, Manifest Post-Processor を使う. Post Processor とは, AMI 作り終わって, 作業用の EC2 をターミネートし終…

1 つの AWS アカウントで出来るだけうっかりミスを抑えつつ本番環境を運用する為にやったこと

tl;dr 原因 実装 2 つの実装 実装 (1) IAM ユーザーの分割 〜 本番環境のリソース操作を拒否する 〜 実装 (2) Chrome Extension による IAM ユーザーの判別 最後に tl;dr 先日, 完全に自分のうっかりで AWS リソースをオペミスで壊してしまいサービス障害を…

【俺の一行チップス】 AWS の全リージョン名が今すぐ欲しい

やりたいこと 諸注意 やったこと 参考文献 やりたいこと AWS のリージョン名が今すぐ欲しい. 諸注意 環境は以下の通り. (2020/01/07 時点で brew upgrade awscli してインストールされるバージョン.) $ aws --version aws-cli/1.16.310 Python/3.7.6 Darwin/…

EC2 イメージ (AMI) を操作するツール (amiCtrl) を作って公開していましたが, 最近, 大幅にバージョンアップしたので自慢させてください

tl;dr EC2 インスタンスのマシンイメージ (以後, AMI) を操作するツール (https://github.com/oreno-tools/amiCtrl, 以後 amiCtrl) を前職で作って利用していたのですが, 色々と AMI を弄ることが多くなったので amiCtrl を大幅にバージョンアップして利用し…

最近ギョームでやったこと (5) 〜 Fargate で動いている ECS Scheduled Task (バッチ処理) のリソース使用量を計測出来るようにしました 〜

tl;dr なぜ こんな感じで... こんな感じで... (1) こんな感じで... (2) こんな感じに... なりました 実装にあたって得た知見等 Task metadata endpoint コンテナデザインパターン リソース (CPU 使用率, Memory 使用量) の計算方法 コンテナの起動順序の制御…

最近ギョームでやったこと (4) 〜 CloudWatch Alarm を ChatOps で運用出来るようにしてみた 〜

tl;dr 引き続き, ギョームでやったことの振り返りです. (決して, こればっかりやっているわけではありませぬ) YAMAP では, 各種システムの監視はメトリクスは CloudWatch で, 通知は CloudWatch Alarm を主に利用していますが, 最近, 定期的に発生する障害で…

最近ギョームでやったこと (3) 〜 コードで管理していない AWS インフラ構成を Github の Issue ベースで管理することにした 〜

tl;dr 施策 やりたいこと どんなふうにやったか どんな感じか 最後に そもそも 懸念点 そして ということで tl;dr タイトルの通りです. YAMAP 社内で既に利用されている AWS インフラの構成について, コードで管理した方がいいのかもしれないけど, ガッツリ…