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

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

【AWS】MFA(多要素認証)の設定

## 手順
1. ルートアカウントでログイン
1. コンソール上の検索欄に「 IAM 」と入力
1. 検索結果のIAMをクリックして、IAMのダッシュボードに飛ぶと、MFAが未設定だと以下の画面が表示されるので、「MFA を追加」をクリック
![スクリーンショット 2024-03-10 16.02.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2239673/d27ab30d-ee47-fdb3-ac9f-121d53527058.png)
1. 以下の画面に遷移するので、デバイス名とデバイスを選択します。今回選択するデバイスは、「Authenticator app」にして「次へ」をクリック![スクリーンショット 2024-03-10 16.10.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2239673/af9fb11e-1b27-f3c1-9628-d14b6ce2c05a.png)
1. 次に以下の画

元記事を表示

Alexaでシャッフル睡眠を促してくれるアプリを作ってみたい

長らく愛用してきたシャッフル睡眠を促してくれるAlexaアプリが公開停止されて私の安眠が失われてしまったので自作しようと思います。

# 作成予定のスキル
認知シャッフル睡眠法をサポートしてくれるアプリを作成予定です。
具体的には数秒おきにランダムな単語を読み上げるようにするシンプルなアプリです。

> 認知シャッフル睡眠法とは
>
>・カナダの認知科学者リュック・ボードウィン博士が考案した睡眠法
>・「大脳皮質が理論的な活動をしているうちは、脳が『まだ寝てはいけない』と
判断する」という仕組みを利用して、あえて何の脈絡もないイメージを連想し、大脳皮質の理論的な活動を止め、脳が“眠りのスイッチを入れても大丈夫”と判断するように導いてゆくもの
>・適当な単語を次々とイメージすることで睡眠を妨げる思考が抑制されることで眠りにつける

# 事前準備
## 1. アカウント作成
alexa developer consoleにアクセスしアカウントを作成してログインします。

