- 1. streamlitとlangchainでチャットAIを作る
- 2. クロスアカウントアクセスでS3バケットへファイルアップロード
- 3. Livebook で Claude 3.5 Sonnet を Amazon Bedrock の基盤モデルとして呼び出す
- 4. AWS Certified Data Engineer – Associate(DEA-C01)を受験してみた
- 5. Re:ECS タスクの停止理由を Slack へ通知してみた
- 6. Bedrockでカスタムモデルのクロスアカウント共有とリージョンコピーが可能になりました!
- 7. 書評「AWSではじめる生成AI」
- 8. 【AWS】エラー「CloudFormation cannot update a stack when a custom-named resource requires replacing」の対処法
- 9. Elasticache RedisとSocket.ioを用いたWebSocket通信の問題解決
- 10. 【SOA】試験対策メモ その3
- 11. 【SageMaker】BERTモデルのトレーニングのやり方 ~チェックポイントを添えて~
- 12. Databricksでデータパイプライン構築:Databricks on AWS クラスター利用料金単価の作り方
- 13. Azure と AWS の L7 ロードバランサーの主要な違いを個人的に比較
- 14. Backlog Gitリポジトリの更新をトリガーに、Amazon S3にコンテンツを自動でアップロードする
- 15. AWS CDKでCloudfront – Lambda FunctionURLsのOACを定義する
- 16. VPCを設定したLambdaからインターネットにアクセスしたい
- 17. 【Amazon Simple Notification Service】Pub/Subメッセージングとは
- 18. 【DAY9】AWS Coud9について
- 19. 【DAY7】AWS 、GCP、Azureの違い
- 20. 【DAY5】AWSのアカウント、ユーザーについて
streamlitとlangchainでチャットAIを作る
# はじめに
今さらですが、最近の学習で**streamlit**を知りました、
爆速で**ChatGPT**のようなサービスを作れるとのことで、その過程を記録していきます。:::note info
Streamlit
Pythonで簡単にデータアプリケーションを作成できるフレームワークです。データサイエンスや機械学習の結果を、簡単にインタラクティブなウェブアプリケーションとして表示するためのツールとして人気があります。[公式ドキュメント](https://streamlit.io/)
::::::note info
langchain
LangChainは、LLMを使ったアプリケーションを簡単に作成・統合するためのフレームワークです。 [公式ドキュメント](https://www.langchain.com/)
:::## 成果物
![画面収録 2024-08-02 14.37.42.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320164/334570db-ff7f-abe0-d9c
クロスアカウントアクセスでS3バケットへファイルアップロード
# やりたいこと
BアカウントのIAMユーザーから、Aアカウント所有のS3バケットへファイルをアップロード# やり方
## ①Aアカウント
### バケット作成
設定がデフォルトでいい
(ACL使わない)
(パブリックアクセスブロックをオンのまま)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538617/e5b2d54f-795a-944c-e254-c05171821306.png)
### バケットポリシー設定
(BアカウントのIAMユーザー作成へアクセス権限を付与)
“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “Only allow writes to my bucket with bucket owner full control”,
“Effect”: “Allow”,
“Principal”: {
Livebook で Claude 3.5 Sonnet を Amazon Bedrock の基盤モデルとして呼び出す
## はじめに
AWS の生成 AI サービス Bedrock を Livebook から呼び出します
2023 年 12 月にもやっていますが、今回は Claude 3.5 Sonnet に画像を与え、内容を説明してもらいます
https://qiita.com/RyoWakabayashi/items/bb85dd2286420205e2da
実装したノートブックはこちら
https://github.com/RyoWakabayashi/elixir-learning/blob/main/livebooks/aws/bedrock_claude_35.livemd
## 事前準備
以下の記事を参考に、 AWS コンソールから基盤モデルのアクセス要求を出しておきましょう
https://qiita.com/RyoWakabayashi/items/5680a4bac246a1a0c532
また、 AWS にアクセスするための IAM ユーザー、認証情報が必要です
## セットアップ
必要なモジュールをインストールします
以前はまだ AWS Elixir の
AWS Certified Data Engineer – Associate(DEA-C01)を受験してみた
# はじめに
先月に「AWS Certified Data Engineer – Associate」(DEA-C01)を受験しました。# スコア
**840/1000**無事に合格できました。
やはり、Professional系の試験と比較して問題文・選択肢の文章量がすくなく、気が楽でした。
難易度については、以前から業務で出題範囲内のGlueやらRedshiftを使ってたこともあり、勉強中もイメージしやすかったように思います。# 受験対策
### Web問題集
3~4周くらい実施しました。### 公式練習問題
#### Exam Prep Official Practice Question Set: AWS Certified Data Engineer – Associate(DEA-C01 – Japanese)
こちらについても何周か実施しています。# 受験方法
テストセンターで受験しました。
試験に集中したいというものあり、テストセンターでの受験を個人的におすすめしています。
受験日が平日の昼
Re:ECS タスクの停止理由を Slack へ通知してみた
# はじめに
暑い日々が続きますね。
なんだかんだでAI界隈に中々DeepDiveできない [@\_\_\_nix___](https://twitter.com/___nix___) です。# 背景
「ECS のタスク停止理由を Slack に通知してみた」をテーマにすると、ECSタスク停止後の昇天までの時間は1時間以内ということで皆さん様々なご苦労をされているかと思います。* 1時間以内にログを確認
* EventBridgeでストップイベントをフック
* 等々そこで先日(勝手に)リスペクトしているたかくにさんが次のようなブログを執筆してました。
https://dev.classmethod.jp/articles/ecs-task-stop-reason-slack-notification/
これ、めっちゃ便利やん!と思いながらも画面見ながらポチポチし、「ここはこうかな?」と考えながらAWSマネージドコンソールとにらめっこするのがツラミでした。
「それならもうIaC(Terraform)で書いちゃおう!」という勢いで進めて行こうと思いますが、更にアーキテク
Bedrockでカスタムモデルのクロスアカウント共有とリージョンコピーが可能になりました!
## はじめに
これまでBedrockのデフォルトでは、カスタムモデルの使用は作成されたリージョンとアカウントでのみ利用可能でした。今回追加された機能では他のリージョンへのコピーや別AWSアカウントへの共有ができるようになりました!![スクリーンショット 2024-08-02 9.50.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354022/416655a6-7440-4728-b8f9-b928dfb1a231.png)
## カスタムモデルのリージョンコピー
### カスタムモデルコピーのサポートリージョンとベースモデル
※Claude 3 Haikuはまだプレビュー中なのでClaude 3 Haikuを微調整したい場合は、事前にサポートへ問い合わせをしましょう。| モデル | 米国東部 (バージニア北部) | 米国西部 (オレゴン) | アジア太平洋 (ムンバイ) | アジア太平洋 (シドニー) | ヨーロッパ (アイルランド) | ヨーロッパ (フランクフルト) | ヨー
書評「AWSではじめる生成AI」
ありがたいことに、「AWSではじめる生成AI」を献本いただきました。
https://www.oreilly.co.jp/books/9784814400720/
> AWSではじめる生成AI
> ―RAGアプリケーション開発から、基盤モデルの微調整、マルチモーダルAI活用までを試して学ぶ
>
> Chris Fregly、Antje Barth、Shelbee Eigenbrode 著、久富木 隆一 訳、本橋 和貴、久保 隆宏 技術監修発売日に合わせて書評をと思ったのですが、サラッと読んで理解できる本ではなかったので、読んだところまでで、ご紹介させていただきたいと思います。
## まえがき
まえがきでは、6月開催のAWS Summit Japan 2024に触れられています。原著を単純に翻訳するだけでなく、できるだけ最新の情報を盛り込んでくれています。
原著では、「Pythonや深層学習の基本要素についてはすでに知識があるもの」を想定されていますが、日本語版では概念についての解説が訳注として追加されています。このあたりも嬉しい点だなと思いました。
## 1章 生成A
【AWS】エラー「CloudFormation cannot update a stack when a custom-named resource requires replacing」の対処法
# 概要
AWS Batchを記述したCloudformationテンプレートを更新したら、以下のエラーになりました。こちらの原因と対処法を解説します。
> CloudFormation cannot update a stack when a custom-named resource requires replacing. Rename arn:aws:batch:ap-northeast-1:1234567890:compute-environment/xxxx-compute-environment and update the stack again.
# 原因
このエラーは、CloudFormationがカスタム名を持つリソースを置き換える必要がある場合に発生するもの。
今回で言うと、AWS Batchの`compute-environment`が該当します。Batchの`compute-environment`の中身を少し変えたので、そうするとCloudFormationは新しいリソースを作成し、古いリソースを削除しようとしますが、カスタム名を持つリソースは直接
Elasticache RedisとSocket.ioを用いたWebSocket通信の問題解決
## はじめに
今回は、socket.io,redis,ioredisを使用してWebSocket通信を行うシステムのインフラ作成時に、はまったポイントを備忘録を兼ねて紹介していきます
## システム構成
### フロントエンド
**Vue.js**:ユーザーインターフェースと管理インターフェース。
**S3**:静的ファイルのホスティング。
**CloudFront**:グローバルキャッシュと配信。### バックエンド
**Nest.js**:APIサーバー。
**ECS(Elastic Container Service)**:コンテナオーケストレーション。### その他のAWSサービス
**ALB(Application Load Balancer)**:リクエストをECSタスクにルーティング。
**ECR(Elastic Container Registry)**:Dockerイメージの格納と管理。Socket.ioを用いてWebSocket通信を行う際、以下のような構成にしました:
1. **ElastiCache Redis**を使ったPub/Subシ
【SOA】試験対策メモ その3
# Amazon Route 53
## アウトバウンドエンドポイント
アウトバンドへの転送ルールはVPCに紐づける必要がある>ルール
ネットワークの DNS リゾルバーに転送するクエリのドメイン名を指定するには、1 つまたは複数のルールを作成します。各ルールは 1 つのドメイン名を指定します。次に、ネットワークにクエリを転送する VPC にルールを関連付けます。https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/resolver-forwarding-outbound-queries.html
## Aliasレコード
実態はAレコードやCNAMEレコードでも、レコードの作成時にAliasの指定ができる。
ELBなどはIPが変更される可能性があるので、そもそもAliasレコードで作成される。# AWS サポートプラン
## プラン変更
変更用ポリシーを持つIAMで変更可能。ルートユーザーでなくても可能。# EC2
## システムチェック
インスタンスのホスト上で問題が起きているか確認する。
【SageMaker】BERTモデルのトレーニングのやり方 ~チェックポイントを添えて~
どうもこんにちは。
今回は、以前投稿したBERTモデルのトレーニングをチェックポイントありの状態でやってみました。
とりあえずBERTモデルのトレーニングをやってみたいという方は以下の記事の通りにやっていただくことをお勧めします。
https://qiita.com/PDC-Kurashinak/items/f55d5d9e534f59440313
# チェックポイントって何?
めちゃんこ大量のデータを使用してトレーニングを行いたい時が人によってはあると思います。その時になんらかの不具合が発生して、トレーニングが途中で止まってしまうということがあります。
チェックポイントを使用してトレーニングを行うと、**止まってしまった部分からトレーニングを再開することができます**。
他にも、**定期的にシステムからデータを取得して追加でモデルをトレーニングさせたい** という時にも、チェックポイントを使用することで実現できます。
# BERTってなに?
そもそもBERTモデルの話
Databricksでデータパイプライン構築:Databricks on AWS クラスター利用料金単価の作り方
# はじめに
株式会社NTTデータ [デジタルサクセスソリューション事業部](https://enterprise-aiiot.nttdata.com/) の [nttd-saitouyun](https://qiita.com/nttd-saitouyun) です。
先日、以下の記事を書きました。今回はこの単価表を作るために作成したデータパイプラインについてご紹介します。
– [Databricks on AWS クラスター利用料金単価の早見表(Enterpriseプラン・2024年7月)](https://qiita.com/nttd-saitouyun/items/abfeb9585de5da70867d)
– [Databricks on AWS クラスター利用料金単価の早見表(Premiumプラン・2024年7月)](https://qiita.com/nttd-saitouyun/items/1326c7798dcb8012352b)
– [Databricks on AWS クラスター利用料金単価の早見表(Standardプラン・2024年7月)](https://
Azure と AWS の L7 ロードバランサーの主要な違いを個人的に比較
L7 ロードバランサーは、ざっくりいうと、HTTP の内容(URL や HTTP ヘッダーなど)を利用した高度な負荷分散をできる仕組みです。
Azure の場合は Application Gateway V2(以降、Azure AGW と表記)、AWS の場合は Application Load Balancer(以降、AWS ALB と表記)が該当します。
Azure Application Gateway V1 は廃止されるため、Application Gateway V2 の方を検討することになります。
Azure AGW に Basic SKU が登場([2024/7/25 時点で Public Preview](https://azure.microsoft.com/ja-jp/updates/public-preview-azure-application-gateway-v2-basic-sku/))したことで、改めて気になったので確認してみました。
## 機能面の比較
| 項目
Backlog Gitリポジトリの更新をトリガーに、Amazon S3にコンテンツを自動でアップロードする
# はじめに
## この記事の概要
この記事では、タスク管理ツールBacklogのGitリポジトリとAmazon S3(以下、S3)との連携方法についてまとめています。
流れとしては、Backlog GitリポジトリのWebフックを使用して、リポジトリの更新をトリガーにLambda関数が実行されるようにします。そして、Lambda関数がS3にファイルアップロード処理を行います。
この一連の流れの具体的な構築方法や注意点をまとめています。## BacklogのGit機能について
[Backlog](https://backlog.com/)はタスク管理ツールです。そして、その機能の一つにGit機能があります。
ソースコード管理といえば、IT業界全体では、おそらくGitHubを使用しているチーム(人)が多いと思いますが、タスク管理にBacklogを使用しているケースでは、タスクとソースコードの紐付けが行いやすかったり、タスク管理とソースコード管理(他にもWiki機能もあるのでドキュメント管理なども)を一元化できるなどのメリットがあります。このGit機能は基本的には特に不自由な
AWS CDKでCloudfront – Lambda FunctionURLsのOACを定義する
## 以前の記事
https://qiita.com/Kanahiro/items/85573c9ae724df435a6a
## TL;DR
“`typescript
import * as iam from ‘aws-cdk-lib/aws-iam’;
import * as cloudfront from ‘aws-cdk-lib/aws-cloudfront’;
import * as lambda from ‘aws-cdk-lib/aws-lambda’;// 以下のようなリソースが定義されているとして(当然このままでは動かない)
const distribution = new cloudfront.Distribution({hoge:fuga});
const lambdaFunc = new lambda.DockerImageFunction({{hoge:fuga}};
const funcUrl = lambdaFunc.addFunctionUrl({
authType: lambda.FunctionUrlAuthType.AWS_IA
VPCを設定したLambdaからインターネットにアクセスしたい
# 要約
① NATゲートウェイを設置したパブリックサブネットを用意する
② NATゲートウェイにルーティングさせるルートテーブルを設定したプライベートサブネットを用意する
③ Lmabdaに②で作成したプライベートサブネットを指定する# 図解
![lamba-nat.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676792/8c9a4293-ef95-5d5d-5291-03e449645f42.png)Lambdaは、デフォルトの設定ではAWSが自動で設定したVPCに設置され、自由にインターネットへのアクセスができます。
ただし、なんらかの事情で(例えばVPC内のリソースにLambdaからアクセスしたい時など)自分のVPCにLambdaを設置したい場合は、
図のようにNATゲートウェイを経由してインターネットにアクセスする必要があります。
# なぜNATを経由する必要があるのか
例えば、以下のようにパブリックサブネットに直接Lambdaを設置してインターネットにアクセス
【Amazon Simple Notification Service】Pub/Subメッセージングとは
## Pub/Subメッセージングとは
Pub/Subメッセージングは、メッセージの**発行者**(パブリッシャー)と**購読者**(サブスクライバー)を分離する分散システムのメッセージングパラダイムです(※仕組みについては後述)。
Amazon Simple Notification Service(以下、SNS)では、このPub/Subメッセージングパラダイムに従いプッシュメカニズムを使って配信を行うことができます。
https://aws.amazon.com/jp/sns/
## Pub/Subメッセージングの主要コンポーネント
Pub/Subメッセージングを理解するためには、以下の4つのコンポーネントを理解しておく必要があります。
1. **パブリッシャー**: トピックにメッセージを発行するエンティティ
2. **メッセージ**: 発行者から購読者に送信される情報
3. **トピック**: メッセージが発行される論理的アクセスポイント
4. **サブスクライバー**: トピックからメッセージを受信するエンドポイントパブリッシャーが情報(メッセージ)をトピック
【DAY9】AWS Coud9について
# AWS Cloud9とは
「AWS Cloud9」とは、AWSが提供するサービスの一つで、クラウド環境でアプリケーションの開発やデータベースなどの利用が可能な統合開発環境(IDE)です。
## AWS Cloud9を利用するメリット
### ブラウザ上のみでコードを記述できる
AWS Cloud9はクラウドベースのサービスであるため、クラウド環境のみで開発環境を作れます。場所を問わず、どこからでも作業ができます。
### リアルタイムで共同作業ができる
AWS Cloud9はペアプログラミング機能を有しており、効率的に作業できます。
ペアプログラミングとは、単一の環境で2人のユーザーが一緒に同じコードに対して作業することを指します。
【DAY7】AWS 、GCP、Azureの違い
## AWSの特徴
AWSは最も広範なサービスを提供しており、クラウドサービスの中でもトップシェアを誇ります。
また、データセンターは世界中に分散されており、日本語によるサポートも24時間365日受けることができます。## GCPの特徴
GCP(Google Cloud Platform)はビッグデータの処理やAI、機械学習の開発に優れたサービスに強みを持っています。
また、Googleが運営しているためGoogle社内で利用されているインフラ環境・技術を利用できます。## Azureの特徴
AzureはMicrosoftが提供しているクラウドサービスであるため、Microsoft製品との相性がよく、様々なアプリケーションやサービスとの連携や移行が可能です。
また、Azureはオンプレミス環境とクラウド環境の両方に対応しており、高いセキュリティ機能も備えています。
【DAY5】AWSのアカウント、ユーザーについて
# AWSアカウント
AWSにおけるアカウントとは、「ひとつひとつの環境のこと」を指しています。
利用者はそのアカウントの範囲内でVPCやEC2といったAWSリソースを複数持つことが可能です。# rootユーザー
rootユーザーとは、AWSアカウントの作成時に作成されるものです。
アカウント内の全てのAWSサービスとリソース、請求情報についてフルアクセス権限を持ったユーザーになります。# IAMユーザー
IAM(AWS Identity and Accecc Management)は、AWSリソースへのアクセスを安全に管理するためのサービスです。
IAMユーザーはAWSアカウント内での権限をカスタマイズできるユーザーになります。
IAMポリシーをアタッチすることで権限のカスタマイズができるようになります。## アカウントとユーザーの違い
アカウントというと直感的には個人のものを想像すると思います。(Googleアカウントなど)
しかし、AWSにおけるアカウントはAWS環境のことを指します。
そして、Googleアカウントのような個人のものがユーザーに当たります。