kakakakakku blog

Weekly Tech Blog: Keep on Learning!

2023-01-01から1年間の記事一覧

SLO をベースとしたアプローチをどう組織の文化にするのか /「SLO サービスレベル目標」を読んだ

2023年7月に出版された「SLO サービスレベル目標」を読んだ❗️ SLI / SLO をベースにサービスを運用するプラクティスが紹介されていて,SLI / SLO / エラーバジェットとは?という話から,検討・計測・文化まで,サービスの信頼性と向き合うためのノウハウが…

Terraform で Amazon ECR の基本スキャンをレジストリレベルで設定する

Amazon ECR で Basic scanning(基本スキャン)を使う場合に「リポジトリレベル」の設定は現在推奨されてなく,マネジメントコンソール上だと リポジトリレベルの ScanOnPush 設定は非推奨となり、レジストリレベルのスキャンフィルターが優先されます。 の…

AWS Backup で Amazon EC2 インスタンスをバックアップする構成を Terraform で構築する

AWS Backup で Amazon EC2 インスタンスをバックアップする構成を Terraform で構築する検証をしたので簡単にまとめておこうと思う 設定によっても異なるけど今回は大きく以下のリソースを使って構築した. aws_backup_vault | hashicorp/aws aws_backup_pla…

curl で Cognito User Pool のトークンエンドポイントにリクエストを送信する

Cognito User Pool の「トークンエンドポイント」からトークンを取得するリクエスト要件は以下のドキュメントにまとまっている 検証のために curl でトークンエンドポイントにリクエストを送信する機会があって,今後再利用できそうだからコマンドの雛形を残…

システムの信頼性に焦点を置く SRE /「SRE サイトリライアビリティエンジニアリング」を読んだ

今更ながら「SRE サイトリライアビリティエンジニアリング」を読んだ❗️ 出版された2017年にすぐ購入してパラパラとは読んだけど,当時の僕の経験値だと深くまで理解できなかったり,590ページという厚さに圧倒されたりもして,書評記事を書けず積読してしま…

Trivy の Misconfiguration Scanning で Terraform の設定ミスを検出しよう

Trivy の「Misconfiguration Scanning」は Terraform をサポートしていて(AWS CloudFormation もサポートしている),Terraform コードのセキュリティ課題や設定ミスを検出できる❗️Trivy を活用した Terraform のスキャンを試した作業ログをまとめる aquase…

CloudWatch Alarm を SNS 経由で PagerDuty に通知する

Amazon CloudWatch Alarm で検出したアラームを PagerDuty に通知する仕組みを Terraform で構築する機会があって,検証用に実装した Terraform コードをまとめておく.設定自体は難しくなくて Amazon CloudWatch Alarm → Amazon SNS Topic → PagerDuty のよ…

tfsec: Terraform のセキュリティスキャンを活用しよう

Terraform コードを書きながらセキュリティ観点の警告を把握できるため tfsec を導入すると便利❗️ tfsec では AWS, Microsoft Azure, Google Cloud などさまざまなプロバイダをサポートしている 最近 AWS プロバイダを前提に tfsec を導入する機会があって,…

ALB の設定項目 routing.http.drop_invalid_header_fields.enabled を有効化する

Application Load Balancer (ALB) の設定項目 routing.http.drop_invalid_header_fields.enabled を有効化すると不正な HTTP ヘッダーをターゲットに転送せず ALB で自動的に削除できるようになる HTTP ヘッダー名は正規表現 [-A-Za-z0-9]+ で表現する必要が…

なぜプロダクトマーケティングが重要なのか /「LOVED」を読んだ

書籍「LOVED」を読んだどうしたらプロダクトを通して市場とユーザーのニーズに応えられるのか.どうしたらプロダクトを認知してもらえるのか.本書は「プロダクトマーケティング」というテーマで,理論・アプローチ・事例まで学べる刺激的な一冊だった. と…

TFLint: Terraform の Linter を活用しよう

Terraform を使うときに記法やお作法を共通化してベストプラクティスに近付けるために TFLint を導入すると便利❗️ 最近 TFLint を導入する機会があったので作業ログをまとめる github.com TFLint をセットアップする TFLint のセットアップは macOS だと Hom…

どのようなキャリアパスで組織に貢献するか /「スタッフエンジニア」を読んだ

2023年5月に出版された「スタッフエンジニア」を読んだ❗️ エンジニアのキャリアパスとその役割などがうまく整理されていて良かった.そして,スタッフエンジニア(日本語にすると最上級エンジニア?)に限らず,組織に貢献しどう信頼を勝ち得るのか?という…

Terraform で Amazon ECR のライフサイクルポリシーを設定する

Terraform で Amazon ECR リポジトリのライフサイクルポリシーを設定するときに aws_ecr_lifecycle_policy リソースのドキュメントを読むとヒアドキュメントを使った例が載っている 個人的にはヒアドキュメントを使いたくなく,他の実装案を考えながら試して…

Branch Deploy Action: GitHub Actions でブランチデプロイと IssueOps を試す

The GitHub Blog の記事 Enabling branch deployments through IssueOps with GitHub Actions を読んで「branch deployments(ブランチデプロイ)」というデプロイ戦略を知った プルリクエストを main ブランチにマージしてから本番環境にデプロイするのでは…

Step CI で API のテストを自動化しよう

API のテストを自動化するなら Step CI が便利❗️ ちょうど導入するかどうか検証をしていて,とても良かったので紹介も兼ねてまとめたいと思う Step CI は API として REST 以外に GraphQL や gRPC などもサポートしていて,実行方法としては CLI や GitHub A…

