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

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

CDKでBatchを構築したら Resource handler returned message: “Resource of type ‘AWS::Batch::ComputeEnvironment’ with identifier ‘MY_ARN’ d id not stabilize.” (RequestToken: XXX, HandlerErrorCode: NotStabilized)

AWS CDKでBatch環境を構築しようとしたところ、以下のエラーでハマりました。

“`
Resource handler returned message: “Resource of type ‘AWS::Batch::ComputeEnvironment’ with identifier ‘MY_ARN’ d
id not stabilize.” (RequestToken: XXX, HandlerErrorCode: NotStabilized)
“`

コンピューティング環境の作成に失敗しています。

根本的な原因としては、 `cdk.context.json` に記述されているネットワーク設定が古かったせいでした。
VPCの作成もCDKで行っていて、設定を変えたので元々あったcdk.context.jsonと実際の環境に差が出てしまったのが、よくなかったようです。
`cdk.context.json`を削除して実行したところ、最新の情報を反映した`cdk.context.json`が作成され、無事に構築することができました。

参考
https://stackov

元記事を表示

#AWS S3にアップロードされたZIPファイル自動解凍

# S3にアップロードされたZIPファイル自動解凍について:
Cloudfrontに繋いでいるS3へのファイルアップロードを簡素化するため、Zipファイル格納用S3に新しいZipファイルのアップロードが検知されたら、対象Lambdaが有効化され、Zipファイル格納用S3からZipファイルをダウンロードして解凍し、Cloudfront用S3にアップロードします。

本記事はそれを実現するlambdaを紹介いたします。

# 処理フロー:
1. Zip格納用S3にZipファイルのアップロードが検知された

2. 自動解凍&アップロードLambdaを呼び出す

3. (Lambda) Zip格納用S3から対象Zipファイルをダウンロードする

4. (Lambda) 対象Zipファイルを解凍する

5. (Lambda) 解凍した資材一式をCloudfront用S3にアップロードする

終了

# Lambda作成:
以下の手順を踏んで作成します

1. AWSコンソール画面の上部にある検索欄から「Lambda」を入力し、検索する
2. Lambda詳細画面の左メニューの「関数」を

元記事を表示

#AWS Lambdaを使用してメールとTeamsにアラーム通知を飛ばす

# Lambdaを使用したアラーム通知について:
本記事はアラーム通知の必要性からlambdaの構築、サンプルlambdaの紹介の流れで説明したいと思います。

AWSを運用する際にアラームやエラーログをメールやTeamsに通知する必要があります:

● 障害迅速な対応:アラームやエラーログをメールで受け取ることで、問題が発生したことを即座に把握し、迅速に対応できます。特にシステムの可用性に重要な影響を与えるエラーの場合、即座の通知は早期な障害復旧に大きく影響します。

● リアルタイムな監視:エラーログの自動通知はリアルタイムでシステムの健全性を監視する手段の一つです。通知を受けることで、運用チームは問題が発生しているかどうかをすぐに把握できます。

● ユーザーへの影響最小化:エラーが発生した際にユーザーに影響がある場合、それに早急に対応することで、ユーザーエクスペリエンスの損失を最小限に抑えることができます。

● トラブルシューティング:エラーログを通知メールとして受け取ることで、運用チームは迅速に問題の原因を特定し、解決策を見つけることができます。これはサービスの安定性やパフ

元記事を表示

Lambdaで実装するIotトピックのSubscriberとPublisher

# はじめに
最近、過去に業務で設計・実装したAWS IotトピックのSubscriberとPublisherのインフラコードを整理してみました。これを機に、アーキテクチャや実装した内容について記事で紹介しようと思います。

ソースコードは下記repoをご参照ください。
※今回紹介する内容は汎用的なものであり、実際業務で実装したアーキテクチャやアプリのロジックの記載はありません。

https://github.com/to-fmak/iot-topic-subscriber-publisher-demo

# やりたいこと
– Iotデバイス等からIotトピックに送られたメッセージをsubscribeし、DynamoDBに書き込みたい
– 特定のDynamoDBにアイテムが作成or更新or削除された際に、そのイベントの詳細をIotトピックにpublishし、Iotデバイス等で受信したい

