- 1. プロキシ環境下のローカルPCに “Dify” を導入して、Bedrockする
- 2. 【これでOK!】FlaskアプリをECS(Fargate)で動かすまでのHelloWorld
- 3. M1チップMacでDockerを利用したAmazonLInux-Node環境で詰まった話
- 4. ECRのコンテナイメージを定期的にセキュリティスキャンしてSlack通知をおこなう
- 5. AIラジコンカーで障害物を回避させる
- 6. BullMQを用いたワーカーサービスの実装 with TypeScript
- 7. AWS Organizationsでメンバーアカウントのルートメールアドレスを変更できるようなりました
- 8. Open WebUI (Formerly Ollama WebUI) がすごい
- 9. AWSデプロイ備忘録
- 10. AppSync + RDSで複雑なクエリを実行する
- 11. 59日目AWSを使った字幕付けをしてみた社畜L
- 12. 【続】LINEメッセージをAWS Lambdaで送受信してみたお話
- 13. terraform ECSのコード例
- 14. Terraform初心者の備忘録 〜IaCを使うときに学んだあれやこれ〜
- 15. AWSのストレージサービスについて
- 16. portfoward設定をスクリプト化する
- 17. DynamoDBストリームって何?
- 18. CodePipeline V2の機能をCDK Pipelinesで対応させてみた
- 19. AWS Cost and Usage Reports(CUR)を作成してみた
- 20. ECS タスク定義ファミリーの古いリビジョンを削除
プロキシ環境下のローカルPCに “Dify” を導入して、Bedrockする
# はじめに
お疲れ様です。yuki_inkです。今年のGWあたりからにわかに「Difyがすごいらしい」と話題になりましたが、今まで触れられていませんでした。
https://dify.ai/jp
それから約1か月が経ち、ネット上の情報がかなり厚くなってきた今日この頃(界隈の皆さん強すぎですね)
ちょっと調べてみると、どうやらDifyはローカル環境でも動くらしいとのこと。
え、自社端末で使いたい!!
というモチベーションで色々やってみたという記事です。# やったこと
1. WSL 導入
1. Docker 導入
1. Git 導入
1. Dify 導入
1. Dify で「ワイのかわりに検索くん」を作る
1. 「ワイのかわりに検索くん」をBedrockする## 前提条件
– Windows10のPCで作業しています。
– Docker Desktopは利用しません。
– この記事ではプロキシの IP アドレスを `192.168.11.9`、プロキシのポートを `3128` として説明します。
この記事を参考にされる際は、実際のプロキシの情報に置き換えて設定してくださ
【これでOK!】FlaskアプリをECS(Fargate)で動かすまでのHelloWorld
# はじめに
以前に書いた以下の記事の反響が良く、有難いことに多くの方に見ていただきました。
https://qiita.com/tatsuya11bbs/items/a7898275535a766718bf
ただ、最新のマネージコンソールとの差異が出てきましたので最新版に書き直しました。ECSを学びたい人の最初の取っ掛かりになればと思います。ではECSのHello Worldをやっていきたいと思います。
# 事前学習 (ECSとは)
マネージコンソールで操作をする前に以下を理解してから始めましょう。
#### ★コントロールプレーン & データプレーン
まずは、ここの理解が必要です。Fargateを調べていると “ECS”やら “EKS”が出てきて混乱してしまします。その部分の整理をまずはしましょう。コンテナを運用していくにあたり、「コントロールプレーン」と「データプレーン」の2つに大きくは分けることができます。コントロールプレーンとは、コンテナな管理をするところで、サッカーで言うと監督的なポジションです。このコントロールプレーンが指示を色々出してコンテナを動
M1チップMacでDockerを利用したAmazonLInux-Node環境で詰まった話
## 発生状況
Windows利用者が作成したdockerfileをMacユーザーが利用したところ、エラーが発生した。## 原因と解決法
自分はWindowsしか利用したことがないため、“`dosbatch
=> ERROR [web 11/12] RUN npm install 0.1s
——
> [web 11/12] RUN npm install:
0.112 rosetta error: failed to open elf at /lib64/ld-linux-x86-64.so.2
0.112
——
failed to solve: process “/bin/sh -c npm install” did not complete successfully: exit code: 133
“`これが何原因か特定まで時間がかかってしまった。
原因は、
“`docker
RUN curl -fsSL https:/
ECRのコンテナイメージを定期的にセキュリティスキャンしてSlack通知をおこなう
ECS on Fargate環境を導入する際、最初にCIへTrivyやDockleによるコンテナイメージの脆弱性スキャンを組み込んだのですが、次にリリース間のセキュリティリスクも考えて、ECRのイメージを定期的にスキャンしてその結果をSlackで通知する仕組みをつくりました。
![スクリーンショット 2024-06-08 11.43.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569054/c5f59260-7ef5-11c1-d2db-c2b7d23a684f.png)
Lambda、EventBridge、S3、IAMロールというAWSの基本リソースを使用して、誰でも簡単にこの仕組みを構築できる方法をご紹介します。Terraformのコードも掲載するのでぜひご活用ください。
また、CIへのTrivyとDockleの組み込みについては以前記事を書いたので、こちらについても時間があったらご覧ください。
(Qiitaでの反応はよくありませんが、dev.toの方ではそこそこ反響がありました)
AIラジコンカーで障害物を回避させる
# 目次
1. [はじめに](#1-はじめに)
2. [AI学習の環境構築について](#2-AI学習の環境構築について )
– [2.1 ハードウェア](#21-ハードウェア)
– [2.2 ソフトウェア](#22-ソフトウェア)
3. [教師データ作成と機械学習](#3-教師データ作成と機械学習)
– [3.1 障害物なしで走行させる](#31-障害物なしで走行させる)
– [3.2 障害物を置いて回避させる](#32-障害物を置いて回避させる)
4. [おわりに](#4-おわりに)# 1. はじめに
本記事では、名城大学目黒研究室で製作したAIラジコンカーについてまとめました(2024.4).今回の製作では以下のサイトの記事を参考にさせていただきました。ここからは統一して「参考記事」と書きます。http://ma2.la.coocan.jp/AI_Driver/tt02/
説明を始める前に、まずは完成形の動画をご覧ください.
AWS Organizationsでメンバーアカウントのルートメールアドレスを変更できるようなりました
## 概要
AWS Organizationsで、配下のメンバーアカウントのルートメールアドレスを一元管理できるようになった旨のリリースがありました。https://aws.amazon.com/jp/about-aws/whats-new/2024/06/manage-member-account-root-email-addresses-aws-organization/
▼寝起きにこのリリースを読んだときの私の反応
https://x.com/hedgehog051/status/1799224884750581971
Organizationsの管理アカウント側で勝手にメンバーアカウントのルートメールアドレス変えられちゃっていいのか?本当にできちゃうのか気になって、2度寝出来なくなったので試してみてブログ書いてます。
Bedrockネタじゃなくてすまんの## 前提条件
– 管理アカウント側で、信頼できるサービスアクセス「AWS Account Management」有効にする## 注意点
– 管理アカウント側でルートメールアドレスを変更しても、パスワードやMF
Open WebUI (Formerly Ollama WebUI) がすごい
Open WebUIを使ってみました。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/7a4b2a44-3db1-dede-d889-791f59ced002.png)
[https://openwebui.com/](https://openwebui.com/)当初は「Ollama WebUI」という名前だったようですが、今はOpen WebUIという名前に変わっています。Ollama専用じゃなくなったということでしょう。OpenAIに対応済みです。
早速使ってみました。もちろんBedrockで。
## 環境構築
Dockerですんなり構築です。Bedrockに対応はしてないので、「LiteLLM」を使って対応させます。
環境変数でこのあたりを指定
* Ollamaを無効化
* LiteLLMのエンドポイントをOpenAIのエンドポイントとして登録
* APIキーを登録(LiteLLMとの通信には不要ですが、未指定だとOpen WebUIが正しく動作しませんでした)“`
AWSデプロイ備忘録
# ECR
### 2つのリポジトリを作る## ローカルでの実行
### ECRにログイン
“`sh
aws ecr get-login-password –region ap-northeast-1 | docker login –username AWS –password-stdin {アカウントID}.dkr.ecr.ap-northeast-1.amazonaws.com
“`### イメージにタグをつける
“`sh
docker tag {image name 1}:latest {アカウントID}.dkr.ecr.ap-northeast-1.amazonaws.com/{ECRリポジトリ 1}:latest
docker tag {image name 2}:latest {アカウントID}.dkr.ecr.ap-northeast-1.amazonaws.com/{ECRリポジトリ 2}:latest
“`### push
“`sh
docker push {アカウントID}.dkr.ecr.ap-northeast-1.amazonaws
AppSync + RDSで複雑なクエリを実行する
## やりたいこと
– AppSyncで構築したGraphQL APIから、
– RDSに対して、
– JOIN句などを含む複雑なクエリを実行したいAppSync, GraphQLの基本的な部分の説明は割愛します。
## 今回使用するGraphQLスキーマ
“`schema.graphql
type User {
id: ID
name: String
age: Int
department: Department
}type Department {
id: ID
name: String
}type Query {
listUsers: [User]
}
“`## RDSデータソースの限界
AppSyncのリゾルバーのデータソースとしてRDSを指定すると、AppSyncが用意しているユーティリティ関数で簡単にクエリを実行できます。“`
export function request(ctx) {// Generates statement:
// SELECT “id”, “na
59日目AWSを使った字幕付けをしてみた社畜L
## 🔎はじめに
さて今回は、新人研修も兼ねた社内開発でAWSのサービスを使って、
動画ファイルに半自動で字幕を付けられるようにしたのでそれについて話していくよ。## 🔍今回のアーキテクチャ
![スクリーンショット 2024-06-04 155518.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766505/9fd24f56-e673-4b0a-7877-5bb16cadf60e.png)## 🔎動作概要
1⃣⇒2⃣⇒3⃣
指定フォルダに動画がアップロードをトリガとして2⃣の[[lambda](https://aws.amazon.com/jp/lambda/)]を実行3⃣⇒4⃣
[[Amazon Transcribe](https://aws.amazon.com/jp/transcribe/)]を利用してsrtファイルを作成、
指定フォルダにアップロード4⃣⇒5⃣⇒6⃣
srtファイルのアップロードをトリガとして5⃣の[lambda]実行6⃣⇒7⃣
[[AWS Elem
【続】LINEメッセージをAWS Lambdaで送受信してみたお話
## はじめに
業務にてLINE MessagingAPIを利用したLINEでのコミュニケーションツールを作成したので、技術共有と自分の備忘録もかねて書いていきます。
今回は[前回の投稿](https://qiita.com/inacyc_k/items/709f6670d1f0b5ad3677)の追加機能実装となります。以前までのテキストメッセージ以外にも画像の送受信実装を行います。## 前回の振り返り
前回はLINE公式アカウントを作成し、テキストメッセージの送受信を行いました。
いわゆるこんな感じ。
まずはLINEからユーザーがメッセージを行うと、同じテキストを返信する、というもの。そしてAPIを叩くことで、テキストメッセージを送信するです。
terraform ECSのコード例# 前提
main.tfの1ファイルで作成する場合の簡易版メモ。
# terraform ECSコード
“`main.tf
provider “aws” {
region = “ap-northeast-1” # AWSリージョンを適切な値に変更
}resource “aws_ecs_cluster” “my_cluster” {
name = “my-ecs-cluster” # ECSクラスターの名前
}resource “aws_ecs_task_definition” “my_task” {
family = “my-ecs-app” # タスク定義のファミリー名
network_mode = “awsvpc” # VPCネットワークモードを指定
requires_compatibilities = [“FARGATE”] # Fargateタスクとして実行execution_role_arn = aws_iam_role.ecs_execution_
Terraform初心者の備忘録 〜IaCを使うときに学んだあれやこれ〜
## はじめに
グループワークにおいてawsを使う必要があったけど金かからんようにするためだけに毎回GUI操作をログインしてEC2起動して停止して、、、ってやるの面倒だったからIaC使ってみたって話。できたこと、できなかったこともまとめる。## 今回の課題
– apacheからの動画ストリーミングと動画アップロードを受け取り、保存するサーバの構築
– Go言語でのデータベース操作のAPIサーバの構築
– MySQLデータベースのサーバ構築### そもそもIaCってなんぞや?
聞いたことあっても自信を持ってこれ!!って説明できなかったからこの際にしっかりと。参考:[RedHat IaC (Infrastructure as Code) とは](https://www.redhat.com/ja/topics/automation/what-is-infrastructure-as-code-iac)
**IaC** : Infrastructure as a Codeの略
IaC によるインフラストラクチャのプロビジョニングを自動化することで、開発者は、アプリケーションを
AWSのストレージサービスについて
# きっかけ
AWSのストレージサービスといえばS3の印象が強かったですが資格勉強を進めていくうちに他にも様々なストレージサービスがあることを知りました。
Amazon E〇Sのような名称のものが多くごっちゃになってしまうことがあるので今回はそれを整理するために作成しました。—
## 目次
以下について(特にS3,EBS)まとめています。
・Amazon **S3**:**S**imple **S**torage **S**ervice
・Amazon **EBS**:**E**lastic **B**lock **S**tore
・Amazon **EFS**:**E**lastic **F**ile **S**ystem
・Amazon FSx for Windows File Server
・AWS Backup—
## 詳細
### Amazon S3(以下「S3」と表記)
完全マネージド型のオブジェクトストレージ
**特徴**
・ストレージ容量が無制限であり、残りの容量の確保や調達を気にする必要がありません。・耐久性が非常に高いです。選
portfoward設定をスクリプト化する
# 作った背景
– 開発エンジニアがRDSにportfowardingする環境が増えた
– SSH接続はセキュリティ上リスクが高いので今後やめていきたい
– デプロイされたEC2インスタンスのインスタンスIDがコロコロ変わるので調査に一手間がかかりそう
– RDSのエンドポイントの入力に手間がかかる# 前提条件
1. クレデンシャルキーは各自で設定しておくこと保存すること
2. スクリプト使用前に権限を変更しておくこと
“`jsx
chmod +x portfowarding-rds-instance.sh
chmod +x portfowarding-rds-cluster.sh
chmod +x portfowarding.sh
“`# スクリプト(RDSクラスター版)
– 前提としてリージョンは固定しています。 ap-northeast-1
– 前提としてRDSクラスターの環境にのみ使います。
– プロファイル名を読み込み、踏み台となるEC2インスタンス名、RDSクラスター名を参照する。“`portfowarding-rds-cluster.sh
#!
DynamoDBストリームって何?
# はじめに
DynamoDBのストリームについて学ぶ機会があったので、備忘録として記事を書きます。# DynamoDBストリームとは
DynamoDBストリームとは、DynamoDBの機能の一つで、**テーブルのデータ変更(アイテムの作成、更新、削除)をリアルタイムにキャプチャし、それに基づく処理をトリガーするためのものです**。
DynamoDBストリームを有効にすると、テーブル内のアイテムに対する変更がストリームに記録されます。これにより、変更の内容を順次取得して、様々な用途に利用することができます。
「Stream」の「流れ」という意味の通り、**テーブル内のデータ変更(作成、更新、削除)の連続的な流れをキャプチャし、保存する機能**ということです。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2613586/0645c6f1-66b3-381d-f771-6da345c11f69.png)
https://docs.aws.amazon.com/ja_jp/amazo
CodePipeline V2の機能をCDK Pipelinesで対応させてみた
## はじめに
2024/02/09のアップデートで、CodePipelineで、追加のパイプライントリガーフィルターに対応しました。
[CodePipeline が追加のトリガーフィルターと新しい実行モードのサポートを開始](https://aws.amazon.com/jp/about-aws/whats-new/2024/02/codepipeline-trigger-filters-execution-modes/)本機能を利用することで、特定ブランチやリポジトリ内の特定ファイルなど、指定したイベントをトリガーとしてCodePipelineを起動できるようになりました。
ですが、CDK Pipelinesで作ったパイプラインにV2を利用しようとすると、工夫が必要になります。
そこで今回はCDK Pipelines+CodePipeline V2を実現させ、その上で新機能を試してみたいと思います。## 条件
– CodePipeline V2であること
– 以下のソースであること
– GitHub.com
– GitHub Enterprise Se
AWS Cost and Usage Reports(CUR)を作成してみた
# はじめに
みなさんこんにちは!みなさんはAWS Cost and Usage Reports(以降はCURと記載します)をご存知でしょうか。
その名の通り、AWSのコストと使用状況に関する情報が出力されたレポートです。AthenaやQuickSightと連携することで、データの分析や可視化が可能となっております。今回はマネジメントコンソールからCURを作成する方法についてご紹介します。
# CURとは
AWS公式が提供するドキュメントによると、CURについて以下の記載があります。
> AWS コストと使用状況レポート (AWS CUR) には、利用可能な最も包括的なコストと使用状況のデータが含まれています。コストと使用状況レポートを使用して、所有している Amazon Simple Storage Service (Amazon S3) バケットに AWS 請求レポートを発行してもらうことができます。
> (中略)
> Microsoft Excel や Apache OpenOffice Calc などのスプレッドシートソフトウェアを使用してレポートを表示することも、Am
ECS タスク定義ファミリーの古いリビジョンを削除
# issue
* タスク定義のリビジョンが溜まりすぎている# 対策
* ライフサイクルがないようでまたもやLambda出動# Lambda
“`python:lambda_handler Python3.12
import json
import time
import boto3def list_all_task_definitions(ecs_client):
paginator = ecs_client.get_paginator(‘list_task_definitions’)
task_definitions = []for page in paginator.paginate(status=’ACTIVE’):
task_definitions.extend(page[‘taskDefinitionArns’])return task_definitions
def list_task_definition_revisions(ecs_client, task_definition_family)