AWS関連のことを調べてみた

AWS関連のことを調べてみた
目次

CloudWatchについて

こんにちは、開発部のCLです。

今回はCloudWatchの概要ついてまとめてみました。
# CloudWatchとは

CloudWatchは、AWS内で動作する各サービス(EC2,RDS,DynamoDBなど)
を監視できるサービスです。

標準メトリクスという情報に分けて収集・確認ができます。
標準メトリクスの例として以下のようなものが挙げられます。

| メトリクス名 | 説明 |
|:-:|:-:|
| CPUUtilization | CPU使用率 |
| DiskReadOps | ディスク読み取り数 |
| FreeableMemory | 空きメモリ量 |
| FreeStorageSpace | 空きディスクスペース量 |
| NetworkIn | ネットワーク受信量 |

などなど、多種多様な状況をモニタリングできます

# CloudWatchの特徴

## ①標準メトリクスの収集・可視化
CPU使用率やハードウェア、ネットワークのステータス状況などが
こちら側の設定は不要で標準メトリクスとして収集されます。
収集された値は各サービスの

元記事を表示

AWSのマルチアカウント対応で Control Towerを導入

# はじめに

株式会社 fruor でリードエンジニアをしている yanagidate9 です。
AWS のマルチアカウント対応で Control Tower を導入しましたので備忘録も兼ねて書いていきます。

# きっかけ

実は私がこの会社にジョインした時点で単一の AWS アカウント内に本番環境と開発環境が同居している状態でした。この状態では、以下の問題があるため早急にアカウントを環境ごとに分ける必要がありました。

– 開発環境のリソースが本番環境に影響を及ぼす可能性がある。
– セキュリティの観点上、不必要なリソースにアクセスできるのはリスクが高い。
– 支払い情報をアカウントごとに管理することで、コスト管理をしやすくする。
– ただし、支払い請求書は統合し、クレジットも同一のものを使用したい。

# 対応方針の検討

アカウントを分離する方法としてはスイッチロールを使う方法がまず思い浮かびました(前の会社ではそれだった)。ただし、個人ユーザーを管理するのが面倒なのと、普段あまり利用しないアカウントの情報を忘れてしまうなど問題があり、別の方法がないか調べたり、AWS

元記事を表示

AWS PrivateLinkでNLBに接続する際、最低限必要なセキュリティグループのルール

# 結論
![pvlink6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/880c469d-9afb-7407-8978-1114dfba2d49.png)

# 備考
備考の方が長くなりました。
TCPリスナーでパススルー構成となるため、EC2の`Security Group C`で`192.168.1.10/32:80`が必要そうだがなくても大丈夫。なぜならPrivateLink経由でNLBにアクセスする場合は、NLBで送信元IPが書き換わって、EC2にアクセスするのはNLBのIPになるから。

![pvlink2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523652/177ac670-8d91-5e66-7dc9-e70975433af1.png)

ちなみにPrivateLinkを使用しない場合はNLBでアドレスは書き換わらない。
※デフォルト設定の「クライアントIPアドレスの保持」が「

元記事を表示

AuroraのIAM認証はCloudTrailに監査ログが残らない(なりすましに注意)

# TL;DR

– `aws rds generate-db-auth-token`コマンドはCloudTrailに残らない
– 上記で発行されるトークンで`mysql`コマンドで接続してもCloudTrailに残らない
– AWS管理ポリシーの`PowerUserAccess`や`AdministratorAccess`は、任意のユーザー名でAurora IAM認証ができる

# はじめに

Auroraの[IAM認証](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html)とは、DBユーザーにパスワードを設定せず、代わりにIAMで認証できる機能です。

MySQLの場合、通常のユーザー作成は

“`sql
CREATE USER ‘username’@’%’ IDENTIFIED BY ‘password’;
“`

ですが、IAM認証を使う場合は

“`sql
CREATE USER ‘username’@’%’ IDENTIFIED WITH AW

元記事を表示

[Python]boto3でAWSを操作する(S3, DynamoDB, Lambda)

# はじめに
副業でPythonを使用してAWSを操作する方法を学んだので、書いていきます。

# boto3をインストール
Pythonを使用してAWSを操作するには「boto3」ライブラリをインストールして使用します。

まずは、以下のコマンドでboto3をインストールします。
“`
pip install boto3
“`

次にファイルの先頭でboto3をインポートします。
“` py
import boto3
“`
これでboto3を使用する準備は完了です。

# サンプルコード
今回は、S3、DynamoDB、Lambda(関数を呼び出す)についてのサンプルコードを書いていきます。

## S3
S3のオブジェクトを操作するサンプルコードを書きます。
以下は、あるバケットのオブジェクトの一覧を取得するコードです。
“` py
client = boto3.client(‘s3’)

# バケット名を指定
bucket_name = ‘your-bucket-name’

