Amazon Novaのプロンプトキャッシュ設定

小ネタ。 Bedrockには一部の基盤モデルにおいてプロンプトキャッシュという機能があります。2025年7月5日時点では、ClaudeとAmazon Novaのいくつかが対象となっています。 docs.aws.amazon.com 何でもかんでもキャッシュされるわけではなく、プロンプトのト…

AWS Summit 2025で知ったServerless dbless RAG

先日開催されたAWS Summit 2025に参加してきました。 aws.amazon.com そこで知ったものとして、Serverless dbless RAGがあります。 github.com 早速動かそうとしていたのですが、cdk deploy時に以下のエラーが出て動きませんでした。 5:23:28 AM | CREATE_FA…

Spring AIとAmazon Bedrockの連携(Tool Useの実装方法)

引き続きSpring AIとAmazon Bedrockの実装を進めます。 Bedrockの機能の一つにTool Useという機能があります。 docs.aws.amazon.com Function callingとも呼ばれている機能なのですが、平たくいうと事前に定義している関数を生成AIが任意に呼び出すことがで…

トラブルの事象:SQSトリガーのLambdaにおけるメッセージ消失とその対処

はじめに AWS上でSQSをLambdaのトリガーにして何らかの処理をさせることは定番の構成かと思います。私が目にするシステムでもSQSとLambdaを組み合わせた例は多く見るのですが、先日この構成にてトラブルの話があったのでここにその例を記します。 事象:SQS…

Spring AIにおけるログの取得方法

今日は小ネタ。引き続きSpring AI。 先日の記事の中でBedrockの設定を使ってログの取得というのをやりました。 同様のことがSpring AIでもできます。 実装はChatClientを作る際にdefaultAdvisorsの引数にSimpleLoggerAdvisorのインスタンスを指定してあげる…

Bedrockのアプリ開発におけるChat Memoryの活用

はじめに 先日、GAになったばかりのSpring AIを使ってBedrockを対象としたアプリを実装した記事を記しました。 miyohide.hatenablog.com 今回は、上の記事の考察に記したChat Memoryを実装してみました。 Chat Memoryを使わない場合 Chat Memoryを使わない場…

Amazon BedrockでSpring AIを試す

はじめに 先日、Spring AIが1.0となりGAしたというニュースを目にしました。 spring.io 早速、Amazon Bedrockを対象に実装してみることにしました。 前提 今回は以下の環境で試しました。 us-east-1リージョン EC2インスタンス上にSpring AIアプリを動かす …

CDKを使用したAWS Lambdaテストイベントの作成

はじめに AWS Lambdaにおいてコンソール上でテストを実施する際、テストイベントを利用します。 docs.aws.amazon.com このテストイベントをコンソール上で作成するのはちょっと面倒くさいのでなんとかできないかなと思っていたのですがCDKで実装できることを…

cdk-nagを使ったCDKを使ったAWS環境の自動検証

はじめに CDKでAWSのリソースを作成することをよくやっているのですが、最近ベストプラクティスに沿っているかどうかを機械的にチェックできないかという話を受けました。調べたところ、cdk-nagというものを見つけました。 github.com 少し古いですがAWSのブ…

AWS Lambdaの新機能:Application SignalsによるJavaのAPM追加

はじめに 少し前の更新情報なのですが、AWS LambdaがApplication SignalsによるJavaのAPMを追加したという更新がありました。 aws.amazon.com 環境構築が面倒くさいなと思っていたのですが、実際やってみると思いのほか簡単にできたので、実装例を紹介します…

AWS SDKを用いたDynamoDBの実装で気をつけるポイント#ローカル版との違い

先日、DynamoDBのローカル版を試すという記事を書きました。 miyohide.hatenablog.com これを元にDynamoDBの操作を学習し、AWS SDKを使ったプログラムを実装していたのですが、ローカル版とAWS環境とではまったポイントがあったので紹介しておきます。 発生…

AWSの特徴的なサービス: DynamoDBのローカル版を試してみる

AWSの特徴的なサービスの一つにDynamoDBがあります。いわゆるNoSQLサービスなのですが、個人的にはちょっと触る機会がありませんでした。一念発起して触ることにしたのですが、いきなりAWS上に作るのも気が引けたので何か良い方法がないかなと思っていたとこ…

日本語対応のAmazon Q Developerの使い方

以前、Amazon Q Developerを検証した記事を以下に公開しました。 miyohide.hatenablog.com この記事を書いた時点ではプロンプトは英語だけだったのですが、先日日本語にも対応したということが公開されました。 aws.amazon.com 実際にやってみました。 Chat…

Lambda関数のタイムアウトをCloudWatch Logsにて確認する

Lambda関数を動かしていたとき、なにか挙動がおかしいなと思っていたらタイムアウトが発生していたということが最近ありました。処理中に明確な例外があればCloudWatch Logsに吐いているログにてエラーログが出ますが、タイムアウトの場合はタイムアウトのメ…

AWS CDKを活用したRDS IAM認証設定とメンテナンス用EC2作成の自動化

はじめに 先日、RDSに対してIAM認証の設定をしたのですが、手作業で作業をやったこともあり思いのほか手こずったので、CDKをつかって実装してみることにしました。 今回実装したのは、IAM認証を有効にしたRDS(PostgreSQL)とそれをメンテナンスするプライベ…

