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

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

Step Functionsを使ったECSコンテナの制御

# はじめに
この記事では、AWS Step Functionsを使用してECSコンテナを開始し、10秒後に自動的に停止させるプロセスを解説します。このプロジェクトには、IAM、ECR、CloudTrail、EventBridge、Step Functions、Lambdaなどの主要なAWSサービスを利用します。

作成したレポジトリーはこちらです。

https://github.com/sugiyama404/practice_step_function

こちらの記事を参考にしました。

https://dev.classmethod.jp/articles/step-functions-workflow-studio-create-workflow-to-stop-ec2/

# 目的
このプロジェクトの目的は、AWS Step Functionsを用いて、ECSコンテナのライフサイクルを効率的に管理し、自動化することです。特に、コンテナを起動してから10秒後に自動で停止させることで、リソースの効率的な使用と運用の簡素化を図ります。

# 機能一覧

+ **ECSコンテナの

元記事を表示

Amplify Gen2: SQLの設定時に苦戦したこと

# はじめに

サーバーレス大好きエンジニアです!
Amplify Gen2ではSQLデータベースを利用することができます。
実際に使ってみて、登録時に失敗したポイントを共有したいと思います。

# 目次
1. Amplify Gen2とは?
2. 登録方法
3. 失敗したこと
4. 成功した場合
5. まとめ

# 1. Amplify Gen2とは?
TypeScriptを使用してフルスタックアプリケーションを構築するための新たなAWS Amplifyが登場しました。
バックエンドリソースの作成がCLIからCDKに変更されたことで、より拡張性が高くなりました。
また、今までのAmplifyでは実現できなかった機能が追加され、その中でSQLデータベースの使用が可能になったことを知り、使ってみることにしました。

# 2. 登録方法
今回はMySQLの接続方法について書いていきます。
たった2つのコマンドで接続することができます。