# バケット内のオブジェクト一覧を取得
response = s3.list_objects_

元記事を表示

Bedrock(Claude 3)対応のマルチモーダルチャットボットをChainlitとLangChain(LCEL)で構築する

## 動作イメージ
こんな感じのチャットボットアプリを AWS App Runner でサクッとデプロイできます。Chainlit × LangChain × Bedrock (Claude 3) の例があまり見当たらなかったので作成しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/54668b08-419c-27ae-2635-c3a9030e7e4a.png)

画像入力は Claude 3 モデルのみの対応ですが、Chainlit の Chat settings 機能を通じて Bedrock が提供する他社の Text モデルに切り替えて利用することもできます。会話履歴はセッション内でのみ保持しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/572d733b-07c6-fced-2845-c2dc61edfb05.png)

ソース

元記事を表示

custom-resource-apigw-cw-roleがnode16.xランタイムでデプロイされる件

## いきさつ
ある日AWSからnode16のサポート終了のお知らせが届きました。

> …
LambdaでのNode.js 16のサポートは2024年6月12日に終了します

自分のLambdaを眺めていると、`xxx-custom-resource-apigw-cw-role`node16ランタイムがいました。
これはServerless frameworkでデプロイしたときに自動生成されるもので、API GatewayのCloudWatch Logsのロールを作成するために使用されるらしい。
slsのバージョンを上げればいけそうだな〜と思い現在のバージョンを確認すると`3.38.0`。これは記事執筆時点での最新バージョンです。えぇ…。

調べてみると以下のやりとりが:
https://github.com/serverless/serverless/issues/12307

ざっくり、こんな流れでした:

– サーバーレスフレームワークを介して作成されたcustom-resource-apigw-cw-role lambdaのランタイムを変更するにはどうすれば

元記事を表示

AWS LambdaでPlaywrightを動かす

今まで https://github.com/JupiterOne/playwright-aws-lambda を使わせてもらっていたのですが、コードを更新すると急に動かなくなってしまい https://github.com/Sparticuz/chromium に乗り換えたので導入メモです。

ほとんどREADMEに記載の通りです。

“`
npm init
npm install –save playwright-core
npm install –save-dev @sparticuz/chromium
“`

– node_modulesフォルダをzip化
– 50MBを超えるのでS3にアップ
– Lambdaのレイヤーを作成
– 先ほどS3にアップしたzipのURLを指定
– x86_64とNode.js 18.xを指定
– Lambdaの関数を作成
– 先ほど作成したカスタムレイヤーを追加
– 設定→一般設定からメモリを2000MB程度、タイムアウトを2分程度に増やす
– コードソースのindex.mjsをindex.jsに変

元記事を表示

AWS でのメール送信制限解除申請について

– 数年ぶりにメールの送信制限解除申請が必要となってきたので、そのメモです
– まだ申請するかもな状態で、申請した際には記事をアップデートしたいと考えています

