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

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

AWSのGUIとCLIで同じことをしても挙動が違うことがあるって知ってましたか?!

こんにちは、ちはらです。
AWS歴1年(IT歴1年半)の私が、配属されて間もない頃に上司から言われて驚いたことについてまとめようと思います。

私が驚いたこととは、タイトルの通り **GUIとCLIで同じことをしているはずなのに、違う挙動をすることがある** ということです。
どのような挙動の違いがあるのか、実際に私が遭遇したのは以下のケースです。

## EC2インスタンスを削除せずにリストアを行うと

プライベートIPアドレスを所持するEC2インスタンスを、インスタンスが存在する状態でAWS Backupからリストアを実行します。
そうすると、GUIではIPアドレスが変更された状態でEC2インスタンスがリストアされますが、
CLIではエラーが表示され、リストアが失敗します。

今回は、IPアドレスが *10.0.1.167* のEC2インスタンスをリストアしていきます。
![01_リストア元インスタンス.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3867728/1b13541a-e1e4-

元記事を表示

AWS DynamoDBを簡潔に理解

# DynamoDBとは
Amazon Web Services(AWS)が提供するフルマネージドのNoSQLデータベースサービスです。自動スケーリングと高可用性を提供し、パフォーマンスを維持しながら大規模なアプリケーションに対応できるよう設計されています。DynamoDBのアーキテクチャは手動でのパーティショニングやスケーリングの必要がなく、開発者にとってシームレスなエクスペリエンスを提供します。

## DynamoDBの動作
#### 1. リクエストの流れ
リクエストルーター: アプリケーションからのリクエストはまずリクエストルーターに到達します。
認証: ルーターがリクエストを認証します。
Auto Admin: DynamoDBはパーティションとメンテナンスを自動的に管理し、スケーラビリティとパフォーマン

元記事を表示

AWS System Manager Session Managerでローカル環境とRDSを接続したい

# はじめに
[Table Plus](https://tableplus.com/)でAmazon RDSのデータを確認するために、EICE接続を使用してローカル環境とAmazon RDSを接続したのですが、[Prisma Cloud](https://docs.prismacloud.io/en)のアラート`Instances exposed to network trafficfrom the internet`が出てしまいました。
セキュリティグループのインバウンドルールを変更してもアラートが再発したため、SSM接続に変更。
EICE接続とSSM接続の違いについてまとめていきます。

# 接続条件
ローカルではTable Plus、RDSはPostgreSQLを使用しています。
【ポート設定】
Local Port:5433(任意) Remote Port:5432とします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3878075/a7eb815b-1793-3d66-a

元記事を表示

AWS EC2 にLaravelをデプロイする

# はじめに
AWS RDS でデータベースを作成し、
AWS EC2 に Laravelをデプロイする方法をまとめた。

# 開発環境
PHP7.4 Laravel8.x mysql8.0

# 事前準備
AWSでEC2インスタンスとRDSインスタンスを作成する

## EC2インスタンス
1. 名前を付ける

1. アプリケーションおよびOSのイメージ
Amazon Linux AMI(HVM)を選択
![EC2-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3534893/0d238316-1be0-dea9-7405-abcd0e71fed4.png)

1. インスタンスタイプ
変更しない

1. キーペア(ログイン)
選択もしくは作成
![EC2-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3534893/0b2f

元記事を表示

Aurora MySQLの不要データを削除してストレージを最適化する

Aurora MySQLの使用容量の8割(約400 GB)を占めるテーブルがあったのですが、過去データについてはCSV化してアーカイブできていたので、過去レコードを削除してDB容量を解放することにしました。

レコード削除だけで容量が解放されると思っていたら予想外に手間がかかったので、備忘録として詳細を残します。

## テーブル使用容量の確認
以下のクエリで各`.ibd`ファイルの容量を確認できます。

“`sql
SELECT file_name, ROUND(SUM(total_extents * extent_size)/1024/1024/1024,2) AS “TableSizeinGB” from information_schema.files GROUP BY file_name ORDER BY total_extents DESC;
“`

![スクリーンショット 2024-09-14 8.21.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569054/90fad41d

元記事を表示

AWSのSESを不正利用された際の反省と教訓

# 反省
### 被害
AWSのSESを利用され、約5万通のメールが不正に送信され、約10ドルの使用料が発生しました。また、焦ってルート権限のMFA設定時にアプリ(別のアプリ用の番号を選択し続ける)の選択を誤り、余計に焦ることになりました。

# 頭によぎった過去の悪夢
https://x.com/8xNeXY/status/1766066506620924010

# 症状
– **DKIM設定成功通知:** 不審なDKIM設定完了の通知を受け取りました(9月12日7時ごろ)
[![Image from Gyazo](https://i.gyazo.com/a209714f5516c67e3f2dfd0d336ea047.png)](https://gyazo.com/a209714f5516c67e3f2dfd0d336ea047)

– **料金アラート:** AWSからSESの使用料金が閾値に達したアラートが送信されました(9月13日9時ごろ)
[![Image from Gyazo](https://i.gyazo.com/fec0494595623946e

元記事を表示

CSM: Dynamic Secret によるAWSの”アクセスキー”漏洩対策をためす

# 概要

クラウドサービスの利用する企業への不正アクセス被害が相次いでいます
その主な要因として「アクセスキーの漏洩」の事例が、昨今、多く報告されています

https://xtech.nikkei.com/atcl/nxt/column/18/00001/09539/

アクセスキーの漏洩は、githubへアクセスキーを含めたコードをコミットを行うことによる漏洩であったり、また、多くの開発者等で、アクセスキーを共用したりした場合にも漏洩が生じる可能性がありえます

[CSM (CipherTrust Secrets Management Powered by AKEYLESS)]([https://qiita.com/shinyaarai/items/0da7ea8164df552c4bfd) の”アクセスキー”を Dynamic Secret の機能により、一時的なアクセスキーを動的に生成することができます

これにより、”ソースコードや設定ファイルへのハードコード”や、”開発者でのアクセスキー共有”等による”アクセスキー漏洩”を避けることが可能です

# 目的

Dyanami

元記事を表示

AWSアカウントへのスイッチロール(初心者向け)

AWSアカウントへのスイッチロールについてまとめてみたので紹介したいと思います。

対象者:初心者
書いてある内容:基本的な概要と考え方
書いていない内容:具体的なロールの実装方法

## そもそもスイッチロールとは
スイッチロールはIAM機能の一部であり、ユーザーが一時的に別のAWSアカウントの権限を引き受けることを可能にする仕組みです。この機能を使用すると、ユーザーは自身のIAMユーザーまたはロールの権限を維持したまま、異なるAWSアカウント内で定義された別のIAMロールに切り替え、スイッチロール先のアカウントの操作をすることができます。

## IAMRoleの重要な考え方
1. ユーザーに必要最小限の権限のみを付与する。スイッチロールはロールごとに細かく権限を定義することが可能です。ユーザーは必要な時に必要な権限を持つロールに切り替えることで、常に必要最小限の権限でのみ操作を行うことができます。これにより、誤操作や不正アクセスのリスクを大幅に低減させることができます。
1. 長期的な認証情報の使用を避け、短期的で失効する認証情報を使用します。スイッチロールを使用すると、ユーザー

元記事を表示

CloudFrontのOrigin Access Control が CDK で簡単に設定できるようになりました 🎉

# はじめに
本記事は、[ANGEL Calendar](https://qiita.com/organizations/2024-angel-dojo) の13日目の記事です!
9月中は毎日欠かさず技術記事が投稿されるので、是非他の記事もチェックしてみてください!

https://qiita.com/har1101/items/637ba82948aa7670fb9f

# CDK で Origin Access Control の設定が簡単にできるようになった 🙌
CDK v.2.156.0 の機能追加で、 L2 Construct に Origin Access Control (OAC) の機能が追加されました!
本記事では、Constructの L1/L2/L3 の違いと、OACの簡単なご紹介、そしてCDKを使った新しいOACの定義方法についてご紹介します。

# CDK Contruct の L1 / L2 / L3 って何?

CDKのライブラリは、AWSリソースをどの程度抽象化しているかによってL1/L2/L3に分かれています。
OACはこれまでL1 Construc

元記事を表示

ECS タスク定義登録時(register-task-definition)に必要なjsonデータをCLIを使って成形しながら取得

# はじめに
GitHub ActionsからECS タスク定義(aws ecs register-task-definition)を登録する際に、jsonファイルを事前に用意する必要があります。
マネジメントコンソール上からjsonデータを取得できますが、そのままの利用はできないです。
そのため、AWS CLIを使って取得する方法について、後述します。

# タスク定義ファイルの取得方法
タスク定義の最新版の情報を取得します。
“`sh
TASK_DEFINITION=$(aws ecs describe-task-definition –task-definition “${タスク定義名}” –query taskDefinition)
“`
“`sh
echo $TASK_DEFINITION
{
“taskDefinitionArn”: “${タスク定義 ARN}”,
“containerDefinitions”: [
{
“name”: “${コンテナ名}”,
“image”: “${ア

元記事を表示

Amazon GuardDutyとは

## Amazon GuardDutyとは
**AWS アカウント・ワークロード・データを脅威から保護**するサービス。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871776/d71e4918-07b7-e96d-f25b-58b5e3c5a3e0.png)

https://aws.amazon.com/jp/guardduty/

## GuardDutyで出来ること
### 1.GuardDuty S3 Protection
1 日あたり 1 兆件を超えるS3イベントを分析できる。
S3 のデータアクセスイベントと S3 設定を継続的にモニタリングおよびプロファイリングして、異常な場所からのリクエスト、S3 パブリックアクセスブロックなどの予防的制御の無効化、疑わしいアクティビティを検出する。

### 2.GuardDuty EKS Protection
EKS 監査ログを分析することで、EKSクラスターのコントロールプレーンのアクティビティをモニタリングする。

##

元記事を表示

AWS Lamba関数をテストする際にbodyの書きかた

AWS LambdaとAPI Gatewayを使ってAPIを実装するユースケースは多いと思います。

自分がLambda関数のテスト機能を使う際に、リクエストの「`body`」の書き方で詰まってしまったので、その時の解決法を共有します。

# 問題点

テスト機能を使ってLambda関数を実行しようとした際、以下のような形式でリクエストを送信したところ、エラーが発生しました。

“`json
{
“body”:
{
“userId”:”test20240822@test.com”,
“displayName”:”test20240822″,
“email”:”test20240822@test.com”
}
}

“`

この形式で送ると、Lambda関数内で`body`の内容がパースされず、以下のようなエラーメッセージが表示されることがあります:

“`
{
“errorMessage”: “Could not parse request body into json: Unexpected

元記事を表示

CloudWatch Metrics の保存期間の制約で困った件

# 1.はじめに
負荷テストを行うためにJMeterを使用し、Webアプリケーションに対して性能試験と耐久性試験を実施しました。テストの結果を分析するために、CloudWatchのメトリクスを利用しましたが、データ保持期間の制約により、1分間隔で収集されたメトリクスの分析ができなくなりました。

# 2.保持期間の制約について
AWS CloudWatchのメトリクスデータの保持期間には制約があります。[AWSの公式サイト](https://aws.amazon.com/jp/cloudwatch/faqs/)に、以下のような保持期間が設定されていると記載があります。

>60秒未満のデータポイント: 3時間
>1分間隔のデータポイント: 15日間
>5分間隔のデータポイント: 63日間
>1時間間隔のデータポイント: 15か月間

このため、1分間隔のデータポイントは15日間のみ保存され、その後はデータがロールアップされてしまいます。これにより、保持期間を超えたデータポイントは失われてしまいます。

実際に、CloudWatchのメトリクスを見てみると以下の通り、1分間隔のデータポイ

元記事を表示

AWS / Terraform – ALB + S3 のエラー – InvalidConfigurationRequest: Access Denied for bucket: example-bucket. Please check S3bucket permission

# 問題

ALBアクセスログをS3に記録しようとするが、
TerraformでもAWSのマネージメントコンソールでも「S3の権限が足りない」というエラーが起こる

“`
InvalidConfigurationRequest: Access Denied for bucket: example-bucket.
Please check S3bucket permission
“`

パケットポリシーを公式説明どおりに設定してもエラーが続いていた

# 解決

S3バケットの暗号化設定を SSE-S3 に変えることで解決した

![CleanShot 2024-09-13 at 14 00 46@2x](https://github.com/user-attachments/assets/25578997-aa10-4066-b2e4-b22a16d36e73)

## 既存バケットはKMSでも動き続けている

既存バケットはKMS設定のままで正常に動作し続けていた

おそらく既存環境に配慮した対応だと思われる

![CleanShot 2024-09-13 at 14 02

元記事を表示

lambdaでエラーログファイルをs3へ書き込む

# やりたいこと
lambdaでエラーログファイルをs3へ書き込む
・S3バケット作成
・IAMポリシーとIAMロール作成
・Lambda関数作成

# ①S3作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538617/218e4591-f646-440a-731b-822dee4d94cf.png)

全部デフォルト設定でよい
(ACL 無効 (推奨))
(パブリックアクセスをすべて ブロック にチェック)
(バケットのバージョニングを無効)

# ②IAMポリシーとIAMロール作成
先にポリシーを作成

“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: [
“s3:PutObject”
],
“Resource”:

元記事を表示

Azure マネージド ID と AWS IAM ロールの比較

長期的に利用可能なシークレット情報(Azure のサービスプリンシパルや AWS の IAM ユーザーなど)を使用してリソースアクセスを行うと、シークレット情報の漏洩時に深刻な問題が発生するリスクがあります。
このリスクを軽減するため、Azure マネージド ID と AWS IAM ロールは、それぞれのクラウドプラットフォームにおいて、長期的なシークレット情報を使用せずにセキュアなリソースアクセスを実現するための重要な機能です。

## 概要

### Azure マネージド ID

Azure マネージド ID は、Azure リソースに対して安全に権限を付与する仕組みです。
Azure リソース上で動作しているアプリケーション以外がマネージド ID を利用して権限を得ることはできません。
下記の 2 種類が存在します。

– **システム割り当てマネージド ID:** 1 つのリソースに 1 つだけ作成できるマネージド ID で、リソースと共に作成、削除されます
– **ユーザー割り当てマネージド ID:** リソースとは独立して用意するもので、複数の Azure リソースで共用

元記事を表示

サーバーが落ちた時にターゲットグループを切り替える

こんにちは。ねこしまです。
今回は、ELBにリスナーとして登録されているEC2①が落ちてしまった際にEC2②のターゲットグループにリスナーを切り替えるという作業を行う機会があったのでその内容を共有したいと思います。

## はじめに
### 全体の流れ
ELBにリスナーとして登録されているターゲットグループのEC2がUnHealthyになった際にCloudWatchアラームで検知し、SNSに流します。
SNSではメール送信と共にLambdaのトリガーとします。
LambdaではEC2①のターゲットグループをリスナーから外し、EC2②のターゲットグループを新たにリスナーとして登録をします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3883742/c6f54dfb-8160-b8a2-1dc4-af58fa8ed6b8.png)

### 前提条件
 ・VPCやサブネット・ELB・EC2が作成済みであること
 ・今回の対象外事項
 ・ターゲットグル

元記事を表示

AWS試験に受かったときのバイブス

# お蔵入りにしてた記事 『AWS Database Specialtyに合格したのでAuroraについてまとめた + RDSの思わぬ欠点について』

もったいないので放出します。2023年の9/29合格なので、約一年前ですね。そのまま出します。当時のライブ感が残っていて懐かしい。思えばこれがSAP,DOP,MLSなどの合格の発端となりました。

当時の合格時のヴァイブスは以下です。

![1000018075.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2780693/2499e6af-4181-9d48-d9c6-afaf8d37534d.jpeg)

![1000018076.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2780693/9dd0d6dd-7213-747e-6c78-256a3e347985.jpeg)

対象読者は、
・DBSの範囲の問題を多少解いてSAAなど他試験の解像度をあげたい方

元記事を表示

爆速でPDFを全世界にS3で公開する方法

# はじめに
#### 爆速でPDFを全世界に公開したい時ありますよね?
そんな迷える初心者/一人情シスのみなさんにこちらの
S3を使った爆速公開術を授けます。

# 必要なもの
・AWSアカウント
・アップロードするPDF
・あきらめない心

## S3の設定
AWSマネジメントコンソールにログインし、S3サービスに移動します。
リージョンを選択したら「バケットを作成」ボタンをクリックします。
バケット名を入力します。(例:tonikakupdf001)

「パブリックアクセスをすべてブロック」のチェックを外します。
警告が表示されますが、今回はパブリックアクセスを許可する必要があるため大丈夫です!
その他の設定はデフォルトのままで、「バケットを作成」をクリックします。

## PDFファイルのアップロード

作成したバケットを開いて「アップロード」ボタンをクリックします。PDFファイルをドラッグ&ドロップするか、「ファイルを追加」をクリックして選択し、「アップロード」をクリックしてファイルをアップロードします。

## PDFファイルの公開設定

アップロードしたPDFファイルを選

元記事を表示

IAMクロスアカウントロールアクセス

## IAMクロスアカウントロールアクセス
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2950120/d9a695ba-990a-7bff-7d0d-0159e90bb9a5.png)

元記事を表示

OTHERカテゴリの最新記事