- 1. TerraformでLambda Function URLをCloudFront OACに設定する
- 2. Amazon BedrockからLlama 3.1を使ってみる
- 3. AWSCDKでALBをTLS1.3に対応させる
- 4. ECSでCannotPullContainerErrorが発生した場合の対処法(ダイジェスト不一致)
- 5. CloudFormationのテンプレートを分割したくなりませんか?
- 6. #02 AWS でスナップショットの作成とインスタンスの復元をする
- 7. AWS EC2 の Systemd にアプリケーションをデプロイさせる
- 8. メールをSES→S3に保存する(terraform)
- 9. ローカルからEC2へファイルをアップロードする方法
- 10. AWS S3 のストレージ料金をストレージクラスごとにまとめる(東京リージョン)
- 11. [AWS #20] EFS
- 12. SSM Session Managerを使用してPrivate Subnet内のRDSにアクセスする
- 13. AWS認定 クラウドプラクティショナーで混同しがちなやつまとめ
- 14. Databricks on AWS SQLウェアハウス利用料金単価の早見表(2024年7月)
- 15. Amazon Lookout for Metricsのcontinuousモードでの構築
- 16. AWS Lambdaにレイヤーを追加する
- 17. BedrockのLlama 3.1を呼ぶ(InvokeModelとConverse、ToolやCode Interpreterも)
- 18. React + Cognito で簡単に認証機能を実装する方法:Amplify UI の活用
- 19. AWSアカウント間でS3バケットへのアクセス権限のみを共有する方法
- 20. 【資格】OSS-DB Silver 取得への冒険譚
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. [リソースタイプ] で、[ボ
AWS EC2 の Systemd にアプリケーションをデプロイさせる
# きっかけ
AWS EC2へのアプリケーションの自動デプロイについて調査しているとき、Systemdに触れる機会があったため改めてアウトプットします。# Systemd とは
Unix系のOSで動くプログラムの元となるプログラムのこと。
読み方は「システムディー」
initプロセスとも呼び、PID(プロセスID)が1のプロセスとして起動する。
OSが起動すると一番最初に実行される。# なぜアプリケーションの実行にSystemdを使うのか
initプロセスとして使われるのはSystemdしか無いというわけではありませんが、現在Systemdはほとんどのディストリビューションで使われているそうです。
Systemdではあらかじめ用意した設定ファイルを元にしてシステムを構築します。
そのため、そこにアプリケーションのデプロイも設定しておけば自動デプロイが実現するわけですが、その際にどのような恩恵を受けられるのでしょうか。Systemdを使うメリットは
– システムが何かしらの理由で停止しまった際に自動で再実行してくれる
– アプリケーションが出力したログを勝手に管理して
メールをSES→S3に保存する(terraform)
### SESからS3にメールを保存したい
メールの処理で大きいファイルなどを扱うとき、SNSを使っているとキャパシティーをオーバーしてしまいます。#### SES+SNS構成
構成としては以下になります。
SESでEメールを受信できるようにし、メールを送信します。
SESのアクションとしてSNSトピックへの発行を行います。
SNSからは処理用のLambdaへ通知をして処理を行います。
しかし、メールの容量が150KBを超えてしまうとそもそもLabmdaに通知されず、処理もできません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884542/993e82dc-c287-3c58-a611-993f2385dead.png)#### SES+S3(SNS)構成
そこでS3を使用した構成に変更を行います。
S3を使用すると、150KBを超えるような大きいメールを受信することが可能になります。
[公式のページ: S3バケットアクションへの配信](https://docs.aws.
ローカルからEC2へファイルをアップロードする方法
よくあるローカルからEC2へファイルをアップロードしたい。そんな時によく使われる方法です。
まずはファイルの配置場所とコピーの宛先のEC2のキーペアの配置場所を確認しておきます。
今回の記事は分かりやすくデスクトップに置いていると想定しています。ファイルをEC2にコピーする場合はscpコマンドを使用します。
“`
sh-3.2# scp -i <キーペアファイル名>.pem sample01.txt ec2-user@<パブリックIPアドレス>:/home/ec2-user/
“`
成功するとファイル名が表示されます。
“`
sample01.txt 100% 796 75.5KB/s 00:00
“`
もしもNo such file or directoryが出る場合はファイルパスが間違っている可能性があります。
ユーザーがデスクトップにいる場合は絶対パスを必要はありません。ファイル名だけでOKです。現在いるディレクトリがデスクトップにいない場合は下記のように指定する必要があります。
“
AWS S3 のストレージ料金をストレージクラスごとにまとめる(東京リージョン)
| Name | Keep | PUT | GET | Lifecycle | Retrieval | Retrieval |
|————|————–:|——–:|——–:|———-:|———-:|————-:|
| (Unit) | $/GB/M | 1000req | 1000req | 1000req | 1000req | GB |
| STD | 0.0250 (100%) | 0.005 | 0.00040 | – | – | – |
| STD – IA | 0.0138 ( 55%) | 0.010 | 0.00100 | 0.010 | – | 0.010 |
| Glacier IR | 0.0050 ( 20%) | 0.020 | 0.01000 |
[AWS #20] EFS
## はじめに
こんにちは今回はストレージサービスである「**EFS**」についてご紹介いたします。## Amazon EFS
Amazon EFSは「**Elastic File System**」の略称です。(AWSが提供している**共有ファイルストレージ**)複数のLinuxサーバーから、[NFSプロトコル](https://aws.amazon.com/jp/compare/the-difference-between-nfs-smb/)でマウントして使用することができます。
![AWS20_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3806875/16fc33b4-6045-9d2a-e0bf-880e42046306.png)
上図のようにEFSは、**複数のEC2インスタンス**、**オンプレミスサーバ**から「マウント共有」して利用す
SSM Session Managerを使用してPrivate Subnet内のRDSにアクセスする
# 事前準備
1. Private Subnet内にRDSを作成
# 構成図
![ssm.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3685785/5d95bef2-4c0f-86eb-ee42-06d9eabdf96d.png)
# 手順
## 踏み台用EC2を作成
1. EC2 > インスタンス > インスタンスを起動
– Amazon マシンイメージ (AMI)
– Amazon Linux 2023 AMI/Armを選択(SSM AgentがプリインストールされているAMIであればどれでもOK:
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/ami-preinstalled-agent.html)
– インスタンスタイプ
– t4g.nano(適当なタイプでOK)
– キーペア
1. 新しいキーペアを作成(
AWS認定 クラウドプラクティショナーで混同しがちなやつまとめ
[AWS Certified Cloud Practitioner認定](https://aws.amazon.com/jp/certification/certified-cloud-practitioner/)の学習をしている中で
類似したサービスや用語が出てきて少し苦労したので勉強がてらまとめてみました。もし要望があれば追加しようと思うのでコメントなどいただけますと幸いです。
いいねとストックも励みになりますので是非!:::note warn
記事作成の効率化と推敲のため、この記事は一部**Claude(生成AI)を使用して生成した箇所**があります。
自分が理解した内容と公式ドキュメントなどをもとに内容のチェックはしていますが、正確性を欠く内容が含まれる可能性もございますので**必ず原典を併せて確認**するようにしてください。
:::# 思想(フレームワーク)
* **AWS クラウド導入フレームワーク** (AWS CAF)
* **AWS Well-Architected Framework**問題を解く際、この2つでまず混乱しました。
しかもフレームワ
Databricks on AWS SQLウェアハウス利用料金単価の早見表(2024年7月)
# はじめに
株式会社NTTデータ [デジタルサクセスソリューション事業部](https://enterprise-aiiot.nttdata.com/) の [nttd-saitouyun](https://qiita.com/nttd-saitouyun) です。
Databricks on AWS の利用料の見積もりを行う際に、コンピューティングの利用料はDatabricksの利用料とEC2料金を合算する必要があり、**2つのプライシング・カリキュレータを行ったり来たりするの大変なので、パッとわかる早見表を作りました!**(サーバーレスが主流になると要らなくなってしまうかもしれませんが。)
SQLウェアハウスはインスタンスタイプではなく、**S, M, Lサイズ等のクラスターサイズでサイズが決まります**。この各クラスターサイズを構成するインスタンスの詳細は以下のサイトに記載があります。今回はやや複雑ですが、計算していきます。
https://docs.databricks.com/ja/compute/sql-warehouse/warehouse-behavior.
Amazon Lookout for Metricsのcontinuousモードでの構築
## はじめに
Amazon Lookout for Metricsのcontinuousモードを構築する機会がありましたので
学んだことを記載します。
## 前提
・AWSアカウントがあること
・Lookout for Metricsとのデータ連携にはS3を利用
・データ形式はCSV
・データ解析のインターバルは1時間
・分析モードはcontinuousモードを使用
## やること
・異常検知させるデータを作成する(historical dataとcontinuous data)
・S3のバケットを作成し、データをアップロードする
・Detectorをcontinuousモードで設定する## データの作成
今回も自作したデータを使ってみます。
Continuousモードでは「historical data」と「continuous data」を使用します。
※Continuousモードではhistorical dataは任意ですが、検知できるようになるまでの時間を短縮できるため今回は設定しています。
>**検出器のステータス**
Lookout for Metrics では通常、
AWS Lambdaにレイヤーを追加する
## やること
– ローカル環境でlambda関数で使用するライブラリをインストール
– ライブラリをzip化
– lambda関数にレイヤーを設定## 環境
– lambda
– Python
– Windows(WSL,ubuntu)## ライブラリを用意
##### lambda関数で使用するライブラリをインストールする。ここではsqlalchemyとしておく。
ローカル環境でvenv仮想環境を構築して、sqlalchemyをインストール。
“`shell
python -m venv venv
source venv/bin/activate
pip install sqlalchemy
deactivate
“`ライブラリをzip化
“`shell
# 適当なディレクトリにpythonディレクトを作成
mkdir /home/hoge/tmp/python
# 仮想環境でインストールしたライブラリをコピー
cp -r venv/lib /home/hoge/tmp/python/
# zip化
cd /home/hoge/tmp
zip -r lay
BedrockのLlama 3.1を呼ぶ(InvokeModelとConverse、ToolやCode Interpreterも)
新モデルが来たら、やるでしょ
:::note
BedrockのドキュメントにはまだLlama 3.1のプロンプト例がなかったので、Metaのドキュメントから拝借しました。https://llama.meta.com/docs/model-cards-and-prompt-formats/llama3_1/
:::## InvokeModel API
プロンプトが独特。
“`python
import json
import boto3client = boto3.Session(region_name=”us-west-2″).client(“bedrock-runtime”)
model_id = “meta.llama3-1-70b-instruct-v1:0”
prompt = “””<|begin_of_text|><|start_header_id|>system<|end_header_id|>
Cutting Knowledge Date: December 2023
Today Date: 23 Jul 2024You are a hel
React + Cognito で簡単に認証機能を実装する方法:Amplify UI の活用
# はじめに
Amazon Cognito は,ウェブアプリケーションやモバイルアプリに簡単に認証機能を追加できるAWSのサービスです.しかし,初めて使う人にとっては少し取っつきにくい面があります.本記事では,React アプリケーションに Cognito を組み込む方法を,Amplify UI という便利なライブラリを使って解説します.Amplify UI を使うことで,認証UIを最小限のコードで実装できることを紹介します.
# Cognito User Pool の作成
まずは,AWS コンソールから Cognito User Pool を作成します.以下の手順で進めていきましょう.AWS コンソールから「Cognito」サービスを選択し,「ユーザープールを作成」をクリックします.
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320225/e1133296-5bde-3583-ed14-879ab022ba43.png)ステップ1:サインインエクスペリエンスの設定
AWSアカウント間でS3バケットへのアクセス権限のみを共有する方法
Amazon S3(Simple Storage Service)は、データの保存と管理のためのスケーラブルなオブジェクトストレージサービスです。異なるAWSアカウント間でS3バケットを共有する方法を紹介します。
### バケットポリシー編集
“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “AllowListAndGet”,
“Effect”: “Allow”,
“Principal”: {
“AWS”: “arn:aws:iam::{ACCOUNT_ID}:user/{USER_NAME}”
},
“Action”: [
“s3:ListBucket”
],
“Resource”: “arn:aws:s3:::{YOUR_BUCKET_NAME}”
【資格】OSS-DB Silver 取得への冒険譚
## はじめに
ますだです。
普段は AWS 案件の保守や運用辺りを担当してます。
今回、OSS-DB Silver Ver.3.0 に合格したので、アウトプットも兼ねて学習方法や期間についてゆるっと書いてみます。—
## ざっくり纏め
– **OSS-DB Silver**:[公式](https://oss-db.jp/outline/silver)
– **合格ライン**:64 点
– **結果**:84 点
– **学習期間**:2024-07-03 ~ 2024-07-24 (22 日間)
– **教材**:[Ping-t](https://mondai.ping-t.com/g) (ほぼこれ), [緑本](https://www.amazon.co.jp/OSS%E6%95%99%E7%A7%91%E6%9B%B8-OSS-DB-Silver-Ver-3-0%E5%AF%BE%E5%BF%9C-%E7%A6%8F%E5%B2%A1/dp/4798180319) (睡眠導入用), [Youtube (LPI-Japan)](https://www.youtub