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

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

AWSに仮想サーバーを立てる準備(WindowsServer)

AWSのEC2サービスを使って、WindowsServerをホスティングしてもらう簡単な手順です。

前提
– AWSのアカウントを持っている
– リモートデスクトップを知っている

# 0、最初に(必要に応じて)リージョンを安いオレゴンにする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555422/910c8621-fe1b-fe37-f056-0a81c68b0aea.png)
本当は、サービスを利用する人の近くにあるリージョンを選ぶと、通信速度的に良いです。
日本なら東京とか。
ただし、テスト利用するだけなら、**オレゴン**にしておく方が安く済みます。
リージョンについて正式に知りたい方は[AWSのユーザーズガイド(リージョンとゾーン)](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-regions-availability-zones.html)へ

# 1,AWSのEC2サービスを

元記事を表示

AWS上のRHEL9サーバで “Dify” と “Ollama” のスタンドアロン環境を作る

# はじめに
お疲れ様です。 @yuki_ink です。

先日、以下の記事を投稿しました。
多くの方に “いいね” と “ストック” をしていただき、ローカル環境で生成AIを利用する、というユースケースの需要の高さを感じました。

https://qiita.com/yuki_ink/items/c3125f45fb725612910e

ただ、上記の記事の通りに実際にPCで構築をされた方ならお分かりかと思いますが、**処理がめちゃくちゃ遅いです。**
本格展開は普通に無理です。ユーザがストレスでPCを放り投げる未来が見えます。
まあ、ただのPCですしね。仕方がない。
“`
じゃあ、AWS上にハイスペックのWindows Serverを立てて、同じ手順で Dify & Ollama を構築すればいいんじゃないの?
Bedrock使うのはちょっとハードル高いけど、EC2だけならすぐ使えるし!
“`
ということで、やってみました!

**無理でした!**

まず、普通のインスタンスタイプではWSL 2 が使えませんでした。

>残念ながら通常のEC2は入れ子の仮想化をサポートしておら

元記事を表示

【Rails】Amazon BedrockのKnowledgeBaseを使ってRAGを使ってみた。

どうもこんにちは。

今回は、Amazon BedrockのKnowledgeBaseを使ったRAGをRailsアプリケーションで行ってみました。

pineconeやKnowledgeBaseのセットアップ方法、AWSコンソール上でのテストについては、さまざまな方が記事にしているので、自分はRailsでの使い方にフォーカスして話を進めます。

# 環境

Ruby: 3.2.2
Rails: 7.1.3.4
リージョン: バージニア北部(東京リージョンだとpineconeが使えなかったので…)

# 前提条件

以下の記事を参考にして、pineconeやKnowledgeBaseをセットアップしたものとして話を進めます。

https://aws.amazon.com/jp/blogs/news/leveraging-pinecone-on-aws-marketplace-as-a-knowledge-base-for-amazon-bedrock/

# Railsへの実装

## 1. ライブラリインストール

Gemfileに記載して、インストールします。

“`Ge

元記事を表示

【AWS】【RHEL】/bootと/boot/efiのデフォルトパーティションサイズは変更できない

直近、あるシステム用に新規でAmazon EC2(RHEL)を構築する必要がありました。
設定項目が多くOS設定は自動化スクリプトを作成し、一括で設定することになりました。
その際、Amazon EC2(RHEL)のディスク設定で躓きましたため、備忘録を兼ねてその対応履歴を記事にします。

## やりたかったこと
ベアメタルにおけるRHELの推奨パーティションサイズに合わせ、
下記/bootと/boot/efiのデフォルトパーティションサイズをそれぞれ、
1GiBと600MiBに拡張したいと考えてました。

“`
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 100G 0 disk
tqnvme0n1p1 259:3 0 1M 0 part
tqnvme0n1p2 259:4 0 200M 0 part /boot/efi
tqnvme0n1p3 259:5 0 600M 0 part /boot
mqnvme0n1p4 259:6

元記事を表示

Athena/GlueによるサーバーレスETLパイプライン構築

# はじめに

## 目的と概要

本記事の目的は、AWSのS3、Athena、Glueを用いたサーバーレスETLパイプラインの構築方法を理解し、実際に設定および実行するためのガイドを提供することです。ETL(Extract, Transform, Load)プロセスは、データの抽出、変換、およびロードの一連の作業を指します。これにより、異なるデータソースからデータを収集し、適切な形式に変換し、最終的に分析やレポート作成のためにデータウェアハウスやデータレイクにロードします。

AWSのS3、Athena、Glueを利用することで、従来のオンプレミス環境や自己管理型のETLツールと比べて、スケーラビリティ、コスト効率、運用の容易さが大幅に向上します。本記事では、これらのAWSサービスを組み合わせて、効率的かつスケーラブルなサーバーレスETLパイプラインを構築する手順を詳述します。

