AWS関連のことを調べてみた

AWS関連のことを調べてみた

CDKを使ってLambdaFunctionとLayerを一気にデプロイする

# 前書き
個人開発や技術検証で、試行錯誤しながらとにかく手を動かしたいとき、デプロイをもっと簡単にしたいと考えています。
Lambdaのランタイムをイメージにする方法もありますが、スクリプトを作成せず、コマンド一発でイメージをビルドし直し、ECRにプッシュするなど、スムーズに処理できる方法がなかなか見つかりません。もし、良い方法があれば教えていただきたいです。

現状はFunctionとLayerを分ける形で対応していますが、これはあくまで妥協案です。とはいえ、一応使える状態にはなっています。

# 手順

AWS CDK プロジェクトのセットアップ
“`shell
mkdir my-lambda-project
cd my-lambda-project
cdk init app –language=typescript
“`

`aws-lambda` と `aws-lambda-python-alpha` ライブラリをインストールします。

“`
npm install aws-cdk-lib @aws-cdk/aws-lambda-python-alpha
“`

元記事を表示

AWS Network Firewall でドメインによるホワイトリスト通信制御

## AWS Network Firewall とは

AWS Network Firewall は、インバウンド・アウトバウンドの通信を制御できるクラウド型ファイアウォールです。AWS のフルマネージドサービスであるため、サーバーや仮想アプライアンスの管理が不要になります。

AWS Network Firewall の展開モデルとして、分散型・集約型・複合型の 3 パターンが考えられます。それぞれのモデルについては以下ページを参考にしてください。

https://aws.amazon.com/jp/blogs/news/networking-and-content-delivery-deployment-models-for-aws-network-firewall/

## ユースケース

ホワイトリスト形式のドメインで通信を制御することを考えます。この要件を達成するために自前のプロキシ (Squid) サーバーを運用している組織は多いのではないでしょうか。このユースケースで必要な要素は以下のとおりです。