GitHub Actions と AWS を OIDC で連携するときに自動的に証明書の検証をしてくれるようになった

今まで GitHub Actions から AWS を OIDC (OpenID Connect) で連携する場合にサムプリントを取得して ID プロバイダを作る必要があったしかし,2023年6月27日に GitHub Changelog でサムプリントを2種類設定するという記事が公開されて対応することになった…

Terraform の認定試験「HashiCorp Certified: Terraform Associate (003)」に合格した

Terraform の理解を証明できる HashiCorp 公式の認定試験「HashiCorp Certified: Terraform Associate (003)」に合格した❗️やったー 試験問題に関係する内容は NDA を厳守するため書かず,今回は「試験紹介(普及のため!)」と「勉強方法」をまとめたいと思…

コンテナイメージの zstd 圧縮を試してみた

コンテナイメージを zstd (Zstandard) で圧縮するとどのぐらいサイズを小さくできるのかに興味があって試してみた❗️今回は BuildKit(docker buildx コマンド)で zstd 圧縮をする.zstd 自体の詳細は以下のドキュメントなどを読むと良さそう docs.docker.co…

Terraform Cloud で管理してるステートに terraform import で既存リソースを追加する

Terraform Cloud で管理してるステート (.tfstate) に terraform import コマンドで既存リソースを追加する機会があったので小ネタだけどまとめておく❗️流れとしては以下のブログ記事にもまとまっていて参考になる support.hashicorp.com 今回は Terraform v…

mob コマンドの VS Code 拡張機能「Mob VSCode GUI」

モブプログラミング中の Git Handover を実現するために mob コマンドをよく使っている.mob start と mob next でドライバーを交代できるのは便利で mob コマンドに関しては前に紹介記事を書いた kakakakakku.hatenablog.com 普段はターミナルで mob コマン…

EventBridge Scheduler から ECS Task を実行する構成を EventBridge Terraform module で構築する

2023年6月17日(3日前✨)にリリースされた AWS EventBridge Terraform module の最新バージョン v2.3.0 で Amazon EventBridge Scheduler がサポートされた モジュールを使えば多少ではあるけど記述量を抑えることができて,特に IAM Role まわりは楽になる…

AWS CLI / AWS SDK から実行できるようになった Amazon SQS の「DLQ 再処理」

2023年6月8日にリリースされた Amazon SQS の新しい API 3種類によって,Amazon SQS のデッドレターキュー (DLQ: Dead Letter Queue) に移動されたメッセージを "元のキュー" や "別のキュー" に戻す「DLQ 再処理」を AWS CLI / AWS SDK などから実行できる…

Gophercises: 実践的な20種類のエクササイズで Go を学ぼう

Go

もっと Go を学びたくて学習コンテンツを探しているぞーという人におすすめできる「Gophercises」を紹介する❗️計20種類あるエクササイズ(どれも楽しい)をほぼ全て動画を観ながら写経して,とにかく楽しかったのでまとめることにした 動画を観ながらコード…

EventBridge Scheduler から ECS Task を実行する構成を Terraform で構築する

Amazon EventBridge Scheduler から Amazon ECS Task を定期的に実行する構成を Terraform で構築する機会があったのでまとめておく❗️Amazon EventBridge Scheduler とても便利 \( 'ω')/ tf ファイル 最初に完成形の tf ファイルを載せておく❗️今回は Amaz…

Terraform で ALB のアクセスログを設定するときに InvalidConfigurationRequest と出たら

Terraform で ALB (Application Load Balancer) を構築するときに「アクセスログ」を Amazon S3 に流す設定をすると,以下のように InvalidConfigurationRequest というエラーが出る場合がある⚡️エラーをよく読むと Please check S3bucket permission と書い…

Fargate でも使える!FireLens の init プロセスを活用して設定ファイルを S3 から読み込む

Amazon ECS で FireLens (Fluent Bit) を使ってログをルーティングするときに Fluent Bit の「設定ファイル」を書いて挙動をカスタマイズしたくなる場面は多くある.そして FireLens は設定ファイルタイプ config-file-type として s3 と file をサポートし…

Terraform Cloud x AWS に入門できる「AWS Modernization Workshop with HashiCorp Terraform Cloud」

AWS Modernization Workshop の「AWS Modernization Workshop with HashiCorp Terraform Cloud」を実施した❗️Terraform Cloud を使って AWS を操作する流れを一通り学べるので,特に Terraform や Terraform Cloud 入門者におすすめ.例えば "今までは AWS C…

Terraform Cloud で IAM Role から一時的なアクセスキーを取得する

Terraform Cloud で AWS を操作するときにアクセスキー(AWS_ACCESS_KEY_ID と AWS_SECRET_ACCESS_KEY)を使いたくなく,Terraform Cloud の「Dynamic Provider Credentials」を使って OpenID Connect (OIDC) と連携する仕組みを構築したので,ポイントをま…

Amplify Hosting を CloudFormation と GitHub の Personal Access Tokens でデプロイする

AWS Amplify Hosting に GitHub からフロントエンドアプリケーションをデプロイする構成を AWS CloudFormation で構築する機会があった.AWS Amplify Hosting はコンソールだと比較的簡単にデプロイできるけど,今回は AWS CloudFormation と GitHub の Pers…

Mailtrap を使って受信メール確認を自動テストに組み込む

メール配信プラットフォーム「Mailtrap」を使うと,開発中にメールをテストしたり,実際にメールを配信したり,メール関連の悩みを幅広く解決できる❗️ちょうどメール関連のテスト戦略を設計していて,気になっていた Mailtrap の Email Testing を試してみた…