- 1. Amazon Bedrock 全LLM 日本語能力比較(2024/7/26 Llama3.1, Mistral Large 2 追加版)
- 2. 新卒一年目がAWSで統合版Minecraftサーバーを構築した話(無料枠編)
- 3. CloudFrontキャッシュからのレスポンス確認
- 4. 複数アカウントのエンドポイントを1つに集約してコスト削減したい
- 5. m7i インスタンス vs 自作PC(i9 13900k)
- 6. AWS ランサムウェア対策 講座 メモ
- 7. #07 AWS(APIGateway/Lambda) + Serverless Framework + BrefでサーバレスなLaravel環境を構築してみる②
- 8. オライリー本「AWSではじめる生成AI」日本語版の宇宙最速レビュー🚀
- 9. AWS IoT Greengrass のコンポーネント開発時に、レシピの設定変更が反映されない (ように見える) 時の Tips
- 10. Amazon Bedrockの日本語対応をうたうモデルが増えたので比較します
- 11. AWS SQSとCeleryを連携させる方法について
- 12. AWS cognito とVue.js 3でamplifyを使わないで、EmailでOTP認証させる方法
- 13. 【ギリギリ合格シリーズ】勢いだけでAWS Certified Solutions Architect – Associate(SAA-C03)受けたら落ちた話
- 14. #05 AWS(APIGateway/Lambda) + Serverless Framework + BrefでサーバレスなLaravel環境を構築してみる①
- 15. TerraformでLambda Function URLをCloudFront OACに設定する
- 16. Amazon BedrockからLlama 3.1を使ってみる
- 17. AWSCDKでALBをTLS1.3に対応させる
- 18. ECSでCannotPullContainerErrorが発生した場合の対処法(ダイジェスト不一致)
- 19. CloudFormationのテンプレートを分割したくなりませんか?
- 20. #02 AWS でスナップショットの作成とインスタンスの復元をする
Amazon Bedrock 全LLM 日本語能力比較(2024/7/26 Llama3.1, Mistral Large 2 追加版)
Llama3.1、Mistral Large 2が増えたので日本語能力を確認します。
(プレビューのLlama3.1 405Bは除いています)
※その他のモデルについては前回の実行結果(↓)のままです。https://qiita.com/cyberBOSE/items/098c406c96b0e89b1fbc
# コード
“`Python
import boto3prompt=”質問:日本における味噌汁の作り方を詳しく日本語で説明してください。”
bedrock_us_east_1 = boto3.client(“bedrock-runtime”, region_name=”us-east-1″)
bedrock_us_west_2 = boto3.client(“bedrock-runtime”, region_name=”us-west-2″)# なんでもモデル関数
def invokeNandeModel(modelId, prompt, boto):
messages = [{“role”: “user”, “content”: [{“text”: pr
新卒一年目がAWSで統合版Minecraftサーバーを構築した話(無料枠編)
## はじめに
こんにちは。新卒一年目エンジニアのkotenpanと申します。
研修で実施したAWSの勉強が思いのほか楽しかったため、実際にサーバーを立ててみようと思ったため、友達とみんなでできるMinecraft(統合版)というゲームのサーバーを構築しました。
この記事では費用を最小限(無料)でできる範囲でのサーバー構築について書いていこうと思います。
以下の記事を参考にしました。
– [AWSを利用して統合版Minecraftサーバーを可能な限りお金をかけずに構築・運用したい](https://qiita.com/Hebbi554689332/items/c9718a414c732a0d66f1)## 今回の構築によって実現できること
– ~6人で同時に遊べる
– どの媒体からでも接続できる
– 24時間自由に出入りすることができる
– 費用が一切かからない(アカウント設定してから1年間)## 無料利用枠の範囲内におけるサーバー構築
Amazon EC2はアカウント設定を行ってから12ヶ月間、ひと月あたり750時間利用できる無料枠が設定されています(2024/07/26 時
CloudFrontキャッシュからのレスポンス確認
# はじめに
AWS初心者がVPC周りのリソースは一通り作ったけど、もう少しだけ凝ったものを作りたい。けど、難易度高すぎると手につかない。ということで、CloudfFrontを使ってコンテンツ配信し、キャッシュからのリクエスト確認を行ってみました!
今回のハンズオンでは、以下のAWSハンズオン教材を参考に行いました。
https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-StaticWebsiteHosting-2022-reg-event.html?trk=aws_introduction_page
# 準備
– 簡易的なHTMLファイル
– S3バケット
– CloufFrontディストリビューション
– ブラウザ(今回はGoogle Chrome)
# 作成手順
## S3バケットの作成
まず初めに、S3バケットの作成を行います。
基本はデフォルトに沿った形で作成し、変更点のみ記述します。
今回、バケット名は「test-bucket-clf」とします。![ap-northeast-1.co
複数アカウントのエンドポイントを1つに集約してコスト削減したい
## :wrench:課題
AWSを使うにあたって、コスト削減は永遠の課題です。
現在のプロジェクトでエンドポイントの料金が高すぎて非常に困っていました。
しかも複数アカウントを使っての開発のためさらに料金がかさみます。
この状況を打開すべくエンドポイントの集約を行いました:bangbang:## やること
最初に全体の流れを説明します。
ここでは便宜的に、エンドポイントの存在するVPCを「EP-VPC」・エンドポイントを利用したいVPCを「Target-VPC」と記載します。① EP-VPCに利用したいエンドポイントを作成
② EP-VPCとTarget-VPCをピアリング接続(TransitGatewayでも可能ですが、今回はピアリングで行います)
③ 各VPCのルートテーブルにピアリング先との通信を許可
④ エンドポイントのセキュリティグループにてTarget-VPCからのインバウントを許可
⑤ EP-VPCにプライベートホストゾーンを作成
⑥ エンドポイントのDNSを指すAレコードを作成
⑦ プライベートホストゾーンをTarget-VPCに関連付けを行う![構成図
m7i インスタンス vs 自作PC(i9 13900k)
AWSについて調べてみたとき,どの程度サーバーの性能(CPUの計算能力)に対してどの程度の料金がかかるのか全くわからないかったので, 調べてまとめてみました。
普通にPCを組んだ場合とで比較してみます。AWSの方が、耐障害性や可用性と拡張性などに優れているし, 様々な考慮すべき要素があるので一概に比較はできないとおもいます。
非常に大雑把な計算ですが, 計算能力に対してAWS(EC2)にどれくらいのお金を支払っているかの肌感はつかめるとおもいます。
# m7iインスタンスの性能と価格
### 参考にした情報
– 第4世代インテル Xeon スケーラブルプロセッサ (Sapphire Rapids 8488C)
– DDR4 に比べて広い帯域幅を提供する最新の DDR5 メモリ
– インテル Total Memory Encryption (TME) による常時メモリ暗号化のサポート
– 最大 192 基の仮想 CPU と 768 GB のメモリhttps://aws.amazon.com/jp/ec2/instance-types
m7iのCinebench R23
AWS ランサムウェア対策 講座 メモ
# ランサムウェアとは?
Ransom(身代金)+Softwere(ソフトウェア)を組み合わせた造語。
端末に特定の制限をかけ、その制限の解除と引き換えに金銭を要求する不正なプログラム(=マルウエア)
※2015年あたりから、かなり多くの被害が発生している。# ランサムウェアの流れ
1. 何らかの方法で端末に侵入
2. ランサムウェアを端末に設置
3. ランサムウェア実行→感染した端末上のファイルを暗号化する
4. 端末に脅迫メッセージを表示、複合の代わりに金銭を支払うように要求する
5. 内部データの操作ができる状況なので、データも盗みだされる# 感染経路
– 無差別一斉送信のメール
ランサムウェア事態をコピーして他の端末にも感染拡大
– ネットワークを介して感染
脆弱性を悪用して、何らかの方法で侵入、侵入した端末から他の端末にも感染拡大# 攻撃者のフロー
1. ネットワークスキャン:攻撃対象の調査
2. 脆弱性の調査と悪用
3. ランサムウェアの設置
4. ランサムウェアがシステム上で動作→攻撃者のサーバとの通信経路確立・感染拡大
5. 情報の窃盗・暗号化を実施→
#07 AWS(APIGateway/Lambda) + Serverless Framework + BrefでサーバレスなLaravel環境を構築してみる②
# はじめに
今回は前回の記事「AWS(APIGateway/Lambda) + Serverless Framework + BrefでサーバレスなLaravel環境を構築してみる①」の続きになります。前回はPHP動作環境を構築してみましたので、今回は記事のタイトルにある通りLaravel動作環境をAWSにデプロイしてみます。# 1. 前提条件
AWSの各種サービスに対する基本的な知識、AWS CLI設定済み、npm/composerインストール済み、Serverless Frameworkインストール済み# 2. 動作環境
npm:9.6.1
composer:2.1.14
AWS CLI:2.5.5
Serverless Framework:3.2.81
Bref:1.7
PHP : 8.2.1
Laravel : 10.4.1# 3. 今回利用するツールに関して
前回利用したBrefとServerless Frameworkに加えて、AWSでLaravelを実行するためにLaravel-Brefを利用します。### Laravel-Brefとは
Laravel-
オライリー本「AWSではじめる生成AI」日本語版の宇宙最速レビュー🚀
# ついにGenAI on AWSの日本語版が!
IT技術書で有名なオライリー社より、新刊「AWSではじめる生成AI」が来週8/2に出版されます。すでに予約可能。
> **AWSではじめる生成AI**
> Chris Fregly、Antje Barth、Shelbee Eigenbrode 著、久富木 隆一 訳、本橋 和貴、久保 隆宏 技術監修https://www.oreilly.co.jp/books/9784814400720/
これは昨年11月に刊行された同社の洋書「Generative AI on AWS」の日本語版となります。
原著はAWSの米国拠点で生成AIを担当する3名のエキスパートによる書籍です。AntjeさんはAmazon Bedrock関連のAWS Blogでもよくお見かけしますね。
今回、日本語訳にあたって技術監修をご担当されたAWS Japanの本橋さんと久保さんより、ありがたいことに発売前の献本(ご恵贈)にあずかりましたので、読んだ感想を簡単にアウトプットさせていただきます!
![A1850A16-BE78-43E1-ADDA-6CDB2D
AWS IoT Greengrass のコンポーネント開発時に、レシピの設定変更が反映されない (ように見える) 時の Tips
初歩的なつまづき感もありますが、備忘のためメモ。
## 課題
AWS IoT Greengrass のカスタムコンポーネントを開発していて、
– デバイス上でレシピファイルを更新
– Greeengrass CLI で `greengrass-cli deployment create` を実行という手順でコンポーネントの再デプロイをかけたにも関わらず、レシピから消したはずの設定内容がまだ効いてしまっている……ということで手詰まってしまっていました。
## 原因と対策 (サマリ)
– **原因** : コンポーネントのデプロイ時に、レシピの設定は過去のレシピから新しいレシピの設定に置き換わるのではなく、**新しいレシピの設定を古いレシピの設定にマージするから**
– **対策** : `greengrass-cli deployment create` の `–update-config` オプションで、設定値のリセットをかける
– また、設定値の反映が疑わしいと感じたら、 `greengrass-cli component details` や `green
Amazon Bedrockの日本語対応をうたうモデルが増えたので比較します
Amazon BedrockにMistral Large 2が追加されました。
https://aws.amazon.com/jp/blogs/machine-learning/mistral-large-2-is-now-available-in-amazon-bedrock/
前日にLlama 3.1が追加されたというのに、すごいリリース体制ですね。寝てないんでしょうか。
## Bedrockの日本語対応モデル
2024/7/25時点で公式サイト上で、日本語対応が明記されているモデルは以下のモデルです。
* Anthropic : Claude 3.5 Sonnet / Claude 3 Opus / Claude 3 Sonnet / Claude 3 Haiku
* Cohere : Command R+ / Command R
* Mistral AI : Mistral Large 2Claude 2などは、「英語とその他いろいろな言語」みたいな書き方なので、除外します。
## 検証内容
BedrockがGAした際の記事の全文(英語)を渡して、解説してもら
AWS SQSとCeleryを連携させる方法について
## はじめに
今回はAWS SQSとCeleryを連携させる方法について記載していきます。CeleryはDjangoで使用していることを想定の上、作業をしてきます。
※基本的な設定は他の導入記事がたくさんあるため省略します。## 基本的な設定編
まずは、settings.pyに下記の設定を記載しましょう。
重要なのは主に以下です。“`settings.py
CELERY_BROKER_URL = “sqs://”# AWS内のEC2などにアクセス権限が付与されていればこれだけで大丈夫です。(付与されていない場合は、権限情報を記載する必要があります。)
CELERY_TASK_SERIALIZER = “json”
CELERY_RESULT_SERIALIZER = “json”
CELERY_ACCEPT_CONTENT = [‘application/json’]
CELERY_TASK_ACKS_LATE = True
CELERY_TASK_ACKS_ON_FAILURE_OR_TIMEOUT = False
CELERY_RESULT_BACKEND = No
AWS cognito とVue.js 3でamplifyを使わないで、EmailでOTP認証させる方法
## はじめに
今回は、Vue.js 3を用いてCognitoをamazon-cognito-identity-jsとaws-sdkで使用し、EmailからOTP(ワンタイムパスワード)認証させる方法について記載します。## Pluginを作成する
https://blog.u-chan-chi.com/post/vue-cognito/ の記事を参考に、Vue.js 3用にPluginを作成します。
大まかな点は変更ありませんが、installの部分についてはVue 3で破壊的な変更があったため、以下のように記載し直してください。“`plugins/cognito.js
static install = (app, options) => {
const cognito = new Cognito();
cognito.configure(options);
app.provide(‘cognito’, cognito);
}“`
“`main.jsapp.use(Cognito, config)
“`
## Cognit
【ギリギリ合格シリーズ】勢いだけでAWS Certified Solutions Architect – Associate(SAA-C03)受けたら落ちた話
AWS Certified Solutions Architect – Associate(SAA-C03)を受けて来ました。
https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/
# 1回目
## 勉強量#### Udemy
割とちゃんと解いた(全部じゃないけど)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778585/aefb4693-bfc6-cf46-a091-e6ca9bd9a055.png)#### 書店で購入した参考書
まずAWSについて知識が皆無だったので、たくさん買って読み漁りました。
ただし環境は触ってません。書籍一覧TODO
### 理解度
・インフラの実務経験なし。
・新しい演習問題を解くたびに、知らないサービス名とか出てくる。
・解いた問題はちゃんと不正解の選択肢についても調べたので自信があったが、物量に自信がない。##
#05 AWS(APIGateway/Lambda) + Serverless Framework + BrefでサーバレスなLaravel環境を構築してみる①
# はじめに
最近、サーバレスにLaravelを運用する環境を目にする機会がありました。
その際に利用されていた技術について備忘録として複数回に分けてこのブログにまとめていこうと思います。
今回は、BrefとServerless Frameworkに焦点をあて、PHP動作環境をAWSにデプロイしてみます。# 1. 前提条件
AWSの各種サービスに対する基本的な知識、AWS CLI設定済み、npm/composerインストール済み# 2. 動作環境
npm:9.6.1
composer:2.1.14
AWS CLI:2.5.5
Serverless Framework:3.2.81
Bref:1.7# 3. 今回利用するツールに関して
### 1. Brefとは
Brefとは、一言で言えばAWS LambdaでPHPを動作させるための各種設定を行うCLIで、OSSとして提供されています。
LambdaのランタイムにはPHPは存在せず、カスタムランタイムとして利用する必要があります。
カスタムランタイムとしてPHPをLambdaで利用するための各種設定などの煩わしい作業を簡単に
TerraformでLambda Function URLをCloudFront OACに設定する
# はじめに
CloudFrontのOrigin Access ControlでLambda Function URLを保護できるようになりました。https://aws.amazon.com/jp/about-aws/whats-new/2024/04/amazon-cloudfront-oac-lambda-function-url-origins/
Lambda Function URLのアクセス制御は、PublicもしくはIAMによる認証しか選択できないため、この変更によりCloudFront + WAFでより細かくアクセス制御・保護が可能になります。
本記事ではこの設定をTerraformで作成します。
# できたもの
“`terraform
variable “stage” { type = string }
variable “prefix” { type = string }
variable “generate_lambda_name” { type = string }
variable “generate_lambda_url” { type = st
Amazon BedrockからLlama 3.1を使ってみる
新しいAIモデルが出たらとにかく触ってみたい系エンジニアです。
難しい性能云々は別の方が詳しく見てくれていると思いますので、そちらでご確認をお願い致します。
# 簡単操作方法
こちらの方が詳しく書いてくださっているのでご参照ください。
https://qiita.com/zumax/items/9b0f9e0ed1b57474a72f
追加されたところから
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778585/53bf3bc8-4513-e4f1-3598-116f626932bb.png)チャットをしてみましょう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778585/88bf0191-3be4-0265-ec55-7dd6eeb8573a.png)「モデルを選択」ボタンを押下
![image.png](https://qiita-image-store.
AWSCDKでALBをTLS1.3に対応させる
タイトル通りです。
AWS **CDK** を使ったコードでAWSの **ALB** をTLS1.3に対応させましょう、というお話です。
たったそれだけなので記事にするほどでもない気がしますけど、少し困ったことがあって載せることにしました。## 気になること困ったこと
元々TLSを指定していない場合の初期値は一体何が設定されるの?
試してみました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/491285/41a04e6a-177b-53d3-c449-0ca96902aee9.png)
[ELBSecurityPolicy-2016-08]
ずいぶん古いポリシーがセットされるんだな、という印象。ちなみにコンソールから一覧を選択するとTLS1.3では推奨は[ELBSecurity-TLS13-1-2-2021-06(推奨)]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49128
ECSでCannotPullContainerErrorが発生した場合の対処法(ダイジェスト不一致)
## 状況
一意のコンテナタグを使用してデプロイを更新していた時に
ECRからコンテナイメージをPullするときに以下のエラーが発生しました。
![て.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3179263/d8196ab2-1b6d-fa93-28a0-8569ed4807f8.png)
## 原因
ECSの方で、イメージタグではなく、以前のコンテナダイジェストを利用してデプロイをしていたことにありました。そのため、イメージタグは同じでも、新しくECRにPushしたコンテナはデプロイ対象とはならず、**存在しないダイジェストのコンテナイメージ**を引っ張ってこようとしてエラーになってしまっていました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3179263/1482302e-903a-34af-0df3-c4720578cb0f.png)
※ダイジェストが一つ目の画像のエラーの中にある
CloudFormationのテンプレートを分割したくなりませんか?
# まえがき
AWS CloudFormationのテンプレートを書いていると長くなることがよくありますが、数千行を超えると読む気が失せると思います。
そんな長くなりがちなテンプレートを分割する方法を説明します。# テンプレートの分割について
ネストされたスタック
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html# テンプレート
IAMユーザーを作成するテンプレートを参考に分割します。## 分割前
“` yaml:iam_user_create.yaml
Parameters:
# パラメータ名がUserNameParameter データ型がString
UserNameParameter:
Type: String
TagNames:
Type: String
Resources:
MyIAMUser:
Type: ‘AWS::IAM::User’
Properties:
#02 AWS でスナップショットの作成とインスタンスの復元をする
# はじめに
今回はインスタンスの復元を行いました。バックアップを取りたいインスタンスのスナップショットを取得
→ そのスナップショットをもとにボリュームを作成
→ 作成したボリュームと新規インスタンスのルートボリュームを置き換えるという方法で復元していきます。
# 1. Amazon EBS スナップショットの作成
スナップショットとは、ある瞬間のファイルやディレクトリなどのイメージを保存したものです。
Amazon EBS スナップショットは、Amazon EBS ボリュームのデータを新しい EBS ボリュームに復元するために必要な情報を Amazon S3 にバックアップしてくれます。## 手順
> 1. Amazon EC2 コンソール ( https://console.aws.amazon.com/ec2/ ) を開きます。
>
> 2. ナビゲーションペインで、[Snapshots] (スナップショット)、[Create snapshot] (スナップショットの作成) の順に選択します。
>
> 3. [リソースタイプ] で、[ボ