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

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

Terratest を使って AWS 環境構築の検証を行う

# はじめに
Terratest というツールが色々と有名なので、これを利用してAWS環境の構築検証を行ってみました。

# 概要
Gruntwork.io が提供する terraform のテストツールです。
terraform で書かれたコード(tfファイル)をラッピングして `plan > apply > destroy` の一連処理を行います。対応言語は Go です。
– URL
– 公式サイト – https://terratest.gruntwork.io/
– GitHub – https://github.com/gruntwork-io/terratest

# ディレクトリ構成
“`bash:tree
$ tree
.
├── ec2
│ └── main.tf
├── modules
│ └── alb
│ ├── main.tf
│ └── variables.tf
└── terratest
└── alb_test.go
“`

# ファイル
#### ./ec2/main.tf
EC2を作成するための t

元記事を表示

AWS CloudFormation の Mappings を活用してマルチリージョン展開について

AWS 環境でインフラストラクチャをコードとして管理する際、AWS CloudFormation は強力なツールです。
しかし、マルチリージョン展開を行う場合、特に AMI(Amazon Machine Image) などのリージョン固有のリソースを扱うときには注意が必要です。
CloudFormation の Mappings セクションを活用して、リージョン間で異なるリソースを動的に参照し、テンプレートの再利用性を高める方法について

### なぜ Mappings が必要なのか?

– AMI はリージョンごとに異なる
AMI は EC2 インスタンスの OS やアプリケーション設定を含むイメージです。
しかし、AMI はリージョンごとに異なる ID を持ちます。
同じイメージでも、リージョンが異なれば AMI ID も異なります。

– 問題点
テンプレート内で AMI ID をハードコードすると、そのテンプレートは
特定のリージョンでしか動作しません。
他のリージョンでスタックを作成しようとすると
AMI ID が存

元記事を表示

SOA-C02対策(モニタリング系)

# AWSモニタリング/監視サービス
* Amazon Cloud Watch
* AWS Cloud Trail
* AWS Config
* AWS Personal Health Dashbord

以下、詳細説明

## Amazon Cloud Watch
メトリクス、ログ、イベントの監視、収集する

## メトリクス
標準メトリクス:CPU使用率やディスクI/Oなど
カスタムメトリクス:アプリケーションごとのメモリ使用率やOS内部で取得する必要があるもの。カスタムメトリクスにはCloudWatchエージェントの導入が必要

### Cloud Watchのアラーム設定
*統計:メトリクスを指定の期間で集計した値。平均/最大/合計/90%タイルなどから選択
*期間:統計を取得する時間のながさ。
*アラームを実行するデータポイント:アラーム実行のための閾値超過数。EX)「5/5」とした場合は5回連続して閾値が超過するとアラームが実行する

### アラームステータス
* OK :定義した閾値を下回っている
* ALARM:定義した閾値を超えている
* INSUFFICIENT_

元記事を表示

EC2 Image Builder で CloudBeaver の AMI を作成する

こんにちは。インサイトテクノロジーの松尾です!

以前の投稿で、EC2起動時のユーザーデータを使用してCloudBeaverを簡単に起動する方法を紹介しました。

https://qiita.com/takumats/items/76bb1db8a0ffccc2aad1

ただ、毎回、起動時に指定するのも面倒なので、EC2 Image Builderを使ってAMIを作成する方法を紹介します。

※以前の投稿の方法でEC2を起動した後にそれをAMIにして保存すればいいだけとも言えなくもないですが、本投稿ではEC2 Image Builderを使ってみたかったのであえてEC2 Image Builderを使っています。

## EC2 Image Builderとは

AMIを作るためのCI(一連のスクリプトを自動化したもの)のサービスのようなイメージです。

https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html

今まで、イメージ作成を手作業でやっていたようなケースでは、I

元記事を表示

AWS Jr.Championsに選出されました

## はじめに
初めまして社会人2年目のBigJunです。この度、AWS Jr.Championsに選出されました!本記事では私の経験やこのプログラムについて、また今後の目標を共有したいと思います。

## AWS Jr.Championsとは
AWS Jr.Championsは、AWS Partner Network (APN) 参加企業に所属し、社会人歴1~3年目で突出したAWS活動実績を持つ若手エンジニアに対する表彰プログラムです。2024年度はなんと日本全国から95名の方々が選出されました。
### プログラムの特典
– Japan AWS Jr. Champions 限定 Meetup に招待され、コミュニティ活動への参加権
– 他企業のJapan AWS Jr.Championsとの交流
– 特別セミナー、Lightning Talk、Workshop等、インプットとアウトプットの機会

## 応募のきっかけ
#### AWSに興味を持った理由
一昨年の就職活動中に多くの面接官が「クラウド分野に注目している」と話していたことです。当時、IT未経験者だった私はクラウド技術に

元記事を表示

