- 1. NATゲートウェイが高いのでNATインスタンスを立てる
- 2. 【学習メモ】CloudWatchの各機能について
- 3. Amazon Rekognitionで撮りためた動画から娘の笑顔を含むファイルを探してみた
- 4. Amazon EventBridge Schedulerを使ったRDSの自動停止を試してみた
- 5. AWS超初学者向 予算を超えたらslack通知をする
- 6. 複数originからのCORSを許可する
- 7. AWSの生成系AIのAmazon Bedrockが公開されたようですね。
- 8. [用語早見表]Amazon Web Services 基礎からネットワーク&サーバー構築
- 9. DynamoDBの増分エクスポートを継続的に取得するプラクティス
- 10. Amazon Bedrockで入門するLangChain
- 11. 掲載場所により正答が異なる問題:AWS 認定 データベース – 専門知識(DBS-C01)
- 12. 外形監視(Amazon CloudWatch Synthetics)+Slack通知を AWS CDK で実装する
- 13. Local Storageに保管されるCognitoトークンへのセキュリティ対策
- 14. Amazon Bedrockで選択できるモデルの一覧
- 15. VMware Cloud on AWS ユースケース別の投稿記事まとめ (@Sanjushi003)
- 16. boto3 でAmazon Bedrock経由でStable Diffusionを叩いて、画像を保存する
- 17. boto3 で Amazon Bedrock を叩く on Docker
- 18. Amazon BedrockのWorkshopをVisual Studio Codeで動かすまでの手順
- 19. Amazon BedrockのEmbeddingsで作成したベクトルDBをLambda単体で使用する手順
- 20. Amazon BedrockのEmbeddingsを試しました。(良さげです)
NATゲートウェイが高いのでNATインスタンスを立てる
# 前書き
AWSを使用してシステム構築する多くの場合、プライベートサブネットを作成しインターネットから隔離することでアタックサーフェスの減少させます。
その場合は、パブリックサブネットでNATゲートウェイを作成しプライベートサブネットに紐づいたルートテーブルを変更することで、プライベートサブネットからパブリックサブネットを介してインターネット接続します。
しかしながら、小規模な開発環境でNATゲートウェイを使用するには高価である可能性があります。この記事では、一般的なVPC構成でNATゲートウェイの代わりにNATインスタンスを構築する方法を解説します。# 構築
NATインスタンスを構築するVPCとして、一般的なマルチAZ構成で各AZにパブリックサブネットとプライベートサブネットがあり、インターネットゲートウェイがVPCに既にアタッチされている想定です。
その上で、
[1. NATインスタンスを起動する](#NATインスタンスを起動する)
[2. ネットワークルーティングの設定をする](#ネットワークルーティングの設定をする)
[3. nftablesの設定をする](#nfta
【学習メモ】CloudWatchの各機能について
こんにちは、以前AWS-SAAを取るときは暗記で勝負したため、多くの機能の理解は実はあやふやでした。。。
八月上旬弊社BeeXに入ったらいろいろ勉強機会を下さって本当にありがたく思います!
自分のためでもありますが、ほかのAWS初心者にも役に立てたらと思って勉強メモをどんどん投稿したいと思います!!!
# CloudWatchとは
・統合的な運用管理サービス
・AWSが提供するサービス(EC2やLambdaなど)だけじゃなく、外部サービスの監視(外形監視)もできる
・その下に、**CloudWatch-logs**、**CloudWatch-Metrics**、**CloudWatch-Alarm**、**CloudWatch-event**がある## CloudWatch-logsとは
・ログの一元管理、検索。フィルタリングができる
・オンプレミスのサービスのログも取得できる### CloudWatch-ロググループとは
・**ロググループ**で各ログを分けられる。
![image.png](https://qiita-image-store.s3.ap-northea
Amazon Rekognitionで撮りためた動画から娘の笑顔を含むファイルを探してみた
# なんで作ろうと思ったか
昨年に娘が産まれてから、早いもので1年半が経ちました。
どこかで「子どもが泣いている時に自分の笑っている動画を見たら落ち着く」みたいな話を聞いたので、撮りに撮りためた動画ストックから「笑顔動画集」を作ろうと思いましたが、動画数が多く断念しました。そこでふと、AWSに「Amazon Rekognition」というサービスがあり、そこに表情の分析機能もあると知ったので、これを活用できないか、と考えたのがキッカケです。# どんなものを作ったか
## システム構成図
最終的には、笑顔のシーンの抽出/結合まで自動化させたいなと思ってますが、現時点では笑顔のシーンが含まれる動画の判定までです。
![Diagram.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47734/7181f115-a0f1-f449-540f-2f0ab49c6655.png)
## 処理の流れ
①:S3バケットに分析対象の動画をアップロードする(ここは手動)
②:S3バケットへのアップロードを
Amazon EventBridge Schedulerを使ったRDSの自動停止を試してみた
# 概要
RDSには最大7日間までしか停止することができないという仕様があります。
検証用の環境では必要なタイミングだけRDSを起動して、それ以外は停止させておきたいという場合があると思います。
そこで、RDSが7日ごとに自動起動されるたびにAmazon EventBridge Schedulerを使って自動的に停止させて、7日間ごとに手動で停止させずに済むようにしてみようと思います。# 手順
### IAMロールの作成
事前にRDSを停止するためのIAMロールを作成しておきます。
IAMのコンソールからロールに移動し、「ロールを作成」をクリックします。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3552698/bcd9056e-fa1e-a741-1788-488819656336.png)
エンティティタイプは「カスタム信頼ポリシー」を選択します。
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0
AWS超初学者向 予算を超えたらslack通知をする
# 初めに
これからAWSを学ぼうとしている方。やっぱり気になるのは利用料金ですよね。
無料枠で学びたい人も、多少は課金してより多くを学びたい人も。高額請求になったらどうしよう。
ネットでは何十万円にもなってしまった。なんて記事も見ます。そんな事態にならないためにも、「課金発生」や「予算超過」でslack通知やメール送信をして適切なコスト管理を一番最初に設定することを強くお勧めします。
## 流れ
・ 通知先のslack チャンネル作成
・ 対象チャンネルにアプリ「aws chatbot」を追加
・ SNSトピックの作成
・ AWS Budgets(予算)の作成
・ AWS Chatbotの設定では、早速やっていきましょう。(一番最初のslack チャンネルの作成に関しては説明を割愛します)
## Slackチャンネルに「aws chatbot」を追加する
対象チャンネルの「インテグレーション」から「アプリを追加する」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/5
複数originからのCORSを許可する
## はじめに
業務でAWS SAM(lambdaプロキシ統合)にて作成されたAPIに対し、複数originからのアクセスを許可するという作業があったためメモとして残します。
また今回の状況は開発環境と本番環境、両方からアクセスしたい場合などにも役立つ内容かと思います。## 状況再現
AWSの[公式チュートリアル](https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/serverless-getting-started-hello-world.html)よりSAMの簡単なAPIを作成します。諸々作業を終え、生成されたURLにcurlすると以下のような結果になると思います。
“`bash
$ curl https://xxxxxxx.execute-api.us-west-2.amazonaws.com/Prod/hello/{“message”: “hello world”}
“`ではブラウザからアクセスしてみます。
今回はlocalhost(`ht
AWSの生成系AIのAmazon Bedrockが公開されたようですね。
https://qiita.com/minorun365/items/79c2fc1d2afe82aad2af
たまたま上記の記事を拝見し、「ついにAWSでも生成系AIのサービスが公開されたんだなー」と思い、いろいろ調べてみました。
記事の内容のイメージとしては「Bedrockで何ができるの?AWSの生成系AIサービスは何が違うの?」という部分に回答するような感じで書きます。
あくまで概要で、技術的なお話や精度については他の方にお譲りします。
基本的なAWSサービスの知識はある前提の話となりますのでご了承ください。# 概要
AIの基盤モデルを呼んでいるFMと呼んでいる。
テキスト生成、チャットボット、検索、テキスト要約、画像生成。
APIを通じて利用できる。
データはサービス向上のために使用されることもなく第3社のモデルプロバイダーと共有されることもない。AWS PrivateLinkを使うことでインターネットも避けることができる。
当然IAMでの管理も可能
当然CloudWatchやCloudTrailでの監視も可能
S3のURIを指定することで大量のデータに注釈をつけることも
[用語早見表]Amazon Web Services 基礎からネットワーク&サーバー構築
# はじめに
[Amazon Web Services基礎からのネットワーク&サーバー構築改訂4版](https://bookplus.nikkei.com/atcl/catalog/23/04/06/00757/)を読むにあたって専門用語をわかりやすいようにまとめました。
構築手順に関してはこの記事では扱いませんので書籍をご覧ください。# 用語解説
## VPC(Amazon Visual Private Cloud)
自分のネットワークを作ること。どのようなIPアドレス範囲を使うかを指定### IPアドレス
インターネットと接続可能なネットワークではTCP/IPというプロトコル(ルール)を使用。
TCP/IPではそれぞれのサーバーにIPアドレスという番号を振る。
「10.0.1.10」といったピリオドで区切られた4つの数字。TCP/IPに関しては[こちら](https://cloudapi.kddi-web.com/magazine/twilio-sip/what-is-tcp-ip#:~:text=TCP%2FIP%EF%BC%88Transmission%20Con
DynamoDBの増分エクスポートを継続的に取得するプラクティス
# はじめに
DynamoDBの増分エクスポートの機能が[9/26に発表された](https://aws.amazon.com/jp/about-aws/whats-new/2023/09/incremental-export-s3-amazon-dynamodb/)。
これまではある時点の全件スナップショットしか取得できなかったが、「この期間に更新が入ったユーザ」を探せるようになったことで、DynamoDBでマスタ管理している際の差分履歴情報を別のテーブルで管理することが不要になった。今回は、この増分エクスポートの仕様を確認しつつ、継続的に増分エクスポートを取得する方法を検討する。
なお、増分エクスポートはマネージメントコンソールからもCLIからも実行できるが、いずれもあくまでの1回限りの「指定した期間で差分抽出する」コマンドを実行するのみであり、継続的に取得する場合は[AWS公式のブログ](https://aws.amazon.com/jp/blogs/database/introducing-incremental-export-from-amazon-dynamodb-t
Amazon Bedrockで入門するLangChain
以前「これを読んだらわかった気になれるLangChain」という記事を投稿しました。たくさんの方に読んでいただきました。ありがとうございます。
https://qiita.com/moritalous/items/7ceccbf809cc2f35ded2
ただ、見返すと変わっているところがたくさんありそうで、そもそも **元ネタにしたクイックスタートガイドがリンク切れ!**
Amazon BedrockがGAしましたので、Amazon Bedrockを使用した形で本日改めて動作確認しました。
これを機にLangChainに入門しましょう:grinning:
## 事前準備
VSCodeのdevcontainer (ubuntu:jammy)上にipynbを作って試しました。
* python3-pipをインストール
* VSCodeの拡張をインストール
* Python:https://marketplace.visualstudio.com/items?itemName=ms-python.python
* Jupyter:https://marketp
掲載場所により正答が異なる問題:AWS 認定 データベース – 専門知識(DBS-C01)
# はじめに
AWS の認定試験は、
問題集の「書籍」「サイト」が、
「日本語」「英語」ともに多数存在します。しかし、掲載場所によって
「同じ問題でも、異なる選択肢が正答として掲載されているケース」があります。この記事では、
そのような正答が異なる問題について記載します。AWS 認定試験の学習をする方の一助となれば、幸いです。
「個人的な感想」を追記していますが、
本当にどれが正答なのかは分かりません。
あくまで、参考程度にしてください。「参考サイト」には
こういった問題についての議論が掲載されている
ExamTopics へのリンクを貼っています。# AWS 認定 データベース – 専門知識(DBS-C01)
## 問題 1
– Oracle を Aurora PostgreSQL に移行したい
– Oracle には 100 GB の LOB がある
– DMS での移行を改善する### 掲載場所によって正答が異なる点
タスクを 1 つで移行するか、
2 つで移行するか、が異なる。### 個人的な感想
2 つのタスクでの移行がより効率的と考え
外形監視(Amazon CloudWatch Synthetics)+Slack通知を AWS CDK で実装する
GraphQLサーバーに対して外形監視を実施するために Amazon CloudWatch Synthetics というサービスを使ったので紹介します。
AWS CDKを使ってコード化して実装しました。
簡単に実装できるので、監視ってめんどくさいなーと思っている人も是非トライしてみてほしいです。# 外形監視とは?
外形監視とは、APIサーバーやWebサイトなどにユーザーと同じ方法で定期的にアクセスを実施し、アプリケーションが正常に動作しているかを行う監視方法のことです。
簡単に言うと以下のようなイメージです。
“`
監視者「やってる?」
サーバー「やってるよ!」
1分後…
監視者「やってる?」
サーバー「やってるよ!」
数時間後…
監視者「やってる?」
サーバー「…」
監視者「サーバが死んでる!アラートだ!」
“`# Amazon CloudWatch Syntheticsとは?
Amazon CloudWatch Syntheticsとは、外形監視に使えるサービスです。
WebサイトやAPIが稼働しているかを監視する事ができます。Canaryと呼ばれ
Local Storageに保管されるCognitoトークンへのセキュリティ対策
## 導入
– Amplifyライブラリを用いてReactアプリにCognitoを統合する場合、デフォルト設定ではLocal StorageにCognitoのトークンが保管されます。
– Local Storageへのトークン保管に否定的な意見を目にすることもありますが、個人的な意見としては`適切なXSS対策を実施する前提で`Local Storageもトークン保管先として選択しうると思っています。
– トークン保管先にLocal StorageではなくCookieを選択した場合でも、XSSには無力なため、開発の過程やサプライチェーンでXSS脆弱性を組み込まないことが重要。
– そのうえで、スケーラビリティや一斉ログイン等の要件を踏まえた上で、適切な保管先を選択するのが望ましいはず。
(徳丸先生の[SPAセキュリティ入門](https://www.docswell.com/s/ockeghem/ZM6VNK-phpconf2021-spa-security)から多大なる影響を受けています)
– 本記事では、Amplifyライブラリ利用時にLocal Storag
Amazon Bedrockで選択できるモデルの一覧
## 目次
* [テキストモデル](#テキストモデル)
* [テキストモデル(Embeddings)](#テキストモデルembeddings)
* [画像モデル](#画像モデル)## テキストモデル
| モデル名 | 最大トークン数 | 言語 | ユースケース | 特徴 |
| — | — | — | — | — |
| **Claude 2**
[Anthropic](https://www.anthropic.com) | **100K** | English and **multiple other languages** | Thoughtful dialogue, content creation, complex reasoning, creativity, and coding. Claude 2 excels at the core capabilities of Claude 1.3 and Claude Instant. | Claude 2 is a general purpose large language model,
VMware Cloud on AWS ユースケース別の投稿記事まとめ (@Sanjushi003)
# 1. はじめに
「VMware」および「VMware Cloud on AWS (VMC)」についての私の投稿が 50 記事を超えたので、比較的閲覧数が多いものに絞ってユースケース別に分けてあらためてご紹介します。# 2. VMC の構成および仕様の実機確認
https://qiita.com/sanjushi003/items/0aa6fd8c121c05ba1d7d
https://qiita.com/sanjushi003/items/03c3f634931fb8e0fbc7
https://qiita.com/sanjushi003/items/90e878528ef3526d5ba4
https://qiita.com/sanjushi003/items/01dec3aba5038c025d4b
## 応用的なネットワーク構成
https://qiita.com/sanjushi003/items/c55b28cbf05894988ecf
https://qiita.com/sanjushi003/items/23250524691218b6ddec
boto3 でAmazon Bedrock経由でStable Diffusionを叩いて、画像を保存する
# 何の記事?
– 2023/09/28にGAになったAmazon Bedrockに遅れて、boto3(python のAWS SDK)が対応した
ので、boto3経由で叩く
の続き
– 記事タイトルの通り# IAM Policy
– RecouseのARNはAPIサンプルのモデルIDがわかればOK
– モデルIDは、モデルのページ(例えば[ここ](https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/providers?model=claude-v2))に記載されている、APIRequestのmodelIdと一致する
“` policy.json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “VisualEditor0”,
“Effect”: “Allow”,
“Action”: [
“be
boto3 で Amazon Bedrock を叩く on Docker
## 何の記事?
– 2023/09/28にGAになったAmazon Bedrockに遅れて、boto3(python のAWS SDK)が対応した
ので、boto3経由で叩く
– あまりまとまった情報がなかったぽい、IAM ポリシーについて記載する
(モデルのARNがパッとわからなかった)## 前提
– Amazon bedrockのサービスで利用するモデルのアクセス申請を行い、利用可能状態にしておく
やりたかは[こちら](https://qiita.com/hamanuman/items/771ad6e3a205be1896f8)を参照
– 手元のPyhon/boto3を気軽にバージョンアップできないため、コンテナを作成して環境を作る
– コンテナにCoredntialファイルを渡すため、念の為新しいbedrock用のポリシーをもったCredentialを用意する## Amazon Bedrock利用可能なPolicyの作成
– 2023/10/1 時点で、AWS Managedのいい感じのPolicyがなかったため、自身で作成する
– 今回利用するのはとりあえず
Amazon BedrockのWorkshopをVisual Studio Codeで動かすまでの手順
# はじめに
Amazon BedrockのGAに伴い、JAWS-UG横浜支部でワークショップのもくもく会を開催しました。
https://jawsug-yokohama.connpass.com/event/297915/BedrockはGA前から変更された点が多く、Langchainのバージョンを上げないといけない等注意点が多かったので、まずはスタートラインに立てるようにするための記事です。
### 日本語のワークショップURL
https://catalog.us-east-1.prod.workshops.aws/workshops/a4bdb007-5600-4368-81c5-ff5b4154f518/ja-JP/50-qa/52-rag-qa### ワークショップのGitHubリポジトリ
https://github.com/aws-samples/amazon-bedrock-workshop/tree/main現時点で、日本語のワークショップは未完成のものが多く、実際はワークショップのGitHubリポジトリを見に行くのが良いです。
この記事は2023/
Amazon BedrockのEmbeddingsで作成したベクトルDBをLambda単体で使用する手順
[前回の投稿](d68ee613776e2e18b81b)で、Amazon BedrockのEmbeddingsを試しました。
LLMと独自ナレッジを組み合わせたFAQに活用できそうです。ベクトルデータベースのQdrantでは、単体のサーバーとして構築する方法だけでなく、メモリー上で動作させたりローカルファイルシステムで動作させることができます。
ローカルファイルとして動作するということは、 **Lambda化できるのではないか!?** と思い、挑戦しました。
## 手順
1. SAMプロジェクトを作成
`sam init`コマンドを実行し、SAMプロジェクトを生成します。言語はPython 3.10、Zipでデプロイの方式を選択しました。1. `hello_world/requirements.txt`に必要なライブラリーを追加します。バージョンは2023/9/30時点のものです。GA直後のため、今後バージョンアップするものと思われます。
“`txt
boto3==1.28.57
langchain==0.0.303
qdra
Amazon BedrockのEmbeddingsを試しました。(良さげです)
Amazon BedrockのEmbeddingsを試しました。
## 環境
* Ubuntu 22.04 (.devcontainer)
* Python 3.10
* VSCode + Python拡張 + Jupyter拡張1. ライブラリーのインストール
“`python
%pip install -q -U \
boto3==1.28.57 \
langchain==0.0.303 \
unstructured \
qdrant-client
“`## Embeddingsしてベクトルデータベースを作成
1. [EC2のFAQ](https://aws.amazon.com/jp/ec2/faqs/)を取得
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/ab964d42-2fb1-1f89-586b-5ed26f4f1eea.png)
“