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

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

AWS-SDK-PHP で Header value cannot be represented using ISO-8859-1. エラーの解決方法

## きっかけ

S3 の署名付 URL を使用してオブジェクトをダウンロードする際、response-content-disposition の filename が日本語だと、タイトルに記載されているエラーが発生していました。

自己解決の過程で、ファイルダウンロード周りの使用や文字コード周りの知見を増やすことができたので、備忘録的に記事にまとめたいと思います。

## エラー発生時の実装

下記のような実装でした。

“`php
‘ResponseContentDisposition’ => ‘attachment; filename=’ . $fileName
“`

## 解決後の実装

以下のような実装にすることで日本語のままダウンロードすることができました。

“`php
$fileNameEncoded = urlencode($fileName);

$cmd = $this->inner->getCommand(‘GetObject’, [
// ~中略~
‘ResponseContentDisposition’ => “attachment; fi

元記事を表示

Git BashからAWS CDKしてみる

# やりたいこと
Windows環境からGit Bash使ってAWS CDK触ってみたい!

# 背景
世の中にはWSLを使ったAWS CDKインストール手順はあふれていますが
なかなか Git Bashを使った方法はなさそうでした。

Linuxベースのコマンドを使うという意味ではWSLもGit Bashも一緒ですが
Git Bashのほうが直感的に「今C:\Users\xxx フォルダ配下を触ってる~」感があって好きなんですよね。
WSLだと仮想的にUbuntu等を立ち上げてる感覚なので、「今はどっちのOS?」「ファイルどこ?」になりやすいというか。

案外、Git Bash経由のAWS CDKインストール記事ってないかなと思ったので作成してみました。

# 1. Git Bash インストール
Windows版 Git Bashはここからダウンロードできます。 https://gitforwindows.org/

以降のコマンドはGit Bashのプロンプト上で実施します。

# 2. AWS CLI インストール
Windows版 AWS CLIはここからダウンロードできます

元記事を表示

AWS EC2を構築してみた【Linux】

## 構築する仮想マシン(EC2)のスペック

| 項目 | 設定 |
| —- | —- |
| VM名 | testweb01 |
| インスタンスタイプ | t2.micro |
| OS | AmazonLinux2 |
| vCPU | 1 |
| メモリ(GiB) | 1 |
| ルートデバイス名 | /dev/sda1:8GB |

## 参考サイト
[【AWS】EC2構築〜WEBサーバー導入までやってみた!(AmazonLinux編)](https://www.youtube.com/watch?v=K1MbBbz-cyg)

元記事を表示

AWSではじめるインフラ構築入門 サンプルアプリに関するメモ

## はじめに
[「AWSではじめるインフラ構築入門 第2版」(翔泳社)](https://www.amazon.co.jp/AWS%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9%E6%A7%8B%E7%AF%89%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E5%AE%89%E5%85%A8%E3%81%A7%E5%A0%85%E7%89%A2%E3%81%AA%E6%9C%AC%E7%95%AA%E7%92%B0%E5%A2%83%E3%81%AE%E3%81%A4%E3%81%8F%E3%82%8A%E6%96%B9-%E4%B8%AD%E5%9E%A3-%E5%81%A5%E5%BF%97/dp/4798178004)を購入して、AWSでのインフラ構築を実践的に学習した。
第1章から順に読み進めたが、第13章「サンプルアプリを動かしてみよう」でいくつか問題が発生したので記事にまとめる。
私は、インフラ、AWS、Webアプリ開発の技

元記事を表示

Knowledge Base for Amazon Bedrock で EventBridge と Step Functions を使ったスケジュール Sync 実行をやってみた

# はじめに

Knowledge Base for Amazon Bedrock は、S3 に格納したデータを使って簡単に RAG のデータソースにする機能があります。S3 に格納したうえで Sync を行うことで、初めて RAG として活用できるようになります。そのため、定期的に、もしくは準リアルタイムに Sync を行いたいたです。

この記事では、EventBridge と StepFunctions を使って、日次で Sync を行う方法を紹介します。なお、Sync のタイミングについては、ユースケースに応じてタイミングは自由にコントロールが可能です。

# Sync を行う API

Knowledge Base でデータの Sync を行う API は、`StartIngestionJob` です。

https://docs.aws.amazon.com/ja_jp/bedrock/latest/APIReference/API_agent_StartIngestionJob.html

ちょっと名称が直感的ではないので迷いそうになりますが、これを使って定期的に

元記事を表示

グループウェアをAWS EC2 と お名前.com で構築

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1048586/53149099-f881-b9b5-7b19-703f6b24c642.png)
# 背景
長年(2009年2月から)[日本トータルシステムさん](https://www.sjts.co.jp/)の[グループウェア GroupSession](https://groupsession.jp/)をボランティアの団体「おやじの会」(小学生の父親の集まり・OB含む)で使っています。
そのグループウェア環境に使っていた[BiglobeのDDNSサービスが終了](https://ddns.biglobe.ne.jp/#:~:text=%E3%83%80%E3%82%A4%E3%83%8A%E3%83%9F%E3%83%83%E3%82%AFDNS%E3%81%AF%E3%80%812024%E5%B9%B4,%E4%BA%8B%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%

元記事を表示

AWS CDK – Custom Resource (AwsCustomResource と Provider)

# 内容

CDK で Custom Resource を利用する場合、
[Provider](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.custom_resources.Provider.html) + [CustomResource](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.CustomResource.html) を使用する方法と、
[AwsCustomResource](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.custom_resources.AwsCustomResource.html)を使用する方法がある。
それぞれの使用方法を記載する。
今回は、適当な Lambda Function (sample1Function, sample2Function) をそれぞれ実行する Custom Resource を作成する。

# AwsCustomRe

元記事を表示

暇つぶし

現場のルーティンワークを自動化したいので、自宅環境でテスト
## 現場のルーティンワーク
AWS上にあるWindowサーバで毎日Powershellでログを出力するジョブが動いていて、
以下を手動で確認・報告・記録している。

1.ログが出力されているか
2.ログにエラーが含まれていないか
3.チャットで報告
4.Excelにログの出力時間を記入

これ何台もやるのはしんどい

## 自分が考えたシナリオ
1.ログが出力されているか、またそのログにエラーが含まれていないか確認→その結果をS3に転送する
2.lambdaでS3にログが転送されていることを確認し、その結果をチャットで連携+Excelに出力する

## 構成
テストなんでめちゃシンプル
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/845887/6019a07d-71f5-307e-7802-fe176aa0b46e.png)

## サーバーの構築
・パブリックサブネットにwindowsサーバ1台
(プライベートサブネット

元記事を表示

Knowledge Bases for Amazon Bedrock を OpenSearch Serverless で試してみる

# はじめに

Knowledge Bases for Amazon Bedrock を利用すると、会社のデータなどを利用した RAG を簡単に構成できる機能です。OpenSearch Serverless などのベクトルデータストアと連携して、データの格納、利用などを便利に利用できます。以下のような機能が提供されています。

– OpenSearch Serverless の自動作成
– S3 上のデータを Embedding して、ベクトルデータストアに自動的に格納
– 入力したテキストに紐づくデータを、ベクトルデータストアから自動的に取得して、テキストを生成
– など

今回は、Knowledge Bases for Amazon Bedrock と OpenSearch Serverless を連携する構成をやってみる記事です。

# Knowledge Base を作成

バージニア北部リージョンを開き、Knowledge base の画面で Create を押します。

![image-20240503153323632.png](https://qiita-ima

元記事を表示

Cohere Command R+ のクエリの書き換え機能を確認する

Cohere の Command R+ は RAG に最適化しているとかなんとかで幾つかの機能があります。
このうち、クエリの書き換え機能について動作を確認していきます。

# Command R+とは?

以下の記事をご参照。

https://qiita.com/moritalous/items/16797ea9d82295f40b5e

https://qiita.com/moritalous/items/61f91039c13aeb9a51eb

https://dev.classmethod.jp/articles/amazon-bedrock-cohere-command-r-rag/

# RAGのクエリの書き換えとは?

RAGを実装する際に、ユーザーからのクエリ内容をそのままRetrieveに使うと検索効率上あまりうれしくないのは良く知られた事です(多分)。

コンテナから作成したLambdaで、「Phase: init Status: timeout」になったことと解決方法

# 0. はじめに
こんにちは、yuzu_juiceです🥂
最近、Lambdaをコンテナで動かせることを知り、いろいろ遊んでいました。

# 1. 発生した事象
コンテナからデプロイしたLambdaを実行したところ、CloudWatchのログに以下のエラーが出ました。
“`
INIT_REPORT Init Duration: 10028.26 ms Phase: init Status: timeout
“`
# 2. 正しかった対応方法
Lambdaのコンソールから、環境変数を設定しました。
ローカルでテストしていた際はコードがDockerfileに設定した環境変数を参照していたため、Lambdaにデプロイ後もDockerfileに書いた環境変数が参照されるだろう、と思っていました。
実際は、コンテナからデプロイされたLambda関数は、Dockerfileの環境変数を読まず、Lambda側の環境変数を読み込むようです。

# 3. 試したけどうまくいかなかったこと
## Lambdaタイムアウト値の変更
Lambdaがタイムアウトしているのだと思い、「Lambda関数→設定→

元記事を表示

Amazon Bedrock 全LLM 日本語能力比較(2024/5/3版)

Bedrock の日本語 LLM と言えば脳死で Claude3 を使っていましたが、ここのところ Bedrock で使用可能なモデルが一気に増えて良く分からなくなってきたので、全20モデルに味噌汁の作り方を確認します。

:::note
2024/5/3現在、Command R/R+はLangChainが未対応ぽい為、boto3 を直接呼んでいます。
:::

:::note warn
2024/5/3 本日 Claude3 Opus が使えなかったので一旦除外しています。後で追加します。
:::

# 感想

– Claude シリーズはいつも強い(分量はともかく)
– Command R/R+ も強い。いけるかも?
– Llama3 あと一息
– Titan、内容はめちゃくちゃだけど日本語は成立してる。いつからだろう?

日本語世界に生きている我々としては、 Claude3 を軸に、Command R/R+ に注意を払っていくのが良さそうです。

# テストプログラム

“`Python:japanese_test.py
from langchain_aws import Be

