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

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

AWS CDKのテストを書いてみた

AWS CDKを利用してインフラ環境を作成したのでテストまで記述してみました。

CDKのテストは公式からモジュールが提供されているのでこれを利用してテストを書きます。
AWS CDKのテストには2つのカテゴリがあります。
– **アサーションテスト** 生成されたCloudFormationテンプレートに対して、リソースが特定のプロパティを持つかをテストします。改修やリファクタ時の回帰テストやテスト駆動開発にて新機能を開発する場合に役立ちます。

– **スナップショットテスト** CDKスタックから合成したCloudFormationテンプレートに対して、以前保存したテンプレートとの差分を比較します。リファクタされたコードが元のコードと全く同じように動作することを確認できます。

使用しているリソースは主にECR, AppRunner, DynamoDBとなります。AppRunnerでフロントとバックエンドの環境を動かしています。

## アサーションテスト
スタックのインスタンスを作成してCloudFormationのテンプレートを生成するところから始まります。
`console

元記事を表示

AWS-CDKを用いたAmazon ECS構築

# 前提条件:

– VPC、サブネット、セキュリティグループは作成済み
– ECS,ECRを使用する際のIAMロールは作成済み
– 言語はtypescriptを使用
– ローカル環境で実行する
– クレデンシャルキーは発行済み
– Docker Desktopはインストール済み

# ローカル環境構築:

“`ローカル
#プロジェクト用にディレクトリを作成
mkdir my-ecs-project

#移動
cd my-ecs-project

#CDKプロジェクトの初期化
cdk init app –language typescript

#モジュールのインストール
npm install @aws-cdk/aws-ec2 @aws-cdk/aws-ecs @aws-cdk/aws-ecr @aws-cdk/aws-iam @aws-cdk/aws-ecr-assets

“`

# コーディング:

## **CDKスタックの定義**

“`lib/my-ecs-project-stack.ts
import * as cdk from ‘aws-cdk-lib’;
i

元記事を表示

AWS SAPを更新、3年前初心者で取得した時と今の感想と勉強方法

# 内容
3年ほど前にAWS SAPを取得。更新期限が迫っていたため、更新を行いました。その時の記事は下記になります。

https://qiita.com/infra365/items/b9f005ed86475524c88f

# 勉強時間とスコア
* 勉強時間:8時間位
* スコア:790(合格点は750)

