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

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

Inspector から Security Hub に統合した脆弱性通知について考える

# やりたいこと

![inspector.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/89bce2f0-bc4f-391c-14a0-0f1640c75835.png)

以下のページで紹介されている改善後の構成で、

1. 脆弱性が検出されると EventBridge から Lambda1 を起動し、DynamoDB に脆弱性情報を格納する。この時 DynamoDB の パーティションキーとソートキーで重複をチェックし、既にレコードが存在する場合はスキップし、レコードが存在しない場合は DynamoDB に格納する

2. EventBridge Scheduler で 1 日に 1 回だけLambda2 を起動し、DynamoDB から、まだ通知が行われていない脆弱性を取得し Slack へ通知する。Slack への通知が完了すると DynamoDB に格納されている脆弱性のステータスを NEW ⇨ NOTIFIED に更新する

この 2 つを行う。

https://note

元記事を表示

AzureとAWSのオブジェクトストレージ比較

AWSの資格勉強で気になったので整理してみました。

## アベイラビリティゾーン(AZ)の使用数

### Azure Blob Storage

複数AZを使用することが可能(ZRS, GZRS等の使用時)です。

ちなみにAzureでゾーン冗長のストレージがGAしたのは2020年6月で、それまではリージョン冗長しか選べませんでした。

https://azure.microsoft.com/ja-jp/updates/storage-gzrs-ga/

AWSは2006年のサービス開始当初から複数のAZに保存する構成をとっています。

### AWS S3

基本的に複数AZ利用です。

`S3 1 ゾーン–IA` の選択時は単一のAZに保管します。

## 料金削減のためのオプション

### Azure Blob Storage

`ホットアクセス層`、`クールアクセス層`、`コールドアクセス層`、`アーカイブアクセス層` があり、層を移していくことでストレージコストを安く保つ代わりにアクセスコストが増加します。

### AWS S3

