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

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

【AWS Jr.Champions】Jr.Championsになって良かったこと3選

## はじめに
こんにちは、JTPの贄川です。

この度、2024 Japan AWS Jr.Championsのメンバーでブログリレーを行うことになりました。
私は普段、Iac(Infrastructure as Code)でAWSシステムの構築に関する業務を行っておりますが、Japan AWS Jr.Championsに選出されたことで、色々良かったことがあったので今回はその中から3つ紹介します。
今後、Japan AWS Jr.Champions(以下Jr.Champions)を目指す方々のモチベーションに繋がれば幸いです。

## 目次
1. インプット・アウトプットの場が爆発的に増えた
1. 担当する業務の種類が増えた
1. AWS関連のイベントにより参加できるようになった
1. 終わりに

## 1.インプット・アウトプットの場が爆発的に増えた
Jr.Championsメンバーで行うイベントの中で最も多いのがLTで、私はJr.Championsメンバーになる前は全くプレゼンテーションを行う機会がなかったので、かなり発表に対して尻込みをしていたのですが、かなり気軽に話せました

元記事を表示

AWSのアイデンティティサービスについて簡単にまとめてみた

## 背景
– AWSのアカウントサービス(IAMユーザー、IAMポリシー、IAMグループ、IAMロールあたり)の棲み分けが怪しかったためまとめてみる

## AWSアカウントの全体像
– AWSには「AWSアカウント」と「IAMユーザー」と呼ばれる2種類のアカウントがある
– AWSアカウントは全てのサービスを利用可能でルートユーザーと呼ばれる
– IAMユーザーはAWSを利用する各利用者向けに作成するアカウントで、AWSアカウントによって作成される

“`
AWSアカウント1/
├── IAMユーザー1
├── IAMユーザー2
└── IAMユーザー3
AWSアカウント2/
├── IAMユーザー3
└── IAMユーザー4
“`

## サマリ
– それぞれのサービスの特徴をざっくりと記載すると下記の通り

| サービス | 概要 |
| – | – |
| AWSアカウント | ルートユーザー
全てのサービスを利用可能(※)
各AWS利用者向けにIAMを作成する |
| IAMポリシー | 各AWSサービスの利用可否をポリシーとして設定し、IAMユーザーやIA

元記事を表示

Bedrockのクオーター制限をチェックする「Amazon Bedrock Service Quotas Checker」を作ったので紹介させてください

Bedrockのクオーター制限についてAWSからブログが公開されています。

「Amazon Bedrock のモデルアクセスの有効化や制限値の引き上げができない時の対応方法」

https://aws.amazon.com/jp/blogs/news/generative-ai-amazon-bedrock-handling-quota-problems/

みんなのヒーローみのるんも対策方法を公開してくれています。

https://qiita.com/minorun365/items/c1706f91ce6490697451

私のAWSアカウントもこの制限に該当しており、上記ブログに従って対応を進めています。

せっかくなので(?)、現在適用されているBedrockのクオーター制限の値を取得するツールを作成しました。

## Amazon Bedrock Service Quotas Checker

https://github.com/moritalous/bedrock-service-quotas-checker

このツールにより、複数のリージョンにまたがって、一

元記事を表示

CloudFormationによるAWSネットワーク構築:VPC環境の構築とパブリックサブネット内への踏み台サーバーから本番サーバーSSH接続

## はじめに
この記事は、前回のVPC構築に関する内容の続編です。

今回は、プライベートサブネットに本番サーバーを構築し、踏み台サーバーを経由してSSHで本番サーバーにログインできるようにすることをゴールとします。

このステップにより、本番サーバーへの外部からの直接アクセスを避けつつ、安全に管理できる環境を構築します。

## 前回のおさらい
前回の記事では、「ホンダ-vpc」という名前のVPCを作成し、各リージョン(ap-northeast-1a、ap-northeast-1c)に複数のパブリックサブネットとプライベートサブネットを配置し、セキュリティと可用性を強化しました。

https://qiita.com/free-honda/items/06d092c82d1dcb1e77fe#%E3%81%BE%E3%81%A8%E3%82%81

VPCにはインターネットゲートウェイをアタッチし、パブリックとプライベート用のルートテーブルを作成して通信を分離しました。

