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

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

ALBのログ分析でAthenaが遅いのでpartitionを追加した

# TL;DR

[このクエリ](https://qiita.com/drafts/fa1889cddc921eadaf31/edit#sql%E3%81%AB%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E3%81%A8%E6%88%90%E5%8A%9F%E3%81%97%E3%81%9F)を実行するだけなので1分あれば終わります。
公式ドキュメントに書いてあるSQLは古いので注意しましょう(2024/9現在)。
やり直すとき、一度テーブルを削除してから作り直すのは忘れずに。

# きっかけ:ALBのログ分析のAthenaが遅すぎる
きっかけはALBのログ分析をしたい時、Athenaのクエリが遅すぎることでした。
約4年以上ALBのログを保存し続けたことで、データ量がかなり増えている状況で、
ただのPreviewでも1分ほどかかっており、クエリによっては10分ほどかかってしまっていました。
1個のクエリに10分も要していては、到底アドホック

元記事を表示

【MYSQL】Check the status of the database if this condition persists が出る

## エラーログ
“`
[WARN] Database “dev-db-01” at 172.31.0.167:3306 became unavailable for access from 172.31.0.8. Check the status of the database if this condition persists.
“`

## 原因
このエラーは、RDSプロキシがデータベースインスタンスに接続できない場合に発生します。

## 対処方法
1. RDSインスタンスの状態確認
– AWS CLIまたはコンソールでRDSインスタンスの状態を確認:
“`
aws rds describe-db-instances –db-instance-identifier dev-db-01 –query ‘DBInstances[0].DBInstanceStatus’
“`

2. セキュリティグループの設定確認
– RDSインスタンスとRDSプロキシのセキュリティグループを確認:
“`
resource “aws_secu

元記事を表示

【AWS】certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)) が出る

## エラーログ
RDSプロキシにて

“`
Database error: (2003, “Can’t connect to MySQL server on ‘dev-proxy-db-01.XXX.ap-northeast-1.rds.amazonaws.com’ ([SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006))”)
“`
が出る

## 原因
このエラーは、SSL証明書の検証に失敗した場合に発生します。

## 対処方法
1. 正しい証明書のダウンロードと使用
– 最新のRDS証明書をダウンロード:
“`
wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem -O rds-ca-2019-root.pem
“`
– S3バケットに証明書をアップロード:
“`
re

元記事を表示

【MYSQL】Failed to connect to database: (1045, “Access denied for user が出る

## エラーログ
“`
Failed to connect to database: (1045, “Access denied for user ‘dev_admin’@’172.31.1.129’ (using password: YES)”)
“`

## 原因
このエラーは、データベースユーザー名またはパスワードが正しくない場合に発生します。

## 対処方法
1. AWS Secrets Managerの確認
– Secrets Managerに保存されているユーザー名とパスワードが正しいか確認
– 必要に応じて、以下のようにTerraformコードを修正:
“`
resource “aws_secretsmanager_secret_version” “db_credential” {
secret_id = aws_secretsmanager_secret.db_credential.id
secret_string = jsonencode({
username = “${var.environment}

元記事を表示

AWS BatchでHello World(Python)

## はじめに
AWS Batchを利用してHello Worldしたのでメモに残します。
とりあえず動かし方を知りたい人向けです。
ローカルの環境はWindows10です。

## PythonスクリプトとDockerファイルの作成
VSCを起動して作業場所を決めてください
その後、作業場所配下に次のスクリプトとDockerファイルを作成してください
~~~python:app.py
print(“Hello from Fargate!”)
~~~
~~~docker:Dockerfile
FROM python:3.8-slim

WORKDIR /usr/src/app

/usr/src/app
COPY . .

CMD [“python”, “./app.py”]
~~~

## Amazon ECRへプッシュ
先ほどのスクリプトとDockerファイルをAmazon Elastic Container Registry(ECR)へ登録します。
これによって、ECSやAWS Batchから実行できるようになります。
### ECRでリポジトリを作成
– AmazonECR

元記事を表示

RDSを理解するための考察①

## サブネットグループとは
簡単にいうと、サブネットグループはRDSインスタンスの「配置を決める」ためのものであり、可用性を高めるために使われる

サブネットグループには、アベーラリティゾーン(AZ)に属するサブネットが含まれており、RDSインスタンスがどのサブネットに配置されるかを決定します。これにより、1つのAZで障害が発生した場合でも、他のゾーンにフェイルオーバーでき、RDSの高可用性が確保される

ふむふむ。

他にもグループってあるよね?そう、セキュリティグループです!

## セキュリティグループとは
簡単にいうと、セキュリティグループはファイアウォールの役割!!
許可設定のみが可能で、拒否設定はありません。逆に、ネットワークACLでは許可と拒否の両方を設定できます。

セキュリティグループは、インバウンド(受信)とアウトバウンド(送信)のネットワークトラフィックを制御し、RDSやEC2インスタンスが外部や他のリソースからどのようにアクセスされるかを管理します。IPアドレスやポート番号ごとに許可ルールを設定し、何も設定されていないトラフィックは自動的に拒否されるのでご注意

元記事を表示

Amazon RDSについて勉強してみた

## 前提
– SAA-C03合格済み!
– 合格までの道のりは[こちら](https://qiita.com/ryotabaske13/items/e81e61e98235aa284933)を参照してみてください
– SAA合格はしたけど、知識定着のために定期的に記事を書くことにしました
– 新しく業務でRDSを使うことになりそうなので勉強したことをまとめる

## RDSとは
– AWSクラウドでリレーショナルデータベースを利用することができるマネージドサービス
– IBM Db2、MariaDB、Microsoft SQL Server、MySQL、Oracle Database、PostgreSQLなどデータベースエンジンを使用することができる

## リレーショナルデータベースとは
– データを表形式で保存する
– 表形式で保存された複数のデータを関連づけて使用、管理できる
– テーブル(表)の各行は、キーという一意のIDを持っている
– [参考](https://www.oracle.com/jp/database/what-is-a-relational-database

元記事を表示

Docker を使わずに n8n を Amazon Lightsail にセルフホストする

## はじめに
オープンソースのワークフロー自動化ツールである n8n を Amazon Lightsail にセルフホストする機会がありましたのでご紹介します。

## Dockerは使わずに
公式ドキュメントでは Docker を使用してセルフホストする方法が紹介されていますが、今回は Docker を使わずに行いました。

## セットアップ
### Amazon Lightsail のインスタンス作成
Amazon Lightsail のコンソールで、LightSailの新規インスタンスを以下のスペックで作成します。
– Node.js
– 4GB以上のMemory

メモリは4GB以上でないとメモリ不足で正常に動作しない可能性があります。

### Lightsailセットアップ
作成したインスタンスのコンソール画面から、SSHでログインします。

#### ProxyPassの設定
以下のファイルに下記のとおり追記します。

“`/opt/bitnami/apache2/conf/httpd.conf
# 末尾に以下を追加
ProxyPass / http://local

元記事を表示

EC2でExpressサーバーとNginxを使用したリバースプロキシの作成

## アジェンダ
Expressサーバーを作成し、Nginxからそのサーバーにリクエストをプロキシしてレスポンスを返すまでの手順を簡単にまとめます。
Nginxはリバースプロキシとして動作し、外部からのリクエストをExpressサーバーに転送します。

## 1. Expressサーバーの作成
まず、EC2インスタンス上でNode.jsとExpressをセットアップし、簡単なExpressサーバーを作成します。

### Node.jsとnpmのインストール
“`bash
sudo apt update
sudo apt install nodejs
sudo apt install npm
“`

### Expressサーバーの作成
“`bash
mkdir my-express-app
cd my-express-app
npm init -y
npm install express
“`

### `app.js`ファイルの作成
次のコマンドで`app.js`ファイルを作成し、nanoエディタを使用して編集します:
“`bash
nano app.js
“`

`a

元記事を表示

2024年下半期の学習計画

## はじめに
IT業界参入3年目のインフラエンジニアによる、2024年下半期の学習計画です。
計画倒れ防止のために、下半期の学習計画を投稿することにしました。

## 投稿者のレベル
学歴:文系の四大卒
職歴:非IT→SES(2年)→クラウドインテグレーター(1年目)
業務内容:クラウド環境の運用構築

文系出身なので計算問題は苦手です(´;ω;`)

## 所持資格

**2021年**
| 資格名 | 取得年月 |
|:———–|————:|
| CCNA | 2021/10 |

**2022年**
| 資格名 | 取得年月 |
|:———–|————:|
| ITパスポート | 2022/09 |

**2023年**
| 資格名 | 取得年月 |
|:———–|————:|
| AWS CLF | 2023/01 |
| AWS SAA | 2023/02 |
| LPIC

元記事を表示

AWS CloudFormation で環境構築を自動化しよう!~Part1~

## はじめに

「AWSってよく聞くけど、何から始めればいいの?」

そんな悩みをお持ちのあなたへ。 AWS CloudFormation の基本的な機能と使い方を解説します。

### AWS CloudFormation とは?

AWS CloudFormation は、EC2 や ELB などの AWS リソースの環境構築を自動化できるサービスです。設定ファイル(テンプレート)を作成すれば、クラウドフォーメーションが自動的にリソースを作成・設定してくれるので、手作業によるミスを防ぎ、構築時間を大幅に短縮できます。

### AWS CloudFormation のメリット

* **構築作業の自動化:** 手作業での設定ミスを防ぎ、作業時間を短縮できる
* **環境の複製・再構築が容易:** 同じテンプレートを使用することで、開発環境、テスト環境、本番環境など、複数の環境を簡単に作成できる
* **インフラストラクチャのコード化:** インフラストラクチャをコードで管理することで、変更履歴の追跡やバージョン管理が容易になり、開発プロセスを効率化できる

### AW

元記事を表示

【AWS】クラウドコンサルティング経験で学んだこと

※不備があったため、以前投稿した記事の再投稿になります。
SIer→コンサル業界に転身し、AWSのクラウドコンサルティングを1年経験してきて、個人的に重要だと感じたポイントをまとめました。

# クラウドコンサルティングで重要なポイント一覧
– システムへの理解を深めること
– ドキュメントスキル
– ベストプラクティスに囚われないこと
– もちろん技術力!

# 各ポイントごとの説明
各項目の詳細を以下に記載していきます。

## システムへの理解を深めること
クラウド移行を提案する立場では、クライアントのシステムを利用する担当部署の方とコミュニケーションをとることが必須となります。ここで認識しておくべきポイントは、**必ずしも担当部署の方がシステムの現状を把握していない**ということです。私の経験では、情報システム部門や担当のベンダにシステム運用は任せきりで必要な手続きだけ関与しているといったケースがありました。
クラウド移行の提案で忘れてはいけないものとして、**システムのAsISにXXXの課題があるため、解決するためにToBeのクラウド構成を提案すること**があります。そのため

元記事を表示

aws-cli バージョン違いによるcloudformation deploy 実行ステータスコード255

bashのスクリプト内でaws-cliを使ってCloudFormation deployを行っている部分があり、新たにCloudFormation deployのコードを追加したところ、aws-cliのバージョンによって、挙動が異なったので、ソレについて話す。

## きっかけ
会社のサービスで使用している年期の入ったCircleCIのビルドスクリプトに、新しくCloudFormation Deployを追加したところ、スタックに変更がなくメッセージ出力されてスクリプトの後続処理が停止した。
“`shell
No changes to deploy. Stack ExampleStack is up to date
“`

## 原因
ローカル環境で動作を確認したときのaws-cliバージョンとCircleCIで動いているaws-cli
のバージョンが異なることで、CloudFormation deployの返すスクリプトの終了ステータスコードが異なっていたことで、ローカル環境では発生しなかった問題がCircleCIで発生した。

### ローカル環境
– python: v3.9

元記事を表示

AWS裏側探検:Private SubnetのEC2がIAMロールを手に入れる驚きの仕組み

# 1. はじめに
## 背景
先日、S3のVPCエンドポイントを経由してEC2インスタンスからS3上のファイルにアクセスする検証を行いました。詳細はこちらの記事をご参照ください。

https://qiita.com/dennis_wang/items/e881f2d502b1a0addfbe#22-%E3%82%B2%E3%83%BC%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A4%E5%9E%8B%E3%82%A8%E3%83%B3%E3%83%89%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%82%92%E6%A4%9C%E8%A8%BC

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/28664/9fd550ce-d00b-fd79-cd76-bac6b4e4c063.png)