元記事を表示

【AWS】環境削除時のリソース消し忘れについて

## はじめに
環境を削除する時、作成した関連リソースを漏れなく削除できていますか。
EC2は削除したけど、AMIは保持し続けたまま課金されてしまうことがあるかと思います。
また、課金されなくともリソースを削除しきれない場合、
利用用途が不明瞭かつ後から削除できなくなり、
アカウント内に不要リソースが残り続けることになります。
本記事では削除の観点から漏れやすいサービスを記載した記事になります。

## 対象環境
以下のようなシステム構成を想定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1764568/fe824156-6487-ac53-fd3c-04c35ee62095.png)

## 削除し忘れやすいサービス(課金サービス)
### EBSボリューム
EC2作成時に「終了時に削除する」オプションを設定していない場合、
EC2を削除しても残り続けるため手動でのボリューム削除が必要となる。
![image.png](https://qiita-image-store.s3.ap-

元記事を表示

【未経験者大歓迎】RAG超入門:AWSが推奨するRAGを体験するハンズオン

生成AIはとても注目度が高い技術ですが、すこしとっつきにくいところがあるかもしれません。新しいモデルや活用手法が毎日のように登場し、ウォッチし続けるのはかなり大変です。

タイミングを逃して入門できていない方向けに、 **とりあえず作って体感してみよう** というコンセプトで、ハンズオン記事を作成しました。🎉🎉🎉

ハンズオンの内容は「**RAG**」です。RAGは生成AIの活用法としてよく出てくるキーワードです。ハンズオンでは、ただのRAGではなく最先端の「**Advanced RAG**」を体験できます。

RAGガチ勢には鼻で笑われるかもしれませんが、RAGちょっとわかる勢(「にわかRAGGER」と呼ぶことにします)には十分追いつけるのではないでしょうか?!

:::note
AWSやPythonについては、わかる前提で進めます。
:::

:::note warn
超特急でRAGを体験するコンセプトのため、生成AIとは何なの?、プロンプトってどうやって書くの?ということには全く触れません(プロンプトは登場すらしません)。本ハンズオンで生成AIに興味を持っていただいた方は、Q

元記事を表示

コンテナの配置戦略と制約条件

このタスク配置戦略とは?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/e22673c7-b43f-03e7-482e-1b58d8521e7d.png)
**デフォルトのタスク配置戦略**は、タスクを手動 (スタンドアロンタスク) で実行するのか、それともサービス内で実行するのかによって異なります。**Amazon ECS サービスの一部として実行されるタスクの場合、タスク配置戦略は attribute:ecs.availability-zone を使用した spread です。**