`S3標準-IA`、`S3 Glac

元記事を表示

AWS認定ソリューションアーキテクト-プロフェッショナル(SAP-C02)雑感

# 概要

AWS認定ソリューションアーキテクト-プロフェッショナル(SAP-C02)に2024年5月に合格することができました。スコアは772点で、合格ギリギリでしたが、プロフェッショナルの称号を手に入れたことに大満足してます(^^)。

本記事では、その学習の考え方や試験対策についての雑感を共有します。特に、私のような非エンタープライズ環境で働くエンジニアに向けて参考になれば幸いです。私が従事している業務内容ではこんな感じだったよ、という主観なので自分語り多めですが、ご自身の業務経験と比較しながら読んでいただけると多少は参考になるかも。

# 私について

実験系の大型施設で働いており、Web系を中心にプログラム開発やインフラ整備などを好きなようにやらせてもらってます。アカデミック界隈にいて、最近は開発とか広報系業務が多いです。いわゆる一人SEな感じで、いろいろ首をつっこませてもらい遊んでいます。

クラウド関係ではAWSが圧倒的に使いやすいので、AWSが中心です。開発のネタを見つけたり持ち込まれた場合、選定から実装、運用などをやっています。私の開発規模では、SAPの内容は業務とは

元記事を表示

AWS CloudFormation入門:VPCとEC2インスタンスの自動構築ガイド

# はじめに
最近、Web、メール、DNSサーバをVPCを分けて構築する機会がありました。毎回、同じ構成の環境をコンソール上でVPCから作成してくのが手間と感じました。そこで、ワンクリックでEC2の起動までできればラクだと思い、CloudFormationを使ってテンプレートを作成することにしました。

# チュートリアル:ステップバイステップガイド

**事前準備**

まず、AWSアカウントの設定やCLIのインストールなど、必要な前提条件を整えます。

**ステップ1:VPCの作成**

CloudFormationテンプレートを使ってVPCを作成する手順を詳しく説明します。
以下は、テンプレートの一部です。

“`yaml
Resources:
VPC:
Type: ‘AWS::EC2::VPC’
Properties:
CidrBlock: 10.0.0.0/16
Tags:
– Key: Name
Value: MyVPC
“`

**ステップ2:サブネットとインターネットゲートウェイの設定

元記事を表示

CodeArtifactからnpm install してみた

# はじめに
npm installしてみた
以上!ではなく

CodeArtifactがすでにあるのに、開発環境構築すぐにはできない感じになっていた
つまり、CodeArtifactがデプロイにだけ使われていて、勿体ないと思ったので
CodeArtifactから独自ライブラリを引っ張ってきてnpm install する方法を整理してみた。

# さっそくやってみた
## 前提条件
– CodeArtifactはすでにある
いつか構築も整理したい
– CodeArtifactに独自のライブラリを登録してある
– package.jsonには、その独自ライブラリをバージョン指定で記載済み
(ローカルのfile://指定とかじゃない)

の状態を認識しつつ、誰でも出来る(AWSへの理解がない人でも可能で、手順も減らす)
を目指して整理してみた。

## 方針
– git(CodeCommit)からクローンしてポチッでインストール完了
– npm バージョンアップとかも別途できるようには、したい
– CLIのバージョンとかはあんまり気にしたくない

3つを守るために、スクリ

元記事を表示

discordのボットをAWS Lambdaで(wslなしのWindows環境で)作る with Python

## 概要

– Windows (**wslなし**) で、discord のスラッシュコマンドのボットを AWS Lambda を用いて作成したよ

wsl なしの謎縛りプレイですが、Python 3.8 なら簡単に実現できることがわかったので共有します。

本記事は、下記リポジトリの部分的な解説も兼ねています。

https://github.com/Take-Me1010/DMP-bot-lambda/tree/main

## 環境

– Windows 10
– Python 3.8.0
– 3.8じゃないと、windowsだけでは難しそうです
– pipenv 2023.12.1
– 別にPipenvでなくても、環境変数が読み込めて、かつPythonのバージョン管理ができれば何でもよいです
– PowerShell 7.4.2

## 本記事の新規性

– wsl なしで windows 環境のみでディスコボット作ったよ
– event のボディの型を作ったよ

## 注意点

ここでは、ギルド (特定のサーバー) 限定のスラッシュコマンドを実装します。

元記事を表示

AWSで生成AIに入門するのにピッタリな本を書きました!

生成AIブーム、終わる気配がないですね!

そろそろ入門してみるか〜という方にピッタリの本を書きました。発売に先駆けてセルフ書評を書かせていただきます ✏️

![Bedrock本.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633856/930f4216-40c1-2e88-157a-201c6d3b85b0.png)

👇 すでにアマゾン等で予約できます!

# AWSを触りながら、生成AIアプリの基本を学べる!

生成AIとは何か?や「プロンプトエンジニアリング」から始まり、昨年から色んな方が挑戦している **「RAG」** や **「エージェント」** 、さらには **「ローコード開発」** まで広くカバーしています!

これでもか!というほどハンズオンがあり、AWSアカウント作成から始めて、あまり費用をかけずに楽しくAIアプリ開発を体験できます。

![スライド4.png](https://qiita-im

元記事を表示

AWS CDK開発に必要なスキルセット

AWS CDK開発に必要なスキルセットをまとめました。メンバーのアサイン時や、CDK学習時に参考にしてください。

## 全開発者に必須
#### ・git に関する基礎知識
日々のコード管理に必須です。

#### ・使用するプログラム言語に関する基礎知識
配列、辞書、(型)、繰り返し、条件分岐、関数、クラス、オブジェクト指向等の理解が必要です。フレームワーク等に関する知識は不要です。プログラムに関する基礎知識のないメンバーがいると、独自クラス等の利用が困難になります。この場合、プログラム言語を用いた抽象化という、CDKの良さを生かせません。

#### ・AWSサービスに関する基本的な知識
(AWS Certified Solutions Architect – Associate レベル)
AWSの各サービスの公式サイトを読んで設定内容を理解するために必要です。

#### ・CDKおよびCloudFormationに関する基礎知識
[CDK](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib-readme.html)

元記事を表示

Amazon OpenSearch ServiceをVPC内に配置して、Cloud9でProxyしてOpenSearch Dashboardにアクセスする

Cloud9のNginxのプロキシサーバを立てるだけです。すいません。

“`conf:default.conf
server {
listen 80;
server_name localhost;

location / {
proxy_pass https://vpc-***.***.es.amazonaws.com/;
}
}
“`

Nginx起動

“`shell
docker run \
-p 8080:80 \
-v `pwd`/default.conf:/etc/nginx/conf.d/default.conf:ro nginx
“`

`Preview`メニューの`Preview Running Application`を選択

ログインダイアログが出るのでログイン

URLの末尾に`_dashboards`を追加

`https://*****.vfs.cloud9.*****.amazonaws.com/_dashboards`