# アーキテクチャ
## Subscriber
![iot-demo-subscriber.png](https://qiita-image-store.s3.ap-northeast-1.am

元記事を表示

【AWS】Terraformを簡単に動かしてみる

前回はTerraformを動かす事前の環境構築を実施しました。
今回は実際にTerraformを動かし、AWSにEC2インスタンスを作成してみます。

# 目次
1.概要
2.tfファイル作成
3.Terraform実行
4.AWSリソースの削除

# 1.概要
・Terraformを利用し、AWS環境にEC2インスタンスを作成します。
・事前の環境構築は完了済みとします。
・参考:https://developer.hashicorp.com/terraform/tutorials/aws-get-started/aws-build

# 2.tfファイル作成
### 【前提】
・tfファイルはHCLと呼ばれる、HashiCorp社開発の独自記法となる。
・基本的な構文は以下となります。
“`ruby
resource “リソースの種類” “リソース名” {
設定項目1 = 値1
設定項目2 = 値2
設定項目3 = 値3
}
“`
・リソースの種類、設定項目はTerraformで定義されている名前にする必要あり。(任意の名前ではNG)
・リソ

元記事を表示

LambdaからEventBridge Schedulerを作成してみた

# 背景・目的
EventBridgeをアプリケーションから作成する機会がありましたので、簡単に試してみます。

# 概要
## Amazon EventBridge スケジューラとは
[Amazon EventBridge スケジューラとは](https://docs.aws.amazon.com/ja_jp/scheduler/latest/UserGuide/what-is-scheduler.html)を元に整理します

> Amazon EventBridge スケジューラはサーバーレススケジューラで、一元化されたマネージドサービスからタスクを作成、実行、管理できます。EventBridge スケジューラは拡張性が高く、270 を超える AWS サービスと 6,000 を超える API オペレーションを呼び出すことができる何百万ものタスクをスケジュールできます。EventBridge スケジューラでは、インフラストラクチャをプロビジョニングして管理したり、複数のサービスと統合したりすることなく、スケジュールを大規模に配信してメンテナンスコストを削減できます。

– マネージド

元記事を表示

【AWS】Terraformを始める前の準備をする。

経験浅いながら、Terraformを実際に動かしてみたので参考になればと思いTerraformを使う環境構築から書いてみることとします。

# 自己紹介
・年齢は25歳、エンジニア歴3年です。
・都内のSier企業でエンジニアをやっています。
・主にSASE基盤、Azureを触っております。
・パブリッククラウドとセキュリティに興味あり。

# 目次
1.概要
2.IAMユーザーのアクセスキー作成
3.AWS CLIのインストール
4.AWS CLI認証情報の設定
5.Terraformのインストール

# 1.概要
Terraformを利用して、設定ファイルからインフラ構築、変更、管理を行う為、まずはTerraformを実行できる環境を作ります。

環境
・AWS
・EC2インスタンス(Linux):Amazon Linux2
・インスタンスサイズ:t2.micr

前提
・IAMユーザーは作成済みで、「AdministratorAccess」ポリシーが適応されています。

準備の流れ
①IAMユーザーのアクセスキー作成
②AWS CLIのインストール
③AWS CLI認証情報の設

元記事を表示

CloudFront+S3でブログに使う画像を配信したい

こんにちは、駆け出し12冠エンジニアのアスカです。今回は自前ブログのための画像配信環境をセットアップしていきます。
# 画像配信用のS3とCloudFrontをセットアップする
s3とCloudFrontディストリビューション、アクセス制御に使うOACを作成していきます。
OACとはOrigin Access Controlの略でCloudFrontからS3へのアクセスを制御します。従来はOrigin Access Identity(OAI)が利用されていた部分ですね。
CDKで作成していきます。
## インフラコード(CDK)作成とデプロイ
以下のブログを参考にさせていただきました。
https://qiita.com/ta__k0/items/bd700a074c394aa4d6f4

“`ruby:backend-stack.ts
import * as cdk from ‘aws-cdk-lib’;
import { Construct } from ‘constructs’;

export class BackendStack extends cdk.Stack {

元記事を表示

AWS Lambda関数作成入門してみます。

# FaaS(Function as a Service):Lambdaとは
![Arch_AWS-Lambda_64.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3511203/1557e3c9-6f10-7eda-a726-f4dbc0d15978.png)

Lambda(ラムダ)とは、AWSのサービスの1つです。
小さな計算をサーバーなしで実行するためのサービスで、サーバレスなコンピューティングサービスなどと言う紹介のされ方が一般的です。関数の種類としては所謂イベントドリブン型と言われるやつで、特定のイベントでトリガーされ、関数が動くという仕組みです。ざっくり過ぎてすみません。

## Lamdaの料金体系
無料枠について。
アカウント作成時はLambdaの場合「1,000,000リクエスト/月」無料で使用可能です。個人開発の範囲であれば越えることはまずないと思います。

## 関数の作成

![スクリーンショット 2024-04-12 19.26.37.png](https://qiita

元記事を表示

Amazon CloudWatch LogsのサブスクリプションフィルターをTerraformで自動構築する

# はじめに
Amazon CloudWatch Logsのサブスクリプションフィルターは、ログ出力された情報をほぼリアルタイムに他のサービスに連携できる便利な機能だ。AWS Lambdaとの連携も簡単に行えるため、ログ出力を契機とした非同期処理モデルを容易に実装可能にしてくれる。使いこなせればアプリケーション開発の幅が拡がるため、アーキテクチャのデザインパターンの抽斗に追加しておきたい。
今回はこのAmazon CloudWatch LogsのサブスクリプションフィルターをTerraformでお手軽に構築する。

なお、本記事の前提知識は、以下の通り。
– (Must)AWS+Terraformの基本的な知識
– (Want)Amazon Aurora(PostgreSQL互換)の基本的な知識

今回は、下図のような構成で、「Amazon Aurora(PostgreSQL互換)のデータベース更新に関するクエリログからAmazon CloudWatchのログストリームに配信したログ」を例題として扱う。このため、後者のAmazon Aurora(PostgreSQL互換)の初歩的な知識

元記事を表示

ECS Service ConnectでgRPCを使おうとして躓いたところ

# ざっとしたまとめ
– ECS Service ConnectはClientService側のサービスを先に作成しないといけない
– host名の grpc:// は必要なかった
– listenしているportは本当にあってる?

# 検証構成図
ECS ServiceをPrivateサブネットに配置
LambdaからALBを経由してServiceAをたたき、ServiceAはServiceBをたたくという構成
![20240414_構成図.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1952885/fac721f1-6007-f6d7-8e7c-8137e9e75dfb.png)

# 各躓きポイント
## ClientService側を先に作成する必要がある
ECS Service Connectでは
ClientService側を先に立てないとClient側のサービスがClientService側のサービスを検出することができないらしい
[参考記事](https://repos

元記事を表示

AWS公式が紹介している構成図描画ツール

# 目的
今まで我流でAWSの構成図を描いてきたのですが、フォーマルな資料でも通用する構成図を描けるようになりたいと考え、学び直した内容をこの記事に整理することにします。

# 結論
執筆時点でAWS公式サイトに記載されていた内容を、以下にまとめます。

#### 1.AWS構成図を作る時は、AWS公式が公開している[AWS アーキテクチャアイコン](https://aws.amazon.com/jp/architecture/icons/)の情報をインプットにする
AWS公式のアイコンセットに関する情報は以下サイトにまとめて記載されています。

– AWS アーキテクチャアイコン
https://aws.amazon.com/jp/architecture/icons/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/518221/908f26f3-8045-c5b3-ca68-b49a44247e8b.png)

#### 2.Powerpointファイル形式でツールキットをダウンロ

元記事を表示

【Amazon Q / Amazon KendraのOSS版??】Danswerを紹介!!

BedrockerでKendarな私。KendraみたいなOSSを発見しました。

公式サイト:https://www.danswer.ai/
GitHub:https://github.com/danswer-ai/danswer
ドキュメント:https://docs.danswer.dev/

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/299279d0-a712-1bc9-cd2d-502fdc0c5458.png)

オープンソースで開発されているためセルフホストが可能です。また、クラウドサービスも提供されています。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/e9ca1688-52cb-5156-e03b-2ac5bbc1362f.gif)

## 機能紹介

* コネクターを使っていろいろなデータソースからインデックス作成
* 検索だけでなく、生成AIを使った回答生成チャットイン

元記事を表示

CloudFormation-Fn::Select Fn::GetAZsのエラーについて

## 実現しようとしていたこと
CloudFormationでプライベートサブネットを作成する

## 使用したファイル(抜粋)
“`yml
SubnetPrivate1A:
Type: AWS::EC2::Subnet
Properties:
CidrBlock: 10.0.1.0/24
VpcId:
Ref: sbcntrVpc
AvailabilityZone:
Fn::Select:
– 0
– Fn::GetAZs: “”
MapPublicIpOnLaunch: false
Tags:
– Key: Name
Value: subnet-private-1a
– Key: Type
Value: Isolated

SubnetPrivate1C:
Type: AWS::EC2::Subnet

元記事を表示

Aurora3系バージョンアップに惜敗した話

# 環境
– Auroraバージョン
– 移行前:2.11.3(MySQL5.7互換)
– 移行後:3.03.2(MySQL8.0.26互換)
– 接続元
– embulk
– Spring boot

# バージョンアップ後に発生した事象
上記の通りバージョンアップした結果、embulkを用いたバッチ処理にて以下のエラーが発生していました。
“`
[ERROR] [MY-013132] [Server] The table ‘/rdsdbdata/tmp/#sql3612_187cb_0’ is full! (handler.cc:4380)
“`
結論から言うと、原因は一時テーブルに使われる領域がAuroraの仕様変更によって小さくなり、大量データを持つテーブルに対して全件取得する際に、容量不足が起きていました。リーダーインスタンスのみで発生する限定的な事象です。

# 対処方法
親切なことに公式ドキュメントにきちんと対応方法が記載されています。これ通りに容量を増やしたら無事に解消しました。

https://docs.aws.amazon.co

元記事を表示

AWS Cognito User Pool 設定

AWS駆け出しエンジニアとして、AWS Cognitoの設定を投稿します。
今回は、UserPoolを設定し実際にテストアクセスするところまでを記述します。

## ■初期設定

1.「ユーザープールを作成」を選択
![Cognito1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483720/f15965ba-8bff-c5bb-5008-1aec57611a82.png)

2.「Cognito ユーザープールのサインインオプション」で「Eメール」を選択
![Cognito2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483720/c65304d9-1a44-5b6c-ba46-5fa8b53ccd06.png)

3.「多要素認証」は「MFAなし」を選択
![Cognito3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4

元記事を表示

CloudFormationを1から学習する Part1-1 テンプレートのルールについて知る

# 概要
仕事がCFnをメインとして利用する環境になりましたので、改めて一から勉強し直します。
認定試験や前の仕事で少しだけ触ってはいましたが、terraformでいいじゃん的な気分でいてキチンと学習をしてきませんでした。
いざ業務でCFnメインとなるとかなーりいろいろなことを忘れていたり理解していないことを痛感しました。
ここでキチンと修行します。

この記事はそのメモやまとめです。
すでに設定済みの項目がいくつかある。
試行錯誤しながらやったので、手順として不要かもしれない。**あくまでメモ用。**

# 学習項目について
sysopsの試験対策講座から抜き出してみましたが以下の要素がわかっていれば基本は理解できているのかなと思えましたので、以下の要素の学習を進めたいと思います。
できるだけCLIとConsole画面の両方で確認していけばより理解が深まりそうです。
(書き出しているだけなので内容が被るかも……)

### 基本操作
“`
create stack
update stack
delete stack
“`

### テンプレートのルールについて
“`
Param

元記事を表示

AWSリソースをTerraformにImportする(SecretsManager関連)

# 前提
[全体の概略はこちらから](https://qiita.com/hrkkanda/items/1ef47fd6213547396c99)

# 構成図

👆の図のように、
– SecretsManagerで管理するのは、RDSProxyが使うDB認証とLambdaが使うDB認証。

# 環境構築用のmain.tf, variable.tf
## main.tf
“`tf
# secret used by application
resource “aws_secretsmanager_secret” “dbstring” {
name = “${var.project}-${var.env}-db-connection-string”
description = “PGconnection string will be used for connecting to database”
tags = {
Env = var.env
Account = var.account
Project = var.proj

元記事を表示

AWS コミュニティAMIを使用してみた

## はじめに
初めて検証用にコミュニティAMIを使用したため、使用後の料金を記事に投稿します

## 手順
**EC2を作成する際に以下の画面からコミュニティAMIを選択する**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2599002/a16a43de-c231-f0a4-2cdb-44dac56ccdb0.png)

**EC2を起動しましたが、特に料金の表示はありませんでした**
料金が気になります。

EC2起動後、選択したAMI名が表示されました。コミュニティAMIを選択しましたが、marketplaceになっていました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2599002/1ebb09f8-7828-007d-b00c-a81d4285a4aa.png)

**メールが届いていました**
![image.png](https://qiita-image-stor

元記事を表示

AWS SageMakerからGCP Vertex AIへトレーニング環境を移行した

以前、業務でモデルのトレーニングにAWSのSageMaker Studioをつかっていたのですが、期間限定で$10,000(1500万円..!)のGCPクレジットをいただいたので(Google Cloud for Startupsによるスタートアップ支援)、トレーニング環境をVertex AI Workbenchに移行しました。

SageMakerとVertex AIで使い勝手の違いがあったので、移行プロセスを備忘録として残します。

こちらは以前書いたSageMakerの記事です。

https://qiita.com/suzuki0430/items/d2a979c645927dcc05bd

# モデルトレーニング環境の構築

## Dockerfileの作成
SageMakerではアプリケーションコードをコンテナイメージに含めず、`dependencies`で外部からコードを読み込み、`entry_point`で指定したシェルスクリプトを通じてConda環境の切り替えやコードの実行を行なっていました。

**SageMakerのトレーニングスクリプト**
“`py
impo

元記事を表示

OTHERカテゴリの最新記事