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

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

HCP Terraform/Terraform Cloudのメリットをざっくりご紹介!

## はじめに

HCP Terraform が気になる・使ってみたいという人向けにメリットをざっくりご紹介します!

:::note
2024/4/22 に Terraform Cloud は HCP Terraform と名称変更されました。
:::

https://developer.hashicorp.com/terraform/cloud-docs

## HCP Terraform のメリット

### どこからでも実行可能

`terraform login` コマンドでログインすれば、どんな端末でもすぐに同じ環境を使えます。複数端末あっても楽ちんです。

![login.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3852183/57473fa5-4bf6-1b33-c595-0c5355a18e5a.png)

### 実行環境がクラウド

クラウドで実行されるので、サーバーの面倒を見る必要がありません。メンバー端末の環境差分なども関係なくなります。ステートファイルのロックや保管

元記事を表示

Terraform のディレクトリ構成戦略

## Terraform のディレクトリ構成と戦略

Terraform のディレクトリ構成は主に 3 パターンあります。それぞれの戦略があり、最も優れたものは一概に決められません。利用するプロジェクトの性質に合わせて選択することが大事です。

### ベタ書き(ディレクトリ分割)

“`text:tree.txt
.
└── env
├── dev
│ ├── application.tf
│ ├── database.tf
│ ├── loadbalancer.tf
│ └── provider.tf
├── prd
│ ├── application.tf
│ ├── database.tf
│ ├── loadbalancer.tf
│ └── provider.tf
└── stg
“`

