- 1. Terratest を使って AWS 環境構築の検証を行う
- 2. AWS CloudFormation の Mappings を活用してマルチリージョン展開について
- 3. SOA-C02対策(モニタリング系)
- 4. EC2 Image Builder で CloudBeaver の AMI を作成する
- 5. AWS Jr.Championsに選出されました
- 6. AWS CLIのバージョン2をインストールしてもバージョン1のままになる問題の解決方法
- 7. EC2インスタンスタイプを変更した場合にDNSサーバの設定が初期化される事例について
- 8. とりあえずプログラムからAWS Bedrockに質問して回答もらうまで試してみたいって方へ ~100本ノックしてみたい中堅エンジニア 【AWS】~ 8/100
- 9. EC2インスタンスのAMI作成中にインスタンスを起動・削除した場合の挙動について
- 10. AWS単語集
- 11. AWSでWEBサイトを構築する際に必須のAWSサービスたちをご紹介
- 12. Bedrock Agentsで始めるAIエージェント
- 13. PythonでAWS S3のファイルを一時認証情報(STS)を使ってダウンロードする
- 14. LambdaをCodePipelineでデプロイする
- 15. ProcessingJobで使用可能なジョブ数を上げる方法
- 16. コードで学ぶAWS入門 15.6. Docker のインストール
- 17. Amazon S3 Express One Zoneのデータアクセス速度を計測してみた
- 18. Knowledge Bases for Amazon Bedrockを消し忘れたら$50消えた話
- 19. [その4] HashiCorp Vault Secrets で マルチプロバイダー下での統合シークレット管理について
- 20. [その3] Terraform Cloud Private Registory サブモジュール使ってみた
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エンドポイントについてはサブモジュールから呼び出すことが可能です。
(メインとしては作成したく