:::note
**また、NATゲートウェイを使用して、プライベートサブネットからのインターネットアクセスも可

元記事を表示

CloudFormationによるAWSネットワーク構築:VPC環境の構築とパブリックサブネット内への踏み台サーバー設置

## はじめに
AWS (Amazon Web Services) の CloudFormation は、インフラストラクチャの構成をコード化するためのサービスです。

:::note
**これを使用することで、インフラを手動で設定する代わりに、コード(テンプレート)を記述してリソースのプロビジョニングや管理を自動化できます。**
:::

この記事では、CloudFormationを使用してAWS上にVPC(仮想プライベートクラウド)、サブネット、NATゲートウェイ、インターネットゲートウェイ、踏み台サーバーなどのインフラを構築するためのYAMLテンプレートを解説します。

## CloudFormationとは
CloudFormationは、AWSのリソースをコードとして記述し、これをもとにインフラを自動で構築、更新、管理するためのサービスです。

**CloudFormationでは、リソースの作成に必要な情報をYAMLまたはJSON形式のテンプレートとして記述します。**

このテンプレートを基にAWSがリソースを作成し、指定された設定に従ってインフラを整備します。

:::

元記事を表示

AWSのネットワーク周りをまとめてみた

## はじめに
最近、業務で、cloudformationを用いてAWSの環境を構築しているのですが、ネットワーク周りの自分の知識が弱くつまづいてしまうことが多いため、まとめてみようと思います。

## VPC
VPCとはVirtual Private Cloudの略で、AWSのアカウント内にプライベートな仮想ネットワーク環境を構築することができるサービスのことを言います。このVPCを用いることで、サーバー(EC2)やデータベース(RDS)といった他のサービスを利用することができます。

https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/what-is-amazon-vpc.html

## Internet Gateway
VPCとインターネット間の通信を可能にするためのものです。

https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_Internet_Gateway.html

## NAT Gateway
まず、NATとは、インターネット上で使われるI

元記事を表示

CloudWatch Logs Insigt 自動パターン検出を使ってみた

# はじめに
11/1に目黒で開催された「AWS 秋のObservability祭り 2024」に参加しました。
とても学びの多いイベントでした。
ただ、これまでいろいろとイベントや勉強会に参加してきたものの、学ぶことが多過ぎてどんどん忘れてしまうので、アウトプットして記録を残していこうと思いました。

イベントではCloudWatch Logs Anomaly Detectionが紹介されていました。
今回は、CloudWatch Logs Anomaly Detectionの紹介の中で気になった CloudWatch Logsの自動パターン検出とQuery generatorについてまずは書きます。
(CloudWatch Logs Anomaly Detectionは追って試していきます)

# CloudWatch Logs 自動パターン検出
CloudWatch Logs Anomaly Detectionでログの異常検出をするのにあたっては、ロググループ内のイベントのパターン数が少ないとうまく検出できるとのこと(指標は300パターン以下)。

どうやってパターンを調べるのだ

元記事を表示

BedrockとPineconeで安くRAGを作ろう!ついでに参照リンクも表示

# AWSで「ほぼ無料」のRAGアプリを運用しよう!

生成AIアプリを作る際にみんながやるRAG(検索により強化された生成)ですが、ベクトルDBのランニングコストが高くなりがちです。

AWSならOpenSearch ServerlessやKendra、AzureならAI Searchなど、いずれも月数万円以上の維持費となるため個人検証にはちょっと辛いです。

そこで今回は、ベクトルDB専用のSaaSであるPineconeを使って、AWSで安くRAGを構築する手順を紹介します!

![スクリーンショット 2024-11-10 0.25.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633856/5e42f180-ec61-a1bf-97e9-989ebe7cfe54.png)

これならベクトルDBのランニングコストが無料となります。
(RAGの推論や埋め込みに利用するモデルの呼び出し料金のみが発生します)

# Pineconeのメリデメ

PineconeはサーバーレスなSaaS製品のた

元記事を表示

【AWS CDK】コンテナにCDK環境を構築してみた!

# はじめに