まず、以下のコマンドでsandboxのシークレットを設定します。
“`
npx ampx sandbox secret set SQL_CONNECT

元記事を表示

GitHubActions + Terraformでコンテナアプリを構築してみた

# 背景・目的
以前、下記の記事でECSの知識の整理や、VPC、ECR等の環境を構築しました。
今回は、バックエンドサービスとして、ECS上でアプリを実装します。

– [GitHubActions + TerraformでECRを作成してみた](https://qiita.com/zumax/items/3741b10fd7f07d4c1a95)
– [GitHubActions + TerraformでNWを作成してみた](https://qiita.com/zumax/items/5a9435d0d7371a8c5033)

# まとめ
## 全体像
今回は、下記の環境を構築します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/165b8822-0f34-7b51-f7cd-35e4da026139.png)

### 構成
インフラとアプリの2つのリポジトリで構成します。

![image.png](https://qiita-image-store.s3.ap

元記事を表示

Amazon ECS・ECRのCLIメモ

# 背景・目的
最近、ECSやコンテナに触れる機会があります。
ECSやECRをCLIで作ったのでで忘れないようにメモします。

::: note info
コマンド間でリソースや、状態の整合性は取れていないのでご注意ください。
:::

# まとめ

::: note info
随時、追加していきます。
:::

下記に、目的別にコマンドをまとめます。

|分類|目的|コマンド|
|:–|:–|:–|
|[ECR](https://qiita.com/zumax/items/d2923de2219238cac7b5#ecr)|[レジストリを確認する](https://qiita.com/zumax/items/d2923de2219238cac7b5#describe-registry–%E3%83%AC%E3%82%B8%E3%82%B9%E3%83%88%E3%83%AA%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B)|`aws ecr describe-registry`|
||[ECRリポジトリを作成する](https://

元記事を表示

【AWS】中途半端な権限ポリシーでMFA登録解除・削除を行うとどうなるか

IAMアクションで`iam:DeactivateMFADevice` の権限をもっていて、`iam:DeleteVirtualMFADevice` の権限を持っていないユーザーが、マネジメントコンソールからMFAの削除を実行したら少し面倒な状態になるので、どういった状態になるか紹介します。

## 参考ドキュメント

[How can I troubleshoot the “entity already exists” error when an IAM user tries to create a new MFA device?](https://repost.aws/knowledge-center/mfa-iam-entity-error)

## 実際にためしてみる

今回qiitaというIAMユーザーに対して、MFAデバイス名もqiitaというMFAを割当ています。

またこのqiitaユーザーにはMFAの登録解除(`iam:DeactivateMFADevice`)の権限はもっているが、MFAデバイスの登録削除(`iam:DeleteVirtualMFADevice`)権限

元記事を表示

【AWS】近年の終了サービスから見るAWSの今後の方向性

# 前段
最近CodeCommitやCloud9の新規アカウント利用不可になったことでX上ではざわざわ…していました。
>・ [2024年7月27日時点におけるAWS CodeCommitとAmazon CloudSearchの新規利用に関して](https://dev.classmethod.jp/articles/aws-start-to-restrict-codecommit-and-cloudsearch/)
・[AWS Cloud9が突然、新規利用不可に? 代替策「SageMaker Studio コードエディタ」の利用手順](https://qiita.com/minorun365/items/f5289163795d5d7b21e2)

そこで、ここ直近一年(2023/4~)で終了(の予告があった)サービスをみて、今後の展開を考えてみようと思いました。
あわよくば、「このサービスもなくなるかもなー」と先見の明が少しでも生えれば焦らなくてすむな、という思いで書いています。
※あくまで個人見解です

# ここ一年で終了(の予告があった)したサービス

## AWS O

元記事を表示

Amazon Bedrockの新機能「Prompt Flows」におけるノードの説明と、旅行プランを提示するアプリケーションの実行

# はじめに

今回はAmazon Bedrockの新機能「Prompt Flows」におけるノードの説明と、
旅行したい場所と期間を入力するだけで、おすすめの旅行プランを提示してくれるアプリケーションを作成しました。

「Prompt Flows」は、ノードを配置して生成AIのワークフローを開発・管理できるサービスです。

https://aws.amazon.com/jp/bedrock/prompt-flows/

# 「Prompt Flows」におけるノードの説明
以下のサイトを参考にしました。

https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/flows-nodes.html

**・開始と終了**
**Flow input**
フローのスタート地点です。

**Flow output**
フローの処理結果の出力です。

**・Logic**
**Collector**
複数の入力を収集し、配列として返します。arrayItem入力に複数の項目を接続することができ、入力として配列のサイズを指定することも

元記事を表示

[AWS SDK for Rust] S3のget_object利用時のエラーハンドリング

## 概要
APIサーバー上で、AWS SDK for Rustを使ってS3からオブジェクトの取得をする際に、細かいハンドリングをしたかったのですが、それらしい情報が見つからなかったので参考までに残しておきます。

## 環境
検証に用いた環境です。最低限の記載ですので、[公式サイト](https://crates.io/crates/aws-config)等を参考に必要なパッケージは入れてください。([サービスごとのパッケージ](https://awslabs.github.io/aws-sdk-rust/))
“`toml
aws-config = { version = “1.1.7”, features = [“behavior-version-latest”] }
aws-sdk-s3 = “1.42.0”
“`

## エラーハンドリング
“`rust
let object = match client
.get_object()
.bucket(bucket_name)
.key(key)
.send(

元記事を表示

【ASP.NET】EC2(Windows Server)にASP.NETアプリケーションをWebデプロイする

# はじめに
## 対象読者
* ASP.NETで作成したWebアプリケーションのデプロイ方法を知りたい方
* ローカルフォルダへの発行ではなく、Web配置の方法を知りたい方
* IISの設定方法を知りたい方

特に2つ目のWeb配置を行う方法はあまりまとまっていなかったので、本記事をご活用いただければ幸いです。
また、EC2を使わない場合もIISの設定やデプロイの方法は共通したものになるので、参考になるかと思います。

## やること全体像
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257421/a6fa7a9b-cef6-f542-bab6-2374735e2497.png)

## 動作環境
**クライアント**
* Windows 11 Home(23H2)
* .NET 8.0(SDK 8.0.204)
* Visual Studio 2022

**サーバ**
* Windows Server 2022(21H2)
* IIS(10.0.20348.1)
* .NET

元記事を表示

DynamoDBのdelegated operationsは自動的にコストがかかる

明細(API Operations)を見ていたら見慣れないDelegatedOperationsというものを見つけました

DynamoDB on-demandのCDCにかかる料金のようです

https://aws.amazon.com/dynamodb/pricing/on-demand/

>Amazon DynamoDB charges change data capture operations as “delegated operations”. This means that Amazon DynamoDB performs them on your behalf 略

日本語
>変更データキャプチャ単位: DynamoDB は、DynamoDB テーブルの項目レベルの変更をキャプチャし、Amazon Kinesis Data Streams や AWS Glue などの他の AWS サービスに複製することができます。DynamoDB はこれらの変更を委任された操作としてキャプチャします。つまり、DynamoDB がユーザーに代わってレプリケーションを実行するため、スル

元記事を表示

CodeCatalystのMarkdown表示機能についてわかったこと

