LayerにGemを格納してAWS Lambda関数を成功させる方法(2)

はじめに 先日、Layerにgemを格納してAWS Lambda関数を動かす記事を書きました。 miyohide.hatenablog.com この記事では、Rubyで実装されたgemを使ってみたのですが、この記事ではネイティブ拡張を使ったgemを使う方法を記します。具体的には、PostgreSQLと…

LayerにGemを格納してAWS Lambda関数を成功させる方法

はじめに AWS LambdaでRubyを使って実装しようとしたとき、Gemを使いたいことがよくあります。Gemを使う際にちょっとハマったので、解決方法を記します。 例 とりあえずGemの使用例としてActiveSupportを使った以下のプログラムを動かしてみたいと思います。…

RDS(PostgreSQL)におけるデータベース所有者設定でのエラー回避方法

はじめに RDSにてPostgreSQLを使っているとき、マスターユーザーとは別のユーザーを作ってそのユーザがオーナーのデータベースを作ろうとするとERROR: must be member of role "xxxxx"というメッセージが出ることがあります。例を以下に記します。 postgres=…

AWS CDKを使ったEC2 Instance Connect Endpointの実装

はじめに プライベートサブネットにおいてあるEC2に対して、Instance Connect Endpointを使って接続するということを実施しています。 docs.aws.amazon.com ただ、セキュリティグループの設定などを毎回誤ったりするので、同じミスを繰り返さないようにCDKを…

Container Insightsを活用したECSクラスターの監視

はじめに 先日、Amazon Elastic Container ServiceにてSpring Bootで作ったアプリを動かすことをしました。 miyohide.hatenablog.com 今回は、このアプリに対してContainer Insights機能を試してみます。 Container Insightsとは コンテナ化されたアプリのメ…

Spring BootのコンテナアプリをAmazon Elastic Container Serviceで動かす

はじめに 先日まではApp Runner上でコンテナアプリを動かすことをしていました。今日からは、Amazon Elastic Container Serviceを使ってX-Rayなどを試してみようかと思います。 まずはSpring Bootで作ったコンテナアプリをAmazon Elastic Container Service…

App Runner上でのメトリックス監視のためのSpring BootとCloudWatchの設定

はじめに 先日、AWS App Runner上で動くコンテナ化したSpring Bootアプリケーションの可観測性に関する実装の一環でトレースをX-Rayに送ることを実装しました。 miyohide.hatenablog.com ただ本番環境においてはトレースだけでは足りず、リクエスト数やJVMの…

AWS App Runner上での可観測性向上に向けた取り組み(Spring Bootを使った実装例)

はじめに SREとして語られるものの一つに可観測性というものがあります。単純にログを吐けば良いというものから、どのようなリクエストが行われているのかや各種メトリックスなどの情報を取得することが必要となってきています。ここではAWS App Runner上で…

AWS CDKでリソースの構築とテストコードの書き方について

はじめに 最近はAWS CDKでリソースを構築することが多いのですが、AWS CDKは一般的なプログラミング言語でAWSのリソースを定義するものなので、テストコードを書くことができます。そのテストコードの書き方についてまとめてみます。 前提条件 本記事は、以…

LambdaとRDSの連携をCDKで簡単実装する

はじめに 先日、Lambda上でコンテナイメージを動かしRDSに接続するということをやりました。 miyohide.hatenablog.com このときは手作業でぽちぽちやりましたが、環境設定が面倒くさかったのでCDKで実装してみました。 VPCを作る まずはVPCを作成します。こ…

Lambdaで動くコンテナイメージ(Ruby)を作成し、RDS(PostgreSQL)と接続してみた

はじめに・動機 先日、RDS(PostgreSQL)に接続するLambda関数をRubyで実装しようとしたとき、pg gemの動作がうまく動きませんでした。このため、今回はLambda関数をコンテナイメージで動かすことをやってみます。 コンテナイメージを作る AWSのドキュメント…

AWS Application ComposerのIDE拡張機能の試用と生成AIの挑戦

はじめに AWS re:Invent 2023の内容を見てみると、AWS Application ComposerのIDE拡張機能が出たことを知りました。 aws.amazon.com Application Composerはサーバーレスアプリケーションのインフラ部分を視覚的に作成できるサービスという説明が目についた…

AWS LambdaからRDSへの接続設定が簡単になっていた

AWS LambdaからRDSへの接続設定をするのは地味に面倒くさいのですが、RDSのアクションメニューから「Lambda接続のセットアップ」から簡単に設定できるようになっていたので、試してみました。振り返ると2023年8月4日の更新が該当するようです。 aws.amazon.c…

AWS CDKでAWSリソースを作成する(3)

はじめに 先日からAWS CDKを使ってAWSリソースを作成してみることをしています。前回までは以下の記事を参照。 AWS CDKでAWSリソースを作成する(1) - miyohide's blog AWS CDKでAWSリソースを作成する(2) - miyohide's blog 今日はAppRunnerからElastiCa…

AWS CDKでAWSリソースを作成する(2)

はじめに 先日からAWS CDKを使ってAWSリソースを作成してみることをしています。前回は以下の記事を参照。 AWS CDKでAWSリソースを作成する(1) - miyohide's blog 今日はAppRunnerを作成してみます。 AppRunnerを作成する 今回はコンテナイメージをAppRunn…