“`hcl:env/prd/application.tf
resource “aws_instance” “main” {

instance_ty

元記事を表示

M5Stack Core2 for AWS チュートリアルでつまづいたこと

# はじめに
AWSの勉強と、遊びでセンサデータを集めることをしてみかったったので、
M5Stack Core2 for AWS を触ってみた。

M5Stack Core2 for AWS – ESP32 IoT開発キット

チュートリアルを参考に、AWSへの接続を試みたが、
一筋縄ではいかないチュートリアルであったので、
つまづいたポイントを、メモすることにした。

https://core2-for-aws-iot-kit.m5stack.com/ja/getting-started/

# 本ページの目的
M5Stack Core2 for AWS のチュートリアルで、
説明が足らなかったり、上手くいかなかったところをメモする。

私のように「IoT遊びをしてみたい!」という人が、
チュートリアル見ながらAWSに接続できるように。

なお、現在進行形でチュートリアルを進めながら書いているので、
内容は都度アップデートしていく予定。

#

元記事を表示

AWS のリセール(請求代行サービス)って何?

意外と知られていない AWS の調達についてです。

## AWS のリセール(請求代行サービス)とは

AWS のリセールとは、リセラーが利用者に AWS を販売することです。利用者はリセラーと契約することで AWS を利用します。AWS への支払いはリセラーが行うため、請求代行サービスとも呼ばれます。

![resale.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3852183/1764d938-d47b-2927-8492-d7864f6c827a.png)

リセラーについては「AWS リセール」「AWS 請求代行」等で検索してみてください。これらを利用するメリット・デメリットは以下の通りです。

:::note warn
一般的な話の記載にとどまります。実際に契約する際には、各リセラーのサービス内容や利用規約等をよく確認してください。
:::

## メリット

### AWS 利用料が安くなる

直接契約で利用する場合より、利用料が安くなります。 5% 前後のディスカウント(割引)が多

元記事を表示

EC2のプライベートIPアドレスを任意で割り当てる方法とサブネットCIDR予約

# はじめに
クラウド環境におけるIPアドレスは固定化せずにDHCPで動的に割り当てることがベストプラクティスとされていますが、特にオンプレミス環境からクラウド環境へリフトする場合、既存のアプリケーション上の制約やミドルウェアのライセンスの制約等で、どうしても任意のプライベートIPアドレスを割り当てないといけない場合があります。

そのような場合に任意のプライベートIPアドレスを割り当てる方法を紹介したいと思います。

## EC2におけるIPアドレスの変更タイミング
任意のプライベートIPアドレスを割り当てる方法を紹介する前に、EC2で使用するIPアドレスはどのタイミングで変更されるかを整理してみようと思います。

EC2のIPアドレスにはパブリックIPアドレスとプライベートIPアドレスがありますが、基本的にはどちらも起動時にDHCPでIPアドレスが割り当てられます。

DHCPの仕様上はDHCPのリース期間満了時に解放されて他で利用することができるようになりますが、AWSの場合は停止等を行ったタイミングで変更されます。

パブリックIPアドレスとプライベートIPアドレスでは、変更さ

元記事を表示

AWS IAM Identity Centerの設定

# IAM Identity Centerの有効化 (管理者)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7059/2b2dd823-7875-79b9-7f1a-fe7b9489a387.png)

:::note warn
InstanceのQuotaが1のため、有効化するRegionを間違えると複数はEnableできないのでRegionを間違えないようにする
:::

![Screenshot 2024-08-18 at 12.42.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7059/fe0ff588-541c-c64f-2d98-0a8ffeffba05.png)

最初は個人のアカウントで検証用に作成したが、[Permission setの作り方](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtocr

元記事を表示

AWSのlambdaを使って、KubernetesがダウンしたらSlackにアラートを流すようにしてみた

## はじめに

前回は Alertmanager を使って、Kubernetes で異常が生じた際に、Slack にアラートが流れるようにしました。

https://qiita.com/piny940/items/1e44d8caf936216ca93e

しかし、Alertmanager を Kubernetes クラスタ上に立てているため、クラスタごとダウンした際にはそれをアラートで気づくことができないという課題があります。

そこで今回は、Alertmanager のサービスの起動状況を監視する lambda を使用して、Alertmanager がダウンした時に Slack にアラートが送信されるようにしていこうと思います。

完成したコードはこちらから確認できます。

https://github.com/piny940/infra/tree/main/service-monitor

## 実装

コード自体は、Alertmanager のヘルスチェック用のエンドポイントにリクエストを送って、200 が返ってくるかを確認するだけのものです。

3 回リクエストをして、3

元記事を表示

AWS Well-Architected Frameworkについて詳しく見てみる【パフォーマンス】

# 前段
Well-Architected Framework自体はよく聞くワードですが、その分量の多さ(とAWSドキュメントあるあるの若干の読みにくさ)にしっかりと読む機会がなかなかなかったため、ここで改めて自分なりに落とし込もうと思いました。

 Well-Architected Frameworkを読んで、「直訳過ぎて、何を言っているかわからないなぁ」となった時に見ていただけるような記事を目指しています。

※解釈に誤りがある場合はご指摘ください。
※ドキュメント本文そのままではないため、個人の解釈が入っている部分があります。 

**関連記事**
> ・[AWS Well-Architected Frameworkについて詳しく見てみる【運用上の優秀性】
](https://qiita.com/bonjiko/items/ce4202384e7e04dcc323)

記事内でワークロードという言葉が頻繁に出てくるので、ここで解説を入れておきます。
> **ワークロードとは:**
ビジネス価値をもたらすリソースとコード (顧客向けアプリケーションやバックエンドプロセスなど) の

元記事を表示

AWS SAM 覚え書き

SAM の記事なんて今さらですけどねー。今まで長らくお世話になってきた Serverless Framework が v4 からはどうも商用では有償になるらしいですし(厳密には組織の収益規模によるようですが、細かいことは気にしない…)、Serverless Framework を使い続けることで Dependabot くんに「脆弱性あるよ早く対処しな!」と頻繁にせかされるのもいいかげんしんどくなってきたので、SAM に乗り換えるのもいいかな、と。 ~~CDK はコードをぐちゃぐちゃ書かないといけないのでメンドクサイ~~

ここでは、忘れそうになることを箇条書きでメモするだけです。役に立つ記事とかそういうのはよそを当たってください…。

## Lambda 実行ロール

Lambda 実行ロールへの基本的な管理ポリシーの付与は SAM が暗黙にやってくれるので、S3 とか DynamoDB とか自分のリソースへのアクセス権限をポリシーテンプレートなりなんなりで追加すればよい。

– 何も書かなくても、自動的に `AWSLambdaBasicExecutionRole` ポリシーが付与され

元記事を表示

「Setting up a Redis Cluster for scalability and high availabilit」をAWS CLIでやってみる

https://aws.amazon.com/jp/getting-started/hands-on/setting-up-a-redis-cluster-with-amazon-elasticache/

上記、「Setting up a Redis Cluster for scalability and high availabilit」 をAWS CLIでやってみる

:::note warn
**CloudShellから実施**
CloudShellはタブを2つ使用
タブ1:AWS構築用
タブ2:EC2操作用 (Session Manager接続)
:::
# VPC作成
:::note info
ハンズオン用のVPCを作成
:::
## 変数 (タブ1)
“`bash:コマンド
# VPC名
VPC_NAME=”handson-vpc” \
&& echo ${VPC_NAME}

