kakakakakku blog

Weekly Tech Blog: Keep on Learning!

Amazon CodeGuru Reviewer と Amazon CodeGuru Profiler に入門しよう!「Code Quality Workshop」を試した

AWS のワークショップ「Code Quality Workshop」を試した❗️ AWS CodePipeline / AWS CodeCommit / AWS CodeBuild / AWS CodeDeploy を組み合わせた CI/CD パイプラインの中で JUnit / JaCoCo (Java Code Coverage Library) を実行したり,Amazon CodeGuru Re…

Terraform の基本的な仕組みから実践まで深く学べる一冊「詳解 Terraform 第3版」を読んだ

2023年11月21日(明日)に出版される新著「詳解 Terraform 第3版」を読んだ 本書では Terraform の基本的な仕組みを学べるだけではなく,Terraform を実践的に使うときに必要になるステート管理・モジュール・シークレット管理・テストなど幅広いトピックま…

Terraform で実装した IAM ポリシーを IAM Access Analyzer で検証できる tf-policy-validator コマンド

Terraform で AWS IAM ポリシーや Amazon S3 バケットポリシーを実装するときに terraform plan は通るのに terraform apply で失敗したり,terraform apply は通るのにポリシー自体に誤りがあって期待通りに動かなかったり,無駄にハマってしまった経験って…

Terraform Plugin Framework を使ったカスタムプロバイダの実装に入門できる Terraform チュートリアル「Custom Framework Providers」

Terraform チュートリアル「Custom Framework Providers」を試した❗️ Terraform から RESTful API を操作するカスタムプロバイダを実装しながら Terraform Plugin Framework の仕組みを学べて非常に良かったチュートリアルは計11種類から構成されていて一歩…

AWS x セキュリティに入門するならまずこの一冊 /「AWS ではじめるクラウドセキュリティ」を読んだ

「AWS ではじめるクラウドセキュリティ」を読んだ❗️とても良かった \( 'ω')/ 本書ではもちろん AWS のセキュリティサービスの機能など「サービスカットな観点」も学べるけど,それ以上に「セキュリティポリシーとは何か」や「どんなリスク分析フレームワー…

"何かうまくいってない" 開発組織でよく見る光景と打開策がまとまった「システム運用アンチパターン」を読んだ

「システム運用アンチパターン」を読んだ❗️ サブタイトルに「エンジニアが DevOps で解決する組織・自動化・コミュニケーション」と書いてある通り,迅速に改善を積み重ねつつサービスの価値をユーザーに提供するときに,どういう組織の振る舞いが「悪くて」…

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 リソースのドキュメントを読むとヒアドキュメントを使った例が載っている 個人的にはヒアドキュメントを使いたくなく,他の実装案を考えながら試して…