本記事ではコンテナを使ってCDK環境を構築する内容になります。
試行錯誤をした上で実現できた内容になりますので、拙い箇所が多々ありますが都度メンテナンスしていきますのでご了承ください。

# 目次

1. コンテナ環境を準備をする
2. AWS CDK環境構築をする
3. プロジェクトを作成する
4. まとめ


# コンテナ環境を準備をする
まず最初にコンテナ環境の準備をしていきたいと思います。
事前に必要な物はこちらになります。

| 項目 | 説明 |
|:———–|:————|
| vscode | 皆大好きコードエディタ |
| Dev Containers | vscodeの拡張機能 |
| Docker | コンテナ型仮想環境用のプラットフォーム |

上記のインストール方法については本ブログでは対象外とさせてください。

### 作業用のディレクトリを作成する

コンテナ環境用にディレクトリを作成します。

“`
m

元記事を表示

【個人開発】財務諸表データを速攻で確認できるアプリをリリースした

# 目次
– 財務諸表って見たことあります?
– 財務諸表検索アプリ「Compass」の技術スタック、構成の紹介
– 最後に

# 財務諸表って見たことあります?
 みなさん、企業の財務諸表を見たことはありますか?

 財務諸表とは企業の財務状況や経営成績をまとめた書類のことで、企業の1年間の「健康診断書」や「成績表」とも呼ばれています。

 財務諸表の中でも貸借対照表(B/S)、損益計算書(P/L)、キャッシュ・フロー計算書(C/F)は「財務三表」と呼ばれ、特に重要な書類とされています。

 …という説明をどこかで見たり聞いたりしたことはあるけれど、実際に財務諸表を見ようと思うと、企業のホームページに行って決算用のページに行って時には書類をダウンロードして…となかなか手間がかかります。

 そこで、財務諸表のデータを簡単に検索できるアプリ「Compass(コンパス)」を作りました!ユーザを企業の世界へと導いていく道しるべ(コンパス)になってほしいという願いと、企業(Company)へのパス(pass)になってほしいという願いを合わせて「Compass」と名付けました。

 

元記事を表示

API Gateway/AWS WAF~SQLインジェクションのブロックとログを確認する~

## はじめに
AWS WAFを使って実際にSQLインジェクション攻撃がブロックできるのか?
今回はAPI GatewayにAWS WAF(以降、WAF)のWeb ACLを連携して、リクエストがブロックされるかを検証していきます。
WAFのログの出力設定を行い、実際のブロックのログまで確認します。
※WAFとはなにか?SQLインジェクションとはなにか?の説明は省略します。

## 結論
WAFのWeb ACLをAPI Gatewayに連携することで、設定したルールに基づくSQLインジェクション攻撃と判定されたリクエストをブロックすることが出来る。

また、Web ACLのログ設定を有効化することで、
ブロックしたリクエストの中身(クライアントIPやブロック理由)を確認することが出来る。

## AWS WAFのWebACLとは
今回使うAWS WAFのWeb ACLは、AWS WAFの機能の一つです。
>Web ACLを使用すると、保護されたリソースが応答するすべての HTTP(S) ウェブリクエストをきめ細かく制御できます。

Amazon CloudFront、Amazon API

元記事を表示

【AWS CDK】AWS CDKを触ってみた!

# はじめに

本記事ではAWS CDKの基本的な使い方を書いたもの(セットアップからTypeScriptを使ったプロジェクト構築まで)になります。

# 目次

1. AWS CDKとは
2. AWS CDK環境構築をする
3. プロジェクトを作成する
4. cdkコマンドを使ってみる
5. まとめ


# AWS CDKとは
最新のプログラミング言語を使用して AWS のインフラストラクチャをコードとして定義し、それをデプロイ、管理する事ができるソフトウェア開発フレームワークです。つまり、 CloudFormation や Terraform のような IaC  ( Infrastructure as Code )の手段の 1 つということです。

CloudFormation や Terraform との違いとして、
「慣れ親しんだ言語を使用できる」というメリットがあります。(Python、TypeScript、Javaなどなど)

プログラマー出身の人からすると、とっつき

元記事を表示

AWS Step Functions(Amazon Transcribe+Amazon Bedrock)を使って音声データを分析するうえで躓いたポイント

こんにちは、ちはらです。
約3か月間に亘って参加していたANGELDojoの中で、私が躓いたことを備忘録として書いていこうと思います。

今回はタイトルの通り、AWS Step Functionsの中でAmazon TranscribeとAmazon Bedrockを使った際に躓いたポイントをまとめています。

# Tele Talk Tutor(T3)
「T3」とは、今回のANGELDojoで私たちが開発したもので、電話練習ができるアプリです。
このアプリでは実際に利用者がAIと電話をし、利用者の応答に対してフィードバックをもらうことができます。
このフィードバックの機能を構築するうえで使用したのがAWS Step Functionsです。

# 構成図
主な構成としては以下のようになっています。
![スクリーンショット 2024-10-12 174942.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3867728/537f36e5-b4ce-814f-8b3b-369afd1750f4.png)

元記事を表示

SQSの概要 SAA範囲内

# SQS

## 暗号化

サーバー側の暗号化を設定することができる

デフォルトでは有効になっている

### キーのタイプが選択することができる

SQS自体が作成、管理、使用する暗号化キーと

KMSと連携して暗号化を自分で管理することも可能

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2526914/0fc15814-c513-64f5-9901-c092ecd84c80.png)

## SQSアクセスポリシー

ベーシックタイプとアドバンストがある

ベーシックタイプはシンプルな設定です。

キュー所有者のみにアクセスを許可したり、

指定したAWSアカウントを設定するだけであれば、ベーシックを使います。

アドバンストについては、IAMポリシーのようにJSONオブジェクトを使用して、高度なアクセスポリシーを定義することが可能です。

アクセスポリシーを設定する際は、

キュー自体に送信できるユーザー

キューを受診できるユーザー

それぞれに定義します。

## デ

元記事を表示

AWSにてドメインを取得した後、Terraformを使用してAWS Certificate Managerの証明書を発行した

# 前書き
表題の構築を行ったので、備忘録も兼ねて記載します。

# AWS Certificate Managerの概要
– ウェブサイトやアプリケーションのセキュリティを強化する為に、**SSL/TLS証明書**の発行、管理、展開を自動化するサービス
– ウェブ通信の暗号化が簡単に実現、データの機密性を確保、なりすましを防止が可能になる
– ACMで発行された証明書は自動で更新される為、証明書の有効期限を気にする必要がない

## 主な機能
### 証明書の発行と管理
– 無料での証明書発行: `ELB`、`CloudFront`、`API Gateway`等の`AWS`リソースで利用可能
– 自動更新: 証明書の有効期限切れの心配が不要

### ドメイン検証
– DNS検証: 自動化が可能で、手動操作を減らし、証明書の再発行や更新時の再検証が不要
– Email検証: 手動で確認する必要があり、`DNS`検証よりも手間がかかる

### AWSサービスとの統合
– `Elastic Load Balancing (ELB)`: HTTPS通信の実現
– `Amazon Clou