以下が作成したディレクトリです。

https://github.com/sugiyama404/practice_athena

## ETLとは?

ETLとは、データ処理の三つの主要なステップであるE

元記事を表示

CDKプログラミングのパターン

CDKでリソースを作成するとき、様々なプログラミングのパターンを利用できます。
それぞれの方式にどのようなメリット・デメリットがあるかまとめました。
CDK利用前にどのパターンを用いるか、検討の材料にしてください。

## 目次
1. べた書きする
2. 共通の設定をまとめる
3. ループを利用する
4. ラッパーを利用する
4.1. ラッパー関数を利用する
4.2. ラッパークラスを利用する
4.3. ラッパーコンストラクトを利用する
5. クラスの分割戦略
5.1. サービス単位でクラスを分割
5.2. 機能単位でクラスを分割
6. Configファイルへの設定値外出し戦略
6.1. 現在の環境差分のみ外出し
6.2. 将来環境ごとに変わる可能性がある値も外出し
6.3. リソース名も外だしする
6.4. 定数はすべて外出し
6.5. 外出しは行わず、環境ごとに別のコードを利用する

## 1. べた書きする
L1ConstructやL2Constructを順番に宣言的にべた書きしていく方式です。
メリット:
・プログラミング初心者でも読みやすい
デメリット:
・コード量が多くな

元記事を表示

CDK初心者が開発で遭遇したトラブルと解決法

CDK初心者が開発で遭遇したトラブルと、その解決策をまとめました。
同じトラブルで苦戦しないよう、ぜひ参考にしてください。

## 目次
プログラミング関連のトラブル
・プログラミング力不足
・クラス作成の思想のずれ
・配列利用によるトラブル
・構造化の失敗による設定箇所の分散
・設定値の外だしは.tsファイルで
・どこまで設定値を外だしするか
・リファクタ時にConstructにまとめると論理IDが変化する
デプロイに関するトラブル
・同名リソース作成によるデプロイエラー
・db作成に時間がかかる
・スタック間参照削除時トラブル
・循環参照トラブル
・リソース作成順序エラー
・スタックに作成可能なリソース数の上限
・VPCLambdaの削除
実装が難しかった内容
・S3クロスリージョンレプリケーション
・Aurora作成時等に自動作成されるロググループの設定変更

## プログラミング関連のトラブル

### プログラミング力不足
CDKはプログラミングです。プログラミング経験の少ない基盤メンバーだけでチームを組むと、コード執筆やデバ

元記事を表示

CodeBuildを使ったEC2インスタンス等のリソース状態変更処理

定型的なデプロイ作業。これの1つ1つを自動にしたいと考えていて。
大抵そういう場合Lambdaを使うが、わざわざリソースの状態を変更したいがために、Pythonなどを覚えて、エラーハンドリングまで考えて作りこむことは何か時間の無駄な気がしていて。awscliコマンドでできることを、何を頑張ってPythonやらのソースコードで作りこむのか?という疑問があり、そこからこの発想が思い浮かんだ。

https://www.seeds-std.co.jp/blog/creators/2021-03-11-154551/

LambdaもCodeBuildと同じくコンテナを動かしてコードを動かすが、Lambdaはawscliが利用できない。CodeBuildならそのあたりができるため、いざ活用。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229539/1f335406-8cce-2155-e49f-ad99fbbeb4c6.png)

「プロジェクトを作成」で簡単に作れます。

## 指定し

元記事を表示

AMIの登録解除と連動してスナップショットを削除する2024夏(~北の国から~)

北の国ではないですが(関東民)。
不要なイメージを削除したいがために、AMI登録解除をしても、スナップショット(EBS)は消えないという事を最近思い出した。思い出したそのころには大量のAMIがあり、もはやこんなの全部やってれんない、、、という状態に。

以下のリンクを見るも、どうも2024年はこの形だとなかなかうまくいかず。

https://dev.classmethod.jp/articles/ami-and-snapshot-delete/

[AWS] AMIの登録解除と連動してスナップショットを削除する2021

https://www.seeds-std.co.jp/blog/creators/2022-10-18-191421/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229539/2564a9d3-8273-eeb7-c141-cedb2

元記事を表示

shadowとwillとretainを活用してAWS IoT CoreとPubSubする⑪mosquittoでretainとwill

## この記事について