![](https://qiita-image-store

元記事を表示

コンテナー技術について理解した事をまとめた

# 概要
SREの業務を行う際、コンテナー技術を使用して何らかの構築を行う事が多いです。基本的な構築であれば今までの経験で構築できますが、手順を覚えているだけで中身まで理解していないなと感じました。今回は、コンテナ義技術と`Docker`について理解した事をまとめます。

# コンテナ技術の概要
 仮想化技術のコンテナは、OS上に仮想的に複数のコンテナ(分離・独立した領域)の箱を設け、そのなかで、アプリケーションを実行・動作させる仕組み。コンテナ技術の仕組みを深掘り過ぎると永遠に終わらないので、触り程度でまとめています。

## 一般的なコンテナ技術の仕組み
– VirtualBoxなどの仮想マシンでは、ホストマシン上でハイパーバイザを利用しゲストOSを動かし、その上でミドルウェアなどを動かす。下記は、一般的な仮想マシンの構造を示す

![VirtualBoxなどの仮想マシン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/664659/6ca3985a-fab5-d3f1-1cd1-5bd8d1120

元記事を表示

【AWS】ELBで「Access Denied for bucket: xxx. Please check S3bucket permission」エラーが出た場合

# 概要
ELBとS3ログの作成をCFで実施したら以下エラー。

> Resource handler returned message: “Access Denied for bucket: xxx. Please check S3bucket permission

原因はバケットポリシーやIAMロール権限などではなく、意外なところでしたので紹介します。

# 原因
エラーメッセージは「ELBがS3バケットにアクセスできません」と言っています。
`xxx`という名前のS3バケットに対するアクセスが拒否されています。

原因としてよくあるのは以下だと思います。

・ELBがS3バケットにアクセスするためのIAMロールが適切な権限を持っていない
・S3バケットのポリシーがELBからのアクセスを拒否している

しかし、今回はどちらも問題ありませんでした。

原因は、CloudFormationでの実施順序にありました。
イベントの履歴を確認すると、`BucketPolicyLog`がまだ完全に適用されていない状態で`PublicLoadBalancer`が更新されており、そのせいでアクセ

元記事を表示

Aurora MySQLでGRANTできない

# 何が起きたか
弊社で秘伝のたれのように使っていた新人向け設定の内、DBアカウントを作る以下の手順が失敗した。

## 手順
“`sql
CREATE USER ‘name.name’@’%’ IDENTIFIED BY ‘********************’;
GRANT SELECT,SHOW DATABASES, PROCESS, RELOAD, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO ‘name.name’@’%’;
“`

## 失敗しました
RDSのマスターユーザで作業しましたがこのエラーが出ました。
“`
SQLエラー[1410][42000]: You are not allowed to create a user with GRANT
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192137/dfe127fb-fa4a-e906-8eb6-7394413f5928.png)

# 解決

元記事を表示

【Docker】VSCodeのショートカットを上書きせずにデタッチする

# 結論
### 1. Dockerの設定ファイルにアクセス
※Windowsをお使いの方は別途調べてみてください
“`zsh
vim ~/.docker/config.json
“`

### 2. デタッチに指定したいコマンドを設定
今回は`ctrl + [`を2回入力するとデタッチが発火するようにしました。
“`zsh
{
    … 色々な設定,
# 以下を追加
“detachKeys”: “ctrl-[,ctrl-[”
}
“`

### 3. 以上!!!

# 経緯・まとめ
Dockerでコンテナを立ち上げている時に、`attach`をするとコンテナ内で記録されたログを確認することができます。
API開発などをしている場合に非常に有用です。

しかし、
「一旦コンテナから抜けて別の作業しよう〜」って
**`ctrl + c`をタイプするとコンテナが落ちてしまうんですよね。。。**

それでどうにかならないかなと調べてみると、`ctrl + p, ctrl + q`をタイプすると、コンテナを落とさない状態で抜けることができるとのことでした。
しかし、VS

元記事を表示

Zabbixサーバのメニュー一覧

先輩にZabbixって何できるのって聞かれたので、
とりあえず左側のメニューを一覧化しました。
上から調べていって、面白そう、現場で使えそうって機能は実機検証していく感じにしようかなと。
パット見た感じ、ダッシュボード、マップ、SLA、通知レポートは使えそうだなぁ印象。

余談ですが、EC2のスペック上げたけど起動するまで10分くらいかかりました。
DBは別サーバと分離させた方がいいのかな?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/845887/3153324d-f37b-7910-511c-dcaf56bb650c.png)

元記事を表示

[過去記事]AWS Lambda コード書き換えた時の反映とテストの流れ

## 概要

今回はLambdaのコードを書き換えた時の流れをまとめます。ようはコード書き換え後のルーティン手順です。この手順を行わないとせっかく書き換えたコードが反映されないこともありますのでしっかり抑えておきましょう!

また、今回の説明には下記の記事で構築した内容を使います。詳細は下記をご確認ください。(当該の環境を構築していなくても本記事の内容はご理解いただけると思います!)

https://qiita.com/miriwo/items/7470659f070504e0fafe

## 方法

### 場所の確認

まずはコードが記載されている場所を確認しましょう。
AWSにログイン後、Lambdaにアクセスし、サイドバーの「関数」をクリックします。

![Cursor_と_Lambda-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/fdffa3c0-feba-536c-9a5d-7297e2f991cb.png)

関数名をクリックします。

![Cursor_と_関数_-

元記事を表示

経験がものをいう時代は、終わり、行動できる者が勝者となる時代になった

はじめに

今の時代、エンジニアに何が求められるのか考えてみました。すると、一人で出来ることは限られており、一人の立場から見る見方もまた、限られてくるため、他者とのエコシステムを柔軟に構築できる人こそ、求められる人なのではないだろうか、と考えました。

#### 技術提供は競争ではなく、重要なのはエコシステムに乗っているかどうか

経験が重視される時代は、過去の成功や失敗から学び、それを活かして問題解決や意思決定を行う能力が重要でした。しかし、現代社会は急速に変化しており、新しい技術や状況が継続的に出現しています。そのため、過去の経験だけでは対応できない状況が増えています。私は、もともと、__オンプレエンジニア__ でした。そのままだと、多分、求められない人のままだったんだろうと思います。そのオンプレエンジニアが、何をしたかと、いうと、__「新しいスキルや知識を継続的に取得し、自己成長を促進」(第一段階目は、3大クラウドベンダーのプロフェッショナルレベルの資格を取得、次に、AWS全資格取得)です。__ 今では、AWSの知識をもっている人達の __エコシステム__ に組み込んでもら

元記事を表示

Bedrockのストリーミングレスポンスをストリームのまま返却するLambdaの作り方(LangChainも対応)

Bedrockを使ったアプリをLambdaで動作させたい!
レスポンスはストリームで返したい!!

と思って調べたところ、結構条件があることがわかりました。

https://aws.amazon.com/jp/blogs/news/introducing-aws-lambda-response-streaming/

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-response-streaming.html

## ストリーミングレスポンスを返却するための条件

ストリーミングレスポンスを返却するためにはいくつか条件があります。

### Lambdaの実装方法の条件

Lambdaの実装方法が、以下の方法である必要があります。

* Node.jsのマネージドランタイム
* カスタムランタイム([参考](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/runtimes-custom.html#runtimes-custom-response-s

元記事を表示

[過去記事]AWS Lambdaを使ってみよう!(文字列返却編)

## 今回作るもの

冒頭でも触れましたが、今回は「Hello from Lambda!」という文字列をJSONで返すだけのAPIをLambdaで作って見ようと思います!

前述した目的を達成することだけを考え細かい設定は省き進めようと思います。返却文字列の変更などは別記事で紹介しようと思っています。

なお、言語はPythonを用います。

## 準備

### Lambdaの準備

AWSにログインしてLambdaのホーム画面に移動します。「関数の作成」をクリックします。

![Cursor_と_Lambda-1024×292.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/cfa38c72-033b-6347-cb18-369a80b9ee9f.png)

次の画面にて下記の様に設定・選択します。設定後、内容を確認して「関数を作成」をクリックします。

– 関数のプリセット:一から作成
– 関数名:任意の内容でOK(今回はtest_functionとする)
– ランタイム:Python

元記事を表示

[過去記事]Amazon AppFlowで不正な値をスルーする

## 今回やること

今回やりたいことはもはや言うまでも無くいつもどおりのS3からS3に対してCSVを送ることです。

CSVを送る過程でageの値に負の値があったレコードはスキップして見ようと思います。
今回使用するCSVはいつもとは若干異なり、下記の様になります。

“`test.csv
id,first_name,last_name,password,age,
1,Tarou,Yamada,abcd1234,20,
2,Hanako,Yamada,abcd1234,22,
3,Tarou,Satou,abcd1234,24,
4,Hanako,Satou,abcd1234,-16,
“`

## 前提

初回の記事を参考にS3バケット間でCSVのやり取りができる状態になっていることを前提とします。

https://qiita.com/miriwo/items/ba3830030b5fbba6cdad

AWSにログインしAppFlowの当該のフローの編集ページまで移動します。
手順3「データフィールドを編集」のページを開きます。
妥当性確認にて「妥当性確認を追加」をクリック

元記事を表示

[過去記事]Amazon AppFlowでCSVの内容を一部変更してみる part3

## 注意点

「Amazon AppFlowを触ってみた」の記事でも紹介しましたが、Amazon AppFlowはフローを実行するたびに料金が発生します。

ご注意ください。また詳しい内容は下記の「注意点」をご確認ください!

https://qiita.com/miriwo/items/ba3830030b5fbba6cdad

## 今回やること

今回やりたいことは恒例のS3からS3に対してCSVを送ることです。

CSVを送る過程でfirst_nameとlast_nameの2つの値を合体してnameとして送ってみようと思います。
今回使用するCSVもいつもどおり一緒です。下記に記載しておきます。

“`test.csv
id,first_name,last_name,password,age,
1,Tarou,Yamada,abcd1234,20,
2,Hanako,Yamada,abcd1234,22,
3,Tarou,Satou,abcd1234,24,
4,Hanako,Satou,abcd1234,16,
“`

## 前提

初回の記事を参考にS3バケット間で

元記事を表示

OTHERカテゴリの最新記事