Amazon Linux 2023でのプライベートサブネットへのパッケージインストール方法

はじめに プライベートサブネットに配置しているEC2に対してインストールしたいアプリやセキュリティパッチなどを当てたい場合、一般的にはインターネットに接続する必要があります。 ただ、Amazon Linuxにおいてはインターネットにアクセスせずに更新したり…

セキュリティリスク回避のためのIAM認証導入

はじめに Amazon RDSではユーザー名とパスワード以外にIAM認証という機能があります。RDSなどの接続用パスワードをソースコードに書き込むのはよくあるセキュリティリスクの一つではあるんですが、環境変数やParameter Store、Secrets Managerに格納するのは…

無償版LocalStackでのRuby SDKを用いたS3操作検証方法

はじめに AWS上でのシステムを構築する際に簡単な挙動をローカル環境で確認したいという要望はちょくちょく聞きます。そのときによく使われるのがLocalStackです。 www.localstack.cloud 有償版・無償版それぞれあるのですが、無償版でも多くの機能が使えま…

AWS SAMを使ったAWS Lambda関数のVPC設定

はじめに ちょっと前までAWS Lambda上で動くアプリをJavaで実装することをやっていました。 AWS Lambda関数をJavaで実装する(1) - miyohide's blog AWS Lambda関数をJavaで実装する(2)LambdaからRDSへ接続する - miyohide's blog AWS Lambda関数をJavaで…

GemをLayerに登録する際のAWS Lambda制限への対応

はじめに AWS LambdaにてAWS SDK for Rubyを使うことになり、単純にgemをLayerとして登録しようとしたら少しトラブったのでその対処方法を以下に記します。 何が起きたか? 前回までのブログ記事のようにgem 'aws-sdk'と書いたGemfileを用いてLayer用のzipフ…

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 テストコードを書くことができるのがメリットの一つであると考えています。 学ぶにあたって何かいい題材はないかなと思ったと…