- 1. diagramsコードから構成通りのIaCをChatGPTに書いてもらう
- 2. もしも明日DB障害が発生したら、あなたはどのように復旧しますか? ~RDSとS3を連携し、PITRで損失したデータを復元するプラクティスについて~
- 3. diagramsを使ってAWS構成図を書こうと思ったが導入でつまずいた話
- 4. MQTT の Session State についてざっくり理解する
- 5. 本当のガバメントクラウド基礎~利用方式と登場人物たち~
- 6. ROSAでEBSを利用する際のバックアップ・リストア戦略
- 7. 【AWS SageMaker】NotebookインスタンスのCPUやメモリ使用率をCloudWatchで取得してみた
- 8. EC2を柔軟に設定するためのCloudFormation Templateの作成
- 9. Slack経由でRAGにコードレビューを依頼するBotを作成 〜 AWS SAM編
- 10. サブスクリプションフィルターをGUI以外で設定する場合の注意事項
- 11. DifyをEC2上に構築して、IAMロールでBedrockを呼び出す
- 12. SAAの勉強メモ
- 13. 普段からALBを使っているサービスでALB使ってちょっと雑だけど簡単にメンテナンス画面を表示する方法
- 14. 検証!AWS Builder IDを使ってAmazon CodeCatalystをセットアップする
- 15. LangChain + ClaudeV3 + Streamlit サンプルコード
- 16. AWS Linux OS で mariadb-connector-c を mysql-client に置き換えます
- 17. Cloud Watch AlarmをトリガーにOUでアクセス制御してSNS Topic経由でLambda起動させる
- 18. API Gateway でIAM認証を通してみた!Postman、AWS CDK
- 19. AWS DEA受験レポート
- 20. 【備忘】Amazon Redshiftの概要
diagramsコードから構成通りのIaCをChatGPTに書いてもらう
Terraformの勉強がてら、Pythonパッケージ diagrams のコードを基に IaC コードを生成AIに書いてもらおうという取り組みです。
## 作成したい環境
“`python
from diagrams import Diagram, Cluster
from diagrams.aws.compute import EC2
from diagrams.aws.storage import S3
from diagrams.onprem.client import Client
from diagrams.aws.network import Endpointwith Diagram(“Simple Diagram”) as diag:
with Cluster(‘VPC’):
with Cluster(‘Public subnet’):
ec2_pub = EC2(‘Public Instance’)
with Cluster(‘Private subnet’):
ec2_
もしも明日DB障害が発生したら、あなたはどのように復旧しますか? ~RDSとS3を連携し、PITRで損失したデータを復元するプラクティスについて~
## 概要
データベースの論理障害が発生した際に、過去時点のデータをインポートし復旧する手順について説明します。
具体的には、ポイント・イン・タイム・リカバリ(PITR)で、任意の時刻のRDSクラスタを作成し、データをS3へエクスポート、その後S3から再度インポートすることで任意のテーブル・スキーマを過去の状態に復元します。
## 手順の概要
① ポイント・イン・タイム・リカバリ(PITR)で障害発生前のRDSクラスターを作成
② RDS が S3 にアクセスするための IAM ロールを作成
③ DBクラスターパラメータグループの設定
④ **`SELECT INTO OUTFILE S3`**/**`LOAD DATA FROM S3`** でデータを復旧する
## 手順の説明
### ① PITRを使用してデータを復元するポイント・イン・タイム・リカバリ(PITR)でRDSクラスターを過去の時点に復元するプロセスを説明します。
**PITRとは?**
PITRでは、リソースの状態を指定した過去の時刻に巻き戻すことができます。今回はこの機能を採用し、RDSリ
diagramsを使ってAWS構成図を書こうと思ったが導入でつまずいた話
AWSの構成図をPythonパッケージのdiagramsを使って書こうと思ったのですが、意外と導入でつまずいたのでまとめます。
## 環境
– Python 3.8.10
– pip 23.3.1
– Windows 11 Pro
– WSL 2.1.5.0## 描画用プログラム
“`python
from diagrams import Diagram
from diagrams.aws.compute import EC2
from diagrams.onprem.client import Clientwith Diagram(“Simple Diagram”) as diag:
ec2_pub = EC2(‘Public Instance’)
ec2_pri = EC2(‘Private Instance’)
Client() >> ec2_pub
ec2_pub – ec2_pridiag
“`
中身は何でもいいのですが、ひとまず描画できることを確認するためのものです。## 導入手順
“`
$ pip insta
MQTT の Session State についてざっくり理解する
# Session とは何か
`Client Identifier`(クライアントID)で識別される、クライアントとの接続を一意に表す概念。つまり、同じクライアントIDの接続が2つ以上同時に存在することはできない[^1]。# Session State とは何か
文字通り、`Session`の状態を指す。以下の2つの状態がある。
– サブスクライブ状態
クライアントがどのトピックをどの`QoS`でサブスクライブしているか、という情報の集合。
– 未完了のパブリッシュ・シーケンスの状態
`PUBLISH`パケットや`PUBREL`パケットを送信したが、その応答パケットが返ってきていない、という情報の集合。これは、`QoS1`、`QoS2`にのみ適用される。ブローカーは、以下の2つのいずれかの条件を満たすとき、`Session State`を維持する。
– クライアントが接続されている
– クライアントが切断されているが、`Session State`の有効期限が切れていない[^1]:AWS IoTのブローカーの場合、あるクライアントIDを持つクライアントAがブローカー
本当のガバメントクラウド基礎~利用方式と登場人物たち~
# 内容
社内でAWSの超基礎ともう一つ、ガバメントクラウドの基礎の動画を作成して欲しいとリクエストあり。その内容を資料化したものです。https://qiita.com/infra365/items/84c41c250b0abcccc70b
# ガバメントクラウドとは
デジタル庁が提供する政府共通クラウド基盤です。標準化対象20業務の移行先としても利用されます。デジタル庁から認定されたクラウドサービスプロバイダー(CSP)の環境が使用されます。今回は自治体がガバメントクラウドを利用する話をします。![スライド3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/2de69c27-568e-52a1-84a9-94db939fa683.png)
色々なCSPがありますが、AWSの話をします。
![スライド4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/0f3f3995-1c3
ROSAでEBSを利用する際のバックアップ・リストア戦略
# 概要
[前回記事](https://qiita.com/naras/items/c598c2187cb47602a2de)ではROSAでEFSを利用する際のバックアップ・リストアについてご紹介しましたが、本記事ではEBSを利用する際のバックアップ・リストアの選択肢とそれぞれの考慮点についてご紹介します。# ROSAでのEBSの使われ方
## EBSはデフォルトのPVとして利用される
EBSを利用するために必要なEBS CSI DriverはROSAにデフォルトで導入されており、PVを作成するデフォルト設定はEBSが使うようになっています。そのため、EFSのように利用者自身がCSI Driver Operatorを導入する必要はありません。> To create CSI-provisioned PVs that mount to AWS EBS storage assets, Red Hat OpenShift Service on AWS installs the AWS EBS CSI Driver Operator (a Red Hat operator) and th
【AWS SageMaker】NotebookインスタンスのCPUやメモリ使用率をCloudWatchで取得してみた
# 背景
AWS SageMakerのNotebookインスタンスにて、Pythonでのマルチプロセス処理を行いたいと思った時に、NotebookインスタンスのCPUやメモリ使用率が気になったので、それらを取得してみました。# 取得方法(概要)
AWSのこちらのサイトの方法を試してみました。
具体的には、CloudWatchエージェントをNotebookインスタンスにインストールして、CPUやメモリ使用率を取得します。https://repost.aws/ja/knowledge-center/sagemaker-resource-utilization
=> CloudWatch を使用して SageMaker リソース使用率を表示する
# 取得方法(詳細)
※この内容は2024年4月時点のものになります。
### 1. Notebookインスタンスのターミナルにて、CloudWatchエージェントのインストールコマンドを入力
Notebookインスタンスのターミナルを開きます。![スクショ.PNG](https://qiita-image-store.s3.a
EC2を柔軟に設定するためのCloudFormation Templateの作成
# 概要
本記事ではEC2をCloudFormationで作成する際に、様々なオプションに柔軟に対応する方法をご紹介します。GUIでEC2を作成する場合、アタッチするEBSの数は簡単に増減出来ますよね?他にもVPCやSecurityGroupをリストから選択出来たり、EC2の作成ウィザードは非常に多くの項目を簡単に設定することが出来ます。
一方で組織のポリシーとしてEC2にプリセットしたい設定がある場合(例:特定タグの付与やリソース名称の指定etc)などは、あらかじめ値を指定したCloudFormation Templateを用意・利用して作成することで実現することが出来ます。
マルチアカウント環境においてもAWS Service Catalogを使えば、メンバーアカウントに対してCloudFormation Templateを配布することが出来ますので、EC2の作成ウィザードではなくService Catalogのメニューから配布されたCloudFormation Templateを使ってEC2を作成することで組織のポリシーを満たしたリソースの作成が可能です。![imag
Slack経由でRAGにコードレビューを依頼するBotを作成 〜 AWS SAM編
## はじめに
https://qiita.com/sakes9/items/3777330b25b236ac2841
前回の記事では、リーダブルコードの原則に従ったコードレビューを自動化できないものか・・と考えた結果、『RAGにリーダブルコードの原則を取り込ませてコードレビューをしてもらおう!!』という検証をしてみました。
![デモ動画.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3087076/e3ca044c-a7bc-3014-c69b-cb06714d0f23.gif)
検証環境の構築は **AWSマネジメントコンソール** を使用していましたが、今回は **AWS SAM** を使用して、より簡単に環境構築する方法の解説を行います。
使用するリポジトリは以下になります。
https://github.com/sakes9/sam-slack-review-rag
## 事前準備
### リージョン切り替え
全ての手順は「**東京リージョン**」で実施することを前提とし
サブスクリプションフィルターをGUI以外で設定する場合の注意事項
# 概要
AWSのCloudWatch Logsにはサブスクリプションフィルターという機能があり、Kinesis Data Stream, Lambda, Amazon Data Firehose, OpenSearchにデータ連携を行うことが出来ます。
これらの中で**Lambdaと連携するサブスクリプションフィルターを作成する場合**、CloudWatch Logsに対してLambda関数を実行する許可を付与する必要があります。
GUIでサブスクリプションフィルターを作成する場合、この設定は裏側で自動で設定されるためあまり意識する必要はないのですが、CLIで設定する場合は明示的に設定を行う必要があるため、注意が必要です。# ユースケース
– GUIでLambdaサブスクリプションフィルターを作成する
– GUI以外(AWS CLI,CloudFormation, SDK)でLambdaサブスクリプションフィルターを作成する# 設定手順
## GUIでの設定
GUIで設定する場合、ロググループの詳細画面から作成▲ → “Lambdaサブスクリプションフィルターを作成”を
DifyをEC2上に構築して、IAMロールでBedrockを呼び出す
話題のDifyをEC2上に構築してみました。Amazon Linux 2023(t3.medium)で試しました。
## 環境準備
### Gitインストール
“`bash
sudo dnf install -y git
“`### Dockerインストール
“`bash
sudo dnf install -y dockersudo usermod -aG docker $USER
“`一度ログアウトして再度ログイン
“`bash
sudo systemctl start docker
docker version
“`
“`
Client:
Version: 25.0.3
API version: 1.44
Go version: go1.20.12
Git commit: 4debf41
Built: Mon Feb 12 00:00:00 2024
OS/Arch: linux/amd64
Context:
SAAの勉強メモ
## #77
* 1年間の前払いなしの **Compute Savings Plans** は2-3ヶ月ごとにAmazon EC2インスタンスタイプとファミリーを変更可能
* 1年間の全額前払い = インスタンスタイプを頻繁には変えられない
* 1年間のリザーブドインスタンス = 変えられない
* 3年間の部分的な前払いのリザーブドインスタンス = 2-3ヶ月ごとには変えられない
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/175223/0a26bdf8-ab61-b2cc-41a1-e6b265d7067f.png)
普段からALBを使っているサービスでALB使ってちょっと雑だけど簡単にメンテナンス画面を表示する方法
## 概要
普段からALBを使ってバランシングしているサービスにて、そのままALBのリスナー設定を追加して雑に、ただしお手軽に割とちゃんとしたメンテナンス画面を出す方法をまとめる。
## 前提
ALBを使って証明書の設定と、HTTPS 443がEC2やlambdaなどのリソースにロードバランシングされているものとする。
## 注意
本方法はメンテナンス画面を出す際に一瞬接続が途切れる場合があります。おそらく500系のエラーでサーバーに到達しない旨のレスポンスがリスナーのポート切り替えタイミングで返ります。
許容できないサービスの場合は本方法はおすすめできません。## 準備
1. ALBの一覧でALB名をクリックする
1. 「リスナーとルール」のタブを開く
1. 「リスナーの追加」をクリックする
1. 下記のように設定してリスナーを追加する。| 項目 | 内容 | 備考 |
| — | — | — |
| プロトコル | HTTPS | |
| ポート | 444 | 現在使っている443以外なら何でもいい |
|
検証!AWS Builder IDを使ってAmazon CodeCatalystをセットアップする
## はじめに
この記事ではAmazon CodeCatalystをセットアップする方法について説明します。
誤りなどがあれば、修正してく予定です。## 統合的なAWSのデベロッパーツールですか?Amazon CodeCatalystがありますよ
AWSのデベロッパーツールとして、CodeGuru、CodeCommit、CodeBuild、CodeDeploy、CodePipeline、CodeArtifact、CodeStar、CodeStar Connectionsなどがあります。
広い意味でとらえるとAWS CDKやAWS CLI、AWS SDKもデベロッパーツールかもしれません。
※CDKはいってしまえば、変な話、「AWSのクラウドインフラをプログラミングする」みたいなものです。AWS CLIをデプロイツールとして使ってデプロイすることもあるかもしれません。AWS SDKはいわずもがなです。いずれにしても本格的なプロジェクト管理やCI/CDを実践するには、これらのツールを組み合わせて実現します。また、実現の過程で似たような構成を何度も作ることになるかもしれません
LangChain + ClaudeV3 + Streamlit サンプルコード
## やりたいこと
以前、練習目的で、あちらこちらのサイトを参考に ClaudeV2 + LangChain + Streamlitのサンプルコードを書いてみたことがある。
が、時代はあっという間にClaudeV3(半年もすればV4とかV5とかなってそうだが…)になり、LangChainも日進月歩で変わっているようなので、2024年4月時点での魚拓として作成してみた。## コード
いきなりだがコード。
なお下記コードを動作させるにあたっては、同僚M.O.氏に多大なるご助力をいただいた。この場を借りて感謝申し上げます。“`python:streamlit-claudev3.py
import langchain
import streamlit as st
from langchain.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_community.chat_message_histories impo
AWS Linux OS で mariadb-connector-c を mysql-client に置き換えます
# 理由
mariadb-connector-c クライアントがアプリケーション (FastAPI に基づいて構築された) のパフォーマンスの問題を引き起こしている可能性があると考えられます。
“`sh
yum remove -y mariadb-connector-c
yum install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
rpm –import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
yum install -y mysql-devel
“`
Cloud Watch AlarmをトリガーにOUでアクセス制御してSNS Topic経由でLambda起動させる
タイトルの通り、Cloud Watch Alarm -> SNS Topic -> Lambdaという構成のAWSリソースを構築しました。
当初の構成ではCloud Watch AlarmからLambdaをOUで絞って呼び出して実行させる予定でしたが、諸々問題があってSNS Topicを追加して対応した流れになります。
自身の振り返りも含めて、類似構成をプライベートのAWSアカウントで作成してみましたので、動作検証の様子も含めて記事にまとめてみたいと思います。
注:私が担当したのは要件や全体的な構成図が出来上がった状態から、必要なAWSリソースの構築や不具合の対応等です。前提となるアプリケーション設計や背景などの詳細は記載しません。
## 要件
### 実現したい事
* Cloud Watchでアプリケーション用ロードバランサー(NLB)の死活監視をする
* ステータス変更をアラーム条件として検知した際にLambdaを起動して通知をさせる
* アクセス制限方法としてOU(組織単位)による権限制御をする### サービス概要
<登場人物>
*
API Gateway でIAM認証を通してみた!Postman、AWS CDK
## きっかけ
とあるプロジェクトで使った別で作成された既存のAPIを実行するのにIAM認証が有効になっていたためIAMが必要だったのですが、これまでAPIキーでしか認証を通したことがなかったため実装するのに悪戦苦闘しました。
色々調べてうまく行ったのでここにまとめてみました。## やりたいこと
1. CDKから作成しているラムダ関数から別で作成されたIAM認証を通してAPIを実行する
2. postmanからAPIの動作確認をしたいためpostmanでのIAM認証設定## ラムダ関数の設定
### CDKでの権限設定
ラムダはこのように定義しました⇩
“`cdk/lib/lambda.ts
const lambda = new lambda.Function(
this,
`lambda-${props.envName}`,
{
runtime: Runtime.NODEJS_18_X,
handler: ‘index.handler’,
code: lambda.Code.fromAsset(‘lambda/’), // ラムダコ
AWS DEA受験レポート
# 概要
[Data Engineer Associate(DEA)](https://aws.amazon.com/jp/certification/certified-data-engineer-associate/)は2024/04より一般に公開された新しいAWS認定です。
廃止となったData Analytics Specialty, Database Specialtyの範囲をカバーしているようです。
### 感想
まず自身の経験値ですが、DAS,DBSを取得済みでMLSは未取得です。業務でもビッグデータまわりの経験は皆無です。関連技術スタックについてもDAS受験時に知ったものがほとんどでした。
DAS,DBS,MLSの範囲から出題がある模様で、出題範囲がかなり広範です。
さらに機能を知っている程度では選択肢を絞り切れないような問題が多く、特にGlue,Redshift,Athena,EMR,Kinesis,StepFunctionsなどはBlackBeltだけでは不十分で公式ドキュメントも全編しっかり目を通しておく必要性を感じました。
SageMakerも詳細では
【備忘】Amazon Redshiftの概要
# はじめに
##### ~AWS学習アウトプット第5弾~
AWS未経験者の私が学習したことをアウトプットし、将来的にはSAA合格を目指します。今回は、**Amazon Redshift** の基本的な内容をまとめます。
# 目次
・Amazon Redshiftとは
・Redshiftの構成
・他AWSのデータベースとの違い
・クロスリージョンスナップショット
・Redshift Spectrum
・おわりに
・参考# Amazon Redshiftとは
>**Amazon Redshift は、 クラウド内でのフルマネージド型、ペタバイト規模のデータウェアハウスサービス**です。Amazon Redshift Serverless を使用すると、プロビジョニングされたデータウェアハウスをすべて設定しなくても、データにアクセスして分析することができます。リソースは自動的にプロビジョニングされて、データウェアハウス容量はインテリジェントにスケーリングされ、要求が厳しく、予測不可能なワークロードであっても高速なパフォーマンスを実現します。データウェアハウスがアイドル状態のとき