AWS CLIのバージョン2をインストールしてもバージョン1のままになる問題の解決方法

## はじめに
AWS初学者です。

AWSの勉強をするのは未経験時代にポートフォリオを作成したとき以来です。

約2年ぶりに学習を再開する際、AWS CLIのバージョンをアップグレードするのに手間取ってしまったため、備忘録としてまとめます。

## AWS CLIをバージョン2にアップグレードできない

ぼくのPCにはAWS CLIのバージョン1がインストールされていました。

“`bash
$ aws –version
aws-cli/1.34.10 Python/3.10.2 Darwin/23.4.0 botocore/1.35.10
“`

バージョン2へアップグレードするため、[公式ドキュメントの手順](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html)にしたがって以下の2つのコマンドを実行します。

“`bash
$ curl “https://awscli.amazonaws.com/AWSCLI

元記事を表示

EC2インスタンスタイプを変更した場合にDNSサーバの設定が初期化される事例について

# 【本記事を作成した意図】
以下記事にて、EC2 Windowsにて、m4.xlargeからr4.largeに変更したところ、参照先となるDNSサーバの設定がリセットされるという事象が発生した。原因はインスタンスタイプ変更にともない、ネットワークアダプタが変更されたことで、その結果ネットワークアダプタに対して設定していた参照先DNSサーバの設定が無効になったとのことだ。

記事について、2020年に投稿された記事であり、2024年9月でも同じ事象が発生しているのか、確認したく、AWSサポートに質問した。

[EC2 Windowsでインスタンスタイプを変更したらDNSサーバ設定がリセットされた話]
https://dev.classmethod.jp/articles/ec2-windows-dns-server-setting-reset-by-changing-instance-type/

# 【質問内容】
## ・背景

参考記事にて、EC2 Windowsで、m4.xlargeからr4.largeに変更したところ、参照先となるDNSサーバの設定がリセットされるという事象が発

元記事を表示

とりあえずプログラムからAWS Bedrockに質問して回答もらうまで試してみたいって方へ ~100本ノックしてみたい中堅エンジニア 【AWS】~ 8/100

# はじめに

今年のAWSサミットでもAI系のセッションが非常に多かった印象がありますが、その中でもよく話題に上がるBedrockをとりあえず試してみたいって人に向けての記事になります。

※今回はBedrockの詳細なサービス説明や、生成AIの知識系は話しません(というか、私自身理解できていない)のでご了承ください:bow:

# 今回出てくるもの

– AWS Bedrock:大手AI企業の高性能な基盤モデル(FM)を利用できるフルマネージドサービス
– Claude:Anthropic社が開発した生成AIモデル
– Laravel:PHPのFW

# やってみる

では、さっそくですが試してみます!

## Claudeを有効化

生成AIモデルは有効化しないと利用できないため、AWSコンソールから有効化していきます

左メニューの`ベースモデル`をクリックします
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87924/c8f6d930-4035-d315-5ed9-e10caff2

元記事を表示

EC2インスタンスのAMI作成中にインスタンスを起動・削除した場合の挙動について

# 【本記事を作成した意図】
EC2インスタンスのAMI作成中にインスタンスを起動・削除した場合の挙動について、詳細に理解していなかったため、AWSサポートに質問してみた。

# 【質問】
① EC2停止後にAMI作成を行い、「保留中」のステータスの状態で、EC2を起動し、ファイル等の変更・削除・作成を行った場合でも、AMIは正常に作成できる認識。

この場合、EC2を停止した際の断面のAMIが取得される認識で相違ないか。

② EC2停止後にAMI作成を行い、「保留中」のステータスの状態で、EC2を終了したとしても、AMI取得は正常終了し、EC2を停止した際の断面のAMIが取得される認識で相違ないか。

③ ①・②の質問と関連するが、EC2停止後にAMI作成中にも関わらず、何故EC2に対して変更作業を行ったとしても、EC2を停止した際の断面が取得できるようになっているのか。

# 【AWSからの回答(要約)】
## ①の質問について
認識相違なし。

AMI は EC2 インスタンスの起動に必要な情報と EBS スナップショットの組み合わせから構成されている。
また EBS スナップ

元記事を表示

AWS単語集

# 目次
[コンピューティング](#コンピューティング)
[マネジメント](#マネジメント)
[ストレージ](#ストレージ)
[アプリ統合](#アプリ統合)
[ネットワーキング](#ネットワーキング)
[移行と移転](#移行と移転)
[データベース](#データベース)
[コスト管理](#コスト管理)
[セキュリティ](#セキュリティ)
[AI](#ai)
[データ分析](#データ分析)
[その他](#その他)

# コンピューティング
### Amazon Machine Image(AMI)
OSやアプリケーションがインストールされたEC2インスタンスの雛形

### オンデマンドインスタンス
EC2インスタンスが起動している時間に対して課金される
最小利用時間などの制約がないので、動き始めたら中断できない作業や、終了時間が予測できない作業に向いている

### スポットインスタンス
利用されていないEC2キャパシティを利用させてもらうので、余っている量に応じて価格は変動する
AWS側のキャパシティが不足してきた場合などには、利用中であっても中断される場合がある

### リザーブ

元記事を表示

AWSでWEBサイトを構築する際に必須のAWSサービスたちをご紹介

## はじめに

私は普段開発エンジニアをしているのですが、仕事上AWSでWebサイトを構築させていただきましたので、タイトルにもある通り、AWSでWEBサイトを構築する際に必須のAWSサービスたちをご紹介しようと思います。

## まず初めに必ずしてほしいこと

下記はWebサイトの運用以外でも必須レベルの設定だと私は思っています。

– ルートユーザーに多要素認証(MFA)を設定する

– ルートユーザーの代わりに管理者権限が付与されたIAMユーザーを作成。以降、ルートユーザーは極力使用しない

– 作成した管理者ユーザーに、請求とコスト管理用の管理者アクセス権限を付与する

– CloudTrailを設定して、AWS APIの呼び出しをすべて記録する

– AWS Configを有効にして、AWSリソース(EC2やVPCなど)の構成変更を記録する

– Cost Explorerを有効にして、使用料を確認できるようにする

– Cost Explorerで予算を設定し、メールで通知設定を行う

– Amazon GuardDutyを有効にして、セキュリティの脅威を監視する

元記事を表示

Bedrock Agentsで始めるAIエージェント

こんにちは。今日も通常運転です。シアトルじゃないです。

AIエージェントをBedrockで始めてみようという方向けの投稿です。

## ポイント

ポイントはただ一つです

**Return controlを使うこと**
です!!!!!!

(いつの間にか「Return *of* control」じゃなくなってますね)

Bedrock Agentsがローンチされたタイミングでは、AIエージェントのツールに該当する処理をAWS Lambdaで実装する必要がありました。
ただ、Lambdaの呼び出しイベントやレスポンスの形式を気にしたり、試行錯誤しながら進めるには、**Lambdaはしんどい**。

Return controlを使うと、Tool部分を呼び出し元で実装できるので試行錯誤が容易です。

## やってみよう

1. マネジメントコンソールでBedrockにアクセスし、「エージェント」を表示します
「エージェントを作成」をクリックします

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

元記事を表示

PythonでAWS S3のファイルを一時認証情報(STS)を使ってダウンロードする

AWS S3のファイルをSTSの一時認証情報を使ってダウンロードするPythonコードサンプルをまとめます。

一時認証情報は事前に取得できていると仮定します。

最初に以下コマンドでboto3ライブラリを追加します。

“`sh
pip install boto3
“`

下記のPythonスクリプトを実行することでAWS S3からファイルをダウンロードすることができます。

コード内で以下のパラメタの値を適宜書き換えてください

– 事前に取得した一時認証情報
– アクセスキー
– シークレットアクセスキー
– セッショントークン
– ダウンロードするファイルの
– バケット名
– オブジェクトキー
– 保存ファイル名

“`python
import boto3
from botocore.exceptions import NoCredentialsError

