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

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

AWSLambdaを使用してRDSからCSVを取得してメール送信

# 1.はじめに
はじめまして!株式会社TechoesインフラチームのYです!
今年の4月で2年目を迎える初心者のクラウドエンジニアです。
今回からTechoesの採用強化、学習内容のアウトプットを目的としてQiitaで技術ブログを書いていこうと思います。
第1回目として最近学習したAWSLambdaを使ってRDSからCSVを取得してメール送信する手順を投稿します。

# 2.前提
– 言語:Python 3.10
– ライブラリ:pymysql
※layerとしてS3に保管
– RDS:Aurora MySQL
– RDSの認証情報はSecretManagerから取得
– メール送信にはSESを使用
# 3. CFNテンプレート
Lambda関数を作成・管理するテンプレートです。

レイヤーはあらかじめS3に保管しておいたものを使用します。
“`yaml:lambda.yaml
Resources:
LambdaRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:

元記事を表示

Amazon InspectorでEC2インスタンスの脆弱性診断してみました。

## はじめに
ソフトウェアの脆弱性診断等はよく耳にする言葉ですが、Amazon Inspectorをご存じでしょうか?
Amazon Inspectorは、AWSのマネージドサービスで、簡単にAmazon EC2インスタンスやECRコンテナイメージ、Lambda関数などに含まれるソフトウェアの脆弱性や意図しないネットワークの露出がないかをスキャンしてくれるサービスです。

簡単な設定で、すぐにAmazon Inspector自動でスキャンを実行し、検知された脆弱性の情報を、管理してくれる為、とても簡単に定期的に診断が実行できます。

診断のタイプとしては、以下の3つの診断を実施してくれます。

### Package脆弱性
一般的な脆弱性と暴露 (CVE) AWS にさらされている環境内のソフトウェアパッケージを特定する。
LinuxのCVE 検出は、ベンダーのセキュリティアドバイザリによってリリースから 24 時間以内にAmazon Inspectorに追加
Windows用のCVE検出は、Microsoft がリリースしてから 48 時間以内に Amazon Inspectorに

元記事を表示

【Databricks】PrivateLink 接続について調べてみた

# 背景・目的
DatabricksでAWS PrivateLinkを構成する[記事](https://qiita.com/taka_yayoi/items/aeb5002308d8e8f5fd49)を見つけたので、調べてみました。

# まとめ
AWS PrivateLinkを使用したDatabricksへの接続は、下記の特徴があります。

|特徴 | 説明|
|:–|:–|
|概要 |フロントエンドPrivateLinkとバンクエンドPrivateLinkがある。

・フロントエンドPrivateLinkは、ユーザとDatabricksコントロールプレーン間の接続
・バックエンドPrivateLinkは、Databricksアカウント内のコントロールプレーンとユーザアカウントのコンピュートプレーン間の接続|
|目的| トラフィックをパブリックNWに公開しないですむ|
|前提| ・E2バージョンのプラットフォームであること
・Enterprise の料金プランであること|
|制約| ・一度作成したNW構成や、VPCエンドポイントの登録は更新ができない|

元記事を表示

【備忘】Amazon S3の概要_前編

# はじめに
##### ~AWS学習アウトプット第二弾~
AWS未経験者の私が学習したことをアウトプットし、将来的にはSAA合格を目指します。
今後も各サービスの学びを備忘として残していこうと思います!

今回は、 **Amazon S3** の基本的な内容をまとめます。
内容が多いため、前編後編に分けて整理していきますので、よろしければ次回もご覧ください!

# 目次
・Amazon S3とは
・Amazon S3の特徴
 拡張性(extensibility)
 耐久性(Durability)・可用性(Availability)
・データ保存方法
・S3の機能
 バージョニング
 MFA Delete
 ライフサイクルポリシー
 オブジェクトロック
 クロスリージョンレプリケーション
 マルチパートアップロード
 S3 Transfer Acceleration
 S3のデータ整合性モデル
 Webサイトホスティング
 署名付きURL
・おわりに
・参考

# Amazon S3とは
**Amazon Simple Storage Service (Amazon S3) は、拡

元記事を表示

【AWS CDK / SQS+Lambda】SQSからのLambda呼び出しについて検証してみた

# はじめに
SQSトリガーのLambda実行について、色々と検証してみたくなったので試してみた。

## 対象とする読者
* SQSの基本は知ってるけど、細かい動作まで知りたい人
* SQSトリガーのLambda実行環境をcdkで構築したい人

# 結論)わかったこと

* SQSのキューがFIFOの場合、紐づくデッドレターキュー(DLQ)も強制FIFO
* LambdaのOnSuccess/OnFailureに紐づけるキューはFIFO不可
* LambdaのDLQもFIFO不可
* 最大受信回数到達時、Lambdaエラー→可視性タイムアウト→DLQへ送信の順番
* SQSからのLambda実行は非同期呼び出しではない
→ LambdaのOnSuccess/OnFailure送信先やDLQは効かない

# 検証環境構築

以下の環境を構築する。

元記事を表示

CloudWatchのfilterでOR

単純に `filter` を分けて書いてもいいけど `OR` (`AND`)使えるみたいです。
連続して出るはずのログを抽出するときに使いました。

“`
| filter @message like /aaa/ or @message like /bbb/
“`

元記事を表示

AWS CLIの設定

公式ドキュメントとか見たら、書いてありますが・・・

https://aws.amazon.com/jp/getting-started/guides/setup-cdk/

—–

#### aws cli のインストール

“`terminal:terminal
brew install awscli
//確認
aws –version
“`

#### aws cliの認証情報とアクセスキーを紐付ける

まずAWSのI AMのユーザーのページかセキュリティ認証情報ページでアクセスキーを作成しておきます。

https://console.aws.amazon.com/iam/home?#/security_credentials

“`terminal:terminal
aws configure
AWS Access Key ID [None]: アクセスキー ID
AWS Secret Access Key [None]: シークレットアクセスキー
Default region name [None]: ap-northeast-1
Default ou

