- 1. 【メモ】WAFメンテナンス・テストモード切替
- 2. 【メモ】CloudFormation実行関連
- 3. EBS・スナップショットの暗号化
- 4. 【メモ】SQSの受信とクリア
- 5. 【メモ】CloudWatchLogsインサイトの保存されたクエリの確認
- 6. 【メモ】CloudShell/Git 初期設定
- 7. AWS勉強備忘録24 – サブネットの設定とそれに関する周辺知識
- 8. AWSのゲートウェイ、どこに接続して、どんな目的で使用するのかの備忘録
- 9. 【AWS-IAM】アカウント棚卸時に、離任者のアカウントを削除したい
- 10. AWS Lambda + Honoで外部REST APIサーバ用のプロキシサーバを書く
- 11. 個人開発|自社データ × ChatGPTで社内ボットを構築するRAG SaaS|Doox β版をリリースしました
- 12. BedrockのナレッジベースでRAGを実装し、資料を元にした回答をClaude 3にLambda経由でしてもらった(ベクトルストアはAurora)
- 13. Step Functionsの遅延監視をLambdaを使わずにやってみた
- 14. 備忘録: VMware Cloud on AWS M7iインスタンス x FSxN (VPC Peering) のセットアップ
- 15. SRE Core体験レポート
- 16. CDK利用時の注意点
- 17. EC2上でアタッチされているIAMロールをaws-cliの名前付きプロファイルで利用できるように設定する
- 18. 【Terraform】NoSQL workbenchで作成したDynamoDB の定義をもとにリソースを作成する
- 19. Codepipeline クロスアカウント & クロスリージョン 対応 Ch.2
- 20. #JAWSDAYS2024 のCfXに4件応募した理由とJAWS-UGのステートメント -Find new heroes!-
【メモ】WAFメンテナンス・テストモード切替
## 事前確認
“`ruby:title: 事前確認
$ AWS_REGION=us-east-1
$ STACK_NAME=
$ WAF_PREFIX=
$ aws wafv2 get-web-acl –name “${WAF_PREFIX}-WebACL” –scope CLOUDFRONT –id $(aws wafv2 list-web-acls –scope CLOUDFRONT –output text –query “WebACLs[?Name==\`${WAF_PREFIX}-WebACL\`].Id”) –query “WebACL.DefaultAction”
{
“Block”: {
“CustomResponse”: {
“ResponseCode”: 503
}
}
}
$ aws wafv2 get-web-acl –name “${WAF_PREFIX}-WebACL” –scope CLOUDFR
【メモ】CloudFormation実行関連
## CloudFormation実行
※各環境の実行したい処理単位のフォルダに入る
“`ruby:title: CloudFormation実行
$ cd <実行したい処理単位のフォルダ>
$ pull
$ ../../build
※build.sh実行
“`## CloudFormation手動実行
### 手動実行(WAFの例)“`ruby:title: 手動実行(WAFの例)
StackID=141-WAF
aws cloudformation deploy –template-file ./cfn/${StackID}.yml –stack-name DEV-${StackID} –parameter-overrides $(grep -Evh ^# ./cfn/common_param.ini ./cfn/${StackID}.ini | tr ‘\n’ ‘ ‘) StackName=DEV-${StackID} MaintenanceMode=true TestMode=false
“`## CloudFormationテンプレート検証
EBS・スナップショットの暗号化
## 初めに
本日は、EBS・スナップショットの暗号化に関して、記載させて頂きたいと思います。
作成の際の注意点もあげてますので、ぜひご参考にして頂けたら幸いです。## 暗号化
目的:ボリュームやスナップショットを暗号化する事は機密性を高める為
→暗号化する際は、AWS KMSサービスを使用します。
※機密性とは?:決められた人だけが対象のデータにアクセスが出来る様にする事です![スクリーンショット 2024-04-01 15.44.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3744656/1f56f88a-dc6d-145b-0472-5d5c0694405b.png)
## 暗号化されるデータ
・ボリューム内の保存データ。
・ボリュームとインスタンス間で移動されるデータ。
・ボリュームから作成されたスナップショット。
・スナップショットから作成されたボリューム。## 作成の流れ(注意点有り)
ボリュームの作成時に暗号化のオプションを有効にする。
![スクリーンショット 202
【メモ】SQSの受信とクリア
## SQS
### SQSの受信とクリア“`ruby:title: SQS 受信とクリア
aws sqs receive-message –queue-url https://sqs.ap-northeast-1.amazonaws.com/xxxxxxxxxx<アカウントID>/–visibility-timeout 1 –max-number-of-messages 10
“`
※2回実行すると、受信メッセージがクリアされDLQ行きになる
【メモ】CloudWatchLogsインサイトの保存されたクエリの確認
## CloudWatchLogsインサイト
### 保存されたクエリの確認“`ruby:title: CloudWatchLogsインサイト 保存されたクエリの確認
pwsh –Command ‘(aws logs describe-query-definitions | ConvertFrom-Json).queryDefinitions | sort-object name’
“`
【メモ】CloudShell/Git 初期設定
## 本記事で実現できること
CloudShell初期設定を行う## CloudShell事前確認
### 事前確認
リージョン選択で作業対象のリージョンが選択されていることを確認する
※別リージョンを選択していると、別リージョンにCloudFormationスタックが作成される
※CloudFormationスタックが正常に作成された際、
リソースが想定の場所に作成されているか必ず確認する
![【AWS-IAM】アカウント棚卸時に、新規参画者のアカウントを作成したい (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3754524/8e72a78d-4c73-9b88-807e-9f9dcd0eb3bb.png)## CloudShell日本語化
### 日本語パックのインストール
“`ruby:title: 日本語パックインストール
sudo yum install glibc-langpack-ja
“`
CloudShellはhomeディレクトリ以外は永続化されないので、
後
AWS勉強備忘録24 – サブネットの設定とそれに関する周辺知識
## パブリックサブネット
パブリックサブネットは、インターネットから直接アクセス可能なネットワークセグメントのことを指します。クラウド環境(例:AWS)内で仮想プライベートクラウド(VPC)を設定する際に、パブリックサブネットとプライベートサブネットを定義することが一般的です。
パブリックサブネット内のリソースはインターネットゲートウェイを介してインターネットに接続され、外部からアクセスすることが可能です。これに対して、プライベートサブネット内のリソースはインターネットから直接アクセスできず、通常は内部ネットワークや特定のサービスのみと通信します。## Webアプリを例にしたサブネットの説明
Webアプリのバックエンドシステムをクラウド上に構築する場合を想像してみましょう。アプリケーションサーバー、データベースサーバー、ファイルストレージなど、さまざまなコンポーネントから構成されます。ここで、ユーザーがWebアプリにアクセスする際に必要となるのが、アプリケーションサーバーへのアクセスです。
### パブリックサブネット内のアプリケーションサーバー
Webアプリのユーザーがアプ
AWSのゲートウェイ、どこに接続して、どんな目的で使用するのかの備忘録
### インターネットゲートウェイ
どこに接続:パブリックサブネット
どんな目的:双方向にインターネット接続したい時
設定方法:VPCにアタッチ### NATゲートウェイ
どこに接続:パブリックサブネット
どんな目的:プライベートサブネットがセキュアにインターネット接続したい時(一方通行)
設定方法:一般的にパブリックサブネットに配置、プレイベートサブネット内に配置### 仮想プライベートゲートウェイ
どこに接続:VPC
どんな目的:オンプレミス環境とVPCを繋げたい時
設定方法:オンプレミス側にカスタマーゲートウェイを設定し、VPC側に仮装プライベ0とゲートウェイを設定することで、オンプレミスとVPC の通信を行う、通信はVPN経由で行う。### トランジットゲートウェイ
どこに接続:複数のVPC(とオンプレミス)
どんな目的:VPCが複数ある、プラスオンプレミスとも接続させたい時
設定方法:トランジットゲートウェイにVPCをアタッチし、アタッチしたVPCにルートを追加し、他のVPCと通信する### カスタマーゲートウェイ
どこに接続:オンプレミス
どんな目的:オンプ
【AWS-IAM】アカウント棚卸時に、離任者のアカウントを削除したい
![【AWS-IAM】アカウント棚卸時に、新規参画者のアカウントを作成したい.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3754524/ef445259-f739-4aeb-9395-8ac70da97eca.png)
## 本記事で実現できること
アカウント棚卸時に、離任者のアカウントを削除する## 前提
– AWSマネコンはログイン済み
– 2024.1.17 時点でのコンソールのUIになります## 簡単な解説
全部で5フェーズ①ホーム画面で、画面上部検索欄に[**IAM**]と入力。
出てくるサービスの中から[**IAM**]をクリック![AmazonSQS 障害時DLQに転送されたキューをSQSに再送したい(DLQ再処理)のコピー (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3754524/080b3166-ce95-28ce-0536-cf33663e8816.png)
AWS Lambda + Honoで外部REST APIサーバ用のプロキシサーバを書く
## プロキシサーバをHonoで作ろう
前回、[最近 Hono で外部連携用の AWS Lambda 書いています](https://qiita.com/ssc-ksaitou/items/4a1a1e437d4139b32d19)という記事を書きましたが、記事の中でユースケースとしてあげていた「**他のサービスへのデータ連携のためにAWS Lambda + Honoでプロキシサーバを書く**」という応用例は、そこそこ需要があると個人的に思っているので、今回改めて記事にしました。
https://qiita.com/ssc-ksaitou/items/4a1a1e437d4139b32d19
:::note info
本記事で書くプロキシサーバは [squid](https://www.squid-cache.org/) などの本格的なものではなく、HTTPリクエストを外部サービスに簡単に中継する程度のものです
::::::note info
本記事のソースコードは https://gitlab.com/ksaitou/2024-03-28_awslambdahonoprox
個人開発|自社データ × ChatGPTで社内ボットを構築するRAG SaaS|Doox β版をリリースしました
# TLDR
– 社内のデータを元に質問への回答を LLM が生成する仕組み(RAG)を構築するためのサービスを開発しました。
– β 版として無料で公開しているので是非使ってみてください。
– サーバーレスな構成で Next.js を動かしている。技術のキャッチアップは大変だ。https://doox.app/ja
# 背景
– 仕事をしていると社内の規定 / 製品情報 / 過去の履歴 .. などに関する問い合わせは日常的に発生するものだし、その工数は結構ある。通常は Wiki を作ってナレッジを共有するが、結局「近い人や担当に聞く」という行為はなかなか減らない。
– 色々な企業が、社内のデータを元に質問への回答を LLM が生成する仕組み(RAG)を独自に開発しているようで、技術ブログとかに書いている方も多い。
– 社内向け RAG の構築を SaaS プロダクトで提供したら各社の社内の問い合わせ工数と独自に RAG を構築するコストを下げられて嬉しいんじゃないか? という仮説。# 作ったもの
ということで、[Doox |自社データで学習した ChatGPT が社内
BedrockのナレッジベースでRAGを実装し、資料を元にした回答をClaude 3にLambda経由でしてもらった(ベクトルストアはAurora)
[Supership](https://supership.jp/)の名畑です。たくさんの思い出を生み出してくれた中野のシンボルとも言える中野サンプラザとのお別れイベントである[中野サンプラザプロジェクションマッピング](https://www.city.tokyo-nakano.lg.jp/kanko/city-promotion/0686357420231212172102894.html)、とても素晴らしかったです。別れを惜しみながらも、再会を楽しみに待っております。
## はじめに
前に「[LambdaでBedrockのClaude 3を呼び出してみた](https://qiita.com/nabata/items/5bcc3beb76182f626040)」という記事を書きました。[Anthropic](https://www.anthropic.com/)による**LLM**である[Claude 3](https://www.anthropic.com/news/claude-3-family)を[AWS](https://aws.amazon.com/jp/)の[La
Step Functionsの遅延監視をLambdaを使わずにやってみた
AWS Step Functionsが時間以内に終わっているかを監視する方法としては、クラメソさんの以下の記事で紹介されていますが、
https://dev.classmethod.jp/articles/monitor-step-functions-activity/
Step FunctionsでAPIが呼び出せるようになったのでLambdaを使用せずにStep Functionsで実装してみました
## Step Functionsから実行できるAPI一覧
実行可能なAWS SDK APIは以下で確認できますhttps://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/supported-services-awssdk.html
個人的には、WebUIのWorkflow Studio for AWS Step Functionsで探すほうが楽かなと思います
![workflow-studio.png](https://qiita-image-store.s3.ap-northeast-1.amazo
備忘録: VMware Cloud on AWS M7iインスタンス x FSxN (VPC Peering) のセットアップ
# 1. はじめに
Amazon FSx for NetApp ONTAP (FSxN)の初期作成とVMware Cloud on AWS m7i.metal-24xlからのNFSデータストアマウント (VPC Peering) について、あとから再現できるように手順の備忘録を残します。
## 全体構成図
リージョンはN.Virginiaを選択しています。
![Arch_M7i_FSxN.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864151/1a699813-5735-8df0-c323-fba83af97661.png)
:::note warn
2024年4月1日現在、VMware Cloud on AWS M7iインスタンスを利用できるのは、米国東部 (バージニア北部)、米国東部 (オハイオ)、米国西部 (オレゴン)、欧州 (アイルランド)、欧州 (ストックホルム) の AWS リージョンです。https://aws.amazon.com/jp/about-aws/whats
SRE Core体験レポート
こんにちは、博報堂テクノロジーズの近藤です。
今回は、グーグル・クラウド・ジャパン合同会社様ご協力の元、**SREのマインド醸成のきっかけを得たため、その経緯や行動変容を紹介します。**
## 背景
所属部署の施策の一環として、グーグル・クラウド・ジャパン合同会社様のコンサルティングサービスを受ける機会がありました。
## 利用サービスの検討
### 社内検討
まず、私たちにとって価値あるサービスを選択するため、受けるべきサービスの議論がありました。具体的には、それぞれが感じている課題をブレインストーミングし、それらを抽象的な単位でグルーピングしています。
—–ブレインストーミング抜粋—–
– データ利用ポリシー、ガイドラインの策定 →【改善】セキュリティ・ガバナンス
– SRE Workbook 実施 →【改善】生産性向上
– SOC部隊立ち上げ →【改善】セキュリティ・ガバナンス
– 災害対策→【改善】可用性
– IAMポリシーの整備、明文化 →【改善】セキュリティ・ガバナンス
– Cloud FinOps Operating Modelの利用→【改善】経
CDK利用時の注意点
皆さん、AWS CDKは利用していますか?
CDKは使い慣れた言語でAWSリソースをコード化し、再利用できるため、上手く用いれば爆速で環境構築が可能です。しかし、「プロジェクトの要件としてCDKの利用が推奨されたから」「AWSのセールスにCDKを推奨されたから」という理由で理解が浅いままCDKを利用すると、かえってCloudFormationでの構築より工数が増えることもあり得ます。新規プロジェクトでCDKの採用が決まった際、留意すべきことをまとめたのでぜひ参考にしてください。# 【原則】CDKはプログラミングだ ~プログラミング経験者をアサインせよ!~
以下にいろいろ留意点を書いていますが、まとめるとこの一言に尽きます。CDK構築はプログラミング要素が強いため、今までの基盤構築の経験が通用しないケースが多数発生します。アプリ開発経験がある方をチーム内に組み込み、アプリ開発の知見を活かしましょう。## 1. プログラミング経験者をアサインせよ
TypescriptやPythonでCDKを構築する場合、各リソースを順番に静的に宣言していくだけでも構築は可能です。しかし、それでは
EC2上でアタッチされているIAMロールをaws-cliの名前付きプロファイルで利用できるように設定する
EC2にIAMロールをアタッチした場合、OS上にアクセスキーやシークレットキーを登録する必要なくEC2上でIAMロールに設定した権限を利用できるようになります。
このようなインスタンス上でスクリプトを動かうような場合、profileを指定せずに記述したりできますが。
EC2にアタッチしている認証情報を元にプロファイル名をつけて利用できる方法があるのでメモ。
## ドキュメント
[Amazon EC2 インスタンスメタデータの認証情報を使用する](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-metadata.html#cli-configure-metadata-configure)
## ~/.aws/credentials
aws-cliで利用するcredentialsファイルへ下記のように設定すればEC2にアタッチされた認証情報を元にプロファイル名をつける事ができます
“`text
[profile profilename]
credential_source = Ec2I
【Terraform】NoSQL workbenchで作成したDynamoDB の定義をもとにリソースを作成する
# TL;DR
* NoSQL workbenchは作成したdata modelをexportできる
* exportした定義をもとにTerraformでリソースを作成したい
* 既存の仕組みではできなそうなので、自分で作りましたhttps://github.com/willco21/terrafrom-dynamodb-from-data-model
## NoSQL workbenchとは
>NoSQL Workbench は、DynamoDB テーブルの設計、作成、クエリ、管理に役立つデータモデリング、データ可視化、クエリ開発といった特徴を提供する視覚的開発ツールです。
https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/workbench.html
https://aws.amazon.com/jp/dynamodb/nosql-workbench/?nc1=h_ls
要するに、DynamoDB用のDBツール見たいな感じです。RDBに比べてなじみが薄いDynamoDBの設計
Codepipeline クロスアカウント & クロスリージョン 対応 Ch.2
## これは何?
[Codepipeline クロスアカウント 対応 Ch.1](https://qiita.com/atw0_0w/items/260f92c6ba8b4302011d)の続きになります。前回はクロスアカウント対応ということで以下のようなクロスアカウント構成を作成しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/872532/3a96afc6-3b7e-ff8e-b890-ae046fa577c7.png)今回は、前回プラスマルチリージョンにも適用できるような構成にしたいと考えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/872532/0ef5f4b6-9134-5d69-0694-6f3567495c18.png)## 設定内容
各種アカウントの設定は以下の通りになります。
前回からの変更部分だけを記載します。– **開発者向けアカウン
#JAWSDAYS2024 のCfXに4件応募した理由とJAWS-UGのステートメント -Find new heroes!-
ジャーニーマン( @beajourneyman )です。
「[JAWS DAYS 2024 -LEAP BEYOND-](https://jawsdays2024.jaws-ug.jp/)」でCfXが採択され登壇しました。応募に至った理由と結果を残します。今後登壇を目指される方に参考になれば幸いです。
# CfXを出すきっかけ
JAWS-UGでの登壇は九州で行われた「Jaws Festa 2023 in 九州」が初めてでした。なぜ、遠い九州かつそんな大舞台でデビューしたかというと、「[JAWS DAYS 2021 -re:Connect-](https://jawsdays2021.jaws-ug.jp/)」に遡ります。実行委員長の山口さんから、Ask the Speaker運営スタッフをご依頼いただいて、その時のリーダーがまだUGに参加して間もないあべたくさんでした。
https://note.com/beajourneyman/n/n8c90b88f4ac5
そんなあべたくさんが実行委員長を務めるカンファレンスで何とか貢献できないかと考え、辿り着いたのが登壇応募でした。