https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/bestpracticesguide/bestpracticesguide.pdf

例題

ある企業は、コンテナ化されたアプリケーションのワークロードを 3 つのアベイラビ

元記事を表示

ネットスーパー配達員が出発したことをずんだもんにGoogle Home経由で教えてもらう

## はじめに

### ネットスーパー配達員 と 猫
食べ物にこだわりがないと、スーパーで買う商品は同じものになりがち。ということでネットスーパー利用してみたらめちゃくちゃ便利!配達指定も2時間単位で出来る!
ところで、やることない休みの日なんか猫と遊ぶに決まってる。お腹の上に乗って遊んじゃったりする。そして鳴り響くチャイム音と、お腹に爪を立てられて苦悶の声を発する私。チャイム音にビックリしたら爪も立てちゃうよね。
来訪直前まで遊んでたいんだけどなー、が動機

### やりたくなったこと その①
そういえば配達員さんがお店を出発したタイミングでこんなメール届いてた。
このメールが来てから7分くらいでチャイムが鳴る。このメールをトリガーに何か出来ない?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625818/3033bc0b-435b-1db4-9104-c010302f8667.png)

### やりたくなったこと その②
最近Amazonの配達でヤマトさんでも佐川さんでもな

元記事を表示

AWS CLF クラウドのコンセプト