# サブネット名
SUBNET_NAME_0=”handson-pub-1a” \
&& echo ${SUBNET_NAME_1}

SUBNET_NAME_1=”han

元記事を表示

AWS Security Hubのスクリプトでの招待と承認について(初心者向け)

最近、Security Hubの招待と承認を行ったので、備忘録として残したいと思います。

本記事では、AWS Security Hubの概要と、複数アカウントを効率的に管理するための招待・承認プロセスについて詳しく解説します。さらに、このプロセスを自動化するためのAWS CLIコマンドとシェルスクリプトの実装方法も紹介します。

## 1. AWS Security Hubとは

AWS Security Hubは、AWSが提供するセキュリティ管理サービスです。
このサービスを使用することで、組織内の複数のAWSアカウントとワークロードのセキュリティ状態を一元的に把握し、管理が可能になります。Security Hubは、AWSのセキュリティベストプラクティスや業界標準に基づいてセキュリティチェックを実行し、潜在的な脆弱性や設定ミスを特定します。また、他のAWSセキュリティサービスやサードパーティ製品からの情報を集約し、包括的なセキュリティ概要を提供します。

## 2. Security Hubの基本概念

Security Hubを効果的に活用するには、いくつかの基本概念を理解する

元記事を表示

初めてのAssume Role

ASSUME ROLEについて調べたので、備忘録としてまとめたいと思います。

## ASSUME ROLEとは何か?

ASSUME ROLEは、AWSのサービスの1つで、一時的に別の権限セットを使用できるようにする機能です。簡単に言えば、普段はできないことを、一時的に特別な許可をもらってできるようにする仕組みです。

例えば、会社のオフィスを想像してみてください。通常、一般社員は自分のデスクがある部屋にしか入れません。でも、特別な仕事のために社長室に入る必要がある場合、一時的に社長室の鍵を借りて入室することがあるでしょう。ASSUME ROLEは、このような状況をAWSの世界で実現する機能なのです。

## ASSUME ROLEの主な目的

1. セキュリティの強化:
必要な時に必要な権限だけを与えることで、セキュリティリスクを減らします。常に全ての権限を持っているよりも、必要な時だけ特別な権限を持つ方が安全だからです。

2. 柔軟な権限管理:
様々な状況に応

【AWS入門】NATから紐解く、NATゲートウェイ

## なぜNATから説明するのか
ネットワークの知識があまりないけど、NATゲートウェイを利用してインフラを構築しようと考えている方や、必要か検討したい方に向けて書かれた記事です。

NATゲートウェイの仕組みを少しでも理解できれば自分でエラー解決や必要か検討することのできる判断力がつくのではないかと思い調べたので共有していこうと思います。

## 使用される用語

IPアドレス

– **定義**: インターネットやローカルネットワーク上で、デバイスを識別するための番号。IPアドレスは、インターネットやネットワークでデータを送受信する際に、どのデバイスが送信者や受信者であるかを特定するために使われます。
– **役割**: コンピュータ、スマートフォン、サーバーなどが相互に通信するために必要です。IPアドレスはデジタルの「住所」と考えることができます。

プライベートIPアドレス

– **定義**: 自宅や企業内など、内部ネットワークでの

S3のバケットの種類フローチャート

SAA-03勉強中メモ

# S3のバケットの種類を決定する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2950120/6fdc6d45-8fca-b021-e090-a116fa1a7565.png)

IA = Infrequent Access (低頻度アクセス)

– 基本3AZ
– 耐久性は全て99.999999999% (11 ナイン)
– オブジェクトは1ファイルにつき5TB

参考

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html

https://aws.amazon.com/jp/s3/storage-classes/

Amazon EC2 で高価なインスタンスが自動終了するようにする

## モチベーション
* Amazon EC2 (AWS) で高価なインスタンスを実験などのために一時的に使いたい場合がある
* 終了 (termination,インスタンスを破棄すること) し忘れると高額な利用料金が発生してしまう

## 解決法
* あらかじめ,利用したいインスタンスタイプなどを指定したテンプレートを作成する
* テンプレートで,cloud-init の設定を利用して一定時間でシステム終了するように設定しておく
* テンプレートの shutdown behavior を Terminate にしておくとシステム終了すると自動で Terminate される

## 手順
![Screenshot 2024-08-18 at 4.02.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653437/a58b1e23-5b26-399c-65b4-1447bdd110ce.png)

1. EC2 Launch Template を作成する画面を開く
1. インスタンスタイプやネットワ

