のべラボ.blog

Tech Blog | AWS や サーバーレスやコンテナ などなど

AWS

AWS Step Functions から AWS Lambda 関数を呼び出す方法を整理してみた

前回記事に引き続き、AWS Step Functions がテーマです。 (2024 年 6 月に検証した内容に基づいています。) AWS Step Functions のステートマシンは、様々な AWS サービスと連携できます。 例えば、AWS Lambda 関数を呼び出したり、Amazon SNS のトピック…

Amazon API Gateway から AWS Step Functions のステートマシンを同期的に呼び出してみる

半年ぶりの記事となります。 たまたま、AWS Step Functions についていくつか調査する機会があったので久々に記事にまとめようと思い立ちました。 タイトルの処理を実装する手順をまとめていきますが、Amazon API Gateway から AWS Step Functions のステー…

AWS Compute Optimizer で Lambda 関数の推奨事項を提示させてみた!

本記事は「AWS LambdaとServerless Advent Calendar 2023」3 日目の記事です。 今回は、AWS Compute Optimizer を使って Lambda 関数のメモリ設定に関する推奨事項を確認してみます! 目次 目次 AWS Lambda 関数のメモリ設定の最適値導出について AWS Comput…

Amazon API Gateway のリクエスト本文検証時のエラーメッセージを変更してみる

Amazon API Gateway のリクエスト検証機能は広く知られているかもしれませんが、今回はリクエスト本文検証時のエラーメッセージを変更して詳細な情報を表示する方法を紹介します。 これは、数ヵ月前に私が登壇したトレーニングの受講者の質問から気づけた Ti…

Amazon EKS に Container Insights を導入する手順をまとめてみた

Amazon EKS には、Amazon CloudWatch Container Insights (以降、Container Insights )を導入できます。 Container Insights を導入すると、Amazon EKS クラスターやノード、Pod などといった単位でメトリクスを収集し、Amazon CloudWatch アラームを設定で…

kubesec で AWS KMS のキーを使って Secret を暗号化・復号してみる

Kubernetes の Secret リソースでマニフェストで作成するとき、Secret として秘匿したいデータを Base 64 でエンコードして指定します。 ただ、Base 64は単なるエンコードなので、そのままでマニフェストを保存することは、セキュリティ上避けたいですよね。…

今さらながら GitHub Actions をさわってみる: (AWS SAM のデプロイ編)

前回の記事では、GitHub Actions のワークフローから AWS アカウントへのアクセス方法を確認しました。 その方法を用いて、今回は AWS アカウントへサーバーレスアプリケーションのビルドとデプロイを行ってみます。 アプリケーションは、Amazon API Gateway…

今さらながら GitHub Actions をさわってみる: (AWS へのアクセス編)

前回、前々回に引き続き、GitHub Actions のワークフローを触っていきます。 今回は、ワークフローから AWS アカウントへアクセスする方法を整理しつつ、実際にアクセスを試していきます。 最終的には、GitHub Actions を使用して アプリケーションをビルド…

今さらながら GitHub Actions をさわってみる: (入門編)

これまで GitHub はリポジトリとしてのみ活用することがほとんどでしたが、GitHub Actions のワークフローを触ってみようと思い至りました。 なぜそう思ったかというと、Amazon CodeCatalyst を触ってみたからです。 aws.amazon.com Amazon CodeCatalyst を…

Amazon SNS でサポートされた AWS X-Ray のアクティブトレースを試してみる

今回は、つい先日にアナウンスがあった Amazon SNS の下記の新しい機能を試してみます。 aws.amazon.com なお、この記事の内容は 2023 年 2 月 12 日時点の検証結果に基づいて記載しています。 何ができるようになったのか これまでも、Amazon SNS トピック…

Amazon Athena を AWS SDK for Python ( boto3 ) から使用してみる

前回の記事では、Amazon Athena を AWS CLI から操作してみましたが、今回は AWS SDK for Python 、つまり boto3 を使って Python のコードから Amazon Athena を操作してみます。 操作する内容は、前回の記事のAWS CLI で行った操作と同じことをやってみよ…

Amazon Athena を AWS CLI から使用してみる

今回は、AWS CLI を使って Amazon Athena のデータベースとテーブル、ワークグループを作成し、クエリーを発行してみます。 標準 SQL を使用して Amazon S3のバケット内のデータに対して直接クエリーを発行して集計や分析が行えるインタラクティブなサービス…

AWS SAM で Open API の API 仕様を使って Amazon API Gateway の REST API を作成する

Amazon API Gateway では、 Open API 仕様(OpenAPI-Specification)をインポートすることで REST API を作成できます。 docs.aws.amazon.com 例えば、/order のパスで POST リクエストを受け付ける API を Open API 仕様に基づきファイルに記述しておくと、…

AWS Cloud9 の デバッグ機能をさわってみる

今回は AWS Cloud9 のデバッグ機能の基本的な使い方をまとめたいと思います。 AWS Cloud9は、ブラウザのみでコードを記述、実行、デバッグできる統合開発環境 (IDE) です。 aws.amazon.com Cloud9 には、あらかじめ AWS CLI や AWS SAM、AWS CDK などの 主要…

AWS Step Functions の Distributed Map ステートを試してみる

これまで、AWS Step Functions の Map ステートを試してみる記事を 2 つ(下記)書いてきました。 nobelabo.hatenablog.com nobelabo.hatenablog.com 今回は、その続きとして 2022 年 12 月にアナウンスされた Distributed Map を試してみます。 aws.amazon.…