AWS CDKでAWSリソースを作成する(1)

はじめに 先日からApp RunnerとかElastiCacheとかを使った検証をしていましたが、マネージメントコンソールで作業をするのは時間がかかり、料金節約のためにリソースを削除するのも大変なので、AWS CDKで実装してみることにしました。 プロジェクト作成 プロ…

Spring Session Redisの接続先をAmazon ElastiCacheにする

はじめに Spring Bootアプリの開発でセッション管理をする際にSpring Sessionを使うことが多いかなと思います。今回、Spring Session Data Redisの接続先としてAmazon ElastiCacheを使ってみましたので、その内容を記します。 前提条件 今回、Spring Bootは3…

AWS Lambda関数をCodeDeployでデプロイする

はじめに AWS Lambda関数をCodeDeployでデプロイすることができたので、ここにまとめておきます。 AWSのドキュメントが以下にあるのですが、試してみたところ動かなかったのでゼロから実装してみました。 docs.aws.amazon.com 言語は慣れていてサクッと動か…

AWS Lambda関数をJavaで実装する(5)Powertools for AWS Lambdaを入れてみる

先日より、Flywayを使ってRDSのデータベースマイグレーションをLambda関数を使って実装できないかやってみています。前回までの記事は以下を参照。 AWS Lambda関数をJavaで実装する(1) - miyohide's blog AWS Lambda関数をJavaで実装する(2)LambdaからRD…

AWS Lambda関数をJavaで実装する(4)CodeBuildを使ってLambdaアプリをデプロイする(完全版)

先日より、Flywayを使ってRDSのデータベースマイグレーションをLambda関数を使って実装できないかやってみています。前回までの記事は以下を参照。 AWS Lambda関数をJavaで実装する(1) - miyohide's blog AWS Lambda関数をJavaで実装する(2)LambdaからRD…

AWS Lambda関数をJavaで実装する(3)CodeBuildを使ってLambdaアプリをデプロイする

先日より、Flywayを使ってRDSのデータベースマイグレーションをLambda関数を使って実装できないかやってみています。前回までの記事は以下を参照。 AWS Lambda関数をJavaで実装する(1) - miyohide's blog AWS Lambda関数をJavaで実装する(2)LambdaからRD…

AWS Lambda関数をJavaで実装する(2)LambdaからRDSへ接続する

先日より、Flywayを使ってRDSのデータベースマイグレーションをLambda関数を使って実装できないかやってみています。前回までの記事は以下を参照。 AWS Lambda関数をJavaで実装する(1) - miyohide's blog 接続先のRDSに関するJDBC URLやユーザー名、パスワ…

AWS Lambda関数をJavaで実装する(1)

ちょっと実装したいことができ、AWS Lambda関数で実装することにしました。JavaのライブラリであるFlywayを使いたいこともあり、Lambda関数をJavaで実装することにします。 flywaydb.org Layer機能を使いたかったため、build.gradleに以下の記述を追記します…

iPhone 15を買った

3年ぶりにiPhoneを買い替えました。機種変更の際にはApple Pay移行とかデータ移行とかがあるのでちょっと憂鬱なのですが、えいやと実施しました。 前回移行作業したのは3年前。ブログ記事を残していましたが、おおむねこの内容をトレースします。 miyohide.h…

AWS CDKでAWSのリソースを作成する

今日は小ネタ。 AWS CDKと呼ばれるものがあります。プログラミング言語でAWSリソースを作成することができます。 aws.amazon.com テストコードを書くことができるのがメリットの一つであると考えています。 学ぶにあたって何かいい題材はないかなと思ったと…

AWS App RunnerでRubyアプリを動かす(3)

はじめに 先日からAWS App RunnerでRubyアプリを動かすことをやっています。先週はRailsアプリを動かしてみました。 miyohide.hatenablog.com 先週はとりあえずWelcomeページを表示させただけなので、今回はデータベースに接続してみます。 データベース作成…

AWS App RunnerでRubyアプリを動かす(2)

はじめに 先日からAWS App RunnerでRubyアプリを動かすことをやっています。先週はSinatraでアプリを動かしてみました。 miyohide.hatenablog.com 今回は、Railsアプリを動かすことにします。 Code-based? Image-based? App RunnerはGitHub上にあるソースコ…

AWS App RunnerでRubyアプリを動かす

なんとなくbuilders.flashを眺めていたらAWS App Runnerの連載記事に目が止まりました。 aws.amazon.com 上記の例ではSpring Bootなのですが、Ruby版をやってみることにしました。 Rubyバージョン 利用できるRubyのバージョンは2023年8月時点でRuby 3.1系の…

Apache HTTPd + Tomcat連携をDocker上で構築する

はじめに 今更感があるのですが、Apache HTTPd + Tomcatの連携を実装する必要があり、Docker上で実装してみることにしてみました。なお、ここで設定している内容は動作するための最小設定であるため、足りない設定などは適宜補足してください。 アプリの実装…

Azure Monitor VM Insightsを試す

久しぶりにAzure上で仮想マシンをいじる機会があり、監視機能の一つであるVM Insightsを試すことになりました。 learn.microsoft.com まずは簡単な設定から。 ドキュメントは以下にあるのですが、文字ばっかりでわかりにくい...。 learn.microsoft.com Azure…