# アクセスキー、シークレットアクセスキー、セッショントークンを指定します
access_key = ‘your-access-key’
secret_access_key

元記事を表示

LambdaをCodePipelineでデプロイする

## はじめに
テリーの発売を記念して、記事を1つ公開します。
今回は、CodePipeline(CodeBuild/CodeDeploy)を使ってLambdaのデプロイを試みました。業務で使うのでその学習のためです。CodePipelineを使ったデプロイについては、ネット上であまり情報が見当たらず、デプロイにはCloudFormationを使用するのが主流かもしれません。

そこで、~~(しんどいので)~~ あえてCloudFormationを使わずに、CodePipelineを活用したデプロイに挑戦します。本記事の目的は、CodePipelineを使用する手順を解説することであり、設定内容の妥当性については評価の対象外とします。

なお、Lambdaをデプロイするだけなら、CodeBuildだけで十分に対応可能ですが、CodeDeployを利用することで、より高度なデプロイプロセスを実現しようと試行錯誤しました。

追記)Qiitaで検索すると結構記事が見つかった。
https://qiita.com/search?q=Lambda%E3%82%92CodePipeline%E3

元記事を表示

ProcessingJobで使用可能なジョブ数を上げる方法

# はじめに

こんにちは。弥生R&D室のsiidaです。R&D室ではSageMakerを使用して機械学習 (ML) のプロジェクトを進めています。SageMakerはMLのための様々な機能が搭載されたサービスであり、データ分析からモデル訓練、ひいてはワークフローの構築まで、SageMakerの中で完結させることができます。