[AWS]Lightsailで安くて簡単にクラウド環境を構築

# はじめに
以前、EC2を1個作成し月4千円程度の課金をされたことがあり、EC2を利用してポートフォリオ用のwebサイトを作成することはしばらく断念していた。安くて簡単に、固定価格で利用できるクラウドサービスを探していた結果、AWSで提供するLightsailを見つけた。
会社の業務などで利用することはないと思うが、個人で利用する分にはちょうど良いと判断。実際にさわってみる。

## Lightsailメリット
– 固定価格で利用ができる
– 設定が簡単・楽
– ポートフォリオ向け

## Lightsailデメリット
– 高度な設定ができない
– 業務での利用機会はない
– 停止中でも課金が発生する(削除で課金がされない)

## Lightsailホームページに行く

https://lightsail.aws.amazon.com/
すでに2つのインスタンスが存在する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821152/505d04aa-d124-9772-5cfb

【MySQL8.4】EC2でMySQLのMaster、Slave構成を構築してみた

MySQLのMaster、Slave構成を構築の勉強するために、
AWSのEC2上にMySQLをインストールし、
Master、Slave構成を構築しました。
レプリケーション実行するまでの手順をこちらで紹介します

## インストール先準備

EC2を2台準備します。
セキュリティグループはログイン用にSSH(22ポート)、MySQLAurora(3306ポート)を許可します。
※今回EC2の準備方法については割愛します。

## MySQL Community Serverインストール

公式サイトから対象OSに対応したRPMをダウンロードしておくこと

[https://dev.mysql.com/downloads/repo/yum](https://dev.mysql.com/downloads/repo/yum/)

### インストール(Master、Slave共通)

“`bash
# パッケージアップデート
$ sudo dnf update -y
# MySQLリポジトリインストール
$ sudo dnf localinstall mysql84-communit

S3とGitHub Actionsを使った静的Webサイトのデプロイは思ったよりも簡単だった!

こんにちは!この記事は、私が初めてAWSのS3とGitHub Actionsを使って静的Webサイトをデプロイした時の備忘録です。今回はAstroを使ってWeb作成をしてみました。結論から言うと、S3を使ったCICDは想像以上に簡単でした。ここでは、私が行った手順を説明していきます。

## 前提条件

このガイドを進める前に、以下のツールとアカウントが必要です:

– コマンドラインインターフェース(CLI)の基本的な操作スキル
– Git(バージョン管理システム)
– AWS CLI(インストール済み)
– AWSアカウント
– GitHubアカウント
– Node.js(プロジェクトに応じたバージョン)
– 静的サイトジェネレーター(例:Astro)の基本知識
※ フレームワークは使いたいのを使ってください。

上記の準備ができていることを確認してから、以下の手順に進んでください。

# AWSとGitHubを使用した静的Webサイトのデプロイ手順

## 1. IAMの作成
クレデンシャルの情報を取得します。
– 起動経路:
– IAM > ユーザー > アクセスキー

RDS のエンジンバージョンアップグレード時にはパラメータグループを確認しよう!

## 概要

RDS を運用していると、エンジンバージョンのアップグレードが必要になります。単にエンジンバージョンを変更するだけでは問題が起きる可能性があるため、パラメータグループを確認しましょう。今回はその確認に便利なパラメータグループの比較機能を紹介します。

![overview.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3852183/0f21f98f-6433-cd6e-09f8-4c0d66d09ada.png)

### パラメータグループとは

パラメータグループとは、DB インスタンスやクラスターに適用されるエンジンの設定値の集合です。RDS の作成時に特に設定していなかった、という場合はデフォルトのパラメータグループが割り当てられているはずです。DB のパラメータは動作やパフォーマンスのチューニングに重要な要素です。

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/parameter-groups-ov

EventBridge のフィルターにプレフィックス・サフィックス・以外・大文字小文字無視の条件が追加されました!

## 概要

Twitter で EventBridge のルールのフィルタリングがパワーアップしたとの情報をキャッチし、実際に調べてみました!

## ドキュメント確認

AWS の公式ドキュメントを確認すると `Prefix matching`, `Suffix matching`, `Anything-but matching`, `Equals-ignore-case matching` が追加されています!

https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-pattern-operators.html

## 実際に確認

EventBridge で実際にイベントパターンを作って確認します。今回はサンプルイベントに `EC2 Instance Launch Unsccessful` イベントを選び、ASG 名を `anything-but` および `prefix` 条件でフィル