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

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

API GatewayでLambdaを呼び出してCORS対応する方法

# はじめに
こんにちは、もちもちMAXです。
今回はAPI Gatewayでプロキシ統合したLambdaを呼び出す時にCORS対応する方法を説明します。作成するのはREST APIで適当なパラメータをbodyに格納してPOSTできるところまでをやっています。

# 手順
ざっくりとした手順は下記の通りです。
1.API GatewayでLambda関数を紐づけたREST APIを構築
2.Lambda関数にCORS対応を追加
3.CORS対応確認

# Lambda関数の作成
各手順の説明の前に、今回呼び出すAPIの実体であるLambda関数を作成します。
![image (4).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463753/97bb1fea-bbf5-6d0b-9f3c-f46a575f60f2.png)

Lambda関数のコードは下記の通りです。
“`Python
import json

def lambda_handler(event, context):
# OPT

元記事を表示

AWS Peacock Management Consoleの機能を拡張してショートカットリンクをワンクリックで取得できるようにしてみた

# AWS Peacock Management Consoleの機能を拡張してショートカットリンクをワンクリックで取得できるように。

* AWS IAM Identity Centerを利用しているユーザがconfigにサブドメインを設定しておくことで開いているAWSリソースの[shortcut link](https://docs.aws.amazon.com/singlesignon/latest/userguide/createshortcutlink.html?icmpid=docs_sso_console)をピン留めした拡張iconをワンクリックすることで取得できるように機能拡張してみました。

* 参考:[ショートカットリンク](https://dev.classmethod.jp/articles/iam-identity-center-shortcut-links-aws-access-portal/)
* レポジトリ:https://github.com/MaSuCcHI/aws-peacock-management-console-fork/tr

元記事を表示

S3 上のログファイルを Glue, Athena を使ってクエリ検索可能にする

# はじめに
アプリや Nginx などのログを集約している S3 Bucket はあるのだが、分析するための環境がなく、S3 からローカルに落としてゴニョゴニョするか、サーバーに接続して `grep` コマンドなどを駆使するという辛すぎる運用があり、どうにかして欲しいと依頼があったため作成したものの記録。
※ここで使用する AWS サービスそのものの説明は割愛する。

# 目標
– 兎にも角にも Atnena でクエリ検索ができる
– LTSV や JSON 型のログファイルをいい感じに整形してクエリ検索しやすくする
– なるべく高速なクエリ検索
– 既存のリソースには手を加えない
– コストをあまりかけない
– Terraform で構築する(まずは手動構築、Terraform 化は後々。。。)

# 先に構成図
![S3 に出力されたログを Athena で検索する.drawio のコピー.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1131391/274be6bf-e612

元記事を表示

Amplify Gen2 でLambdaを定義したらesbuildされてソースがコンソール上で見えなくなる

## はじめに

Qiitaのアカウントを初めて作成してみて、投稿記事第一号です。
関西の製造業で働いてAWSを勉強中のエンジニアのヤタクマと申します。

今回、Amplify Gen2 を触り始めてAPI GatewayやLambdaといったバックエンド環境をTypeScriptで定義できるというのは便利だなと思い、触ってみたときのメモです。

もともと、Lambdaをpythonで構築していた過去がありSAMを使うとローカルと同じソースがコンソールでも展開されているのでそれと同じ感覚で Amplify Gen2によりCDKでLambdaを定義して試していたら勝手が異なっていたため自分なりに調べていたことのメモです。

## 環境情報

* AWS Amplify Gen2
* Lambda (Nodejs 20)
* 使用言語 TypeScript

## やったこと

1. Amplify Gen2 のチュートリアルの手順したがって、amplify-next-templateのソースをgithub上でとりこみ、Amplify上でデプロイを行いました

https://docs.a

元記事を表示

Cognito + React でメアド検証を行い、ユーザーを登録する

# はじめに
cognitoを使ってユーザー管理をしたい!と思ったのでreactと組み合わせて実装してみます。

## Cognitoユーザープールを作成する

Cognitoユーザープールを作成します。

![cap01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3654730/3b445401-4e2d-2be4-6c2e-470cd7138c6e.png)

参考:

https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/cognito-user-identity-pools.html

### ユーザープール作成 ステップ1
サインインオプションを指定します。
今回はEメールアドレスとパスワードで認証したいので、
ここではEメールを指定しておきます。

![cap02.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3654730/4f8

元記事を表示

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

# 背景
少し盛っているタイトルとなり、すみません。
行ってみた事は下記になります。

* 数百の文章が保存されているcsvファイルを取得
* AWSのBedrockのtitanを使って、それぞれの文章を1536次元ベクトルに変換
* それぞれの変換した1536次元ベクトルを、umapで適当な次元に次元削減
* それぞれの次元削減したベクトルを、hdbscanでクラスタリング
* 同じクラスターに所属する文章を、AWSのBedrockのclaudeに投げて、話題を取得

イメージとしては、
「クラスタリングの結果、どのような話題かは分からないけれど、似た話題の文章でクラスターが構成されていると仮定して、それぞれのクラスター毎に属する文章をclaudeに「これらの文章の話題は何?」と投げれば、クラスターの数の話題を、数百の文章から取得出来るのでは?!」
になります。

数百の文章を直接claudeに投げる事も考えましたが、トークン数が多くてAPIリクエストの制約に抵触したり、「Garbage In, Garbage Out」ではありませんけれど、c

元記事を表示

【日記】AWSで作ったものが消えてて焦った話

# ネタバレ
作ったものはリージョン毎に管理されているらしい。
普段から使ってる人からしたら当たり前なんだろうけど、焦ったぁ……😣

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1773132/4956bb0d-9871-a457-112a-68d8ed4be958.png)

おわり

元記事を表示

ECS環境で動作しているRuby on Railsの環境に、EventBridge Ruleでバッチ処理を組み込む

# 概要
表題の構成でバッチ処理を構築したので、その構築方法について記載します。

# 前提条件
:::note warn
前提条件一覧
– `ECS`環境で`Ruby on Rails`のアプリが動作している
– `Terraform`がインストールされている
– `ECS`や `Network`関連(`ALB`、`IAM`、セキュリティーグループ等)が`Terraform`で構築されている
– `Ruby on Rails`のバージョンは、7.0以上
:::

# 作成手順
## Ruby on Rails
### 初期設定
– `EventBridge Rule`から`rails runner`(以下、`r`に省略)でコマンド叩く際、`path`の入力を行わないで済む様にする為、下記を追加した
“`config/application.rb
config.eager_load_paths << Rails.root.join("lib", "batches") ``` 上記の設定をした事で、ローカル環境では、下記のコマンドでバッチ処理の確認が可能 ```sh rails r "