SageMakerにはProcessingJobという機能があり、こちらはコマンドをジョブの形でサーバ上で実行できるというものです。重い計算を実行したり、再現性のある実験を行うために有用な機能ですが、同時に実行できるジョブの数には制限があります。今回は、この使用可能なジョブ数を上げる方法を紹介します。

# 背景

ProcessingJobでジョブを作成しようとしたところ、ジョブ多すぎ!という感じのエラーが。。。

なお、ジョブの作成には、下記のPythonラッパーを使用しました。

https://sagemaker.readthedocs.io/en/stable/api/training/processing.html

# 発生したエラー

“`
E

元記事を表示

コードで学ぶAWS入門 15.6. Docker のインストール

# 詰まったところ
コードで学ぶAWS入門https://tomomano.github.io/learn-aws-by-coding/#sec:install_docker
で**15.6. Docker の インストール**の最後に、設定が正しいか確認するため下記のコマンドをうつ。

`$ docker run hello-world`
“`
The command ‘docker’ could not be found in this WSL 2 distro.
We recommend to activate the WSL integration in Docker Desktop settings.

For details about using Docker Desktop with WSL 2, visit:
https://docs.docker.com/go/wsl2/
“`

このWSL 2ディストロでは、’docker’コマンドが見つかりません。
Docker Desktopの設定でWSL統合を有効にすることをお勧めします。

Docker Desktop

元記事を表示

Amazon S3 Express One Zoneのデータアクセス速度を計測してみた

# 1. はじめに

**[Amazon S3 Express One Zone ストレージクラス](https://aws.amazon.com/jp/s3/storage-classes/express-one-zone/)** (以降、S3 Express One Zoneと示します)は、アクセス頻度が高いデータ向けの最速とされるストレージクラスであり、AWS公式ドキュメントによると、S3 Express One Zoneは **[Amazon S3 標準 ストレージクラス](https://aws.amazon.com/jp/s3/storage-classes/)** (以降、S3 標準と示します) と比べてデータアクセス速度が最大10倍速いとされています。
そこで、 **S3 Express One Zone のデータアクセス速度を実際に計測**してみました。比較対象としてS3 標準についてもデータアクセス速度も計測しています。

# 2. 計測方法
S3 Express One ZoneとS3 標準について、同条件でのファイルアップロード (PUT) およびファイルダウン

元記事を表示

Knowledge Bases for Amazon Bedrockを消し忘れたら$50消えた話

# あらすじ
BedrockでRAGを試すために、作成したKnowledge Base。後日もう少し触ってみようと思っていましたが、いろいろ忙しくて忘れてた。
10日ぶりに確認すると、請求額が$60を超えていました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879374/58a9ac29-0192-6653-8805-c821e6efb9dd.png)
**$60ドル?**
多少の金額は覚悟していましたが、ほぼ1万円は予想外。
Knowledge Baseってそんなにかかるの?
サービス別料金を確認すると、何やらOpenSearch Serviceというものにかかっている模様
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879374/c41f53d5-bb44-5bc4-0516-786eec53ce83.png)
でもこんなサービス使った覚えがない。
しかし、Amazon

元記事を表示

[その4] HashiCorp Vault Secrets で マルチプロバイダー下での統合シークレット管理について

## これは何?
Vault Secrets + Terraform Cloud でシークレット管理してみました。

## Vault Secrets とは?
[Vault Secrets](https://developer.hashicorp.com/hcp/docs/vault-secrets) とは、マルチプロバイダーにおけるシークレットを統合管理する機能になります。
以下の画像のように複数のプロバイダーをVault Secretsで統合的に管理することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/872532/2099e46b-7fd5-fdb9-0f2a-9c3579096955.png)

また、登録するシークレットの種類として、
– パスワード
– API トークン
– アクセスキー

が挙げられます。

## AWS + Vault でシークレット同期
最初にHashicorp Cloud からVault Secretsアプリケーションを作成します。
[C

元記事を表示

[その3] Terraform Cloud Private Registory サブモジュール使ってみた

## これは何?
Terraform Cloud のサブモジュールの呼び出しについて解説します。

## サブモジュールについて

[前回](https://qiita.com/atw0_0w/items/58812c0baf1a0000b757)、Private Registryを登録して、メインモジュールを呼び出すことができました。
その際、プライベートレジストリから呼びだす際はsource句の部分のような内容になります。

“`hcl
# メインモジュールの呼び出し
module “network-templates” {
source = “app.terraform.io/atsuw0w-test-terraform/network-templates/aws”
version = “1.0.0”
}
“`

上記のモジュールですが、サブモジュールを複数作成し呼び出すことも可能です。
例えば、VPCネットワークをメインモジュールと定義し、セキュリティグループやVPCエンドポイントについてはサブモジュールから呼び出すことが可能です。
(メインとしては作成したく

元記事を表示

OTHERカテゴリの最新記事