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

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

AWSを基本的にまとめてみた【Config】

## Config とは?

## Config ルール

## Config アグリゲータ

## 参考サイト
[【AWS Config】ソリューションアーキテクト アソシエイト(SAA) 第37回講座](https://www.youtube.com/watch?v=Jf0bwWBiDyc)

元記事を表示

AWSを基本的にまとめてみた【RDS】

## RDS(Amazon Relational Database Service)とは?

– (AWS) が提供するクラウドベースのリレーショナルデータベースサービス
– RDSでは、PostgreSQL, Amazon Aurora, Oracle, Microsoft SQLServer, MySQL,
Mria DBの6種類を使用することができる

## RDSの種類

(1) リードレプリカを使用することで、大量の読み込みリクエストが来た際も分散処理ができ、パフォーマンスを落とさず処理することができる。
※ リードレプリカ・・・読み取り専用のデータベースを使用することができる

(2) マルチAZ構成:RDS構築時にマルチAZを有効化すると自動的に異なるAZに2台のRDSが構築される。

(3) 自動バッグアップ。

(4) メンテナンス:RDSでは、サーバーのOSは利用者の管理対象外になる。

(5) ストレージ拡張:RDSでは、起動したままのストレージ容量を拡張できる。
※ 容量を少なくすることはできない。容量を少なくするには、新規にRDSを構築してデータを移行する必要

元記事を表示

IBM CloudとAWSのコンテナプラットフォーム調査メモ

# はじめに

コンテナを動かしたくて、コンテナを動かすクラウド環境(IBM Cloud と AWS)について調べました。
特に簡単にコンテナを動作できる軽量コンテナプラットフォームについて整理します。

※ IBM Cloud よりの内容になってます。

# 概要
まずは、コンテナプラットフォームについて全体と軽量なコンテナプラットフォームについての概要です。

## 環境
IBMとAWSのコンテナプラットフォームは以下のようなものがあります。
大きく、軽量コンテナプラットフォーム(Code Engine等)、自社特有のコンテナプラットフォーム(ECS)、Kubernetes、RedHat OpenShiftがあります。

– IBM
– IBM Cloud Kubernetes Service (IKS)
– Red Hat OpenShift on IBM Cloud (ROKS)
– IBM Cloud Code Engine
– AWS
– Amazon Lightsail Containers
– Amazon Elastic Beanstalk

元記事を表示

AWS・Azureのネットワーク系セキュリティサービスをまとめてみた

## はじめに
AWS・Azureのネットワークセキュリティサービスって覚えにくくないですか?
何のサービスが何を保護してくれるのか、今回改めてまとめてみました。

## 一般的に利用されるネットワークセキュリティ
前提として一般的なネットワークセキュリティの知識を少し書きます。
### ファイアウォール
ファイアウォールはネットワークレベルでトラフィックを監視及び制御します。
通信の送信元情報と送信先情報(IPアドレス、ポート番号等)を基にして、アクセスを制御します。
不正アクセスやネットワーク攻撃からネットワークを保護することが主な目的です。

### WAF
Web Application Firewallの略であるWAFはその名の通り、Web アプリケーションのセキュリティを強化します。
Webアプリケーションレベルでの攻撃(SQLインジェクション、クロスサイトスクリプティング等)を検出及び防御します。
Web アプリケーションの脆弱性を保護することが主な目的です。

### IDS/IPS
IDS/IPSはネットワークやOS・ミドルウェアへの攻撃を検知・防御します。
IDS(

元記事を表示

AWS Lambdaで、LINE Botにローディングアニメーションを表示

# ローディングアニメーション
Messaging APIに、ローディングアニメーション表示機能が追加されました。

https://developers.line.biz/ja/news/2024/04/17/loading-indicator/

メッセージを送信してから返答が来るまでの間、指定した秒数だけローディングアニメーションが表示されます。また、表示中に返答が来ると自動的に消えます。

loading_animation.gif

# 実装
既にGASで実装した記事は出ているため、今回は、AWS Lambdaで実装しました。
ローディングアニメーションの部分だけ抜き出すと下記のようになります。

UserIDは環境変数から取得しています。

“`lambda.py
# LINE Botの設定
li

元記事を表示

AWS CLIを使ってIAMユーザとIAMグループを作成する

# AWS CLIでIAMユーザとグループをシンプルに作成する

– AWS公式に載っているようなシンプルなコマンドを使って、初心者でも簡単にIAMユーザ、IAMグループを作成していきます。
– 業務でIAMユーザーの作成が必要になったのですが、調べても小難しい技がくっついているような記事が出てきてしまい「良く分からない」となってしまったので、初心者でもわかるような感じで書きたいと思います。(自分も初心者)
– AWS CLIの設定などは済んでいることを前提としています。

## まずはIAMグループを作成

`Test-IamGroup`の部分には設定したいグループ名を入れてください。

“`
$ aws iam create-group –group-name Test-IamGroup

{
“Group”: {
“Path”: “/”,
“GroupName”: “Test-IamGroup”,
“GroupId”: “**************”,
“Arn”: “arn:aws:iam::0000

元記事を表示

AWSを基本からまとめてみた【ELB】

## ELB(Elastic Load Balancing)とは?

– AWSが提供しているロードバランサのサービス
– 負荷分散(2代以上にアクセス分散・マルチAZ対応)ができる
– 正常なインスタンスにリクエスト(ヘルスチェック)
– マネージドサービスなので管理不要
– ELB自体もスケーラブル
– 空きIPアドレスが8つ必要(最低でもサブネット毎に/28(この場合はELB1台))
– オートスケーリングと組み合わせられる(必要時にターゲットを増減)

※ ロードバランサ・・・システム負荷のバランスをとるために処理を分散
※ リスナー・・・internet->ELB 対応するプロトコル、ポート番号
※ ターゲット(グループ)・・・ELBが通信を転送するEC2など

## ELBの種類
– ALB(Applicaton)・・・レイヤー7HTTP, HTTPSなどを負荷分散するロードバランサでwebアプリケーションによく利用する
– NLB(Network)・・・レイヤー4TCP, UDPなどで動作し、静的なIPアドレスを見るので、ALBのような細かい振り分けができないが、1秒あた

元記事を表示

AWS Builder Cards体験会に参加してみた

# はじめに

AWS Builder Cards(非売品)を持っている先輩がtimes(※)で、体験会の参加者を募集したので参加してみました。

一緒に参加したam_i-12さんの記事は以下からどうぞ!

https://qiita.com/am_i-12/items/a5b90db2ba372418f163

※社内個人チャンネルのことで、X(旧Twitter)のようなもの。弊社のtimes文化についての詳細はこちら!

https://qiita.com/satomihoya/items/b125e1eaf44c4a643e6e

https://qiita.com/autotaker1984/items/79576581e239244772f1

# AWS Builer Cardsについて
AWSのサービスのアーキテクチャを学べる、2~4人の対戦型カードゲームです。
AWSの公式サイトでは以下の魅力を謳っています。

> Play your deck like you draw your AWS Architecture diagrams
理想のアーキテクチャ図のデッキを作

元記事を表示

EC2とRDSでWeb環境構築するよ!(第3回:Route53編)

EC2とRDSのWeb環境構築の第3回目です。
第2回:EC2編はこちら
https://qiita.com/kikurage2030/items/e2a9e0197525d9b145f1

## サービスの全体象
作りたいサービスの概要はこんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3785085/6a6930a9-e068-006e-a019-a6f87cea52a9.png)

EC2にWebサーバを立ててPHPのプログラムがMySQLにアクセスしてテーブルの情報を表示する画面を作ります。
いわゆる一般的なWebシステムの構成でWebサーバはPublicサブネットに公開し、DBサーバはPrivateサブネットでEC2のみのアクセスを許可する制御とします。また独自ドメインを取得してDNSでの名前解決も行えるようにします。

このシリーズで取り組む内容は
第1回:VPC・サブネット周りの作業
第2回:EC2の構築
第3回:Route53

X-RayはpytestとFlameGraphを組み合わせると便利

## この記事を3行で

– AWS X-Rayをpytestで使うと便利
– 関数の通過や例外の発生をassertでテストできる
– X-Rayの可視化にFlameGraphを使えば、各関数の実行時間が分かりやすい

## この記事を書く理由

AWS X-Rayが便利なので、AWS環境へのデプロイの前でも使える使い方を紹介したい。

## 完成後の挙動

この記事で作成する単体テストを、Pytestで実行すると、

![execute.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233180/f3d309e4-2737-8b2a-f4b3-ff0cbd87fa3b.png)

単体テストが吐き出したX-Rayのデータをもとに、下のようなグラフがローカルのPC上に作成されます。

![flamegraph.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233180/009b688e-09db-f109-40ee-b4

Amazon WorkspacesをEntraIDでSAML2.0認証

## WorkspacesでMFAの設定は面倒
代表的なDaaSであるAWSのWorkspacesとAzureのAVD。
主な違いは
| Workspaces | AVD |
|:———–|:———–|
| Windows Serverのみ | Windows10/11利用可 |
| 1台=1人の占有 | 1台=複数人の共有もOK |
| 認証は内部 or AD | 認証はEntra ID利用可脳 |
| MFAはRadius必要 | MFAはEntra ID依存 |

と挙げだしたらキリがないのだけど、
WorkspaceでMFAを利用するためにはRadius環境が必要。
そのRadisuサーバを個別に立てるのは面倒なので、
別の方法として、
SAML2.0の連携を行い、その連携先でMFAを設定すれば
WorkspacesでもMFAを利用可能するのでは、と思い
設定することにしてみた。

## 構成図
![workspaces-saml2.png](https://qiita-image-store.s3.ap-northeas

PythonでAWS CLIコマンド実行の練習

# 目的
PythonでAWS CLIの実行方法を覚えるために、EC2のスループット値を取得してみる

# AWS CLIコマンドの確認
下記コマンドでスループット値を取得できることを確認
“`:コマンド
aws cloudwatch get-metric-statistics \
–namespace AWS/EC2 \
–metric-name NetworkIn \
–dimensions Name=InstanceId,Value=i-085509fb0174af9cd \
–period 2628000 \
–statistics Maximum \
–start-time 2024-05-01T06:15:00+00:00 \
–end-time 2024-05-10T06:30:00+00:00
“`
“`bash:出力
(python_env) [ec2-user@ip-172-31-32-217 ~]$ aws cloudwatch get-metric-statistics \
–namespace AWS/EC2 \
–metric-nam

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

## 注意点

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

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

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

## 今回やること

今回やりたいことは前回の「Amazon AppFlowmを触ってみた」の時と同様にS3からS3に対してCSVを送ります。

ただし、その過程でpasswordのフィールドをマスクしてみようと思います!
今回使用するCSVは前回と同じ下記です。

“`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のやり取りができ

[過去記事]Amazon AppFlowを触ってみた

## 注意点

Amazon AppFlowは動作させると料金が発生します。また2022/12/07現在無料枠などの設定もありません。「誤って高額請求を発生させてしまった!」なんてことがないように注意しましょう!

ちなみにAppFlowの料金は実行料金とデータ処理料金の2種類のようです。

1フロー実行あたり 0.001USD(実行料金) + 1ヶ月あたりの処理データ量1GBあたり0.09USD(処理料金)です。更に今回はS3を使いますので場合によってはそちらの料金もかかります。

料金通知アラームなどをうまく活用して高額請求を防ぎましょう!

Amazon AppFlowの料金について↓

https://aws.amazon.com/jp/appflow/pricing/

## 今回やること

今回やりたいことを図にしてみました!今回は初めてなのでS3 → S3感のAppFlowを使ったCSVファイルの共有をしてみたいと思います。(AppFlowでのデータの加工は別の記事で実施します。今回はCSVをとりあえず移動するところまでやってみます。)

![private__Onlin

AWS RDS MySQLで権限がリセットされるようになったので対処しました

## はじめに
突然、本番環境で下記のエラーが出るようになりました。

“`
django.db.utils.OperationalError:
(1227, ‘Access denied; you need (at least one of)
the SYSTEM_VARIABLES_ADMIN or SESSION_VARIABLES_ADMIN privilege(s)
for this operation’)
“`

本番環境において、使用していた主な技術スタックは下記の通りです。
– AWS RDS (MySQL)
– Django

## 試したこと

### 1. ユーザーに権限を付与した
とりあえず `you need (at least one of)
the SYSTEM_VARIABLES_ADMIN or SESSION_VARIABLES_ADMIN privilege(s)` と書かれているので、素直に与えてみました。

“`:MySQL
MySQL [(none)]> SHOW GRANTS;
| Grants for username@%

Get-S3ObjectV2で指定フォルダ直下のフォルダ一覧を取得

AWS Tools for PowerShellで、AWS S3の指定フォルダ直下のフォルダを取得したかった。例えばバケット内に次のような構成があるとして…

“`
AWSLogs/
+– o-xxx9xxx9xx/
+– 000000000000/
| +– ap-northeast-1/
| :
+– 111111111111/
:
“`

… `AWSLogs/o-xxx9xxx9xx/` 直下の `000000000000/` `111111111111/` `…` というリストを得たい。

結論としては、以下のようにすればいい。

“`PowerShell
$objects = Get-S3ObjectV2 -BucketName $bucketName -Prefix “AWSLogs/o-xxx9xxx9xx/” -Delimiter “/” -Select CommonPrefixes
“`

`$objects` には以下が格納されている。型は文字列。

インターホンとLINEを連携するためにFlashAirをひっぱりだしてみた

## はじめに

先日、家に私一人の時に部屋で籠って仕事をしていたところ、インターホンが鳴ったことに気づかずAmazonからの荷物を受け取り損ねてしまいました。
私の仕事部屋にはリビングで鳴っているインターホンの音が届かないため、どうにかして仕事部屋に居ながらインターホンに気づくことができないかということで今回の仕組みを作ってみました。

## 使ったもの

– FlashAir W-03
– Amazon API Gateway
– AWS Lambda
– LINE Messaging API
– LINE BOT SDK
– TypeScript

### FlashAirについて

今回の仕組みの要ともいえるデバイスで、無線LAN通信機能を搭載したSDカードというニッチな製品です。
[初代FlashAirは2012年2月にリリース](https://www.global.toshiba/jp/news/corporate/2011/09/pr0101.html)とのこと。TOSHIBA(現在のKIOXIA)からの発売でした。
残念なことに既に生産が終わっているとのことですが、こ

[AWS]CLIでAmazon Linux2の最新のAMI IDを取得する

“`
aws ec2 describe-images \
–region ap-northeast-1 \
–owners amazon \
–filters “Name=name,Values=amzn2*” “Name=state,Values=available” \
–query “Images | sort_by(@, &CreationDate) | [-1].[ImageId]” \
–output text
“`
いつも、コンソールのEC2作成のところから取得していたので、CLIで一発で取得したいなと思い。

AWSコンソール アクセスIP制限

## なぜ
セキュリティ要件が中、高のAWS案件ではAWSコンソールにアクセスする際、アクセス元のIPアドレスに対して制限をかける。

## 使用するAWSサービス
AWS Identity and Access Management

## AWS設定手順
以下権限でポリシーを作成(aws:SourceIpをアクセスするIPアドレスにする)

“`json:policy
{
“Version”: “2012-10-17”,
“Statement”: {
“Effect”: “Deny”,
“Action”: “*”,
“Resource”: “*”,
“Condition”: {
“NotIpAddress”: {
“aws:SourceIp”: [
“XX.XX.XX.XX/XX”
]
}
}
}
}
“`

上記で作成したポ

XSERVERでドメインを取得し、AWSでホストゾーン登録するまで

こんにちは。takazonessです。
今回は、自身のHP開設にあたり、ドメインを取得し、AWSで管理するまでをやったので、記事として残しておこうと思います。

前提条件

・XSERVERのアカウントを作成済
・AWSのアカウントを作成済

XSERVERでドメインを取得

まず今回は、XSERVERを使用し、ドメインを取得しました。
別サービスとして、お名前.comなどもありますが、個人的に管理ページの仕様などが好きじゃないので、今回はXSERVERを使い、ドメインを取得しました。

まず管理ページにログインします。
右上のサービス管理→Xserver Domainの順番で進みます。
![0001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3740235/696e29f2-8ab5-2bb2-d946-a346917a14ce.png)
下記のページが出たら、ドメイン取得をクリックします。
![0002.png](https://qiita-ima