元記事を表示

AWSアカウント開設時の最低限必要な設定

# AWS使用開始時に最低限必要な設定
**1. rootユーザーにMFA認証の設定**
**2. IAMユーザーの設定**
**3. AWS CloudTrailの有効化**
**4. AWS Configの有効化**
**5. Amazon GuardDutyの有効化**

——————
## 1. rootユーザーにMFA認証の設定

**用語**
*MFA*
– MFA(Multi-Factor Authentication):他要素認証の略で、通常のパスワードに加え「ワンタイムパスワード」の入力も必須にする
– AWSコンソールはインターネット上のどこからでもアクセスできてしまうため、アクセスに制限をかけるために設定を行う。
*rootユーザー*
– AWSアカウント開設時に作成されるユーザー
– 全てのAWSサービスとリソースへの完全なアクセス権を持つ
– AWSアカウント作成後の初期設定や、AWSを解約するとき程度に利用を留めるようにして日常作業における利用は控える。

*IAMユーザー*
– IAMはAWS Identity and Manage

元記事を表示

boto3 dynamodbの batch_write_item()と batch_writer() どちらを使うべきか

## 結論
batch_writer() を使うべき。
理由:batch_writer() は batch_write_item() をwrapして便利に使えるようにしているものだから。

## [batch_write_item()](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb/client/batch_write_item.html)
DynamoDBテーブルに対してアイテムを削除するboto3のAPIとして、[delete_item](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb/table/delete_item.html)や[put_item](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb/client/put_i

元記事を表示

EC2のIAMロールを使ってlaravel9以降でS3アップロード用証明書付きURL取得

EC2のlaravelでアップロード用証明書付きURLを取得しようと思うと、例えば以下のようなものが蜜つかります。

IAMユーザでアクセスキーを発行して以下のようにする

“`.env
AWS_ACCESS_KEY_ID=<>
AWS_SECRET_ACCESS_KEY=<>
AWS_DEFAULT_REGION=<<リージョン>>
AWS_BUCKET=<<バケット>>
“`

“`php
$client = App::make(‘aws’)->createClient(‘s3’);

$cmd = $client->getCommand(‘PutObject’, [
‘Bucket’ => config(‘filesystems.disks.s3.bucket’),
‘Key’ => <<保存先のパス>>
]);

$url = $client->createPresignedRequest($cmd, ‘+1 days’);
“`

ただし、昨今IAMユーザのアクセスキーを使ったアクセスはあまりおすす

元記事を表示

EC2でDockerをルートレスモードで稼働させようとしてつまづいた

## はじめに
EC2インスタンスでDockerをルートレスモードで実行させようとしたところ、systemdでの制御が出来ない状況に陥り、思いの外ハマってしまったので書き残しておきます。

– OS: Ubuntu 22.04.3 LTS
– 作業環境: EC2で構築し、SSMセッションマネージャでコンソールログインしての作業

## 何が起こった?
公式ドキュメントに従い、dockerをインストールし、ルートレスモードにしようと試みたところで躓きました。

https://docs.docker.com/engine/security/rootless/

`dockerd-rootless-setuptool.sh`を実行したところ、ドキュメントと異なる出力となり、systemdでの起動設定が出来ない状況に陥りました。

下記が実行時の出力です。
ここでは`runner`という非ルートユーザーで制御する事を目標としています。

“` sh: dockerd-rootless-setuptool.sh install
$ whoami
runner
$ /usr/bin/dock

元記事を表示

AWS Lambda(Python)からOpenAIのGPT4のAPIを呼び出してみた

[Supership](https://supership.jp/)の名畑です。[スナックバス江](https://snackbasue.com/)は肩の力を抜いて見られるのでいいですね。年齢を重ねる毎にこういう作品が好きになっていきます。

## はじめに

[AWS(Amazon Web Services)](https://aws.amazon.com/jp/)でWebアプリを作ることがあるのですが、その過程で触れてきたものについて、せっかくなので要点だけを抽出して残しておくことにしました。

特に目新しい内容はありませんが、**AWS**や**OpenAI**のアカウント作成も含めて一通りの流れを残すので、いい具合の備忘になればと。

今回は[Lambda](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html)を経由して[OpenAI](https://openai.com/)の**API**を叩くまでをまとめます。

## Lambdaとは

> AWS Lambda は、サーバーをプロビジョニングま

元記事を表示

AWS S3のオブジェクト(画像や動画)を特定のドメインからのみ開けるようにする方法

# AWS S3のオブジェクト(画像や動画)を特定のドメインからのみ開けるようにする方法
開発している際に、特定のドメインの時のみURLが開けるように設定したい場合があったので、備忘録として残しておく。

## 1. パブリックアクセスの一部無効
**下記で対応するBucket Policyの編集で競合するため下記2つを無効にする**
・ 新しいパブリックバケットポリシーまたはアクセスポイントポリシーを介して付与されたバケットとオブジェクトへのパブリックアクセスをブロックする

・ 任意のパブリックバケットポリシーまたはアクセスポイントポリシーを介したバケットとオブジェクトへのパブリックアクセスとクロスアカウントアクセスをブロックする

![スクリーンショット 2024-01-22 12.34.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1130166/f952ef31-4441-9094-613b-30b0000edfb0.png)

## 2. Bucket Policyの編集
1

元記事を表示

AWS Sagemakerで気づかないうちに300$課金された話

学習のためにAWS Sagemakerを利用していたのですが、課金の仕組みを理解しきれずに300$程度課金されたのでここに対処方法を書いておきます。

## AWS SageMakerとは
機械学習モデルの開発からデプロイまでを容易にするマネージドサービス。データサイエンスのプロセスを統合し、スケーラブルで柔軟な機械学習ワークフローを提供。

## 何をしていたか
AWS SageMakerを使い、テストデータを作成し、それをトレーニングさせモデルを作成し分析を行っていた。

## 原因
共有スペースの削除が出来ておらず、スペックの高いインスタンス(ml.g5.4xlarge)が90h程度立ち上がりっぱなしだった。

## 料金がかからないように注意していたつもりだったが・・
コンソール上からSageMaker Canvasはログアウトしていたし、SageMaker Studio上からも起動しているインスタンスはすべて停止していたが、共有スペースの削除に気づけなかった。

## 対処方法
対処方法を探している間にも課金され続けるので焦りながら調査。
コンソール上からの対応方法がすぐに見

元記事を表示

ChatGPTを使った、わたしの資格勉強法

最近、AWSの資格勉強を続けています。昨年12月はAWS SAAに無事合格し、いまはAWS SOAの試験日程を決めるところです。

過去にもAWSの勉強はしていたのですが、正直言って上手に知識を吸収したり処理することができませんでした。しかし最近は、わりとスムーズに勉強できている気がしています。

**そのきっかけが、ChatGPTでした。**

おそらくいくらでも書かれているだろうテーマですが、この記事では自身が**どのようにChatGPTを活用して資格勉強を進めているか**を説明します。

## 使い方1: 問題文をChatGPTに投げる

早速ですが、資格勉強において私が考えるもっとも良い使い方は、

「**例題や模試などの問題文をChatGPTに貼り付け、その回答をベースにやりとりを続ける**」

というシンプルなものです。

### なぜこの方法が良いのか

参考書をつかった学習の場合は「問題文を読んで回答を考え、模範解答と見比べて解説を読み、それでもわからない箇所があればテキストを読み直す」というのが一般的な流れになるはずです。

これと比べると、**ChatGPTを使う利

元記事を表示

【AWS】CloudTrail証跡を必ず有効にする方法

# 目的
CloudTrailの証跡機能が無効になったことを検知して、自動で再有効化させる。
(証跡が有効な状態を自動で担保する)

# 結論
AWS ConfigのルールとAWS SystemsManagerのAutomationを連携させ、自動で再有効化することが可能です。

AWSアカウントがAWS Organizationsを使用している場合はSCP(サービスコントロールポリシー)での制御を設定すれば、そもそも証跡を無効にすること自体を拒否できます。

:::note warn
本記事作成後にサービス内容や仕様が変更になる可能性があります。実際に設定する際には、公式ドキュメントをご確認のうえ自己責任でお願いします。
:::

# 前提
– CloudTrailの証跡が正しく設定され、機能していること。
– CloudTrail、SystemsManeger、S3、IAMロールへの操作権限を持ったIAMユーザーで作業出来ること。

# CloudTrailについて
CloudTrailは、AWSアカウント上での全ての操作を記録・監視するサービスです。
セキュリティの向上、コンプラ

元記事を表示

AWS ALB のざっくり説明資料

アプリケーション畑に軸足のあるフルスタックエンジニアでシステムアーキテクトの私が、社内のオンプレ経験の長いインフラ屋さんに ALB を説明した時の図です。詳細には、違います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2210265/3012cdc6-1928-9c86-795c-c2e862a0f9d6.png)

ALB がどこにあるかを気にされていたので、VPC にどかんとあるイメージを先ず伝えました。次に各パブリックサブネットに NIC があるイメージと伝えました。その NIC は、それぞれ最大で 8 個まで増えるので、IP が各パブリックサブネットで最低 8 個は必要と伝えました。

ALB のアクセスログは、VPC の ALB からではなく、AWS が管理する ALB の元締めアカウントから S3 バケットへ送られるイメージと伝えました。バケットポリシーの設定が必要であることを伝えるための説明です。

WAF との関係や TSL 証明書の配置などについても説明しましたが

元記事を表示

Terraformで始めるAWSマルチアカウント構築

# はじめに

皆様はAWSでマルチアカウント構築に関わったことはありますでしょうか?

各アカウントの担当が同じであればマシですが、
アカウントごとに別担当なことが大半であり、コミュニケーションコストが爆増して苦労するのはあるあるですよね。

そんなときはプライベートでTerraformを利用してもろもろ検証しましょう!
またマルチアカウント構築をするにあたりいくつか方法があるので、本記事ではそれぞれ紹介します。

:::note warn
本記事ではAdministratorAccess権限を利用していますが、
IAM権限も含めて検証したい場合は各自適切なIAMポリシーを作成してください。
:::


# 1.マルチアカウント構築の設定

Terraformでマルチアカウントでリソースを定義するためには、
大まかに以下の二通りがあります。

– プロファイルのみ利用
– プロファイルとAssumeRoleを合わせて利用

## 1.1 プロファイルのみ利用
AWS C

元記事を表示

DBを使わず、boto3だけでベクトル検索をする。RAGやクラス分類をする

# まえがき

## この記事を3行で

– 標準のPythonだけでベクトル検索を実装する方法を紹介します
– 速度、メモリ的に、どのくらいのデータ件数が限界かを調べます
– 埋め込みモデルの利用例(RAG、YES/NOの判別、画像クラス分類)も紹介します

## 使う環境

– Python 3.12
– AWS Bedrock

※今回はBedrockのtitanを使いますが、OpenAIのEmbeddingも使い方は同じです。

## この記事が想定する読者

– AWS(Lambda)がどういうものかを知っている
– Pythonのプログラミングが可能で、LLMに興味がある
– RAGをしようとしているが、ベクトルデータベースの値段が気になる

## ベクトル検索に、データベースはマストじゃない

RAGのためにベクトル検索を導入するなら、ベクトルデータベースは必ず導入したほうがいいのでしょうか。

昔、高専生だった時に日雇いのアルバイトをしていました。
組み立て前の段ボールの束を渡されて、「グルーガンで底を組むように」と指示されます。缶飲料の入った段ボールがベルトコンベアで

元記事を表示

新卒5か月で転職し、AWS全冠を達成した話

## 目次
1. [はじめに](#はじめに)
2. [私について](#私について)
3. [私なりの資格取得の意味](#私なりの資格取得の意味)
4. [AWS全冠を目指した理由](#aws全冠を目指した理由)
5. [AWS認定について](#aws認定について)
6. [いろいろランキング](#いろいろランキング)
7. [自身の軌跡](#自身の軌跡)
8. [AWS未経験から推奨したいロードマップ](#aws未経験から推奨したいロードマップ)
9. [AWS公式のロードマップ](#aws公式のロードマップ)
10. [初学者におすすめの一冊](#初学者におすすめの一冊)
11. [勉強方法](#勉強方法)
12. [最後に](#最後に)

## はじめに
先月、**AWS認定資格(12種)** を全て取得し、いわゆるAWS全冠を達成しました。
達成の軌跡や資格の個人ランキングなどを紹介しますので、AWS初学者や若手で全冠を目指したいという方などの参考になれば幸いです。

![スクリーンショット 2023-12-24 182652.png](https://qiita-image-

元記事を表示

OTHERカテゴリの最新記事