元記事を表示

NLBとALBを統合したソリューション

## はじめに

今回はSAPの問題を解く中で解説の薄い問題があったので解説を作ってまとめてみようと思います。

## 記事の対象者

– AWS初学者
– SAA、SAPを取ろうと思っている方

## 問題文
ある通信会社がAWS上でアプリケーションを運用しています。同社はオンプレミスのデータセンタとAWSの間にAWS Direct Connect接続を設定している。
同社はALBの背後にあるマルチAZのEC2インスタンスにアプリケーションをデプロイしました。クライアントはHTTPSを使用してオンプレミスから接続します。TLSはALBで終端します。
同社には複数のターゲットグループがあり、URLパスに基づいてリクエストを転送するパスベースのルーティングを使用しています。
同社はIPアドレスに基づいたファイアウォールアプライアンスを導入予定です。クライアントがアプリケーションへのアクセスを継続できるように
オンプレミスのネットワークからAWS環境へのトラフィックフローを許可するソリューションを開発したい

## 要件
まずこの問題の要件をまとめます。
①オンプレミスのファイアウォールア

元記事を表示

【AWS – EC2】マネジメントコンソールが少しだけ優しくなった

## はじめに

AWSのマネジメントコンソールでEC2インスタンスを停止する時、

インスタンスの状態 > インスタンスを停止
を選択する必要があります。

しかし、下の方に **インスタンスを終了** という項目もあり、こちらを押すと、該当インスタンスは**削除**されます

今までこちらの記事の方のように間違えて押してしまった人も多いのではないでしょうか

## ある日気がついた

マネジメントコンソールをいじっていると、、、

ん、、、?

元記事を表示

TerraformでAzureとAWS間でインターネットVPNを張る

前回の記事を各段階から構想としてあった、AzureとAWS間でのインターネットVPN、しかもTerraformで完全コード化したものを公開します。
GUIだと楽勝なんで簡単に考えていたんですが、コード化するとなると中々手強かったです。
お盆前には公開できる準備は整っていたのですが、子どもの夏休みの宿題と自身の体調不良で時間が空いてしまいました。
体調不良は置いといて、夏休みの宿題、面白いですね。
大人になってから見てみるととても感慨深いです。
今は読書感想文のほかに、映画鑑賞による感想文があり、うちの子はこの映画鑑賞の感想文を選んでいました。
私も小学校5年生あたりで夏休みの宿題とは別で新聞社がやってる作文コンクールに応募して佳作だったか努力賞だったかの賞をもらったことがあります。
父に何度も校正されて、子どもの頃の生意気な私なら途中で投げ出していたと思うのですが、なぜかとても楽しく、書きたいことがいっぱいあるタイプの人間なので文字数制限内に収めるためいろいろな表現を学ぶ良い経験になったので、子どもにも勧めました。
**いや、作文コンクール、読書感想文、映画の感想文、よく考えられた仕組