## 疑問点
この検証を通じて、以下の疑問が生じました:
– EC2インスタンスがS3バケットにアクセスするためには、適切な権限を持つ`IA

元記事を表示

FSx for Windows File Serverをファイルエクスプローラーから利用する方法

## はじめに
今回は、FSx for Widows File Serverをファイルエクスプローラーから利用する方法を2つ紹介します。

## 前提条件
### FSxとADの連携
FSxをADに参加させる必要があります。
AWS Managed Microsoft ADを利用している場合は、以下の様にディレクトリを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3115411/b7e42e88-d85e-b243-ba4a-321e627aac29.png)

自己管理型のADを利用している場合、以下の様にドメイン名、DNSサーバのIPアドレス、サービスアカウントのユーザー名、サービスアカウントのパスワードを入力する必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3115411/66be4f4a-1096-2669-025f-10b9b01afd7c.p

元記事を表示

『実践Terraform』でプライベートバケット定義の書き方が非推奨と警告されてしまう

Terraform初学者です。

『[実践Terraform](https://www.amazon.co.jp/dp/4844378139)』という書籍で勉強しています。

書籍のコードをそのまま記述すると、VSCodeの拡張機能で非推奨と警告されてしまう箇所があったため、備忘録としてまとめます。

この記事におけるバージョンは次のとおりです。

– Terraform: v1.9.5
– HashiCorp Terraform(拡張機能): v2.32.2

## 問題

`第6章 ストレージ`の`6.1 プライベートバケット`のサンプルコードが対象です。

プライベートバケットの定義として次のコードが書かれています。

“`s3.tf
resource “aws_s3_bucket” “private” {
bucket = “private-pragmatic-terraform”

versioning {
enabled = true
}

server_side_encryption_configuration {
rule {

元記事を表示

【AWS認定合格記】AWS sysOps Administrator アソシエイト(SOA-C02)

## はじめに
:::note warn
受験は今から約半年も前のことになりますが、当時の勉強方法などの備忘録を記載しています。
:::

軽く自己紹介すると、、
◆学部卒(非情報系)
◆新卒でSIerに入社し、3年目。
◆取得資格
| 資格名 | 取得日 |
|:———–|:———–|
| 基本情報技術者 | 2021年11月 |
| AWS クラウドプラクティショナー | 2023年2月 |
| AWS ソリューションアーキテクトアソシエイト | 2023年7月 |
| AWS ソリューションアーキテクトプロフェッショナル | 2024年3月 |
| AWS デベロッパーアソシエイト | 2024年3月 |
| AWS sysOps Administrator アソシエイト | 2024年4月 |

:::note info
sysOpsAdministratorアソシエイトを取得するまでは、業務ではAWSに携わったことはありませんでした。
:::

## 勉強方法
使用した問題集は、**CloudTechのみ**でした。

https://

元記事を表示

EC2 で Apache Kafka を 冗長性構成で構築してみる

# 最低限押さえておくべき用語

|用語|説明|
|—|—|
|ブローカー (Broker)|クラスタの各ノードのこと。ここでは EC2 だと思えば良い|
|クラスタ (Cluster)|ブローカーの集まり。ここでは EC2 の集まりだと思えば良い|
|トピック (Topic)|メッセージをカテゴリ分けするための論理的なチャンネルの単位|
|パーティション (Partition)|トピックを分割する物理的な単位|
|プロデューサー (Producer)|トピックにメッセージを送信するクライアント|
|コンシューマー (Consumer)|トピックからメッセージを読み取るクライアント|
|コンシューマーグループ (Consumer Group)|1つ以上のコンシューマーからなるグループ。トピック内にある複数のパーティションに対し、グループ内のコンシューマーにそれぞれ読み込ませることで負荷を分散する|
|オフセット (Offset)|パーティション内でのメッセージの一意の位置を示す番号。コンシューマーはオフセットを利用して、パーティション単位でメッセージをどこまで読んだか管理する|

元記事を表示

IAMユーザーにMFA登録しましょう!!【Microsoft Authenticator、WinAuth】

# はじめに
こんにちは、itayaです。
この度、ANGEL Calendarの企画に参加しております!
記事一覧は下記のOrganizationアカウントの一覧をチェックしてみてください!

https://qiita.com/organizations/2024-angel-dojo

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

# 導入
皆様、IAMユーザーにMFAは登録されているでしょうか?

(〇)セキュリティ的にOKな例
![MFA有効化_修正版.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871422/ef687e92-0268-7b06-afcd-cf17c2e756be.png)

(×)セキュリティ的に見直すべき例
![MFA無効化_修正版.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871422/fa7ab995-1742-c

元記事を表示

aws-sdk-client-mock-vitestを利用して、aws-sdkをmockする!

# はじめに

aws-sdkをmockしたいです。

ただ、aws-sdkは微妙にmockしづらい仕様になっており、下記ドキュメントにあるvitestのアサーションでは検証が難しいです。

https://vitest.dev/api/expect.html

そこで登場するのが「aws-sdk-client-mock-vitest」です!
vitest用に作られたaws-sdk-client-mock-vitestというライブラリがあります。

https://www.npmjs.com/package/aws-sdk-client-mock-vitest

今回はこれをさわってみます!!

# 動作環境構築

## プロジェクト構築

ドキュメントを参考にプロジェクトを作っていきます。

https://ja.vitejs.dev/guide/#%E6%9C%80%E5%88%9D%E3%81%AE-vite-%E3%83%95%E3%82%9A%E3%83%AD%E3%82%B7%E3%82%99%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E7%9

元記事を表示

OTHERカテゴリの最新記事