AWS Lambda の Provisioned Concurrency を設定した後、利用可能になるまでの状況を確認してみる

本記事は「AWS LambdaとServerless Advent Calendar 2022」11日目の記事です。 AWS Lambda では、「プロビジョニングされた同時実行数」を設定することができます。本記事においては便宜上、この設定を Provisioned Concurrency と呼称します。 この Provisi…

AWS Lambda の同時実行数に関連する設定の整理

今回は、AWS Lambda の同時実行数に関連する各設定の整理をしていきます。 まず、AWS Lambda には サービスの制限値として、その AWS アカウントで同時に実行環境を作成できる数がリージョン毎に決められています。 これは、AWS Service Quotas で Concurren…

AWS X-Ray における Amazon SQS × AWS Lambda の新しいトレースリンクの機能を試してみる

今回は、最近発表されたAWS X-Ray の次の新機能を試してみます。 aws.amazon.com 従来までどうだったか、この新機能により何ができるようになったか、というのを簡単に図にまとめてみました。 Amazon SQS にメッセージが送信され、その後 AWS Lambda 関数に…

Amazon SNS の ペイロードベースのメッセージフィルタリングを試してみる

従来、Amazon SNS のサブスクリプションでは、メッセージの属性値ベースのフィルタリングは可能だったんですが、最近の Update でメッセージ本文、つまり『ペイロード』ベースのフィルタリングも可能になりました。 aws.amazon.com 下記の AWS ブログでは、A…

Amazon EventBridge で新たに追加されたフィルターの機能を試してみる

Amazon EventBridge のルールで指定できるフィルター機能が拡張され、下記の評価方法が利用できるようになりました。 suffix filter (拡張子を指定したフィルター) equals-ignore-case (大文字小文字を区別しないマッチング) OR matching (複数のフィール…

AWS Step Functions の Map ステートに動的に生成した配列を渡してみる

前回の記事で AWS Step Functions の Map ステートの基本的な使い方を試してみました。 nobelabo.hatenablog.com 前回は、ステートマシン実行時のパラメータに配列を手入力して、その配列を Map ステートにそのまま渡していましたが、今回はステートマシンの…

AWS Step Functions の Map ステートを触ってみる

AWS Step Functions Map ステートで色々試したいことがあるのですが、その事前準備として今回は Map ステートの基本的な機能を確認してみます。 Map は、配列の要素数に応じて同じ処理を並列に実行してくれるステートです。 docs.aws.amazon.com 例えば Map …

AWS Parameters and Secrets Lambda Extension を試してみる

前回のブログ記事で、AWS Parameters and Secrets Lambda Extension のドキュメントの記載の注意点について説明しましたが、今回は AWS CLI を主体としてシンプルに試す手順を説明します。 なお、この記事の内容は 2022年 10月 23日時点のものになります。 …

AWS Parameters and Secrets Lambda Extension のドキュメントの記載に注意

AWS Parameters and Secrets Lambda Extension を触ってみたところ、ドキュメントで混乱を招く記載があったので、その点を記載していきます。 なお、この記事の内容は 2022年 10月 23日時点のものになります。 aws.amazon.com AWS Parameters and Secrets La…

AWS SAM connectors を試してみた

前回と同じく、今回も AWS SAM ネタです。 下記の AWS ブログの記事を読んだので、 AWS SAM connectors を試してみたいと思います。 aws.amazon.com AWS SAM connectors は、AWS SAM テンプレートで指定するリソースタイプの一種で、サーバーレスアプリケー…

AWS SAM で 初期化時に AWS X-Ray のトレースの有効化を指定できるようになった

AWS SAM の CLI では、sam init というコマンドで SAM で使用するリソースを対話形式で指定して取得できますが、その対話の中に AWS Lambda と Amazon API Gateway に対して AWS X-Ray のトレース取得が指定できるようになったようです。 また sam init 時に…

Amazon EKS にて Ingress で SSL を有効化してみる

Amazon EKS クラスターでは、AWS Load Balancer Controller を導入すると Ingress オブジェクトを作成時に、ELB のロードバランサーを作成できます。 今回は、IngressからSSL を有効化したELB ( Application Load Balancer ) を作成する手順をまとめてみます…

AWS での分散負荷テスト ソリューションを試してみた

AWS ソリューションライブラリの一つである「AWS での分散負荷テスト」ソリューションを試してみました。 aws.amazon.com このソリューションは、Amazon ECS の Fargateのタスクをクライアントとして任意のWebのエンドポイントに負荷テストを実施できるよう…

Amazon EKS で Pod から AWS Secrets Manager のシークレットを取得する

今回は、AWS Secrets Manager で管理しているシークレットの情報を Amazon EKS の Pod から取得させてみます。 これを実現するために、AWS Secrets and Config Provider (ASCP) を使用します。 下図がそのイメージです。 ASCP については、次の AWS ブログの…

Amazon EKS で Amazon EFS CSI ドライバー を使ってみる

今回は、Amazon EKS で Amazon EFS CSI ドライバー を使って、Podから EFSボリュームにアクセスしてみます。 手順としては前回の「Amazon EKS で Amazon EBS CSI ドライバー を使ってみる 」の記事の内容と似ているところが多いので、今回の記事も内容や構成…

/* -----codeの行番号----- */