理系学生日記

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

aws

OpenTelemetry CollectorでClaude Codeメトリクスに対するDeltaToCumulative処理をスケールアウトさせる

以前、Claude CodeのOpenTelemetry Metricsを収集してGrafanaで可視化する仕組みを構築したという記事を書きました。 あの記事では「とりあえず動いたぜ!」という勢いで締めくくったわけですが、実はあの構成には根本的な問題がありました。そう、僕は問題…

Claude CodeとOpenTelemetry Collector、Amazon Managed Service for Prometheus(AMP)を組み合わせて利用状況を可視化する

毎日Claude Codeを使っていると、ふと「自分はどのような使い方をしているんだろう」と気になることがあります。 セッションあたりどれくらいトークンを消費しているのか、費用はどの程度かかっているのか。もちろんccusageのようなツールもありますが、Clau…

Claude CodeをBedrock連携させた時のネットワーク疎通要件検証

Claude Code、便利ですよね。課金した。コードの自動生成やリファクタリング、ちょっとした調査まで、開発現場での「もう一人の自分」として頼りになる存在です。でも、企業や組織の“境界型ネットワーク”、つまり外部との通信を厳しく制限している環境で使う…

「Amazon Bedrock 生成AIアプリ開発入門」を読んだ

はじめに Amazon Bedrockと生成AI関連のAWSサービスの全体像を俯瞰できる 実務に役立つ知見とハンズオン 想定読者とおすすめポイント まとめ はじめに 「Amazon Bedrock 生成AIアプリ開発入門」は、Bedrockを中心とした生成AIアプリケーション開発の全体像を…

GitLab Self-Managed用のCodeBuild-hosted GitLab RunnerをTerraformで構築する