# はじめに
AWS CLFにおいてクラウドとコンセプトの分野は24%ほどの配点割合を占めています。内容は概念的なものが多いため文章にて紹介します。
## クラウドのコンセプト
AWS CLFにおいて
このセクションの重要なキーワードとなるのは以下の通りです。
* コスト
* セキュリティ
* サーバーのサイジング
* 俊敏性
* スケーラビリティ
* 疎結合
* Design for failure
* 並列化
* AWS CAF

# コスト
AWSでは初期費用が不要かつ使用した分支払う従量課金制となっています。対してオンプレミスの場合は莫大な初期費用が必要となります。
# セキュリティ
AWSにおいてセキュリティはAWSおよび利用者の両方が管理する「責任共有モデル」というものが使われています。大雑把に言うとAWSはクラウド環境、利用者はクラウド内及び接続のセキュリティを管理することが義務付けられています。詳しい責任の所在はAWSのWebサイトでご確認ください(https://aws.amazon.com/jp/compliance/shared-responsibility-mo

元記事を表示

静的ウェブサイトをCloudFront経由のアクセスしか許可しないようにする

# 概要

本記事は [AWSでWebアプリを構築してみる](https://qiita.com/ti_and6id/items/9670ee60965a4d10bec7) シリーズの3回目の記事です。
前回の記事は[こちら](https://qiita.com/ti_and6id/items/c257f9d011f84b97ac3e)。

# 本記事で作成する構成

本記事では静的ウェブサイトをCloudFront経由のアクセスしか許可しないようにしてみます。
![AWS.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3630916/7a173c6e-0ddb-d0a2-b410-283908b3b5ca.png)
ここでは図のようにCloudFrontを経由した間接的なアクセスのみ可能な状態で、S3でホスティングした静的ウェブサイトに直接アクセスすることができなくなります。

# 静的ウェブサイトをCloudFront経由のアクセスしか許可しないようにする

## 1. S3の設定を変

元記事を表示

静的ウェブサイトホスティングにCloudFrontを経由してアクセスしてみる

# 概要

本記事は [AWSでWebアプリを構築してみる](https://qiita.com/ti_and6id/items/9670ee60965a4d10bec7) シリーズの2回目の記事です。
前回の記事は[こちら](https://qiita.com/ti_and6id/items/fe652f89d8919052c91c)。

# 本記事で作成する構成

本記事では静的ウェブサイトホスティングにCloudFrontを経由してアクセスできるようにしてみます。
![AWS.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3630916/cacc9846-2940-48ae-07af-58bd74e1d204.png)
ここでは図のようにS3でホスティングした静的ウェブサイトに直接アクセスすることと、CloudFrontを経由して間接的にアクセスすることの、2通りのアクセスが可能な状態になります。

# 静的ウェブサイトホスティングにCloudFrontを経由してアクセスしてみる

元記事を表示

静的ウェブサイトホスティングでホスティングしてみる

# 概要

本記事は [AWSでWebアプリを構築してみる](https://qiita.com/ti_and6id/items/9670ee60965a4d10bec7) シリーズの1回目の記事です。

# 本記事で作成する構成

本記事では静的ウェブサイトホスティングでアプリケーションコンテンツをホスティングします。
![AWS.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3630916/5da46841-89a3-52cb-97d3-dd9c7cd71cf4.png)

# 静的ウェブサイトホスティングでホスティングしてみる

## 1. S3でバケットを作成する

1. マネジメントコンソールからS3を開き、「バケットを作成」をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3630916/b0b5361d-2b5b-c33c-a37e-8f4ad502e09e.

元記事を表示

OTHERカテゴリの最新記事