## 2. アプリ作成
スキルの作成から今回開発するアプリを作成します。
“`text: 設定内容
アプリ名: シャッ

元記事を表示

【保存版】AWS CDKでインフラ構築する際のテスト戦略 – 3つの必須アプローチ

## はじめに

AWS CDK (Cloud Development Kit) を使ってインフラストラクチャをコード化する際、楽して適切なテスト戦略を立てることは非常に重要でだと考えています。

本記事では、AWS CDK + TypeScriptを使用する場合のテスト手法について、検討した内容をご紹介します。

## テストの全体構成

私たちのプロジェクトでは、以下の3つの観点からテストを実施することにしました。

**1. aws-nagを用いたベストプラクティス確認**
目的: AWSのベストプラクティスを遵守し、セキュアで信頼性の高いインフラストラクチャを構築する

**2. Fine-grained Assertionsによる要件の確認**
目的: 意図した通りのインフラストラクチャが作成できていることを確認する

**3. Snapshot Testingによる差分の検出**
目的: インフラストラクチャの定義に勝手な変更が加えられていないことを確認する

### 1. aws-nagを用いたベストプラクティス確認

`cdk synth`コマンドを実行する際、aws-

元記事を表示

CloudFront継続的デプロイでは変更できない機能について

# はじめに
`CloudFront`継続的デプロイの機能を使っていたところ、継続的デプロイで作成したステージング`CloudFront`を削除・昇格させないと変更できない設定がありました。

`AWS`のドキュメントも調べてみましたが、それらしいドキュメントは見つからなかったので、記事に残しておこうと思います。

– 【以前の記事】[CloudFront構成でもECSブルーグリーンデプロイメントを使えるようにする。](https://qiita.com/sakai00kou/items/13c93080467fb91b7eec)

# CloudFront継続的デプロイでは変更できない機能
`CloudFront`継続的デプロイ機能でステージング`CloudFront`が作成されている状態では設定がグレーアウトされて、変更できない機能を以下にまとめます。

|変更できない機能|備考|
|:–|:–|
|料金クラス|料金区分の設定|
|カスタムSSL証明書|別のSSL証明書に入れ替える際に指定|
|サポートされているHTTPバージョン|サポートするHTTPバージョンの指定|
|IP

元記事を表示

CloudFormation について学んだことをアウトプット

初めまして、目黒です。

4月からAWSの仕事に携わるために、AWSの資格を取得するため日々勉強をしています。
現在は3月末の SOAの試験に向けて勉強中です。

今回は、「CloudFormation」についての学習をまとめます。

## CFnの特徴
コードでサービスを管理できる点(IaC)。

コードにて環境構築をすることは、手作業で環境構築をするよりも下記の点で優れています。
* 再現性
* 時間効率

## CFnの説明
スタックという単位で環境を作成・更新・削除を行えます。

以下の3ステップでスタックに環境を構築します。

1.テンプレ
  様々な要素で構成されている
  ※Resources のみ必須
2.CloudFormation がテンプレートを読み込む
  スタックの作成/更新/削除 エラー検知 ロールバック
3.スタック
  スタックという単位でテンプレに記載されているサービスを立ち上げる

## 実施したハンズオン
1.[AWS Hands-on for Beginners
AWS 環境のコード管理 AWS CloudFormationで Web システムを

元記事を表示

【Aurora】各エンドポイントの違い

# 概要
Auroraの勉強をしている中でエンドポイントがいくつか出てきた。
各々のエンドポイントの違いを整理してみます。

# Auroraの概要・特徴
– AWSが構築したクラウド向けデーターベース
– 1つ以上のDBインスタンスと、データを管理するクラスターで構成される
– データを3つのAZに2個ずつ、合計6個のコピーを作成するため、高い耐障害性を持つ
– 読み込み専用のリードレプリカを最大15個作成できる。プライマリインスタンスに障害があった場合、レプリカがプライマリに昇格してフェイルオーバーする

![Auroraの概要.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1382306/0540e07e-fd9d-81cd-576a-131ded64d1cf.png)

# エンドポイントの種類
Auroraで使用できるエンドポイントは以下の4種類。
– クラスターエンドポイント
– リーダーエンドポイント
– カスタムエンドポイント
– インスタンスエンドポイント

# クラスターエンドポ

元記事を表示

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

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

# 構成図

# Module
### main.tf
“`tf
# tgw attach associated with microservice
resource “aws_ec2_transit_gateway_vpc_attachment” “micro” {
subnet_ids = var.subnet_micro_id
transit_gateway_id = var.tgw_id
vpc_id = var.vpc_micro_id
tags = {
Name = “${var.project}-tgw-attachment-micro-${var.env}”
Env = var.env

元記事を表示

AWS SCS-C02 合格体験記

## はじめに
記事の内容はAWS Certified Security – Specialtyの合格体験記になります
(2024/3/10合格なのでこの時点での情報)

## 自分について
私は2022年にAWS SAAをギリギリで合格した感じです。
自己啓発と1つ上の資格を取得したくて今回受けました。

## 学習方法
問題集
 ・Cloud license
 ・【徹底対策 AWS認定 セキュリティ – 専門知識: 65問×3セット 195問(SCS-C02 対応) クラウド試験徹底対策シリーズ】

後は公式ドキュメントを読むようにしましたが、頭に入っているかは別問題

### 学習期間/どのように学習したか

●学習期間
3か月ぐらい
どのように学習したか
・Cloud licenseの全問題400問ぐらいを
2周/間違えた問題を1周しました

直前に【徹底対策 AWS認定 セキュリティ – 専門知識: 65問

Amazon Bedrock 基盤モデルを使う為のIAMポリシー

# はじめに
Amazon Bedrock 基盤モデルのAPIを利用だけできれば良いというときのIAMポリシーの参考を記載します。
IAM Policyを作成するときに必要となる基盤モデルのARNそのものが書かれているページが見つからなかったので、併せてARNも記載しておきます。

# 結論
## IAMポリシー
以下は東京リージョンでClaude v2.1を利用するためのポリシーです。
“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “allow to invoke specifiic foundation model”,
“Effect”: “Allow”,
“Action”: [
“bedrock:InvokeModel”,
“bedrock:InvokeModelWithResponseStream”,
],

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

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

# 構成図

# Module
### main.tf
“`tf
# tgw
resource “aws_ec2_transit_gateway” “main” {
default_route_table_association = “disable”
default_route_table_propagation = “disable”
tags = {
Name = “${var.project}-tgw”
// … 略
}
}
# tgw attachment attached vpc of internet gateway
resource “aws_ec2_transit_gateway_vpc_attachment” “

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

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

# 構成図

# Module
### main.tf
“`tf
# microservice vpc
resource “aws_vpc” “vpc_microservice” {
cidr_block = var.vpc_cidr_microservice
tags = {
Name = “${var.project}-vpc-${var.env}-microservice”
Env = var.env
Account = var.account
Project = var.project
}
}
# subnet allocated in az 1c
resource “

AWS認定ソリューションアーキテクト-アソシエイト受験談&学習法

## 概要
2024年3月9日にAWS認定ソリューションアーキテクト-アソシエイトの試験を受けて合格しましたので、学習したこと等を情報共有として書いていきます。
合格基準720点のところ777点で合格しました、、、縁起が良い:grinning:

### 前提の知識と経験
まずAWS認定クラウドプラクティショナーを去年の8月に取得しました。
業務ではECSとEC2等でアプリの稼働環境設計構築、CodeシリーズでCI/CDパイプライン設計構築の経験があり、プライベートでも色々とAWSを触っている感じです。

### 学習期間
2〜3ヶ月前からチラチラと試験内容は見ていましたが、腰を据えて勉強したのは、直近の1ヶ月です。
所属している会社のメンバーがAWSの資格をどんどん取得していくのを見て、気合が入りました:muscle_tone2:

### 学習時間
直近1ヶ月、平日は業務後の2~3時間、休日は6~7時間、試験勉強に当てました。
ただ家事や育児があるので、実際はそれより少ないかも。

### 学習教材
注意事項としては、2024年3月時点では「SAA-C03版」の教材を購入してくださ

新卒1年目でAWS全12冠+セキスペ合格してできるようになったこと

新卒1年目の駆け出しインフラエンジニアです。

IPアドレスって何?EC2って何?という状態から
IPA試験及びAWSの勉強を積み重ね、
ついにAWS全12冠制覇を達成しました。

記念に資格勉強を通してできるようになったこと、
および今後の目標について書いてみます。

勉強方法は後から別記事で投稿する予定です。

## 動機
同じプロジェクトのAWSトップエンジニアの先輩(12冠も達成済み)に憧れて、知識だけでも追いつこうと12冠を目指しました。また、自分の名前が会社のHPに掲載されるのかっこいい!と思い、モチベーションにしました。

## 合格履歴

|試験名|受験日|スコア|勉強時間|
|——-|—|—|–|
|応用情報技術者試験|2023/4/16|午前81.25
午後83.00|50時間|
|基本情報技術者試験|2023/4/23|科目A:895
科目B:865|50時間|
|AWS Certified Cloud Practitioner|2023/06/17|918|25時間|
|AWS Certified Solutions Archite

Provisioned Concurrencyを使ってみての一意見

# はじめに

Provisioned Concurrencyを使用したDynamoDBに接続するLambdaで性能に関する問題が発覚しました。
それについて試したことや記事タイトルの通り、Provisioned Concurrencyについて考えさせられる部分があったため、記事にしました。

## 経緯

前述の通り、Provisioned Concurrencyを使用したDynamoDBに接続するLambdaでWebAPIを作成していました。
Provisioned Concurrencyの効果を最大限にしたいので、Provisioned Concurrencyの準備中にハンドラー外の初期化処理に加え、DynamoDBクライアントをグローバルで初期化したり、DynamoDBと接続を行いコネクションを事前に確立させておきました。
以上の施策により、後続リクエストのスループットの向上を試みました。

## ぶつかった問題

上述の通り、Provisioned Concurrency準備中に諸々準備しておくことで後続リクエストのスループットが向上できる認識でした。
しかし、実際負荷試験ツ

Amazon Bedrock(Claude3)+LangChain(LCEL)で画像チャットWebアプリを作る

LangChain(のチャットモデル)からBedrockのClaude3 Sonnetが呼び出せるようになったので、画像チャットアプリをLCELで作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3573242/c67801d9-ec03-6b56-b9db-94fe97457b24.png)

よく読むとハルシネーションしてますね。Sonnetだとこんなものでしょうか。

以下をフュージョンしてLangChainの記法でClaude3を呼び出すように変更しました。

https://qiita.com/cyberBOSE/items/89ff1e91f99eb79f83bc

https://qiita.com/cyberBOSE/items/35fd2aed5a42b963ccb6

# 前提作業
– DynamoDBに`SessionTable`を作成してPython実行環境からの権限を付与しておく
– 必要ライブラリのインストール(上記の両方を合わせた感じ)
“`

CloudFormationの参照系の技

# 記事の概要
AWSで技術検証する際にも[CloudFormation](https://aws.amazon.com/jp/cloudformation/)を使用するようにしています
CloudFormation用のファイルを作成する際にARNやAccountIDを参照する場面が増えてきたので色々と便利だったのでまとめようと思います
# 使用頻度の高い変数はパラメータ化しておく
リソース名の後にDEVやSTGなどを付ける場合はパラメータ化しておくと便利です
“`
AWSTemplateFormatVersion: “2010-09-09”
Description: “Example1”
Parameters:
Env:
Type: “String”
Default “Dev”
# ↓のようにすると選択形式になる
AllowedValues:
– “Dev”
– “Stg”
– “Prod”
Resources:
TimeStreamDB:
Type: AWS::Timestream::

【DR対策】AWS 国内東西リージョンでウォームスタンバイ戦略の構成管理を容易にする

## はじめに
とあるシステムでAWSの東京リージョンをプライマリリージョン、大阪リージョンをセカンダリリージョンとした、ウォームスタンバイ戦略の環境を構築しました。
この中で環境の更新など、構成管理について工夫した点を紹介します。

## ウォームスタンバイ戦略とは
ウォームスタンバイ戦略は、ディザスタリカバリ(DR)戦略の中の1つです。
ディザスタリカバリ戦略は4種類あり、以下のAmazon Web Services ブログで詳しく紹介されています。

https://aws.amazon.com/jp/blogs/news/disaster-recovery-dr-architecture-on-aws-part-1-strategies-for-recovery-in-the-cloud/

どの戦略を選択するかはRPO、RTO、コストなどの観点で決定します。

今回のシステムでは以下の理由により、ウォームスタンバイ戦略を選択しました。
1. RPO/RTOが2時間であり、「バックアップ&リストア」や「パイロットライト」では間に合わない
1. マルチサイトほどの可用

2024 Japan AWS All Certifications Engineers 申請する時期だよ

# 今年も申請シーズンが到来してきた

## 申請しないともったいないお化け

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136487/ce27cc6f-88a7-070e-3210-7de8a82fe97b.png)

