kakakakakku blog

Weekly Tech Blog: Keep on Learning!

FireLens の init プロセスで [MULTILINE_PARSER] を使う

AWS Fargate と Amazon ECS で FireLens (Fluent Bit) を使うときに「init プロセス」を活用すれば設定ファイルを Amazon S3 から自動的に読み取れるようになるよ❗️という便利機能は以下の記事にまとめてある kakakakakku.hatenablog.com しかし init プロセ…

ALB の固定レスポンスで実現するメンテナンス画面の仕組みを Terraform で構築する

Application Load Balancer (ALB) のリスナー設定で「固定レスポンス」を使うと ALB から直接 HTML を返せる❗️ docs.aws.amazon.com 「固定レスポンス」は2018年7月頃にリリースされていて,さらに2019年3月頃にリリースされた「高度なリクエストルーティン…

LLM を組み込んだチャットアプリケーションを写経しながら実装できる「ChatGPT/LangChain によるチャットシステム構築[実践]入門」を読んだ

2023年10月18日に出版される新著「ChatGPT/LangChain によるチャットシステム構築[実践]入門」を読んだ & 写経した 読者層的には「ChatGPT って最近よく聞くしたまーに使うこともあるけど LangChain って何なのー?」という人や「LLM (Large Language Mode…

Terraform の AWS Cloud Control Provider (awscc) で AWS Chatbot を構築しよう

Terraform で AWS Chatbot を構築したくても AWS SDK for Go との関係によって AWS Provider でサポートされていないという課題がある以下のような関連する issue もある github.com github.com ちなみに AWS CloudFormation では AWS::Chatbot::SlackChanne…

Trivy の VM image scanning で AMI / EBS スナップショットのセキュリティスキャンをしよう

Trivy の「VM image scanning」を使うと AWS の Amazon Machine Image (AMI) や Amazon Elastic Block Store (Amazon EBS) スナップショットに対してセキュリティスキャンを実行できる❗️サーバーにエージェントをセットアップする必要がなく(エージェントレ…

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

Trivy の「Misconfiguration Scanning」を使うと Dockerfile の設定ミス(セキュリティ課題やベストプラクティス乖離など)を検出できる❗️今回は Trivy を活用した Dockerfile のスキャンを試した作業ログをまとめる aquasecurity.github.io ちなみに Trivy …

新しく公開された Distributed Load Testing on AWS (DLT) ワークショップを試した

AWS

負荷テストを実行したいけど,ラップトップや Amazon EC2 インスタンス1台から実行すると負荷テストを実行する側がボトルネックになってしまって,期待した負荷テストにならないという悩みはよくあると思う そこで負荷テスト専用の SaaS などを活用して負荷…

Terraform で AWS Systems Manager Inventory を有効化する

AWS Systems Manager Inventory の有効化(AWS Systems Manager State Manager の関連付け)を Terraform で構築する場合 aws_ssm_association リソースを使って設定できる aws_ssm_association | hashicorp/aws aws_ssm_association の parameters に関して…

Goss: サーバー設定の検証を自動化しよう

歴史的経緯 (?) によって構成ドリフト状態(Infrastructure as Code 本参照)になっている Amazon EC2 インスタンスが複数台あって,まずはサーバーの期待値を宣言して自動テストもしくは自動検証をする仕組みを作りたいなぁーと考えていた 今までの経験とし…

正式リリースになった AWS SAM CLI の Terraform サポート機能を試す

2023年9月5日に AWS SAM CLI の Terraform サポート機能が GA (正式リリース)になった Amazon API Gateway や AWS Lambda 関数などサーバーレス関連のコンポーネントは Terraform で統一的に管理しつつも,AWS SAM CLI の開発支援機能(sam local invoke …

Athena で ALB アクセスログの time フィールドを Asia/Tokyo (JST) に変換する

Amazon Athena で Application Load Balancer (ALB) のアクセスログを検索するときにタイムスタンプ time のタイムゾーンは UTC になっている検索するときに JST に変換したい❗️と思う場面があって,最近クエリを作っていたため,今後すぐに再利用できるよう…

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…