元記事を表示

生成AIことはじめ(1)

## はじめに

最近、Microsoft CopilotやGitHub Copilotなどの生成AIを仕事で使う機会も増え、生成AIがかなり身近なテクノロジーだなと感じて、エンジニアとしてキャッチアップが必要だなと考え自己学習の一環として記事をまとめていこうと思いました。まずは基礎的なところから整理できればと。

## 生成AIとは

その名前の通り、「さまざまなコンテンツを生成できるAI」の総称です。生成AIは深層学習を用いて実現されている技術になります。生成AIには、テキストを生成するものや画像を生成するもの、動画を生成するものなど複数のものが存在します。

## 基盤モデル

膨大なデータで事前トレーニングされた汎用的なモデルを基盤モデルと呼びます。有名どころで言うとOpenAI社のChatGPTで利用されている基盤モデル「GPT」や、Anthropic社のClaude、Google社のGeminiなどが挙げられます。また、基盤モデルはファインチューニングなどの手法を用いて独自データを追加学習させることで、より専門に特化させたモデルを作成することができます。

![フローチャー

元記事を表示

超AWS初学者向け パッチマネージャー解説

## はじめに

**AWS Systems Manager Patch Manager**は、サーバーのパッチ適用を自動化する機能です。これにより、これまで手作業で行っていたパッチ管理の負担を大幅に軽減できます。

### パッチ管理の課題

従来、サーバーのパッチ適用は、以下のような課題がありました。

* **サーバーごとに異なるOSの種類やバージョン、インストールされているソフトウェア、セキュリティ要件を考慮する必要がある。**
* **どのパッチが適用済みで、どのパッチを適用すべきか、情報収集に手間がかかる。**
* **定期的なパッチ適用を確実に実行する必要がある。**
* **緊急度の高い脆弱性への迅速な対応が必要な時。**
* **パッチ管理作業は人手に頼ると負荷が高い。**

### AWS Systems Manager Patch Managerの登場

**AWS Systems Manager Patch Manager**は、これらの課題を解決するために生まれた機能です。

**主な特徴**は以下です。

* **マネージドノードへのパッチ適用プロセスを自動

元記事を表示

【AWS】API Gatewayを使用してLambda関数のREST APIを作成するチュートリアル試してみた

## 初めに
最近マイクロサービスアーキテクチャでのアプリ開発(1)に興味があり、手始めとしてAmazon API Gatewayを使用したREST APIを作成する方法について試してみたので、その作成手順を説明します。

### Amazon API Gatewayとは
Amazon API Gatewayは、AWSが提供するフルマネージドサービスで、REST、HTTP、WebSocket APIの作成をすることができます。これにより、開発者はAWSのリソースや他のウェブサービスへのアクセスを提供するAPIを容易に作成でき、これらのAPIを自身のアプリケーションやサードパーティの開発者に提供することが可能になります(2)

### API作成手順について
この記事では、AWSが提供する「チュートリアル: Lambda プロキシ統合を使用して REST API を作成する(3)」手順について、実際に試してみたので作業手順を掲載します。手順に従うことで、初心者の方でも簡単にREST API作成を体験できるようになっていま

元記事を表示

3分でできるAWS Stepfunction構築(超簡易var)

## 概要
注文の受付から処理までの簡単なワークフローをAWS Step Functionsで作成します。実際にコードをコピーして簡単に手を動かしてこんな感じなんだ!というイメージを掴んでもらえるようにしました。中身は非常に薄いですし、この記事の内容は実務レベルではありません。

## 構築内容
Lambdaを使った注文の受付から処理までのワークフロー

## 前提条件
– AWSアカウントを持っていること
– AWSマネジメントコンソールにアクセスできること

## 対象者
– 初めてStepfunctionを触る人

## ワークフローの流れ

1. 注文受付
2. 在庫確認
– 在庫あり → 支払い処理へ
– 在庫なし → 注文キャンセルへ
3. 支払い処理
– 成功 → 注文完了へ
– 失敗 → 注文キャンセルへ
4. 注文完了 or 注文キャンセル
## 手順
### Step1. Lambda関数の作成

AWSマネジメントコンソールから
起動経路 :「Lambda」>「関数の作成」>「一から作成」を選択し、以下の設定で3つの関数を作成
#### a

元記事を表示

MLflow LLM Evaluate で Claude 3.5 Sonnet、GPT-4o、Gemini 1.5 Pro との QA を評価する

# はじめに

株式会社NTTデータ [デジタルサクセスソリューション事業部](https://enterprise-aiiot.nttdata.com/) で Databricks を推進している [nttd-saitouyun](https://qiita.com/nttd-saitouyun) です。

以下の記事で、Databricks から **Amazon Bedrock の Claude 3.5 Sonnet**、**Azure OpenAI の GPT-4o**、**Google Cloud Vertex AI の Gemini 1.5 Pro** を利用できるように設定してきました。

– [Databricks の Mosaic AI Model Serving Endpoint から Amazon Bedrock の LLM を利用する](https://qiita.com/nttd-saitouyun/items/4fc9bde0b338cb180e02)
– [Databricks の Mosaic AI Model Serving Endpoint から

元記事を表示

Systems Managerをざっくりまとめてみた

# はじめに
SystemsManager(以下、SSM)は、色々と機能があり全体感を掴めていなかったので簡単にまとめてみました。随時アップデート出来たらと思います。

# Systems Manager
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223559/7ff11206-e5c2-25cb-0521-c856d90136f0.png)

– SSMとは?
– ハイブリッドクラウド環境のための安全なエンドツーエンドの管理ソリューション
– SSMを使ってサーバ管理を行うには、サーバをマネージドノードにする
– マネージドノードにするためには?
– 1. SSM Agent導入
– SSM Agentがポーリング(SSM Agent→ SSM API)
– 2. アウトバウンド経路確保
– インターネット経由

元記事を表示

AWS Backupからの復元時にEC2に任意のプライベートIPアドレスを割り当てる方法

# はじめに
前回の記事で、`AMI`からの復元時に任意のプライベートIPアドレスを指定する方法を紹介しましたが、今回は`AWS Backup`で取得しているバックアップから復元する際に任意のプライベートIPアドレスを割り当てる方法も紹介したいと思います。

なお、今回は趣旨が異なるため、`AWS Backup`自体の説明や設定方法は解説せず、`AWS Backup`の運用が既に行われている前提で進めます。

– 【前】[EC2のプライベートIPアドレスを任意で割り当てる方法とサブネットCIDR予約](https://qiita.com/sakai00kou/items/83b08529e6b07cb06598)

## AWS Backupからの復元について
`AWS Backup`は設定することでEC2やEFS、RDS等のバックアップを定期的に行ってくれるサービスとなりますが、`AWS Backup`で取得したEC2のバックアップから復元する場合、`AMI`から再作成する場合と異なり、以下のように簡易的なネットワーク設定しかできないようになっております。

![Monosnap_2

元記事を表示

Amazon S3 conditional writesを試してみた

# 背景・目的
最近、下記のリリースが発表されたので、条件付き書き込みを簡単に試してみました。

https://aws.amazon.com/about-aws/whats-new/2024/08/amazon-s3-conditional-writes/

# まとめ
下記に特徴をまとめます

| 特徴| 説明
|:–|:–|
|概要|・Condition requestを行うとS3オペレーションに前提条件を追加できる
・Read、Writeリクエストにヘッダーを追加し、条件が満たされない場合、失敗する
|料金|条件付きリクエストには、追加料金はかからない
・失敗したリクエストを含めて該当するリクエストに対して既存の料金がかかる|
|条件付き読み込み|条件付き読み取りを使用すると、 読み取りリクエストに追加のヘッダーを使用して、S3オペレーションに前提条件を追加できる。
前提条件に合わないしない場合は、失敗する|
|条件付き読み取りが使用できるAPI|・GetObject
・HeadObject
・CopyObject|
|GetObjectで使

元記事を表示

「Boosting MySQL database performance with Amazon ElastiCache for Redis」をAWS CLIでやってみる

https://aws.amazon.com/jp/getting-started/hands-on/boosting-mysql-database-performance-with-amazon-elasticache-for-redis/

上記、「ABoosting MySQL database performance with Amazon ElastiCache for Redis」 をAWS CLIでやってみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3297641/5998e860-8ee6-6548-fb79-36abd0aced18.png)
ハンズオンから引用

:::note warn
**CloudShellから実施**
CloudShellはタブを2つ使用
タブ1:AWS構築用
タブ2:EC2操作用 (Session Manager接続)
:::
# 事前作業
## VPC作成 (タブ1)
:::note info
ハンズオン用のVP

元記事を表示

OTHERカテゴリの最新記事