2024-01-01から1年間の記事一覧

セキュリティリスク回避のためのRDS(MySQL)へのIAM認証導入 Spring Boot編

はじめに 最近、RDSのIAM認証を実装しています。 MySQLは以下のものを。 miyohide.hatenablog.com PostgreSQLは以下のものを。 miyohide.hatenablog.com 上記ではコマンドライン上での操作を実装してみたのですが、アプリケーションとして実装する方法を検証…

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

はじめに 先日、Rubyで実装したAWS Lambda関数にてpg gemを使う方法を記しました。 miyohide.hatenablog.com 上記の記事では、Ruby 3.2のバージョンで実装したのですが、この記事を記したのちにRuby 3.3版がリリースされました。 aws.amazon.com Ruby 3.3版…

セキュリティリスク回避のためのRDS(PostgreSQL)へのIAM認証導入

はじめに 先日、RDS(MySQL)へのIAM認証を導入したことをブログに書きました。 miyohide.hatenablog.com 今回は、RDS(PostgreSQL)へのIAM認証を導入してみます。 また、この検証をするためにCDKも実装してみたのでそれも紹介します。 公式ドキュメントの…

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

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

セキュリティリスク回避のためのRDS(MySQL)への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のリソースを定義するものなので、テストコードを書くことができます。そのテストコードの書き方についてまとめてみます。 前提条件 本記事は、以…