- 0.0.1. Amazon Bedrock に色々と尋ねてみました
- 0.0.2. Amazon FSx for NetApp ONTAPのS3マルチプロトコルで実現する静的コンテンツホスティング 第1回
- 0.0.3. VPC内のルーティングに関するシンプルな勘違い
- 0.0.4. AWS SAA(C03) 勉強ログ
- 0.0.5. Amazon Bedrock を利用してスマートホームスキルを起動するパーソナルアシスタントAIっぽいコードを書いた
- 0.0.6. Lambda × SQSでのサーバーレスアーキテクチャの構築
- 0.0.7. 【まとめ】CloudWatchとAWS Batchを使ってRDSに定期的にクエリを実行&失敗時はSlack通知するCFテンプレート
- 0.0.8. Renderデプロイ時の! Unable to load application: ArgumentError: Missing `secret_key_base` エラーの対処法
- 0.0.9. 今更AWS編 (1-1 リージョンとアベイラビリティゾーン)
- 0.0.10. 何もできない奴がAWS使って$3で仕事できそうな奴のポートフォリオ作ってみた
- 1. 注意
- 2. なぜこのハンズオンを選んだのか
- 3. 対象者
- 3.0.1. AWSで使えるようになったAnthropicのClaude v2とGPT4を比較してみた
- 3.0.2. 【データ基盤構築/AWS Glue】BigQuery Exportのログデータの遅延に対応したBigQuery→S3のデータパイプラインの作成
- 3.0.3. [AWS] Amazon Textractの実装と機能
- 3.0.4. CloudWatchAgentAdminPolicyとCloudWatchAgentServerPolicyの違いを調べた
- 3.0.5. NATゲートウェイが高いのでNATインスタンスを立てる
- 3.0.6. 【学習メモ】CloudWatchの各機能について
- 3.0.7. Amazon Rekognitionで撮りためた動画から娘の笑顔を含むファイルを探してみた
- 3.0.8. Amazon EventBridge Schedulerを使ったRDSの自動停止を試してみた
- 3.0.9. AWS超初学者向 予算を超えたらslack通知をする
- 3.0.10. 複数originからのCORSを許可する
Amazon Bedrock に色々と尋ねてみました
2023年9月28日突如一般公開になった Amazon Bedrock を早速試してみました!
記事執筆時点では、以下の4リージョンのみで利用が可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548623/67bb1b3b-76e4-90ae-5fce-18b7fb6c27c0.png)## 初期設定
Amazon Bedrock にアクセスし、利用を開始しようとすると初回は以下のようなウィンドウが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548623/0f88fd83-3c93-bc84-8f51-33974afa8feb.png)> Bedrock を使用するには、必要な IAM 権限を持つユーザーが特定のモデルへのアクセスをリクエストする必要があります。アクセスが許可されると、このアカウントのすべてのユーザーがモデルを使用できるようになります。
Amazon FSx for NetApp ONTAPのS3マルチプロトコルで実現する静的コンテンツホスティング 第1回
# はじめに
– 2023年6月末頃からAmazon FSx for NetApp ONTAP(以下、FSxN)のバージョン9.12.1が順次ロールアウトされ、2023年7月初旬には東京リージョンでも利用できるようになりました。
– ONTAP 9.12.1では、NASとして構成されたボリュームに対してS3プロトコルで接続するS3マルチプロトコルを使用し、異なるプロトコルで同じデータを扱うこと(データの二重性:Data Duality)が可能です。
:::note
参考
– [データサイエンティストやその他のアプリケーション向けのデータの二重性](https://docs.netapp.com/ja-jp/netapp-solutions/data-analytics/cdm-fod-data-duality-for-data-scientists-and-other-applications.html)
– [【NetApp CVO + Amazon SageMaker】NFS/S3でボリュームに同時アクセスできるData Dualityを試してみる【機械学習】](https://
VPC内のルーティングに関するシンプルな勘違い
## 勘違いしていたこと
AWSをふわりとした理解だけで触っていた頃、VPC内のサブネットごとに独立したルーターが存在し、それぞれのルーターにルーティングテーブルが紐づいていると思っていたことがありました。
サブネットAとサブネットBがある場合、それぞれにルーターA、ルーターBが存在し、各ルーターに対してルーティングテーブルが関連付けられている、という認識です。
あるプライベートサブネットに対してNATゲートウェイを設定したくなったとき、ネクストホップにいないノードをターゲットに指定できるのは何故かと疑問に思ったことが始まりで勘違いが解けたため、ここにまとめようと思います。
## 実際の仕組み
実際は、サブネットごとに独立した物理的なゲートウェイが存在して通信を制御しているわけではありませんでした。
VPCにはユーザーが直接触れないような仮想的なルーターが一つ存在し、この仮想ルーターがサブネットやゲートウェイに対して紐づけられたルーティングテーブルをもとに、VPC内の通信を制御しています。
この仮想ルーターは、VPC内のすべてのサブネットやゲートウェイなどと「直接」接続さ
AWS SAA(C03) 勉強ログ
https://www.youtube.com/playlist?list=PL2nCE2iR-lpm71Vvu0Xn11lEqa5IXAyC1
ここから勉強したことを書いていく。# データベース周り
## DynamoDB
NoSQL
ミリ秒単位のとても低遅延のサービス
オートスケーリング
ダックス、ストリームす?との組み合わせ## Amazon RDS
オートスケーリングなし
スケーリングにダウンタイムが必要
SQL serverのみ障害時のフェイルオーバーはSQL Server独自の機能を使用している。## Amazon Aurora
オートスケーリングなし
スケーリングにダウンタイムが必要# ストレージ
## Amazon EFS
ファイルストレージ
## Amazon EBS
ブロックストレージ
同時アクセスはマルチアタッチを使用しないと無理
## Amazon S3
Amazon Bedrock を利用してスマートホームスキルを起動するパーソナルアシスタントAIっぽいコードを書いた
# 何の記事?
– 最近GAした Amazon Bedrock をpythonのSDK(boto3)から実行してみる
– [前回記事](https://qiita.com/hamanuman/items/51bb3974c7550670a2de)の続き
– この中で、プロンプトエンジニアリングっぽくClaude-v2にユーザの意図を判定してもらい、後続の処理を選択してもうらう
– 後続の処理の中で再度ユーザの意図をCluade-v2に判定してもらい処理のパラメータを生成する
– 後続処理としては下記を行う
1. 単純なチャットの対話
1. 画像生成AIでの画像生成
1. ALexa SmartHomeSkillの内部処理であるLambdaの呼び出し# Code
“` personal_assistant.py
import boto3
import json
import base64
import sys
from datetime import datetimesample_prompt = “A photograph of an dog on the top of a
Lambda × SQSでのサーバーレスアーキテクチャの構築
## はじめに
先日、AWSのLambdaとSQSを用いた、サーバーレスな設計で、あるアプリケーションを作成したので、その時のアーキテクチャや、実装面で工夫した点をまとめました!
基本的なアーキテクチャなので、比較的初学者向けの記事になります!こういう処理を走らせたいけど、お金がかかるしサーバーを動かし続けたくないなあ、、
という方は、ぜひlambdaを活用してみてはいかがでしょうか!## アプリの概要
作成したアプリは、大枠では下記の処理を順番に実行するものです。
1. 処理する対象のURL一覧を取得する処理
2. URLに登録されている文章を取得する処理
3. 文章を要約する処理
4. 要約された文章を、S3に登録する処理周期を設定したEventBridgeをトリガーとして、この処理を開始します。
2番目以降の処理から、lambdaの同時実行の力とSQSの特性を活かして、並行処理を実施します。## アーキテクチャ
![スクリーンショット 2023-10-01 15.53.15.png](https://qiita-image-store.s3.ap-northeas
【まとめ】CloudWatchとAWS Batchを使ってRDSに定期的にクエリを実行&失敗時はSlack通知するCFテンプレート
# 概要
以下の構成で実装しました。– CloudWatchEventsをトリガーとしてAWS Batchを起動し、登録しておいたプロシージャでRDSに対してクエリを実行する
– AWS Batchのジョブ実行結果が失敗した場合は、Lambda関数によってSlackに通知する上記をCloudFormationで実装したので紹介します。
AWS Batchは初めて触るリソースだったのと、なかなか上記構成に該当の記事が見つからず苦戦したところもあったので、備忘も兼ねて丁寧に整理して記載しました。# 実施手順
CloudFormationを実行するにあたり、事前準備も含め手順は以下の通りです。①AWS Secret ManagerでRDSのアクセス情報を登録(dbnameも追加で登録)。
②EC2でKeyPairを作成し、ダウンロードしておく。
③Slack Incoming Webhookを作成する。
④RDSデータベースにプロシージャ(SQLクエリ)を登録する。
⑤CloudFormationテンプレートを作成し、適用する(後述で詳細に記載)。
⑥ECRにDocke
Renderデプロイ時の! Unable to load application: ArgumentError: Missing `secret_key_base` エラーの対処法
# 概要
個人開発の際Renderでデプロイしようとしたところ
“`ruby
! Unable to load application: ArgumentError: Missing secret_key_base for ‘production’ environment, set this string with bin/rails credentials:edit`
“`
というエラーが発生し苦戦したので備忘録として残しておきます。
※初学者で知識に乏しいため誤った記述があればコメントいただけると幸いです。
## secret_key_baseとは
Railsのアプリケーションでは、“secret_key_base“というシークレットキーが必要です。これは、暗号化やセッションの検証など、さまざまなセキュリティ関連のタスクで使用されます。production環境で、このキーが設定されていないことが原因で今回のエラーが発生しました。
## 対処方法
対処方法は簡単です。
ローカル環境で、以下のコマンドを実行してRailsのクレデンシャルを編集します。
“`ruby:bash
今更AWS編 (1-1 リージョンとアベイラビリティゾーン)
### ①AWSグローバルインフラストラクチャとは
・AWSが提供するクラウドサービスを稼働させる為の物理的な設備
・世界中に分散されたリージョン/アベイラビティゾーン/エッジロケーション/ローカルゾーン/それらを繋ぐネットワークによる網構成要素の総称。
### ②リージョンとは
・AWSサービスを提供している国や地域等の拠点の事。
・リージョン同士はそれぞれ地理的に離れた場所に配置されている。
### ③アベイラビリティゾーン(AZ)とは
・リージョンを構成する為の、細分化されたデータセンター(DC)の集合体の総称。
・複数のDCがAZを構成し、複数のAZで構成されている物がリージョン。
### ④アベイラビリティゾーンによる信頼性の向上
・AZは地理的・電源的に独立した場所に配置及び稼働している為、落雷や洪水などの自然災害によるAZへの局所的な障害に対して別のAZが影響されないようになっている。
・AZ間では距離的に数十キロ単位で離れて配置されているが、各AZ間では高速なネットワーク回線で接続されている為、ネットワーク遅延(レイテンシー)の問題が発生する事はほぼ無い。
### ⑤マ
何もできない奴がAWS使って$3で仕事できそうな奴のポートフォリオ作ってみた
皆さんこんにちは、iret株式会社Global Solution事業部の浜田です。
今回は典型記な文系出身者である私がAWSを駆使して簡単なハンズオンをしてみたという内容になります。本当に基本的な知識だけでできる内容なので初学者の方は是非やってみてください。注意
本ハンズオンは有料($3)です。
覚悟してください。なぜこのハンズオンを選んだのか
さて、世の中に無限にある初学者用のハンズオンですが僕がこれを選んだ理由はたった一つです。それは..
★楽しくないとやる気が出ないから
まあ個人的に何をやるにもこれが一番だと思ってます。そこで、学生時代からWebデザイナーさん達が作るポートフォリオに憧れていたのでせっかくなのでトライしようと思いました。
対象者
EC2, S3, VPCなどがどういったものかは多少知っているが実際触ったことない。SAAの知識があれば十分すぎるくらいです。(AWSアカウントの作り方は今回省きます。)
今回使うもの
AWSで使えるようになったAnthropicのClaude v2とGPT4を比較してみた
## はじめに
8月23日より、AWSでAnthropicの最新のAIであるclaude2が利用できる様になりました。
ちょっと触ってみた感じだと、レスポンスの性能もGPT4と比べても大きく性能が劣るということはなさそうな感触です。
Claude v2の特徴はなんといっても他のAIと桁違いのトークンサイズが読み込めること!です。(最大100k)
GPT4の場合、最大でも32kとなっており、GPT3.5のトークンは4kということを考えると32kでも十分大きいですが文書の要約や議事録の作成などのユースケースの場合、それでも足りないことがあります。この記事では、GPT4とClaude v2の比較をしてみたいと思います。https://www.anthropic.com/index/claude-2-amazon-bedrock
## 表でまとめてみた
GPT4の8k, 32k, Claude v2の3つを表にまとめてみました。
| モデル | GPT4(8k) | GPT4(32k) | Claude v2 |
|:———–|:————:|:—-
【データ基盤構築/AWS Glue】BigQuery Exportのログデータの遅延に対応したBigQuery→S3のデータパイプラインの作成
# 今回の課題
AWSのGlueを使用して、
BigQuery ExportでBigQueryにエクスポートしたGAのログ生データをS3までエクスポートする。BigQuery Exportはログデータのエクスポートに72時間の遅延があるため、
遅れてきたログデータまでS3にきちんと入れる方法を考えた。## 前提
本記事では、Glueでどのようなコードを実行して上記の課題を実現したかを書くので、
以下は既に準備できているものとします。
* Glueに対して、必要な権限(S3を操作するための権限など)の付与
* ログデータのエクスポート先のS3バケットの用意
* BigQueryExportでのGAのログデータのBigQueryへのエクスポート設定## 工夫したところ
Googleの公式ドキュメントにも記載がありますが、
BigQuery ExportでBigQueryに、GAのログデータをエクスポートすると、
エクスポート先のテーブルでは、最初のエクスポートから72時間以内の間で、遅延したログデータを入れ直すために何度か更新が行われます。>日次エクスポートのテーブル(ev
[AWS] Amazon Textractの実装と機能
# AWSのAmazon Textractの概要と機能
## 概要
Amazon Textractは、AWSのクラウドベースの光学文字認識(OCR)サービス。このサービスは、印刷された文書や手書きのメモ、テーブルなどの情報を構造化されたデータに抽出し、機械的な処理や分析に利用することができる。Amazon Textractは、文字や単語の位置情報、テーブルのセルや行の情報などを抽出するため、精度の高い結果を提供する。## 機能
以下に、Amazon Textractの主な機能を示します。1. テキスト抽出: イメージファイルやPDFなどの文書から、文字の情報を抽出し、手書きの文字や印刷された文字に対しても高い精度で認識が可能。
2. テーブル抽出: テキストベースで構成された表やグリッドの情報を抽出し、テーブル内のセル、行、列の情報を構造化した形式で提供する。
3. フォーム抽出: フォームの情報(氏名、住所、電話番号など)を自動的に抽出し、複数のフォーム項目を一括で処理することができる。
4. 関連画像抽出: 文書に関連する画像を検出し、抽出することができる。画像内のオブジ
CloudWatchAgentAdminPolicyとCloudWatchAgentServerPolicyの違いを調べた
CloudWatchへログやメトリクスを送信するため、AWSリソースに(のロールに)IAMポリシーを付与する必要がありますが、CloudWatchAgentAdminPolicyとCloudWatchAgentServerPolicyという似たようなやつがあり、その違いを調べてみた。
# 結論から言うと
・CloudWatchAgentAdminPolicyはCloudWatchAgentServerPolicyより権限が大きく、**ssm:PutParameter**が許可される
・最初の何かのセットアップ時に(何かの設定ファイルの書き込み?)、**ssm:PutParameter**が必要なので、CloudWatchAgentAdminPolicyが必要となり、
運用時はもう**ssm:PutParameter**が要らないらしく、**cloudwatch:PutMetricData**と**logs:PutLogEvents**のあるCloudWatchAgentServerPolicyだけでOKとのことでした。## CloudWatchAgentAdminPolicyの
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