理系学生日記

おまえはいつまで学生気分なのか

Alpine ベースのコンテナイメージで AWS CLI v2 を使う

CI/CD で以下のコマンドを実行したかっただけでした。 $ aws ecr get-login-password | docker login --username AWS --password-stdin [AWS Account ID].dkr.ecr.ap-northeast-1.amazonaws.com/my-repository このコマンドラインには 2 つの実行バイナリが…

ECR への PUSH を行うための最低限のIAM Policy

Cointaner Image の CD 用に ECR へ PUSH するための最低限の IAM Policy がどうなるのかを検証してまいりました。おそらくは以下が最低限の IAM Policy になりそうです。 このうちのどの action を許可しない場合であっても、イメージの PUSH はエラーにな…

CodePipeline 失敗時のトラブルシュートのノウハウ

CodePipeline + CodeDeploy で ECS へのデプロイメントパイプラインを組んでいたんですが、このパイプラインが様々な理由で失敗します。 マネジメントコンソールで確認しても、Internal error 的な文言しか表示されず、とにかくデバッグがしんどいです。 つ…

CodePipeline から別アカウントの ECR ソースを参照する

CodePipeline から別アカウント上の ECR を Source Action から指定したい。 これはそれなりに存在するユースケースではないでしょうか。 この実現にマジで苦しんだので、葛藤の記録を残しておきます。 概観 バケットポリシー CodePipelie からクロスアカウ…

AWSクロスアカウントでTerraformを実行する

以下のエントリで記載したように、AWS 上においてはマルチアカウントで環境を構成することがベストプラクティスとされています。 このエントリでは、Custodian アカウントという概念が登場しました。これは結局 IAM ユーザやグループを 1 つのアカウントにの…

GitLab CI/CD で textlint を実行する

きちんとしたガイドを書く、そしてそのガイドを多人数で変更するというケースでは、文章の揺れ等をで きるだけ防ぎたい。 このため、GitLab CI/CD で textlint を導入したい。 textlint 用 Docker Image の作成 フィルタ ルール Docker Image の build、push…

markdown を lint する

様々なドキュメントが Markdown で表現される今日このごろです。 多数の人が関わりつつドキュメントを成長させるのであれば、 Markdown ドキュメントについてもフォーマットを統一させたいものですね。 Markdown についても当然のように linter があるので、…

module に対する terraform validate が "The argument "region" is required, but was not set." エラーで失敗する

GitLab CI/CD を使い、自作の AWS 用 terraform モジュールに対して terraform validate をかけようとすると、以下のエラーメッセージが出て失敗しました。 Error: Missing required argument The argument "region" is required, but was not set. 原因 対…

GitLab CI/CD で terraform ファイルに tflint をかける

Terraform のスクリプトにも lint を自動で実行できるようにします。 lint ツール TFlint 設定の渡し方 GitLab CI/CD への組み込み 今後 lint ツール Terraform には terraform validate コマンドがあり、設定上のかなりの問題を検知してくれます。 一方で t…

AWS におけるマルチアカウント構成の動向

aws

AWS で環境を構築する際はマルチアカウントになることが多い、これは理解していたつもりでした。 stg 環境と prod 環境は AWS アカウントごと分ける。dev 環境も分ける。 しかし、世の中のベストプラクティスはもっと先を行っていました。 なぜアカウントを…