元記事を表示

AWS S3 学習メモ

# 目次
1. [オブジェクトロック](#オブジェクトロック)
1. [署名付きURL](#署名付きURL)

# 1. オブジェクトロック

詳細

## 概要
S3オブジェクトロックは有効にすることで、S3オブジェクトが一定期間または無制限に上書きまたは削除されることを防ぐことができる機能。
バケット全体ではなくオブジェクトに対してのロックなので注意!!

バケットの設定でオブジェクトロックをオンにすると、バケット内の全てのオブジェクトに対してオブジェクトロックが有効になる。

## オブジェクトロックを使用する条件
・バージョニングが有効になっていること
 ⇒オブジェクトロックは特定のバージョンのオブジェクトに対して上書きまたは削除されることを防ぐ
 ⇒オブジェクトの新しいバージョンを作成することが阻害されたり、オブジェクトの上に追加される削除マーカー(これがあると実際には削除されていないが、S3はこのオブジェクトが削除されたようにふるまう)が削除されることはありません

## 保持期間
オブジェクトロックが有効化されると

元記事を表示

CloudFormationでのAWSネットワーク構築:VPC、サブネット、インターネットゲートウェイ、NATゲートウェイ、ルートテーブルの設定

## はじめに
AWS環境でのネットワーク設定は、各リソースを適切に構築・設定する必要があるため手動で行うとミスや負荷が発生しやすくなります。

:::note warn
**そこで、ネットワーク構築の作業を自動化する手段として、AWSのCloudFormationを利用することで効率的かつ信頼性の高い構成管理が可能です。**
:::

この記事では、VPC、サブネット、インターネットゲートウェイ、NATゲートウェイ、ルートテーブルを含む基本的なネットワーク構成をCloudFormationテンプレートで実現する方法について解説します。

## 知識整理
まず、AWSネットワークの基本コンポーネントとその役割を整理しましょう。

### VPC(Virtual Private Cloud)
AWS上で仮想ネットワークを構築するための基本的なネットワーク環境。サブネットやインターネット接続の基盤を提供します。

### インターネットゲートウェイ
VPC内のパブリックサブネットのリソースがインターネットにアクセスできるようにするコンポーネント。

### NATゲートウェイ
プライベート

元記事を表示

AWS Glue 増分クローラーでハマったこと

## 最初に結論

### ハマったこと
AWS Glueの増分クローラーを使うときはデータソース(S3)にデータがない状態で初回実行してしまうと2回目以降のクロールでもスキーマ作成されずパーティション更新もされない。

### 回避するためには?

1. 初回実行前にデータを入れておく
2. 増分クローラーを使うのをやめる
3. テーブルやスキーマ作成部分をGlueに任せるのをやめる

## 背景

DBからS3バケットにデータを流し込んでAthena検索できる環境を構築するためにAWS GlueのCrawlerを使ってデータカタログテーブル作成・更新をしていました。

Crawlerを使えばパーティションキーをはじめとするテーブル情報の作成と更新を自動でやってくれるのでAthena検索をスムーズに行えるわけです。

ただ、Crawlerも万能ではないため性質を理解した上で使う必要があります。

## クローラーの仕組み

> クローラーを実行すると、クローラーは以下のアクションを使用してデータストアを調査します。
> ・生データの形式、スキーマ、および関連プロパティを確認するために

元記事を表示

CDKのL2 Constructで指定できないパラメータをL1 Constructで指定する

## 概要

CDK(L2 Construct)でAWSリソースを作っていると指定できないプロパティがあります。

CDKのバージョンを上げれば解消されることもありますが、いつでも最新のCDKが使える状況ではないかもしれません。また、最新化したとしても依然として指定できないケースもあります。

より低レイヤーなL1 Constructを使うことで解決する方法を紹介します。

## 前提

### バージョン情報

* CDK:2.89.0
* TypeScript

## CDKのレイヤーについて

CDKには大きく3つのレイヤーが存在しています。

|レイヤー名|説明|
|:-:|:-:|
|L1|Cfnのテンプレートを直接記述できる。L2よりも細かい指定ができる。|
|L2|普通に書いてたらこのレイヤーを使ってる。|
|L3|本記事とは無関係なので割愛。|

極端な例ですが、L2でS3バケットを作ろうと思った場合以下のように1行書けば作れます。

“`typescript
const bucket = new s3.Bucket(this, ‘MyFirstBucket’);

元記事を表示

VPCのサブネットはルートテーブルで考えよう

# 学習前
VPCのサブネットには、パブリックサブネットとプライベートサブネットの2種類あるのは知っていました。

その2つは、サブネットを作成する際に「パブリックサブネットにする?プライベートサブネットにする?」のどちらかをコンソール上で選択できて、それによってパブリック/プライベートの違いが決定する…と考えていました。

でも実際は全然違った…ということで学びを得たのでアウトプットします。

# 結論
パブリックサブネットとプライベートサブネットの違いは、**ルートテーブルの設定によって左右**される。
サブネットそのものを「パブリック」や「プライベート」と**定義づけることはできない!!!(というか、そんなことをしても意味がない!)**

# ハンズオンをやってみた
AWS公式が提供している初心者向けハンズオンである「Hands-on for Beginners」のネットワーク編#1 で、ネットワークについて1から学び直している時に、自分の認識が誤っていたことに気がつきました。

https://pages.awscloud.co

元記事を表示

OTHERカテゴリの最新記事