# はじめに

みなさんこんにちは!Amazon CodeCatalyst(以降はCodeCatalystと記載します)のソースリポジトリにてドキュメント管理をする中で、図・画像のMarkdown表示機能についてわかったことをご紹介していきたいと思います。

# CodeCatalystとは

AWS公式が提供するドキュメントによると、CodeCatalystについて以下の記載があります。
>Amazon CodeCatalyst は、ソフトウェア開発プロセスに継続的インテグレーションとデプロイの方法を採用するソフトウェア開発チーム向けの統合サービスです。 CodeCatalyst 必要なツールがすべて 1 か所にまとめられています。継続的インテグレーション/継続的デリバリー (CI/CD) ツールを使用して、作業の計画、コードの共同作成、アプリケーションの構築、テスト、デプロイを行うことができます。

https://docs.aws.amazon.com/ja_jp/codecatalyst/

ソフトウェア開発に必要な機能を備えており、タスクの管理・ソースコードの管理・ワークフロ

元記事を表示

SageMakerでのHuggingFace Diffusersデプロイガイド(3/3):Stable Diffusion XL + Control Net Canny & Inpaintのデプロイ

# 背景
– 前回[SageMakerでのHuggingFace Diffusersデプロイガイド(2/3):Stable Diffusion XL + Control Net Depthのデプロイ](https://qiita.com/munaita_/items/c80a499f937f403cc8a2) でPytorchコンテナを利用してHuggingFaceのモデルをカスタマイズして推論コードを書く方法を紹介しました
– 今回は、同様の手法で ControlNetのCannyやInpaintの推論コードを書く方法を紹介していきます
– baseモデルはSDXLです

https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0

# requirements.txt で必要なライブラリを追加する

前回同様、PyTorchコンテナでStableDiffusionを動かす場合、`diffusers` や `transformers` などのLibraryをインストールする必要があります. requirements.

元記事を表示

#02 AWS でスナップショットの作成とインスタンスの復元をする

# はじめに
今回はインスタンスの復元を行いました。

バックアップを取りたいインスタンスのスナップショットを取得
→ そのスナップショットをもとにボリュームを作成
→ 作成したボリュームと新規インスタンスのルートボリュームを置き換える

という方法で復元していきます。

# 1. Amazon EBS スナップショットの作成
スナップショットとは、ある瞬間のファイルやディレクトリなどのイメージを保存したものです。
Amazon EBS スナップショットは、Amazon EBS ボリュームのデータを新しい EBS ボリュームに復元するために必要な情報を Amazon S3 にバックアップしてくれます。

## 手順
> 1. Amazon EC2 コンソール ( https://console.aws.amazon.com/ec2/ ) を開きます。
>
> 2. ナビゲーションペインで、[Snapshots] (スナップショット)、[Create snapshot] (スナップショットの作成) の順に選択します。
>
> 3. [リソースタイプ] で、[ボ

元記事を表示

Amazon Bedrock の Converse API 使って invoke_modelを置き換えてみる

## 前書き
Converse APIは2ヶ月前に発表されてますが、
langchainを使うケースが多かったので、メモとして残します。

https://aws.amazon.com/jp/about-aws/whats-new/2024/05/amazon-bedrock-new-converse-api/

## Converse APIとは

Converse API は Amazon Bedrock モデルと連動する一貫したエクスペリエンスを提供するため、開発者がモデル固有の実装を管理する必要がなくなります。この API を使用すると、コードを一度記述するだけで、Amazon Bedrock のさまざまなモデルでシームレスに使用できます。 —公式の説明

今までモデルを使用する際に、モデルごとにフォーマットがバラバラでしたが、Converse APIを使用すれば、一貫したリクエストができるようになりました。

## サンプル

### 既存のコード

“`python:invoke_model.py
import json
import boto3

bedrock

元記事を表示

Amazon EBS ボリュームの種類

SAA-C03向けメモ

## Amazon EBS ボリュームの種類

Amazon EBS ボリュームの種類

プロビジョンド IOPS
SSD

汎用
SSD

スループット最適化
HDD

コールド
HDD

ボリュームタイプ

io2 Block Express

io1

gp3

gp2

st1

sc1

最大 IOPS*/ボリューム

256,000

64,000

16,000

500

250

最大スループット
(MiB/秒)

4,000

1,000

1,000

250

500

250

無料

3,000IOPS
125 MiB/秒(スループット)

最小ボリュームサイズ

teratermでAWS EC2に接続しようとしたら失敗した

# はじめに
AWS初学者な著者はいつかに購入したUdemyを使用して勉強していたところ、EC2インスタンスにて立てたAWS Linux2024にTeraTermからSSH接続をしよう!というフェーズでなぜかうまくログインが出来ませんでした。

# 発生環境
+ OS:Windows11
+ Tera Term:4.106
+ 接続先:Amazon Linux 2023

# 作業内容

### 1.EC2を作成する
+ AMI(Amazonマシンイメージ):Amazon Linux 2023
+ セキュリティグループ:インバウンドルールにTCP 22番ポートが許可されているもの(SSH接続に必要な通信を許可)
+ キーペア:プライベートキーが手元にあるもの、もしくは新規作成しプライベートキーをダウンロードする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817308/65fe69bb-92df-9480-5020-dc905b92ad80.png)

### 2.SSH接続

DynamoDBがAuto Scalingに対応したと聞いて(試してみた

# はじめに
「対応した!」というのは知識として抑えていたのですが、なかなか自分で触る機会がなかったので、気になる所を触ってみてのメモ書きです。

https://aws.amazon.com/jp/blogs/aws/new-auto-scaling-for-amazon-dynamodb/

2017年の発表。 大分、ネタとしては寝かせてますね。。。

単純にGUIの画面で作ってみて終わり!という、やってみた系が多いのですが、、、スケジュール(cron式)でのスケーリング定義をやっていきたいと思います。

# テーブル作成
テーブル作成時に「Auto Scaling」を有効にして作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281768/e9676474-7ce1-71fd-1bb0-d2f9a9d148a8.png)

# アラートが生成(上記のテーブル作成時に自動で)
![image.png](https://qiita-image-store.s3.ap-nor

#07 AWS(APIGateway/Lambda) + Serverless Framework + BrefでサーバレスなLaravel環境を構築してみる②

# はじめに
今回は前回の記事「AWS(APIGateway/Lambda) + Serverless Framework + BrefでサーバレスなLaravel環境を構築してみる①」の続きになります。前回はPHP動作環境を構築してみましたので、今回は記事のタイトルにある通りLaravel動作環境をAWSにデプロイしてみます。

# 1. 前提条件
AWSの各種サービスに対する基本的な知識、AWS CLI設定済み、npm/composerインストール済み、Serverless Frameworkインストール済み

# 2. 動作環境
npm:9.6.1
composer:2.1.14
AWS CLI:2.5.5
Serverless Framework:3.2.81
Bref:1.7
PHP : 8.2.1
Laravel : 10.4.1

# 3. 今回利用するツールに関して
前回利用したBrefとServerless Frameworkに加えて、AWSでLaravelを実行するためにLaravel-Brefを利用します。

### Laravel-Brefとは
Laravel-

文系未経験が約一か月でSAA合格したときの勉強法

# はじめに
この度、文系未経験でAWS認定ソリューションアーキテクトアソシエイトに約1ヵ月で合格することができました!
同じように未経験でこの資格に挑もうと考えている方の役に立てばと考え、この記事を書かせていただきました。
少しでも勉強中の方の参考になれば幸いです!

# 学習前提
2024年4月に新卒(文系未経験)としてIT業界へ
→AWS CLFを5月に取得(約1週間学習)
→約1ヶ月AWS学習から離れたのち、SAAを7月に無事取得(約3週間学習)

# 学習の流れ
学習の流れは以下の流れで行いました。

 **1.教科書によるインプット**

 **2.Ping-tによるアウトプット(分野別問題)**

 **3.Ping-tによるアウトプット(試験レベル問題)**

以降では、それぞれの学習中、自分が意識していた事、その理由と効果についてまとめました。

# 1.教科書によるインプット
書籍:AWS教科書 AWS認定ソリューションアーキテクトアソシエイト テキスト&問題集

![image.png](https://qiita-image-store.s3.ap-northe

セッションマネージャーでEC2に接続できない!!なんでだ!!!

## はじめに
こんにちは!
みなさんセッションマネージャーは使っていますでしょうか?
先日、社内OJTの1つの企画として新卒ちゃん達にAWSのハンズオンをしてもらいました。その時にセッションマネージャーを使ったEC2への接続で何名か躓いたので、今回はセッションマネージャーでEC2に接続できない時の対処法を整理しました。セッションマネージャーで接続できないと困っている人の助けになればと思います。

## セッションマネージャーとは
簡単に言うと、SSHキーも踏み台サーバーも使わずに、しかもインバウンドルールも不要でEC2インスタンスに接続できてしまう神機能のことです。詳しくは公式ドキュメントをご覧ください。

https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager.html

https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/connect-to-an-amazon-ec2-insta