![architecture1.png](https://qiita

元記事を表示

Step FunctionsでJSONPathを使うと楽になった話

## はじめに
愚直にChoieステートでデータのフィルタリングを行なっていたもの、JSONPathに変えたらシンプルで使いやすくなった話

## 結論
MapステートとChoiceステートを使ったフィルタリングがJSONPathを使えば不要になった。

## どういうことか
下記のようなデータを受け取り、dataが100以上の値のtaskのみ後続処理させたい場合を例とする。
“`JSON
{
“tasks”: [
{
“id”: “task1”,
“data”: 100
},
{
“id”: “task2”,
“data”: 99
},
{
“id”: “task3”,
“data”: 1000
}
]
}
“`

### MapとChoiceを使うパターン
今までの私。
下記のように`tasks`をMapで分散処理させ、それぞれに対してChoiceで判断の処理をしていた。
“`JSON
{
“Comment”: “A state machine

元記事を表示

数百の文章からAWS生成AIで話題を取得してみた(その3)

# 背景
こちらの記事の続きになります。

https://qiita.com/bouru_sumisu/items/ec5e8321dea4b89702a0

# claudeで話題を取得
前回の記事で、(100, 1536)行列を(100, 24)行列へ次元削減して、hdbscanでクラスタリングを行いました。今回は、クラスタリング結果を踏まえて、クラスター毎に文章をclaudeへ投げて、クラスター毎の話題を取得してみます。

まずは、claudeを使うための変数を設定します。今回はclaude v3.5 sonnetを使います。
“`python:hogehoge.ipynb
MODELID_CLAUDE_v3_5 = “anthropic.claude-3-5-sonnet-20240620-v1:0”
“`

claudeを呼び出す関数になります。
コードはこちらを参考にしました。

https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/bedrock-runtime_example_bedro

元記事を表示

SageMaker Notebook でOpenCV を試してみた

# 背景・目的
今までテキスト処理に関する経験はありましたが、画像や動画の加工等には関わってきませんでした。
今回は、画像や動画の加工処理を行うための手法について、特徴を整理しハンズオンをします。

ネットで調べたところ、Pythonで画像や動画の加工するには、OpenCVというライブラリが多く使われていることがわかりました。そのため、今回はOpenCVを試してみます。

# まとめ

下記に特徴を整理します。

|特徴|説明|
|:–|:–|
|OpenCVとは|・Open Source Computer Vision Libraryの略

・コンピュータービジョンとマシンラーニングソフトウェアのライブラリ

・コンピュータービジョンアプリケーションに共通のインフラを提供

・Apache 2.0 ライセンス|
|OpenCVの特徴|・2500を超える最適化されたアルゴリズムがある

・古典的なものと最先端のコンピュータービジョン、機械学習アルゴリズムの両方の包括的なセットが含まれる|
|OpenCVでできること|・顔の検出と認識<

元記事を表示

AWS プログラミングノート

Lambda

S3

CloudWatch

CloudFormation

元記事を表示

今日から始めるセキュリティシフトレフト on AWS ③AWS CodeBuild+SASTツールでアプリケーションの脆弱性解析をする

# はじめに
セキュリティシフトレフト記事第三弾。

前回は、AWS CodeBuildのバッチビルドでDockerfileとコンテナイメージの脆弱性検査についての実施方法をまとめた。

https://qiita.com/neruneruo/items/83ed70aa286ec511f900

今回は、並行して実施するアプリケーションの脆弱性解析について考察する。

![ビルドグラフ2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111314/a8deb0e3-2207-efb9-21ca-250f27c17132.png)

# SASTツールについて
SAST(Static Application Security Testing)とは、名前の通りアプリケーションのセキュリティ検査を静的解析で実施することを指す。

https://circleci.com/ja/blog/sast-vs-dast-when-to-use-them/

基本的にそのアプリケーションの開発言語に従ったテストツール

元記事を表示

データエンジニアリングをマスターするための6つのプロジェクト

# はじめに
データエンジニアリングは、データがビジネスにおいて価値を生むための基盤を提供する非常に重要な分野です。
しかし、このスキルを効果的に習得するためには、実際に手を動かして学ぶことが不可欠です。
この記事では、さまざまなデータエンジニアリングスキルに焦点を当てた6つのプロジェクトを紹介します。これらのプロジェクトは、データパイプラインの構築からデータの可視化まで、幅広いスキルを網羅しており、初心者から中級者まで役立つ内容です。

# 1. データパイプラインの開発
データエンジニアリングの核となるスキルは、データパイプラインを設計・構築することです。
パイプラインは、さまざまなデータソースからデータを抽出し、変換して、最終的にビジネスユーザーが利用できる形にするプロセスです。
このプロジェクトを通じて、ETL(Extract, Transform, Load)の全体像を理解し、データの流れを支える技術を習得します。

**プロジェクト例**
リンク: [Reddit Data Pipeline Engineering | AWS End to End Data Enginee

元記事を表示

LambdaとAPI Gatewayを用いて, S3にpdfファイルをアップロード& BedRock ナレッジベースを同期

LambdとAPI Gatewayを用いて、S3にファイルをアップロードし、Amazon BedRockのナレッジベースの同期を行ったので、備忘録としてまとめます。クライアントがファイルをアップロードして、それを基にRAGできるようになります。

# ナレッジベースの作成
1. S3 > バケットを作成

1. AmazonBedRock > ナレッジベース > ナレッジベースを作成

1. Choose data sourceでAmazon S3を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879374/eaf70bc9-3ec9-e463-6e2f-1e0ae559b5ca.png)
1. 「s3を参照」から先ほど作成したS3をデータソースとして選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879374/efd4da91-7f34-3af7-352f-4203

元記事を表示

Storage Browser for Amazon S3をさわってみた!

# はじめに
2024/9/5にAWSのWhat’s Newに`Announcing Storage Browser for Amazon S3 for your web applications (alpha release)`という記事がアナウンスされました。

https://aws.amazon.com/jp/about-aws/whats-new/2024/09/storage-browser-amazon-s3-alpha-release/

Storage Browserとは、Amazon S3のバケットにUPされたファイル・ディレクトリを任意のWebアプリケーションから閲覧・作成・更新できる機能です。(ファイル削除はできなさそう)
![スクリーンショット 2024-09-07 20.32.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159675/153da825-97df-5322-6126-af5087ff359c.png)
※後述しますが、CSSが一部おかしいようでUIが少し

元記事を表示

IAM Identity Center + Entra ID(P1なし)構成でグループを使う方法

AWS IAM Identity Center(以下IdC)をEntra IDと組み合わせてSCIM連携を行いたいが、P1ライセンスがないために、グループやグループメンバーシップ(どのユーザーがどのグループに所属しているかの情報)の同期ができないケースがある。
そんな時、暫定措置となる方法について整理しておく。

## 背景
Entra ID(旧Azure AD)は無料で使用できるが、機能制約があり、解除するには[P1やP2といったライセンスの購入](https://www.microsoft.com/ja-jp/security/business/microsoft-entra-pricing)が必要になる。

|やりたいこと|無償版|有償版(P1以上)|
|:—|:—|:—|
|IdCのIdPとして設定し、認証に使用する|○|○|
|SCIM連携によってユーザーや属性をIdCに同期する|○|○|
|SCIM連携によってグループやグループメンバーシップをIdCに同期する|×|○|

※他の機能は省略

検証環境でIAM Identity CenterやQuickSight

元記事を表示

Storage Browser for Amazon S3をためしてみた

## はじめに
2024年9月5日に「Storage Browser for Amazon S3 for your web applications」がアルファリリースされた。

https://aws.amazon.com/jp/about-aws/whats-new/2024/09/storage-browser-amazon-s3-alpha-release/

S3は推しのサービスなので記事を見るとAmplifyで構築できそうだったので、さっそくためしてみた。

## Storage Browser for Amazon S3とは
WebアプリにS3でのファイルブラウズ機能を追加し、データ参照アップロードやダウンロード機能を提供するもの。

Amplify UIライブラリの一部として提供することを予定しているよう。

https://github.com/aws-amplify/amplify-ui/issues/5731

## 導入方法

Amplify Gen2で構築する方法を紹介する。

:::note alert
2024年9月7日 現在はアルファリリースなので利用

元記事を表示

【AWS】アカウントエイリアスの作り方

rootユーザでログインして、IAMダッシュボードから作成画面にいける

XXXX@YYYYYY
という表示はXXXXはIAMユーザID
YYYYはエイリアス名(アカウントID)

https://qiita.com/uskayyyyy/items/9ff6a75f73bd634f55cf

元記事を表示

DynamoDBさわってみた(DynamoDB Stream, TTL)

# DynamoDB Streamの有効化
## 設定状況の確認
設定状況はマネコンの 一般的な情報 > 追加情報から確認できます。

![cap01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3654730/5c8b9def-5eec-5fca-74fe-998e3c165a45.png)

## 有効化
「エクスポートおよびストリーム」タブから設定します。

![cap02.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3654730/0a8bb80f-c2ea-ddf2-89ff-aa5c3d52c63a.png)

streamにpushする情報を選択できます。
トリガーされるlambdaがeventとして処理できる情報になります。
今回は「新旧イメージ」を選択します。

![cap03.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.co

元記事を表示

コメントを頂いたので番外編!

# ご了承
Qiitaはブログの補足記事という位置づけになりますのでご了承ください。
なお、今後も上げる記事は基本的には、ブログの補足記事という形の位置づけで投稿を今はしていく予定です。
(何かあれば、はてなからQiitaへ移行するかも知れませんが)

# 経緯

今回Qiitaに投稿するのは、ブログ記事の番外編という事になります。
ブログ記事を上げていつも通りリンクを[Xの方へ投稿した](https://x.com/yuri_snowwhite/status/1832289901473362011)ところ[引用でコメント](https://x.com/cryptomamiya/status/1832295180181090486)もらいました。

何をしていたかは、元のブログ記事はたどってくださればと思います。

# やること

ブログに記載している通り、インスタンスのスループットを測ります。
インスタンスは、今回、AWSアカウントで少し課金しても平気な状態だったAWSアカウントを利用していきます。

インスタンスペックは、`t3.2xlarge` と `c7a.large` にて検

元記事を表示

AWS Amplify Gen2とAmazon Translateを使ってリアルタイム翻訳機能を作ってみた

# はじめに

こんにちは、ほっそーです。
この度、ANGEL Calendarのアドベントカレンダー企画に参加しております!
今日は、7日目の記事になります!下記のOrganizationアカウントから、記事一覧をご覧になってください!

https://qiita.com/organizations/2024-angel-dojo

# 作成した成果物はこちらです!