[shadowとwillとretainを活用してAWS IoT CoreとPubSubする⑩mosquittoでshadow update](https://qiita.com/Saito5656/items/44bc48c4f8579d98d25a)で行ったmosquittoでのmessage pubsub、shadow update/getに続いてmessage retainとwill(notification)を設定します。

[shadowとwillとretainを活用してAWS IoT CoreとPubSubする⑤pahoでretainとwill](https://qiita.com/Saito5656/items/ae71d9c66f850a1e8be6)で詳細に説明した内容は割愛します。

## retain

AWS IoTでsubした最新messageを、S3やDynamoDBに保存するのではなくIoT Coreで保持します。

元記事を表示

AWS ソリューションアーキテクトアソシエイト(SAA-C03)合格しました(2024/01/30)

こんにちは、井口です。

データセンターの事務処理を1年程度、AWSのサーバの再起動や指定されたジョブを動かしてリカバリする程度の仕事を2年程度やってきました。
重い腰を上げて資格を取ったので、これから試験を受ける人に少しでも参考になれば幸いです。
## 準備期間と勉強方法
大体1ヵ月半ぐらいで合格しました。

1ヵ月半前~3週間前
参考書を購入、9割がた読み切り
3週間前~試験まで
Udemyの問題集を解く

[AWSの基本・仕組み・重要用語が全部わかる教科書 \(見るだけ図解\)](https://www.amazon.co.jp/AWS%E3%81%AE%E5%9F%BA%E6%9C%AC%E3%83%BB%E4%BB%95%E7%B5%84%E3%81%BF%E3%83%BB%E9%87%8D%E8%A6%81%E7%94%A8%E8%AA%9E%E3%81%8C%E5%85%A8%E9%83%A8%E3%82%8F%E3%81%8B%E3%82%8B%E6%95%99%

元記事を表示

AWSのマーケットプレースで提供されているDify Premiumを構築してみた

何事も実際に手を動かすと勉強になります。

## Difyとは

書籍「[Amazon Bedrock 生成AIアプリ開発入門 [AWS深掘りガイド]](https://www.sbcr.jp/product/4815626440/)」より抜粋

> Dify は、生成AI アプリの統合開発プラットフォームです。「Backend-as-a-Service」と
「LLMOps」のコンセプトのもとで開発されており、迅速に生成AI アプリを開発できます。

### Dify Premium

Dify Premimについては、GitHubの[README](https://github.com/langgenius/dify/blob/main/README_JA.md)に言及がありました。

> AWSを使用しているスタートアップ企業や中小企業の場合は、AWS MarketplaceのDify Premiumをチェックして、ワンクリックで自分のAWS VPCにデプロイできます。さらに、手頃な価格のAMIオファリングどして、ロゴやブランディングをカスタマイズしてアプリケーションを作成するオプ

元記事を表示

急に “Lambda security notification” って何ですか!?

# はじめに
もう半年以上、バーストし続けてメンタルクレジットが枯渇気味の [@\_\_\_nix___](https://twitter.com/___nix___) です。

さて、AWS Health Dashboard の通知を Chatbot 経由で Slack に送信していたり、或いはメールで次のような案内があったと思います。(AWSアカウントを多く持っているとスパムのように大量に届くのですよね…)

AWS Health – AWS_LAMBDA_SECURITY_NOTIFICATION

> Lambda GetFunction API の認証に変更に際し、お客様のアクションが必要になる可能性があるため、ご連絡しております。 これまで、ListTags API を明示的に使用する場合にのみ、ListTags への権限が必要でした。しかし、GetFunction API 権限を持つプリンシパルにおいても、GetFunction 呼び出しにより出力されたタグ情報にはアクセスできました。2024 年 7 月 27

元記事を表示

【AWS Lambda】Responseの返し方一覧

※Node.jsのSyntax、Naming Conventionで記載します。

1. Return(シンプルで読みやすく、分かりやすいので推奨)

シンプルに`return`で呼び元に値を返します。

処理をキャンセルする場合は、`throw new Error()`を使います。

非同期処理の場合も、`async/await`を使い、`return`や`throw new Error()`で処理を続行、キャンセルする方法が[推奨](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-handler.html#nodejs-handler-async)されています。

“`javascript:index.mjs
export const handler = async (event, context, callback) => {
if(event.request.something === ‘error value’) throw new Error(‘Error’)

元記事を表示

AWS ElastiCache入門:簡潔に理解するクラウドコンピューティングの基礎

# Amazon ElastiCache とは :beginner:
Amazon ElastiCacheは、Amazon Web Services(AWS)が提供するインメモリーデータストアおよびキャッシュサービスです。ElastiCacheを利用することで、高速かつスケーラブルなデータキャッシングを実現し、アプリケーションのパフォーマンスを向上させることができます。ElastiCacheは、MemcachedとRedisの2つの人気のあるオープンソースのインメモリーデータストアをサポートしています。

## Amazon ElastiCacheの特徴
高速なデータアクセス
ElastiCacheは、メモリ内にデータをキャッシュすることで、ディスクI/Oに依存せず、高速なデータアクセスを提供します。

スケーラビリティ

元記事を表示

shadowとwillとretainを活用してAWS IoT CoreとPubSubする⑩mosquittoでshadow update

## この記事について

[shadowとwillとretainを活用してAWS IoT CoreとPubSubする⑨mosquittoでpubsub](https://qiita.com/Saito5656/items/1398200115bb9c47116a)で行ったmosquittoでのmessage pubsubに続いてshadowをupdate/getします。

今回もラズパイに接続された仮想device_0の正常稼働とdevice停止をAWS IoTのdevice shadowに反映させます。

## shadowのtopic

[paho-mqtt]()と[AWS IoT Device SDK for Python]()で扱ったと同じく、/getと/updateの操作をします。

### s

元記事を表示

プロンプトエンジニアリングのコツ

## はじめに
プロンプトエンジニアリング:
生成人工知能 (生成 AI) ソリューションをガイドして、目的の出力を生成させるプロセス。

ChatGPTに聞いても期待する答えが出ない、、、
間違った回答がでてきてしまう、、
みなさんこんな経験ないでしょうか?

本記事ではAWS Summit japanで紹介されていたプロンプトエンジニアリングのコツを紹介させていただきます。(Claudeによってしまう部分もありますがご了承ください)

## プロンプトエンジニアリングのコツ
### 1.明確かつ直接的に
明確なプロンプトの黄金律:自分のプロンプトを友人に見せて、求めている結果を相手が出せるか聞いてみる

### 2.XMLタグを使ったセクションの描画
区切り目がないと理解しにくい
XMLタグを使うとプロンプトの構造を理解しやすくなる(セッションタイトルが人間の理解に役立つのと同様)

### 3.例示
<example>タグで囲って例を提示
例と同じ形式で質問 少なくとも3-5個の例を含むことを目指す

### 4.出力形式の指定
出力のフォーマットを指定する

### 5.考える

元記事を表示

S3バケットにCORSポリシーを追加したい

Amazon S3バケットを公開ウェブサイトとして設定する場合、他のドメイン上で実行されるJavaScriptからJavaScriptモジュールなどのアセットをロードできるようにCORSをサポートすることができます。

この設定はバケットレベルで行われ、個々のアイテムに適用することはできません。

公式ドキュメントには、JSONドキュメントを手作りする方法が記載されています。その形式に関するドキュメントと便利な例はこちらです。

## s3-credentialsを使う方法

私のs3-credentialsツールには、CORSポリシーを設定するためのコマンドがあります:

“`sql
s3-credentials set-cors-policy my-cors-bucket \
–allowed-method GET \
–allowed-origin https://hogehoge.net/
“`

このコマンドの詳細なドキュメントはこちらにあります。

## S3ウェブコンソールを使う方法
最初に試したのは、S3ウェブコンソールを使う方法です。コンソールインタ

元記事を表示

難しいAWS Well-Architected フレームワークも、SCAMPER法 7つの質問で、読み解くと、分かり易い

## はじめに
AWS Well-Architected フレームワークをSCAMPER法 7つの質問で、読み解いてみたところ、とても良く理解出来ました。せっかくなので、内容をご紹介させていただきます。

## SCAMPER法とは?

SCAMPER法は、既存のアイデアを様々な角度から見直したり、検討したりすることで、元からあったアイデアを拡張・派生させていく**アイデア発想法**です。
SCAMPER法は、アイデア発想法の1つである「オズボーンのチェックリスト」を、アメリカの創造性開発の研究家である**ボブ・エバール氏**がアレンジしたものです。

**SCAMPER**は、以下の7つの英単語の頭文字を取ったものです。

* **S(Substitute)** 置き換える 要素の一部を別のものに置き換える。
* **C(Combine)** 組み合わせる 異なる要素を組み合わせる。
* **A(Adapt)** 適応させる 別の用途や環境に適応させる。
* **M(Modify)** 修正する 形、サイズ、色などを変更する。
* **P(Put to another use)**

元記事を表示

【話者分離】pyannote動作環境をEC2に構築してみた

# はじめに

「pyannote」を利用して、音声ファイルの話者分離できる環境を作ります。実際の文字起こしは「whisper」を利用します。

AWS環境にpyannoteの実行環境を構築するのに非常に苦戦したため、備忘録として記載します。

### 使用技術

話者分離:pyannote/speaker-diarization-3.0

文字起こし:whisper-1 (openAIのAPI利用)

実行環境サーバー:AWS EC2

### 前提条件

・openAIのAPIアクセストークンが取得済みであること。
・HuggingFaceのアカウントが取得済みであること

# 目次

1.事前準備

2.環境構築

3.ソースのデプロイ

4.コード実行

5.まとめ

それでは、実際の環境構築に進んでいきましょう!

# 1.事前準備

## HaggingFaceのトークン取得
– [huggingface](https://huggingface.co/)にログインし「Setting」->「AccessTokens」にアクセス
– 「New token」ボタンからアクセスト

元記事を表示

OTHERカテゴリの最新記事