AWS Certified Solutions Architect - Professionalに合格した(3年ぶり2度目)

先日、AWS 認定ソリューションアーキテクト – プロフェッショナル(SAP-C02)を受験し、無事合格しました。 約3年前にSAP-C01を受験して合格していたので今回で再認定となります。 miyohide.hatenablog.com 試験勉強 SAP-C01に合格していたので、差分だけち…

AWS CloudShellでAmazon Q CLIを活用する

AWS CloudShellで操作をしていたら、Amazon Q CLIが使えるようになっていました。調べてみると去年10月には使えるようになっていたみたいです。 aws.amazon.com 実際に叩いてみるとこんな感じ。 Amazon Q CLIの活用事例として、AWSブログに以下の記事が公開…

ECS Fargate上で動かしたRails 8アプリのデータベースにEFSにおいたSQLiteを指定する

先日、以下のブログ記事を拝読しました。 note.com 昔、ちょっと試した時には遅くて開発環境しか使えないなという印象を持っていたのですが、Rails 8になってだいぶ変わったようです。 そこで、ECS FargateにてRails 8アプリを動かし、データベースとしてEFS…

AWSの料金確認ツールCost Explorerの使い方

多くのクラウドは従量課金制な料金体系であることが多いので、定期的にどれぐらい料金がかかっているかを確認することは重要です。ちょっと困るのは、リアルタイムで「このサービスを使っているからXXX円かかっています」というような情報を得る手段はなく、…

コンテナ化アプリのファイル出力: Amazon EFSの活用手法

はじめに コンテナ化したアプリを動かす際に、ファイル出力をしたいというニーズをちょくちょく聞きます。特に既存のアプリケーションに対して、なんとかコンテナ化まではできたが、ファイル出力する仕様までは変更することができなく、どうしたら良いかとい…

AWS Certified Machine Learning - Specialty合格体験

先日、AWS Certified Machine Learning - Specialty(MLS)を受験し、合格することができました。 先日、以下のブログで試験対策メモを記しましたが、具体的にどのような対策をしたのかを記します。 miyohide.hatenablog.com miyohide.hatenablog.com 公式練…

AWS Certified Machine Learning - Specialty対策用 雑多メモ

AWS Certified Machine Learning - Specialty(MLS)を受験することになりました。全然馴染みがなかった分野なので、用語も何もわからず。日本語での参考書っぽいものも見当たらなかったので、個人的に勉強した内容のことを以下にまとめます。 この記事では…

AWS Certified Machine Learning - Specialty対策用SageMaker機能メモ

AWS Certified Machine Learning - Specialty(MLS)を受験することになりました。全然馴染みがなかった分野なので、用語も何もわからず。日本語での参考書っぽいものも見当たらなかったので、個人的に勉強した内容のことを以下にまとめます。 この記事ではS…

SSMを使用してLinux EC2にログインするときのユーザを変更する方法

今日は小ネタ。 Session ManagerにてLinux系OSのEC2にログインすると、初期ユーザはssm-userとなります。 これだと何かと不便なので、ログイン後はsudo su --login ec2-userを実行してec2-userになっていました。 毎回これを手打ちするのも面倒くさいなと思…

AWS SDK for Ruby v3を使ったアプリケーションでのテスト方法案

先日、AWS SDK for Javaを使ったプログラムに対してMockitoを使ったテストの書き方を記しました。ちょっと面倒だなと思っていたのですが、AWS SDK for Ruby v3ではSDK自身にダミーのデータを返す機能があるということをたまたま知りました。 具体的にはAws::…

Mockitoを使ったAWS SDKを使ったプログラムのテスト

AWS SDKを使っていろいろとAWSに対して処理を書くことが多いのですが、テストコードを書く際にAWSリソースとのやりとりの部分のテストコードを書くことにどうすれば良いかわからないことがあります。 今回は、AWS SDK for Java v2を使ったS3を操作するコード…

AWS Lambdaの環境変数制約と対策

AWS Lambdaにはさまざまな制約がありますが、その中の一つに環境変数のサイズがあります。 docs.aws.amazon.com 上記ドキュメントを読めば書いていますが、すべての環境変数の合計が4KB=4,096バイトを超えない必要があります。一つの環境変数の値が4KBを超…

CodePipelineでのECRへのPush設定方法(AWS ECRBuildAndPublish利用編)

はじめに 今日は小ネタ。昨年、CodePipelineにてECRへのPushがアクションとしてサポートされました。 aws.amazon.com 個人的にはちまちまCodeBuildを使って実装することが多いのですが、設定ファイルの書き方などを毎回忘れるので、GUI操作だけで設定できる…

Amazon Cognitoカスタム属性を活用したPostgreSQLのRow Level Securityの実装

はじめに 先日からPostgreSQLのRow Level Securityを使ったマルチテナントアプリケーションを実装することをやっています。 miyohide.hatenablog.com 上の記事では直接curlでテナントIDを指定していましたが、今回はAmazon Cognitoのユーザー属性に追加した…

AWSのセキュリティ強化に役立つVPCの新機能 ブロックパブリックアクセス

はじめに 今日は小ネタ。だらっとAWSの新着情報を眺めていたら、VPCのブロックパブリックアクセスというものがリリースされていました。 aws.amazon.com 実験 簡単に実験してみます。 適当なVPCを作成したのち、VPCの画面を下にスクロールすると一番下に「設…