# 勉強方法
下記参考書を1周する。試験の要点として下記が重要だと感じた。
[AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト – プロフェッショナル 改訂第2版](https://www.sbcr.jp/product/4815617929/)

* 要件を理解する
問題によって何を求められているか考える。コストを優先するか、可用性を優先するか、リードタイムを優先するかなど。実現可能な構成は複数存在するが、要件によって最適な答えが異なるため。

* ベストの方法を考える
EC2やスクリプトでやるのではなくマネージドサービスを使用する、手動ではなく自動化をするなど。

* そのサービスで実現可能か考える
例えば連携出来ないサービス同士が連携されてい

元記事を表示

Amazon Bedrock Converse API と Tool use を知識ゼロから学び,発展的なチャットアプリを実装する

## はじめに

最近 Converse API を叩きすぎて,毎日`throttlingException`を出している[@ren8k](https://qiita.com/ren8k) です.
先日,Amazon Bedrock の [Converse API](https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference.html) と [Tool use](https://docs.aws.amazon.com/bedrock/latest/userguide/tool-use.html) (function calling) を利用した Streamlit チャットアプリ(デモ)を作成し,以下のリポジトリに公開しました.本記事では,チャットアプリ開発の過程で得た知見を基に,初学者から上級者までを対象として,Tool use の仕組みやその利用方法,発展的な活用方法を共有いたします.

https://github.com/ren8k/aws-bedrock-converse-app-u

元記事を表示

Amazon SQS→Lambdaトリガー後の非同期処理

# 前回と前々回
https://qiita.com/remonga/items/b865126b580aa79607e2

https://qiita.com/remonga/items/0b0ac02c5e88441039c0

#### EC2 → Amazon EventBridge → Amazon SQS → Lambda
という処理の流れをこれまで構築してきました。
これで時間差で実行したい処理を疎結合気味に実行することができます。

問題はこのLambda以降の流れになります。

## Lambdaについて
SQS → Lambda
のようなAWSサービスをトリガーにしてLambda関数が実行される仕組みのことをイベントソースマッピングといいます。

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-concurrency.html

そしてこのイベントソースマッピングによるLambda関数の同時実行数が1000と記述があります。
それ以上のLambdaイベントが失われてしまいますので結構

元記事を表示

AWS SES入門:日本語or英語で簡潔に理解するクラウドコンピューティングの基礎

# Amazon SESとは :beginner:
Amazon SES(Amazon Simple Email Service)は、開発者が任意のアプリケーションからメールを送受信できる、コスト効率が高く、柔軟でスケーラブルなメールサービスです。SESは、大量メール送信やトランザクションメッセージング向けに設計されており、インフラ管理からメール配信までのすべてを処理します。

## 【Amazon SESの特徴】
柔軟な送信オプション: SMTPインターフェースまたはAWS SDKを介してメールを送信できます。
スケーラブルなインフラストラクチャ: 大量のメールトラフィックを処理するために自動的にスケールします。
レピュテーション管理: メール配信を監視し、良好な送信者レピュテーションを維持するためのツールを提供します

元記事を表示

Laravel10でS3の画像を扱う

Laravel10でS3に画像をアップロードしたり、S3の画像を表示する処理を書いたのでメモとしてまとめておくことにしました。

## S3バケットの用意
バケットを作成します。

バケット名を入力し、パブリックアクセスのチェックを外します。これ以外はデフォルトのままバケットを作成します。
![スクリーンショット 2024-06-10 23.43.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295926/3c50ae68-22f6-4619-dd67-77580d038fb4.png)

## IAMの作成
S3を操作するためのIAMユーザーを作成します。ポリシーは必要なものをアタッチすれば大丈夫です。
![スクリーンショット 2024-06-10 23.48.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295926/e11349c8-ae68-bc99-8fc6-ed0927bb518e.png)

元記事を表示

AWS Cost Explorer で ”EC2 – Other”(EC2 その他) の内訳を確認する方法 2024年版

ジャーニーマン( @beajourneyman )です。

普段は Amazon Connect を基盤としたシステムの開発・保守のPMをしています。

今回は調べものをしていて気になった点があり、調べて触ったメモを残しおく主旨のエントリーです。過去にも、いくつか調べて対応した内容をまとめています。

https://qiita.com/beajourneyman/items/d385bf9e139048630038

# 今回のテーマは AWS Cost Explorer

https://aws.amazon.com/jp/aws-cost-management/aws-cost-explorer/

> AWS Cost Explorer は使いやすいインターフェイスを備えており、AWS のコストと使用状況を長期にわたって視覚化、理解、管理できます。すぐに使用を開始し、カスタムレポートを作成してコストと使用量のデータを分析できます。大まかにデータを分析したり (例: すべてのアカウントの合計コストと使用量)、コストと使用量のデータを詳細に分析して傾向、コスト要因、異常を特定したり

元記事を表示

AWS RDS入門:日本語or英語で簡潔に理解するクラウドコンピューティングの基礎

## Amazon RDSとは :beginner:
Amazon RDS(Amazon Relational Database Service)は、AWSが提供するリレーショナルデータベース管理サービスです。物理的なデータベースのセットアップやメンテナンスの手間を軽減し、スケーラブルで高可用性なデータベース環境を迅速に利用開始できます。

## 【Amazon RDSの特徴】
複数のデータベースエンジン: MySQL、PostgreSQL、MariaDB、Oracle、SQL Server、Amazon Auroraなど、複数のデータベースエンジンに対応しています。
高可用性と耐障害性: マルチAZ配置により、データベースの可用性と耐障害性を確保。障害時には自動的にフェイルオーバーが実行されます。
スケーラビリティ: C

元記事を表示

Amazon CloudFrontを試してみた

# 背景・目的
CloudFrontについて、今まで全く触ってこなかったので整理します。また、簡単に動作させてみます。

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

| 特徴 | 説明 |
|:–|:–|
|CloudFrontとは| ・静的、動的なウェブコンテンツの配信を高速化するWebサービス

・エッジロケーションというデータセンターの世界的なNWを経由してコンテンツを配信する

・CloudFrontでサービス提供されているコンテンツをユーザがリクエストすると、リクエストはエッジロケーションにルーティングされ、レイテンシーが最小になる

・コンテンツが、エッジロケーション内に最も低いレイテンシーで既に存在している場合、CloudFrontはそのコンテンツを即時に配信する。存在しない場合は、定義されたオリジンから取り込む
|キャッシュ|・エッジロケーションに各ユーザのリクエストをAWSのバックボーンNW経由でルーティングすることで、コンテンツの配信を高速化する

・AWS ネットワークを使用することで、パフォーマンスが向上する

元記事を表示

EC2 に DockerとDocker compose をインストールする手順

ec2 にdockerをインストールする簡潔な手順をメモしたので公開しておきます。
(上からやってけばできるはずですが、現在もできるかの保証はしてません。)

なお、EC2 は Amazon linux2 で作成し、SSH 接続した状態を前提とします。

# install docker
“`
sudo yum install -y docker # dockerのインストール
sudo service docker start # dockerの起動
sudo usermod -a -G docker ec2-user # ec2-userをdockerグループに入れる。これでec2-userがdockerコマンドを実行できる
sudo docker info # dockerの起動確認
“`

# install docker compose
“`
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -SL https://github

元記事を表示

github actions で OIDCでAWSを認証しようとしたらエラーがNot authorized to perform

## 概要
[この記事](https://zenn.dev/kou_pg_0131/articles/gh-actions-oidc-aws)を参考にgithub actions で OIDCでAWSを認証しようとしたら以下のエラー
“`
Could not assume role with OIDC: Not authorized to perform sts:AssumeRoleWithWebIdentity
“`

## 解決策
以下の部分が良くなかった

“`
“StringEquals”: {
“token.actions.githubusercontent.com:aud”: “sts.amazonaws.com”,
}
“`

IAMロールの**信頼されたエンティティ**を以下に修正

“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “”,

元記事を表示

App Runner と ECS でのワーカー環境の検討〜イベント駆動にしたいんじゃ〜

## はじめに
現在わたくしモリタロウ🌳は App Runner がAPIサーバーの役割を担うシングルページアプリケーションを開発しています。
このAPIサーバーにてなんでもかんでも処理を任せていたので、非同期OKな重たい処理は別のサーバー(ワーカーサーバー)に任せて、APIサーバーの他リクエストに影響が出ないような負荷分散に取り組んでみました。

### 現状の構成図
Image from Gyazo

## App Runner でのワーカーサーバー検討
APIサーバーが App Runner でできていたので、デプロイも楽だし一旦 App Runner でのワーカーサーバーを構築してみました。
APIサーバーからSQSにジョブを投げて、常時ポーリングを行うワーカーサーバーにて重

元記事を表示

別のAWSアカウントで使用している証明書を使用したい

環境構築中に、作業しているアカウント(以下:Aアカウント)とは別アカウント(以下:Bアカウント)で管理しているドメインを経由して接続を行わなければならないといったことがございました。

その際にALBの構築中に証明書を選択する必要があったのですが、Bアカウントの証明書は当然使用できないため、方法はないかと対応した際の手順をまとめさせていただきます。

イメージ

![スクリーンショット 2024-06-06 151050.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167293/d634b46e-a5f8-3beb-e9f6-a2bfe72f850c.png)

前提

・今回使用したいドメインはBアカウントのRoute53で管理している。
・Aアカウントでロードバランサーを作成する際にBアカウントで管理している証明を使用したい。

Aアカウントでの作業

証明書をリクエストする

1,AWSのホーム画面からAWS Certifi

元記事を表示

AWS Certified DevOps Engineer – Professional合格の雑談

**:congratulations:2024年5月27日に一発でAWS認定DevOpsエンジニア – プロフェッショナル(DOP)がギリギリの点数で合格しました:congratulations:**

→[SAPの時](https://qiita.com/nakamurahiro/items/948a833717e836527046)と同様またギリギリ🙈

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236892/e91f7f43-5b72-dc5c-5168-86b8571071e3.png)

今回もあんまり長い記事を書きたくないので、雑談にしましょう:relaxed:

# 試験内容について:bow:
SAPと同様に連続3時間で集中して、相変わらず疲れました😿。SAPの時は日本語受験でつらかったので、今回は大人しく母語で受験しました。
問題文と選択肢は若干SAPより短かったです、また母語なので読みスピードは速くて、残り30分の

元記事を表示

Amazon Lookout for Visionを使ってみる

## はじめに
– Amazon Lookout for Visionで簡単に異常検知ができると聞き、試してみた記録

↓ほとんどこちらの手順通り

https://catalog.us-east-1.prod.workshops.aws/workshops/cbfb2625-416f-45e3-88b2-b68a1d25dab2/ja-JP

## 学習に使用するデータを用意
– 今回はMVTecのscrewデータセットをダウンロードして使用
– ダウンロード方法は割愛

https://www.mvtec.com/company/research/datasets/mvtec-ad

– 学習用に正常:20枚
– テスト用に正常:10枚、異常:10枚
を適当に選ぶ

## s3bucketを用意
– リージョンはLookout for Visionを使うリージョンと合わせる
– 以下のようなフォルダ構造にして、画像を入れる
– 今回は正常データのみで学習を試みたのでtrain/anomalyは空っぽ

任意の名前のbucket
├─train
│   ├─anomaly(空っぽ)

元記事を表示

IPv4 の VPC に IPv6 を追加してみた

# はじめに
IPv4 のパブリック IP が有料化になったこともあり、IPv6 について少し確認してみました。
せっかくなので記録として残しておきたいと思います。

# 構成
追加するネットワーク構成は以下になります。

![スクリーンショット 2024-06-03 15.43.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82090/62f10cc3-c3f5-9b03-5410-65efeed86d20.png)

今回は検証のため、赤枠の部分に設定してみました。

# 設定
**Step1. VPC ~ Step.2 サブネット ~ Step3. ルートテーブル** の流れで設定を行いたいます。

## Step1. VPC に IPv6 CIDR の追加
– `[ VPC > 対象のVPCを選択 > アクション > CIDR の 編集 ]` をクリック
![スクリーンショット 2024-05-10 11.25.38.png](https://qiita-image-store.s3.ap

元記事を表示

【AWS SageMaker】Notebookインスタンスにて組み込みアルゴリズムのXGBoostでハイパーパラメータ調整ジョブを行ってみた

# 背景
AWS SageMakerを勉強していると、SageMakerに「トレーニング > ハイパーパラメータの調整ジョブ」というものがあったので、SageMakerの理解を深めるために、組み込みアルゴリズムのXGBoostのハイパーパラメータを、ハイパーパラメータ調整ジョブで調整してみました。

# 環境
sagemaker 2.219.0

# 行った事(概要)
Nishikaのトレーニングコンペのマンション価格予測に対して、組み込みアルゴリズムのXGBoostを使って価格予測を行う際に、このXGBoostのハイパーパラメータを、ハイパーパラメータ調整ジョブを使って、調整してみます。

https://competition.nishika.com/competitions/mansion_pra/summary

# 行った事(詳細)
### 1. Nishikaのサイトからデータを取得
上記のNishikaのコンペサイトから、train.zipファイルとtest.csvファイルをダウンロードします。
train.zipファイルは解凍して、trainフォルダを取得します。

元記事を表示

CloudFlare Workers AWSのRoute53で管理されている親ドメインのサブドメインを使う

## 概要

CloudFlare Workers & PagesでデプロイされているRemixのアプリケーションのドメインをRoute53で管理されている親ドメインのサブドメインで利用できるようにする。

## 前提

親ドメイン(miriwo.work)はお名前.comで購入後、DNSを自身のAWSのRoute53に変更している。
その親ドメインのサブドメイン(www.miriwo.work)をCloudFlare Wokers & Pagesでデプロイ中のアプリで使う。
HTTPS通信したい場合は親ドメイン、サブドメインにSSLの証明書が付与されていること。

## 方法

1. Workers & Pagesの当該アプリケーションの詳細ページに移動する。
1. 「カスタムドメイン」のタブを開く。
1. 「カスタムドメインを設定」をクリックする。

![概要___S_okawa_s-arcana_co_jp_s_Account___Cloudflare.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.c

元記事を表示

【AWS備忘】レプリケーションを使わずにS3バケットのアカウント間オブジェクト移行をする

# 目的
レプリケーションを使わずにアカウント①のS3バケット内のオブジェクトをアカウント②のS3バケットにコピーする
アカウント①・・・移行元
アカウント②・・・移行先

# 手順

## 移行先S3バケットの設定
### 移行元のIAMユーザーからの書き込みを許可するバケットポリシーを作成する
**[移行先S3バケット]**>**[アクセス許可]**>**[バケットポリシー]**>**[編集]**>バケットポリシーを入力し**[保存]**をクリックする
※バケットポリシーは以下のコードを参照

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3574230/11b1b688-0963-2b89-5f76-08c90589f32c.png)

“`
{
“Version”: “2012-10-17”,
“Id”: “test”,
“Statement”: [
{
“Effect”: “Allow”

元記事を表示

OTHERカテゴリの最新記事