# どこから申請するのか?
– サポート画面から申請するのだろうと考え、サポート画面を見るが申請箇所が見つからず、結局ググり下記URL が出てきたので、aws ログイン後下記URL にアクセスするのが良さそうです
– この申請はルートアカウントのみのようなので、IAM ユーザではなくルートアカウントでaws へログインしてください
– 申請URL: https://support.console.aws.amazon.com/support/contacts#/rdns-limits
– ![screencapture-support-console-aws-amazon-support-contacts-2024-04-22-14_31_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3551379/d7d

元記事を表示

非機能要求グレードをAWS構築で有効活用するための整理&AWS Well-Architected Frameworkとの紐づけ

# 本記事の目的/背景と対象スコープ

この記事には2つの目的があります。

まず1つ目にAWS Well-Architeted Frameworkと非機能要求グレードのリンク付けを行うことにより、従来のシステム構築のやり方に慣れている人たちがAWS Well-Architected Frameworkを有効活用できるようにすることです。

AWS上でシステム構築を行う際にAWS Well-Architected Frameworkを活用することは品質の高いシステムを作る非常に有効な方法ということはよく知られています。

また、日本のシステム構築では情報処理推進機構が作成・展開している非機能要求グレード2018が要件整理の段階で利用されるケースが非常に多く、特にSI案件のRFP等に別紙などに非機能要求グレードに従った整理結果が使われることがよく見受けられます。
これはユーザ企業の各御担当の方が過去の経験からそうしているケースもありますし、ユーザ企業の標準ルールとして非機能要求グレードを用いて整理することとしているケースもあるかと思います。

そのため、非機能要求グレードとAWS Wel

元記事を表示

AWS IoT Greengrassによるエッジでのデータ加工&IoT SiteWiseへの転送 – 前編

# はじめに
 センサデータの収集と可視化のため、AWSのIoTサービス(Greengrass + IoT SiteWise)の利用検証をしていました。要件としては、センサデータをGreengrassに収集して、Greengrass内でデータの加工をして、IoT SiteWiseにデータを転送して、IoT SiteWise Monitorで可視化や、IoT Eventsと連携させて通知を行うというものです。

 ネットに事例はいっぱいあったので、アーキテクチャを考えることは簡単だったのですが、実際に構築する方法が書かれたサイトが全くありませんでした。。
 まあ、Greengrass V2が出てまだ間もないので仕方がないのかもしれませんが、

 AWS公式のハンズオンと、AWS公式資料を必死に読み解き、頑張って構築したので、それらをまとめておきます。

# アーキテクチャ
### 全体アーキテクチャ
1. センサデータをJson形式でGreengrassをインストールしたサーバに転送する
1. MQTT Brokerでデータを受信し、コンポーネントに転送する。
データを加工し

元記事を表示

Python約30行で作る Bedrock x Claude3 のStreamingチャットアプリ

これまで見て見ぬふりをしてきた「Streamlit上でStreaming出力させる」プログラムを作ってみます。

# ライブラリのインストール
いつのまにか「langchain-aws」なるものが生まれているので今回は最終的にはそれを使います。
“`
pip install -U boto3 streamlit langchain langchain-aws
“`

https://python.langchain.com/docs/integrations/platforms/aws/

# まずboto3からStreamingしてみる

以下を参考に、リクエストとレスポンス取得をClaude3に合わせて微調整します。

https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/inference-invoke.html

“`Python:
import boto3
import json

bedrock = boto3.client(service_name=’bedrock-runtime’)

body =

元記事を表示

AWS SAA(ソリューションアーキテクトアソシエイト)合格体験記

# なぜ取得したか
以前CLFを取得したので、次の目標としてSAAを指定したため。
そもそもCLFの学習をSAAの問題集で行っていたため、そのうち受験はするつもりでいた。
ちょうどAWSで「再受験無料キャンペーン」を実施していたため、釣られてホイホイとバウチャーを利用した。

# SAA(ソリューションアーキテクトアソシエイト)に対する所感
CLFと違い、各サービスについての問題と言うよりはベストプラクティスを求めるタイプの問題が出題される。
「絶対正解じゃないな」と思うような選択肢が半分は出るので、だいたい2択までは絞れる印象を受けた。
その2択からよりベストな方法を選べるかどうかが課題と感じた。

# 勉強方法
Udemyの講座動画を見る
Ping-tでSAA(ソリューションアーキテクトアソシエイト)の問題を解く
AWS認定資格 無料WEB問題集&徹底解説 で問題を解く

# 勉強時間
CLF受験のあと、累計で数時間復習したくらい。
CLFの体験記には「次はもうちょっと勉強しよう」と書いたが、結局やらなかった。
(実際、再受験無料キャンペーンの再受験を本命だと考えていたため)
CL

元記事を表示

大規模サービスのインフラを全面的にリプレイスした話

# はじめに

こんにちは。雑食系エンジニアの勝又です。

今回は、私が2年ほど参画させていただいた大規模サービスのインフラやDevOps周りを全面的にリプレイスしたお話について簡単にご紹介させていただきます。(内容に関しては事前に参画先企業様に確認していただいております)

# サービス概要

詳細な内容は伏せますが、メインとなるテーブルのレコード数が数十億件、スパイク時には数万〜数十万のユーザーが一斉にアクセスする大規模サービスです。

# 技術的負債

長く運用されてきたサービスのあるあるですが、新機能の追加が最優先されてきたことにより、こちらのサービスにも下記のような技術的負債が大量に積み上がっていました。

– RubyやRailsやMySQLのバージョンがかなり古い
– インフラの構成がコードではなくドキュメントで管理されている
– アプリケーションの構成管理がおこなわれていない
– CI/CDパイプラインが構築されていない
– デプロイ手順が複雑で「デプロイ職人」的な存在が必要になってしまう
– DBのマイグレーションが手動で実行されている
– マイグレーションファイルの

元記事を表示

Cloud9の払い出し自動化と工夫した点

# AWS Cloud9について
AWS Cloud9というのは、コードの記述、実行、デバッグができるクラウドベースの統合開発環境(IDE)です。
実体はEC2なので、EC2にWebからアクセスできるIDEのViewを追加したものがCloud9と捉えていただいてよいかと思います。

https://aws.amazon.com/jp/cloud9/
>AWS Cloud9 は、ブラウザのみでコードを記述、実行、デバッグできるクラウドベースの統合開発環境 (IDE) です。これには、コードエディタ、デバッガー、ターミナルが含まれています。Cloud9 には、JavaScript、Python、PHP などの一般的なプログラム言語に不可欠なツールがあらかじめパッケージ化されているため、新しいプロジェクトを開始するためにファイルをインストールしたり、開発マシンを設定したりする必要はありません。Cloud9 IDE はクラウドベースのため、インターネットに接続されたマシンを使用して、オフィス、自宅、その他どこからでもプロジェクトに取り組むことができます。また、Cloud9 では、サーバーレス

元記事を表示

Security HubでNIST SP 800-53 Rev.5を有効化してみた

# はじめに
今回はSecuirty HubでNIST SP 800-53 Rev.5(以降 NIST SP)を有効化してみたので、NIST SPの概要や有効化する際の注意事項を紹介したいと思います。

## Security HUb セキュリティ基準
Security Hub のセキュリティ基準には、規制のフレームワーク、業界のベストプラクティス、企業ポリシーのコンプライアンスを判断するための一連の要件が含まれています。
Security Hubは要件をコントロールにマッピングし、各項目のセキュリティチェックを実行します。
有効なチェックの項目数を分母として合格しているチェックの項目数を分子とした割合から、セキュリティスコアが算出されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3115411/ae27ac34-bf5f-be2b-f9c0-bf122dd01d68.png)

NIST SPは2023年3月にセキュリティ標準として追加されたもので、米国商務省の一部である国立標

元記事を表示

独自モデルを使った機械学習システム(バッチ推論)をAWS SageMakerとStep Functionsで、まずは動かす

# 独自モデルを使ったバッチ推論を構築しよう
バッチ処理で推論するパイプラインを構築します。機械学習モデルと推論スクリプトは独自に作成したものを使います。

この記事はハンズオン形式です。順に進めることでゼロからパイプラインを構築します。もちろん部分的な参照もできます。その場合は、[「ハンズオンの目次」](#ハンズオンの目次) へ進んで下さい。
説明は画像を用いず文字で伝えるようにしました。調べたい情報がこの記事に存在しているかgrepできるようにしています。

推論処理の例はPyTorchの場合です。その他のフレームワークを利用している場合は、適宜読み替えて下さい。

## はじめに
### 想定する読者
– 独自のLLM(機械学習モデル)を構築して運用(デプロイ)したい人
– 推論結果に即時性を求めない人。「夜間や週末に処理できていればいい」
– まずは動くものを作りたい人。「完璧な(?)MLOpsは徐々に作ればいい」

### 前提知識
– AWS S3は何となく使ったことがある
– Pythonで推論スクリプトを作成できる(ローカルで動かした経験があればOK)

### 扱わな

元記事を表示

AWS Certified Solutions Architect – Associate になった (SAA-C03)

812 点でした。取ろうと決意したのは 1 年前ですが、真剣に勉強したのは 10 日ほどです。仕事が落ち着いていたので、フレックスタイムを駆使して時間を捻出しました。

この記事では、おすすめの勉強法 & 受験法と、補足として私の AWS 関連の経験をお伝えします。

# おすすめの勉強法 & 受験法

1. [『AWS認定ソリューションアーキテクト-プロフェッショナル ~試験特性から導き出した演習問題と詳細解説~』](https://www.ric.co.jp/book/qualification3/detail/272)の「第 2 章 各種サービスの概要」を読む
– 買うのはちょっと、という場合は、わからないサービスは検索して調べる。
– SAP-C01 の頃の本だが、Professional まで取るつもりならば買う価値はある。
1. [AWS Certified Solutions Architect – Associate (SAA-C03) 試験問題サンプル](https://d1.awsstatic.com/ja_JP/training-and-cert

元記事を表示

Lambda layersの作成方法 (Cloud9で簡単作成)

## 初めに
Lambdaを開発する上で、どうしても追加ライブラリが必要になることがあります
そういう時は、layers機能を使い、対応しますが、今回Cloud9で四苦八苦したので、
備忘録として、残します

## 対応したい内容
– jwtライブラリが必要になった為、layers機能で対応する

## Cloud9でLayerを作成する
#### Cloud9 起動
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3747609/c456a765-5a59-2138-c53f-175215c32676.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3747609/4ab5b832-b1b7-0fc6-746f-ade3b5bc648c.png)

AmazonLinux2023で、起動していきます。

Cloud9の管理コンソールに入ります。
![image.png](https

元記事を表示

AWS CLI + SSOのセットアップメモ

# 背景・目的
AWS CLIやSSO周りの設定について忘れぽいので、メモします。

# 実践
## 前提
– Macを利用しています

## brew のインストール
1. 下記のコマンドを実行し、インストールします
“`
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
“`

1. 途中で下記が求められるのでEnter
“`
Press RETURN/ENTER to continue or any other key to abort:
“`

1. brewコマンドを実行し、下記のように表示されればOKです
“`
$ brew
Example usage:
brew search TEXT|/REGEX/
brew info [FORMULA|CASK…]
brew install FORMULA|CASK…

元記事を表示

OTHERカテゴリの最新記事