- 1. terraformについて
- 2. AmazonRekognitionで投稿画像の安全性をチェックする
- 3. test1
- 4. EC2インスタンスに作業用ユーザーを追加
- 5. AWS Elastic IPの個数上限を引き上げる方法
- 6. test
- 7. Amazon Location Serviceプレースインデックス機能のAPIエンドポイントへリクエストをしてみた
- 8. AWS勉強備忘録18 – S3のバージョニング、ライフサイクルポリシー
- 9. 【合格体験記】AWS Certified Solutions Architect – Professionalに合格しました(2024/03/16)【SAP-C02】
- 10. BedrockのClaude 3でストリーミング出力するシンプルなコード
- 11. IAM Identity Centerで作ったユーザーにAWS CLIからアクセスする方法
- 12. Cloud 9で色々起動しちゃうシリーズ jupyterlab
- 13. AWS|同じメールアドレスで複数のIAMユーザーを作る方法
- 14. AWS入門 IAM Identity Center
- 15. 教育ママがAWSを使い倒して、英語絵本朗読サイトを作りました(ほぼ無料)
- 16. AWS SAM: 役割と機能をざっくりまとめてみた
- 17. SwiftでAmazon S3のモックを用意して自動テストを実装する
- 18. AWS AppFlow 接続先情報を変更するために「フローを編集」をクリックするとエラーが出る
- 19. AWS勉強備忘録17 – UL/DLの方法、 S3のアクセス管理と改ざん防止機能
- 20. SalesforceのApexでREST APIを使用してS3に署名バージョン4でアクセスする方法
terraformについて
### そもそもterraformって何
AWS(Amazon Web Services)においてTerraformを使用すると、AWSの各種リソースをコードで管理し、プロビジョニングや変更を自動化できます。以下に、AWSでのTerraform利用について詳しく説明します。
1. AWSプロバイダの設定:
– AWS認証情報(アクセスキーとシークレットキー)をTerraformに設定
– 使用するAWSリージョンを指定
2. リソース定義(.tfファイル):
– Terraform用の構成ファイル(HCL言語またはJSON形式)で、AWSリソースを宣言的に記述
– 例:VPC、サブネット、セキュリティグループ、EC2インスタンス、RDSデータベースなど
3. terraform init:
– Terraformの初期化コマンド
– 必要なプロバイダプラグインのダウンロードと、バックエンドの初期化を実行
4. terraform plan:
– 現在の構成と、Terraformコードで定義された構成の差分を確認
– 実
AmazonRekognitionで投稿画像の安全性をチェックする
# はじめに
先日、LLMへの入力プロンプトから事前に悪意のあるコンテンツや個人情報を含むコンテンツを検知・除去する手段として[Amazon Comprehendを紹介しました。](https://qiita.com/kanuazut/items/c3dbb6868732c9ce55e8)
詳細は記事を確認頂ければと思いますが、Amazon Comprehendでは日本語テキスト内の違法・暴力的な内容や個人情報を検知することがある程度可能という結果でした。一方で、最近ではマルチモーダルなLLMがAWSをはじめとするクラウドサービスで利用可能になっており、LLMに対する画像の入力も増えてきています。
そこで本記事では、画像認識のAIサービスであるAmazon Rekognitionを利用して、画像内の暴力的・性的等の不適切コンテンツを検知する機能を試し、プロンプトから除去することができるか試してみます。# Amazon Rekognitionとは
Amazon Rekognitionは、AWSの画像/ビデオ認識のサービスで機械学習の知識なしで高度な機能を利用できるサービス
test1
“`
def build_subnet_tags(subnets):
return {subnet[‘cidr’]: {‘Name’: subnet[‘tags’][‘Name’]} for subnet in subnets}vpc1_private_subnet_tags = build_subnet_tags([
subnet for subnet in VpcConfig.vpc1[‘subnets’] if subnet[‘type’] == ‘private’
])
vpc1_public_subnet_tags = build_subnet_tags([
subnet for subnet in VpcConfig.vpc1[‘subnets’] if subnet[‘type’] == ‘public’
])
“`
EC2インスタンスに作業用ユーザーを追加
まずはユーザー追加。wheelグループに追加してsudo権限
“`
[prompt] $ su –
[prompt] # useradd username
[prompt] # usermod -G wheel username
“`
パスワード無しでsudo出来るように
visudoを編集
“`
[prompt] # visudo
%wheel ALL=(ALL) NOPASSWD: ALL
“`
追加ユーザーのsshキー作成
“`
[prompt] # su – username
[prompt] # ssh-keygen -t rsa
“`
公開鍵を調整
“`
[prompt] # cd .~/.ssh
[prompt] # cat id_rsa.pub >> authorized_keys
[prompt] # chmod 600 authorized_keys
“`秘密鍵をローカルにダウンロード
“`
[prompt] # cd .~/.ssh
[prompt] less id_rsa
“`
ローカルから秘密鍵「id_rsa」を使用してs
AWS Elastic IPの個数上限を引き上げる方法
## 概要
AWSのElastic IP取得上限数はリージョンごとに5個である。とある作業でElastic IPを6個取得する必要があったため、インフラエンジニアさんに相談し、個数上限を引き上げる方法を教わった。実際に体験してみたのでメモ的にまとめる。
## 方法
1. AWSマネジメントコンソールにて Service Quotasを開く。
1. サイドバーの「AWSのサービス」をクリックする。
1. AWSのサービスで`Amazon Elastic Compute Cloud`と入力し、検索する。
1. サービスクォータで`EC2-VPC Elastic IPs`と検索し、ヒットした「クォータの名称」をクリックする。![CleanShot 2024-03-22 at 12.46.59.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/73265930-29d8-76a5-0ce9-cf7c1156d1f5.jpeg)
1. 「アカウントレベルでの引き上げをリクエスト」をク
test
“`
vpc1 = TerraformAwsVpc(self, ‘Vpc1’,
cidr=vpc_config.vpc1[‘cidr’],
azs=[common_az_var.availability_zone], # 假设您要在一个可用区中创建所有子网
private_subnets=[subnet[‘cidr’] for subnet in vpc_config.vpc1[‘subnets’] if subnet[‘type’] == ‘private’],
public_subnets=[subnet[‘cidr’] for subnet in vpc_config.vpc1[‘subnets’] if subnet[‘type’] == ‘public’],
Amazon Location Serviceプレースインデックス機能のAPIエンドポイントへリクエストをしてみた
## はじめに
今回はAmazon Location Serviceプレースインデックス機能の3つのエンドポイントへリクエストしてみました。
プレースインデックス作成の設定はあくまで今回の例です、実際に試す方は必要に応じて変更してください。## Amazon Location Serviceプレースインデックス機能
ジオコーディング、逆ジオコーディング、地点の検索機能を扱うことができます。
– ジオコーディング
住所、POI などを検索し、座標データを取得できます。
– 逆ジオコーディング
座標を入力し、その位置に関するメタデータを受け取ることができます。
– サジェスト検索
住所や地名に含まれる文字列で検索し、候補を返すことができます。## 作成手順
Amazon Location Serviceの画面から「プレースインデックス作成」ボタンを押します。
入力フォームから以下の内容を入力します。今回権限関連はAPIキーを作成して使用します。![スクリーンショット 2024-03-15 143310.png](https://qiita-image-store.s3.ap-
AWS勉強備忘録18 – S3のバージョニング、ライフサイクルポリシー
# AWS S3で過去のバージョンを復元する2つの方法
AWS S3のバージョニング機能を使うと、ファイルの過去のバージョンを保持し、必要に応じてそれらを復元することができます。誤ってファイルを上書きしたり、削除したりした場合でも安心です。ここでは、AWS S3で過去のバージョンを復元する2つの主な方法について説明します。
## 方法1: 過去のバージョンを新たなバージョンとしてコピーする
この方法では、復元したい過去のバージョンを現在のバージョンとして設定することにより、ファイルを復元します。
手順は以下の通りです(現行のバージョンをバージョンnとします):
1. **バージョンIDの確認**: 復元したいバージョンのファイルを特定し、そのバージョンIDを確認します。
2. **コピー操作**: 特定した過去のバージョンを同じバケット内の同じオブジェクト名でコピーします。この操作により、選択したバージョンが最新のバージョンとして設定されます。このプロセスにより、バージョンn-k(kはnより小さい自然数)の内容がバージョンn+1として新たに保存され、これが最新バージョンと
【合格体験記】AWS Certified Solutions Architect – Professionalに合格しました(2024/03/16)【SAP-C02】
# 目次
[#1.はじめに](#1はじめに)
[#2.筆者のスペック](#2筆者のスペック)
[#3.学習内容](#3学習内容)
[#4.学習期間](#4学習期間)
[#5.試験当日](#5試験当日)
[#6.あとがき](#6あとがき)# 1.はじめに
題名の通り、AWS Certified Solutions Architect – Professionalに合格しました。
本日AWS Certified Solutions Architect – Professional(SAP-C02)受験して合格しました!!!
AWS SAP本当に難しかったしギリギリだったけど今年度の目標だったので嬉しい😭😭😭#AWSBedrockのClaude 3でストリーミング出力するシンプルなコード# Claude 3がアツいですね
GPT-4を超えたと話題の生成AI、Claude 3シリーズ。
私の開発組織でも全力でキャッチアップに取り組んでいます。https://qiita.com/minorun365/items/e6f3aa71f5e1bdf21139
AWSのBedrockでも利用可能になるや否や、ものすごい量のQiita記事が出ていますが意外とシンプルなストリーミング出力のサンプルコードがなかったので紹介しておきます。
# シンプルなコード例
AWSの公式ドキュメントを参考にしています。
https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/model-parameters-anthropic-claude-messages.html
“`py:stream.py
# Python外部ライブラリのインポート
import json
import boto3# Bedrockクライアントの作成
bedrock_runtime = boto3.client(‘bedrock-runtIAM Identity Centerで作ったユーザーにAWS CLIからアクセスする方法
# 手順
– セッションを立ち上げる
“` sh
$ aws configure sso
“`
aws access portal(IAM Identity Centerで作ったユーザーのログイン画面)に行けば、実行後の入力すべき値が確認可能。それに従って、入力していく。– 認証が終われば、プロファイル名を登録しておく
“`sh
CLI profile name [{プロファイル名}]:
“`
出てきたプロファイル名を登録する。“`sh
export AWS_PROFILE={プロファイル名}
“`
これだけ。あとはコマンド叩く。# IAM Identity Centerの良さ
IAM Identity Centerで作ったIAMユーザーにcliからアクセスすると、そのタイミングでアクセスキーが発行される。「セッションが切れる or 一定の時間が経つ」とそのアクセスキーは自動で廃棄される。
普通のIAMで作ったユーザーにアクセスするのと違い、超短期的なアクセスキーの運用により、セキュリティを高められる。
Cloud 9で色々起動しちゃうシリーズ jupyterlab
“`bash
mkdir jupyter-lab
cd $_
“`“`bash
python3 -m venv .venv
source .venv/bin/activate
“`“`bash
pip install jupyterlab
“`“`bash
jupyter lab –port 8080 –ServerApp.allow_remote_access True
“`プレビューさせても、Cloud 9のIDE内だとエラー表示になるので、新規タブで開きましょう。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/afa3ee6a-66f8-f118-0872-4c4562a98e76.png)
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/da53745d-6a36-270e-bef0-677470ae50cf.png)
AWS|同じメールアドレスで複数のIAMユーザーを作る方法
# AWS|同じメールアドレスで複数のIAMユーザーを作る方法
“`
user@hogehoge.com
“`
これを“`
user+[好きな文字]@hogehoge.com
“`
とするだけで、別のメールアドレスとして認識され、user+[好きな文字].hogehoge.comのメールは全てuser@hogehoge.comに届く。
AWS入門 IAM Identity Center
# 初めに
自分のAWSの勉強ノート。汚いです。# 用語説明
– AWSアカウント
– AWSのアカウントを作って最初に作成されるアカウント。rootユーザーのこと。なんでもできる。
– IAMユーザー
– 特定の権限を与えられたユーザー。rootユーザーと比べてできることが制限されたもの。
– IAMグループ
– IAMユーザーをグループ化したもの。
– IAMロール
– 制限された権限。IAMユーザーや、IAMグループに付与できる。
– IAM Identity Center
– AWSアカウントが複数ある場合に、IAMユーザー、IAMロールを管理するためのもの。# IAM Identity Centerと各アカウント、ユーザーの関係
以下の図のようなイメージ?
アカウントにもrootアカウントと子アカウントがあり、ユーザーにもrootユーザーと子ユーザーがあるってことか。IAM Identity Cneterを使えば、子ユーザーから子ユーザーへのスイッチが楽にできるって話ってことか。
![image.png](https:/
教育ママがAWSを使い倒して、英語絵本朗読サイトを作りました(ほぼ無料)
# 最初に
1歳児を育児中のエンジニアです。もうすぐエンジニア歴7年目に突入しそうです。
年齢のせいか、現場でコードを書くことがなくなりつつあります。諸事情あって数年間ずっと資格勉強ばかりしていたのですが、いい加減資格だけのハリボテエンジニアなのが恥ずかしくなってきました。せっかくAWS SAPをとったので、その知見を活かしたサービスをなるべく早く、なるべく安く作ってみました。その記録になります。# 要件定義
家庭教育の一環として「おうち英語」を実施中です。英語環境を家庭で作り、0歳時のころから英語に慣れ親しむことで、ハリーポッターを原書で読める小学生を目指します。昔、自分がTOEIC900を目指して地道に頑張っていたころ、留学経験がないのに英語がペラペラな同僚がいました。コツを聞いたところ「小学生の時におばあちゃんがハリーポッターの原書を読み聞かせしてくれたんだ」と返ってきて、英語は本人の努力云々ではなく親ガチャであったことに衝撃を受けました。よって、子供ができたら絶対におうち英語をやると決めていたのです。まず英語の絵本を調達しました。が、親の私は純正日本人ゆえ英語の
AWS SAM: 役割と機能をざっくりまとめてみた
こんにちは!Xyeerです
今日は、SAMの役割と機能について説明します。## 経緯
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3749163/d52c05cc-4442-a7af-270d-dea05d3673fc.png)現在、上記のようなシステムを使っています。
Lambdaには、[Amazon Elastic Container Registry](https://aws.amazon.com/jp/ecr/)経由でアップロードしています。**問題点**
・Lambdaにアップロードするまで、システムが問題なく動くかわからない。
・何度もソースコード修正するのに、毎回アップロードして確認するのが手間である。
### →ローカル環境で、Lambdaを使えるようにしたいそんな思いで色々と調べていたら、サーバレスアプリケーションを簡単に定義、デプロイ、管理できるフレームワークであるSAMに出会いました。
## そもそも AWS SAMって何?
イベント駆動型のサー
SwiftでAmazon S3のモックを用意して自動テストを実装する
# 概要
AWS SDK for Swiftに[Testing and debugging](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/using-testing-debugging.html)というセクションがあり、モックを使用した自動テストの方法が記載されています。
また、上記のドキュメント内で紹介されているコードは[Github](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift/example_code/swift-sdk/mocking)上に公開されているので、こちらを確認するとより理解が深まります。上記のコンテンツを参考にしてモックを使ったテストを実装したのでその方法についてメモを兼ねて記述します。
# 詳細
モックを用意して自動テストを実装する際の基本的な流れは以下の通りです。
**1. Protocolを作成し、Protocol内でモックを作成したい関数を指定する
2. 1で作成したProtoco
AWS AppFlow 接続先情報を変更するために「フローを編集」をクリックするとエラーが出る
## 概要
AppFlowの接続先の認証情報が代わった。送信元接続の情報を変えようとフローの詳細画面からアクションを開き「フローを編集」をクリックしたらエラーが出たので自分の場合の解決方法を簡単にメモする。
## エラー内容
“`
Error while communicating to connector: HttpClient error executing/parsing response given request object due to 接続先の情報
“`## 解消方法
そもそも、送信元接続の情報変更は、フローの編集画面からではなく、フローの詳細画面の「送信元接続」の下にある「別の接続を選択」をクリックして変更すれば良い。
接続が確立されている、「送信元接続」を選択できれば、「フローを編集」をクリックしてもエラーにならない。
AWS勉強備忘録17 – UL/DLの方法、 S3のアクセス管理と改ざん防止機能
# UL/DLの方法について
| 方法 | 説明 | 適用シナリオ | メリット | デメリット |
|———————–|————————————-
SalesforceのApexでREST APIを使用してS3に署名バージョン4でアクセスする方法
SalesforceのApexを使用して、REST APIでAmazon S3に署名バージョン4を使用してアクセスする方法の日本語記事があまりなかったので、メモとして残しておく。
# 前提条件
– AWSアカウントを所有しており、IAMユーザーを作成し、アクセスキーとシークレットキーを取得していること
– S3バケットのアクセス権やSalesforceの設定が適切にされていること# 実装
以下の公式ドキュメントの手順にしたがって実装。詳細は以下を参照。
[署名付き AWS API リクエストを作成する](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/create-signed-request.html):::note warn
`secret, secretKey, region`はクラス変数等で定義しておく
:::## 手順1: 正規リクエストを作成する
“` Apex
private String generateCanonicalRequest(String method, String filena