2025/2/26に、Self-hostedなGitLabに関して、そのCI/CDを実行するGitLab RunnerをCodeBuildで動かせるようになったという発表がありました (2024/9/17に発表された[AWS CodeBuild がマネージド GitLab ランナーのサポート開始:title:bookmark]はあくまでSaaS…

GitHub ActionsのSelf-hosted RunnerをCodeBuildで構成する

GitHubで開発を行う際、CI/CDには通常GitHub Actionsを利用することが多い。プライベートリポジトリであっても同様だが、プランによっては無償で利用できるRunnerの上限が月2,000分までという制限がある。 For private repositories, each GitHub account re…

Terraform管理のAPI Gatewayとlambroll管理のLambda関数をdata.aws_resourcegroupstaggingapi_resourcesで繋げる

Terraform管理とLambrollの併用 Lambrollとは? API Gatewayとの連携課題 data.aws_resourcegroupstaggingapi_resources なお Terraform管理とLambrollの併用 AWSリソースはTerraformで管理しています。Terraformは非常に便利で、無駄に抽象化されていない「…

TerraformでSelf-hostedなLangfuseを構築し、 Chat Completion APIのトレーシングを試す

LLM Observability Tool Langfuse LangfuseをSelf-hostしよう Langfuseのアーキテクチャ Terraformで構築する トレーシングを試してみる LLM Observability Tool どこもかしこも生成AIですが、生成AIをインテグレーションするシステム開発においてなくてはな…

App RunnerやECSで"exec format error"が発生する / Multi-platform buildsでハマる

特定のDockerイメージをAmazon ECSやApp Runnerで実行すべく、デプロイを試みたところ、以下のようなエラーが発生しました。 exec format error 真面目にハマったので、何が起こったのかを整理しておきます。 前提としてのMulti-platform builds 何が起こっ…

AWS SDKのサポート期間

aws

プロダクトの新規開発はもちろん、一度リリースした後も、プロダクトの維持・保守は重要です。 プロダクトの維持・保守には、セキュリティパッチの適用、バグフィックス、機能追加などが含まれます。 そこでは当然、利用しているライブラリのEOL等も認識して…

Route 53で取得したドメインを別のAWSアカウントに移管する

Route 53で登録した自分のドメインを、別のAWSアカウントへ移管する必要が生じました。 この方法については、異なる AWS アカウントへのドメインの移管で紹介されています。 今回は、AWS CLIを利用して移管を実施しました。マネジメントコンソールからは実行…

Serverless FrameworkでLambda関数を個別にパッケージングする

最近、Lambda関数はServerless Frameworkで管理することが多くなってきました。 Serverless Frameworkでは、一般に「Service」という単位で複数のLambda関数を管理します。 Serverless Framework Services デプロイ自体も、このService単位で行います。 # Se…

Amazon PinpointでiPhoneにPush通知を送信する

最近関わっている案件で、モバイルアプリへのPUSH通知を必要とする気配があります。このPUSH通知は、特定タイミングで、特定の条件を満たすユーザに対して通知しなければなりません。 モバイルアプリや通知に関しては赤子のような知識しかなかったので、色々…

AWS SDK for JavaScript v3のGetObjectCommand、TypeScriptで使いにくくないか?

S3上にあるオブジェクトの内容をTypeScriptで読み込みたい、こういうユースケースは多数あります。 自身としては今回初めて、AWS SDK for JavaScript v3の@aws-sdk/client-s3を使って実装してみました。 そこで感じたのは、GetObjectCommandまわりのインタフ…

TerraformでMultiAZ構成のAmazon Aurora Serverless v2を構築する

Amazon Aurora Serverless v2 Amazon Auroraはコンピューティングとストレージを分離した構成をとるデータベースです。 そして先月に、そのServerless版の新しいバージョンである、Amazon Aurora Serverless v2がGAになりました。 ここで言う「Serverless」…

CognitoのHosted UIを独自ドメインでホストするところまでをTerraformで構築する

かなり沼にハマりましたが、TerraformでAmazon CognitoのHosted UIを独自ドメインでサーブするところまでを構築できました。 実装はこちら。 構築のハマりどころ Hosted UIに割り当てる証明書はバージニアで作成する Hosted UIに割り当てる独自ドメインの1つ…

AWSのVPC Reachability Analyzerで疎通性を確認する

課題 解決に向けて 構成 感想 課題 プライベートサブネットに対し、SSM Agentを インストールしたEC2を配置しました。セッションマネージャー経由で接続を試みたところ、どうも疎通ができません。 解決に向けて そこで思いあたったのがReachability Analyzer…

Puppetterを使ったアプリをコンテナ化してLambdaにデプロイする

ChromeやChromiumをNode.jsから操作できるライブラリとしてPuppetterがあります。 これを使うと、Chromeでできるさまざまな事柄が自動化できます。 一方で、PuppetterはChromeを内蔵しており、Lambda関数化したとしてもそのサイズは非常に大きくなります。 L…

GitHub ActionsでAWSのクレデンシャル登録なしにAWS操作を行う

これまでGitHub ActionsからAWSのリソース操作しようとすると、以下のような対応が必要でした。 権限を絞ったロールを付与したIAMユーザを作成する そのアクセスキーIDをGitHub Actionsに登録し、Jobから利用できるようにする しかし、GitHub ActionsがOIDC…

TerraformでAWS Budgetsを設定する

プライベートでもAWSを使っているのですが、そういえばAWS Budgetsを設定しようと思って忘れていました。 AWS Budgetsとは AWS Budgetsは、コストや使用量を追跡し、予実の可視化やコスト等が閾値を突破したときのアラートを通知してくれたりするサービスで…

AWS SDK + LambdaでAWSの前日コストをSlackに通知する

AWSを使っていると、変な使い方をしてると予算をオーバーしてしまいます。 このため、日次でAWS Cost Explorerを確認しているのですが、これはこれで面倒です。 面倒な行為というのはだいたい能動的な確認が求められるのから面倒であるので、 AWS Lambdaから…

Eponaをリリースした

この間ようやくDevOps環境構築キットEponaというものをOSSとしてリリースしました。 DevOps DevOpsという言葉は様々な場所で聞きますが、理解するのがとても難しいです。 ずっと頑張って学んでいますが、まだまだ奥深く、いくらでも掘り下げるところがありま…

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 つの実行バイナリが…

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

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

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

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

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

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

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

aws

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

AWS Organizations を使って AWS アカウントを自動で作成する

AWS においてはマルチアカウント戦略が重要とされています。 たとえば、開発環境/ステージング環境/本番環境といった各環境は、セキュリティ、ガバナンス面で分離すべきです。 メンバーの権限管理がすっきりする 特定の環境の作業が他環境に影響しない この…

「AWS IAM のマニアックな話」を呼んだ

AWS 初心者なんですが、今後 AWS とガチで向き合う必要が出てきました。 AWS といえば、まず押さえるべきは IAM でしょうということで、「AWS IAM のマニアックな話」を読みました。 全体的な感想 IAM の運用 踏み台アカウントという概念 今後 全体的な感想 …

Terraformに入門してサーバを構築してみるまで

VPS を何年も前に解約してから Linux の遊び場もなくなってしまっていたのですが、 AWS を勉強したこともあり、あー EC2 なり S3 なり使えば色々できるなぁと思い立ちました。 せっかくなので、楽に遊び場を作ったり消したりしたいなぁということで、 Terraf…