何より今年は山田さんによる寄稿で親近感。

https://aws.amazon.com/jp/blogs/psa/2024-japan-aws-all-certifications-engineers-apply/

:::note
応募クライテリア

サービスパスおよびトレーニングパスで AWS セレクトティア以上のパートナー、もしくは、ソフトウェアパス Confirmed ステージ以上のパートナーに所属しているエンジニア。
下記、対象の AWS 認定資格をすべて保持している方。
下記、対象の AWS 認定資格は申し込み時点で有効、且つ審査期間である 2024 年 4 月 30 日まで有効である必要があります。
AWS 認定資格

SageMaker Studio環境をTerraformで!

# 目次

1. Terraformのセットアップ(in Cloud9)
2. SageMaker Studioのデプロイ
3. 動作確認

「VPC Only」で、NAT Gateway経由でインターネットに出ることができるノートブックを想定しています。

https://github.com/agamemnon-ai/setup-sagemaker-studio-tf

コードはgithubにも上げています。

# 1. Terraformのセットアップ(in Cloud9)

https://github.com/tfutils/tfenv

Cloud9を立ち上げて、Terraformのセットアップを行います。

“`
$ git clone https://github.com/tfutils/tfenv.git ~/.tfenv
$ sudo ln -s ~/.tfenv/bin/* /usr/local/bin

$ tfenv -v
tfenv 3.0.0-49-g39d8c27

// インストール可能なバージョンをリストする
$ tfenv list-rem

WindowsのHDD空き領域を定期的にCloudWatchメトリクスに送信する [容量監視]

# ソースコード

“`bat:DiskSpaceToCloudWatchMetrics.bat
@echo off

SET AWS_PROFILE_NAME=your_profile_name
SET CWM_AWS_REGION=ap-northeast-1
SET CWM_NAMESPACE=your_namespace
SET CWM_DIMENSION_NAME=your_dimension_name
SET CWM_DIMENSION_VALUE=your_dimension_value

for /f “tokens=1-5* usebackq” %%i in (`wmic logicaldisk get size^,freespace^,caption ^| findstr “C:”`) do (
call :setFreeSpace “%%j”
call :setTotalSpace “%%k”
)

echo FREE_SPACE=%FREE_SPACE%
echo TOTAL_SPACE=%TOTAL_SPACE%

aws cloudwatc