AWS関連のことを調べてみた2022年09月05日

AWS関連のことを調べてみた2022年09月05日

NGINXをリバースプロキシにしてOpensaerchに接続する。

どうも、「病院なび」の開発チームメンバー甘利です。
猛暑の夏が過ぎ去り、秋の足音が近づいてきている気がします。

今回は認証に AWS Opensearch にリーバースプロキシを設定していこうと思います。
認証サービスには Cognito 、リーバースプロキシには NGINX を設定します。

とはいえ、[公式ドキュメント](https://aws.amazon.com/jp/premiumsupport/knowledge-center/opensearch-outside-vpc-nginx/)の通りに設定するだけです、、がはまりましたので、記事にしておきたいと思います。

# パスワードの再発行画面にいこうとすると、404エラーになる。
Cognito を利用しているとOpensearch dashboard にアクセスした際に以下の様な認証ダイアログが表示されます。自分で設定しておいてアカウント忘れたので、「Forgot your password」 をクリック!

![スクリーンショット 2022-08-22 8.07.56.png](https://qiita-image

元記事を表示

Aws::Sigv4::Errors::MissingCredentialsError

# Aws::Sigv4::Errors::MissingCredentialsError」
AWSのEC2のデプロイで、エラーの原因が分からなくて苦労したので備忘録。
EC2へデプロイ時に「Aws::Sigv4::Errors::MissingCredentialsError」が出るので、
.envに原因があるのでは?と思い、AWS_ACCESS_KEY_IDを小文字から大文字に変えたり、
あらゆる記事で記述方法を確認しても、、ずっと同じエラー文。。。

### 結論
先に結論から書きます。アプリのrake secretが、インスタンスを再起動したら、なぜか乱数が変わっていて、エラーが出ていました。EC2のsecrets.ymlを新しく生成されたものを記述し直して、デプロイをすると成功しました。

今回私がエラー発生から解決まで打ったコマンド

[ローカル]
“`
$ bundle exec rake secret
“`
→ 乱数をコピーしておく

[EC2にて実施]
secrets.ymlファイルディレクトリに移動する。
“`
$ cd /var/www/アプリケーション名/

元記事を表示

Amazon Pollyに英語のスクリプトを読み上げてもらう

## TL;DR
– Amazon Pollyを使うと流暢にスクリプトを読み上げてくれる。休みを入れたりとか細かい制御も[SSML (Speech Synthesis Markup Language) ](https://docs.aws.amazon.com/ja_jp/polly/latest/dg/supportedtags.html)を使って制御できる。ただ細かい単語を期待通りに一発で読んでくれないこともあるので試行錯誤ができるように変換スクリプトを用意しておくと便利でした。

## やり方
1. Amazon Pollyに話してほしいスクリプトを作成
2. Amazon Pollyにスクリプトを音声に変換してもらう
これだけ

### Amazon Pollyに話してほしいスクリプトを作成
[SSML (Speech Synthesis Markup Language) ](https://docs.aws.amazon.com/ja_jp/polly/latest/dg/supportedtags.html)でタグを付けてあげると細かい制御ができます。
全然難しくなくて単な

元記事を表示

AWS環境で IoT デバイスの監視を行う際に役立ちそうなツールの紹介

AWS 環境で IoT デバイスの監視を行う際に役立ちそうなツールを調べていたところ、 `amazon-cloudwatch-publisher` というツールが GitHub の [AWS Labs リポジトリ](https://github.com/awslabs) にて公開されていたので、勉強がてら検証してみました。

### ・amazon-clourwatch-publisher

[GitHub – awslabs/amazon-cloudwatch-publisher: Push metrics and logs to CloudWatch from any system that can run Python](https://github.com/awslabs/amazon-cloudwatch-publisher)

## 何ができるのか?

デバイス内のログファイルや、CPUやメモリ使用率などのメトリクスデータを、簡単に CloudWatch に連携できるようになります。

**・ログファイル**
![image.png](https://qiita-imag

元記事を表示

VPC Flow LogsのTCPフラグを真面目に調査してみた

## はじめに
社会人 20 年、AWS をお触りするようになり 10 年が経ちました。
これまで AWS の **VPC Flow Logs** のお世話になってきました。

しかし、通信の行きと戻りを意識したり、順次追加されてきた
カスタム形式のログフィールドについて、じっくりと観察したことがありませんでした。

ということで、今回はいくつかのシナリオでトラフィックを流してみて
特に **TCPフラグ**がどのような値になっているか見てみました。

**【参考】**
・ [VPC フローログを使用した IP トラフィックのログ記録][00]

## 利用環境
・ Private subnet に EC2 インスタンスを2台用意し、VPC Flow Logs は CloudWatch Logs に出力する構成としています。
・ vm01 から vm02 に対して、PING や SSH (SFTP) で通信できるようにセキュリティグループを設定しています。
・ VPC Flow Logs は VPC に対して作成しています。

**【構成図】**

元記事を表示

IAMユーザーに有効期限を設定する

## 経緯
社内で使用しているAWSのIAMユーザーに対して、使用者の契約期間に紐づいた有効期限を設定する必要がでてきたため、IAMポリシーにて実装したメモ。

## 前提
・社内ADを使用できないため、AWS内での実装が必要。
・使用人数が多くないこともあり、簡単にあまり労力を費やさずに実装したい。

## どう対応したか
新規でIAMポリシーを作成しIAMグループに紐づけて対応。
既に複数のIAMポリシーを適用しているため、指定した日時を超えると与えている権限もすべて拒否されるように実装。
(IAMポリシーはAllowよりもDenyが優先されるため。)

## 実際のJSON
“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Deny”,
“Action”: “*”,
“Resource”: “*”,
“Condition”: {
“DateGreaterT

元記事を表示

StepFunctionsでLambdaの並列処理をしたかった話

### やりたいこと
1. DBに保存されているトークンを取得し、トークンごとに複数の外部APIを実行したい。
1. APIの実行でエラーとなった場合に全体の処理を止めたくない。
#
### StepFunctionsにおける並列処理
StepFunctionsには並列処理を行うTypeとして、ParralelとMAPがあります。

Parralelは同じ入力を使用してブランチごとに定義した処理を実行するのに対し、MAPは配列の要素ごとに同じ処理を実行するという違いがあります。

[Parallel](https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/amazon-states-language-parallel-state.html)
[MAP](https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/amazon-states-language-map-state.html)

今回はParallelとMAPを組み合わせて使うことにしました。
#
###

元記事を表示

Amazon S3 Presigned URLのアクセス制御を深堀りする

# はじめに
S3へのアクセスを制御するために様々な機能がありますが、これらはIAMのアクセス制御と混同して考えられることが多く、両方の機能の関連について、質問を非常に多く受けています。
以前に [S3のアクセス制御はまずシンプルに捉えて対応すべき](https://qiita.com/nasuvitz/items/eccdf9449b00966a0c6a) という記事を書きましたが、この記事に書いたように、S3バケットポリシーとIAMポリシーには以下のような違いがあります。

* S3バケットポリシーは、S3側で、エンティティから行われるアクセスの制御
* IAMポリシーの場合、エンティティ側で、S3に対して行うアクセスの制御

このように、両者では設定箇所および制御する操作の矢印の方向が異なります。

基本はこの2つでS3バケットやオブジェクトに対するアクセス制御を行いますが、この2つに加えて、全く異なるアクセス制御の要素が加わることがあります。

その代表例と言える **「Presigned URL」** を今回は取り上げます。

# Presigned URLとは
**誰でも一

元記事を表示

データを管理するシステム

# データベースとは
ソフトウェアは、大量のデータを扱うときにデータベースを使用する。
データベースとは、**構造的に整理されているデータの集合体**。
# データベースとDBMS
データベースとはあくまで「データの集合体」であり、それ自体にデータを操作するようなシステムはない。実際に操作するのは**データベース管理システム(データベースマネジメントシステム「DBMS」)**。データベースに命令する際に使われる言語の一つが、**SQL**。SQLは標準化されているため、どのDBMSも概ね同じ書き方をする。
# DBMS(データベースマネジメントシステム)
DBMSには有償のものと無償のものがある。
有償のDBMS・・・Oracle Database,SQL Server
無償のDBMS・・・My SQL,PostgreSQL,MariaDB
それぞれのDBMSの機能で大きな違いはないものの、一部機能や速度、安全性、スケール化など得意とする機能に若干違いがある。
大規模なシステムの場合は、サポートを受けやすいことから、有償のDBMSを選ぶことが多く、小規模のシステムの場合はコストのメリッ

元記事を表示

pythonを使ってAWSのログのインサイトを実行し、結果をCSVファイルで出力する

## 背景、目的
AWS環境を使用したWebサイトを提供しており、日次の運用としてエラー有無、内容の調査を行います。
エラーが出ている場合(基本はなにかしらのエラーが出ている)は、どのようなエラーであるか、対応が必要であるかを判断します。

その前段のエラー有無を取得するためにCloudWatch Logsを使用しているのですが、毎回以下の操作を行います。
– ブラウザを開いてコンソールへログイン
– CloudWatchを開いてログのインサイトを選択
– 対象日時を範囲選択
– 保存済みのクエリから対象を選択
– 実行して結果が出るのを待つ
– 結果をダウンロード

「保存済みのクエリから対象を選択」以降は複数回実行します。
この後にエラー有無と対応要否を判断します。

毎日やる作業と考えると結構しんどいです。

## 環境
| key | value |
| ——– | ———— |
| OS | mac 11.6.1 |
| language | Python 3.9.1 |
| AWS CLI | 2.7

元記事を表示

【2022年版】Amazon EC2 超まとめ

# はじめに
AWSの仮想マシン提供サービスである**Amazon EC2**について、**2022年9月時点での機能および使用法**を、初学者でも理解しやすいことを心掛けてまとめました。

各クラウドのコンピューティングサービス

**網羅度**にこだわってまとめたので、**EC2の全体像を把握したい**という方は、ぜひご一読頂ければと思います。

また、「[EC2の使用法](https://qiita.com/c60evaporator/items/06aa523c470d52782c7b#ec2の使用法)」パートでは、**公式ベストプラクティスに則った活用法**について解説しておりますので、「**現在EC2を活用しているが、適切に運用できるているか不安**」という方にも、ご一読いただけるとありがたいです。

#

元記事を表示

VPC同士の接続とVPCとVPNの接続

# VPCの接続
VPCは他のVPCやネットワークと接続ができる。
自社のVPC同士だけでなく、他社のVPCと相互に接続することもできる。
VPC同士を接続するためには、**VPCピアリング**という機能を有効にする。
また、VPCは、物理的なネットワークや他のクラウドと接続することも可能。
社内LANやオンプレミスとAWSとを接続するときは、専用線や仮想専用線(**VPN**)で安全に接続できる。
AWSでは、専用線として**AWS Direct Connect**、仮想専用線(VPN)として**AWS VPN**がある。
# 専用線と仮想専用線(VPN)
ネットワークとネットワークとを接続し、大きなネットワークにすることを**WAN(Wide Area Network)** という。
WANは昔からある概念で、本社と支社や、支社同士など、一対一でネットワーク同士を繋げる。WANを構成する方法が**専用線と仮想専用線**。
## 専用線
NTTなどの通信事業者から、安全線と呼ばれる、直結できる配線を借りて接続する方法。高価だが、安全で信頼性の高いのが特徴。
## 仮想専用線(VPN)

元記事を表示

【スマホ版AWS】AWSにスマホアプリがあって助かった話

# 先日帰省しているとき

大変なことに気が付いてしまいました。

**「やばい、RDS止めてるの忘れてた…」**

一日くらいなら許容できるかもしれませんが、帰省で一週間くらいパソコンが触れない状況下にありました。
まったく使っていないのに請求されるのはさすがにきつい。
どうにかRDSを止める方法はないのかと調べているうちに、こんなものを見つけました。

![IMG_3942.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1248795/e6bbc585-ed6b-1a47-666e-4020415e4a68.png)

「A、AWSのスマホアプリがあるだって~!?」

# スマホ版AWSコンソールアプリ

そうなんです、AWSのスマホアプリがありました。

iPhone版はAppStoreから、Android版はGooglePlayStoreから無料でダウンロードできます。

またiPhone版ではFaceIDを使って簡単にログインできます。

### 画面構成

![IMG_3943_LI.j

元記事を表示

AWSのt2micro上でnpm run build ができない【備忘録】

## はじめに
 AWSの無料枠であるt2microでEC2を作成した際、Reactのビルド処理がストップしてしまうことがあります。そんな時は以下のことを試してみることで解決できることがありますので、自分の備忘録のため記載しておきます。同じように困った方のお役に立てれば幸いです。

## 原因
 t2microのようなメモリが少ないインスタンスタイプの場合、多くのメモリを必要とするビルド処理が行えない場合があります。

 私はReactアプリを起動するためにnpm run buildを行なったところ、処理がいつまでも終わらず苦労しておりました。。

## 対策
上記のような事象があった場合、スワップメモリを増やして回避するようにします。
スワップメモリの設定を行うことで、メモリを多く必要とする処理も動くようになることがあります。

“`
# 4GBのスワップファイルを作成(メモリが少ないのでbsが多いと失敗する)
$ sudo dd if=/dev/zero of=/swapfile bs=1M count=4096

# 読み書き権限の設定
$ sudo chmod 600 /sw

元記事を表示

はじめてのAWS設計・構築で学んだこと

AWSの経験、4ヶ月が経ち、振り返ると大変貴重な経験を積ませてもらいました。

SESで本来は即戦力にならなければならないといけませんが
現場のPM、リーダーの方にはとてもお世話になっています。

いくつかタスクが割り振られていますがその中でとても濃い経験になったのは、やはり設計・構築のタスクです。

ある程度、SAAで知っていたものの、実践してみると全く違います。

構成図のパワポから必要なサービスを洗い出し、命名規則から一緒に取り組む経験ができました。

はじめてのAWS設計と構築で僕の覚えている範囲で学んだことをシェアしたいと思います。

## どんな環境だったか
今回は開発環境の構築、踏み台サーバをパブリックサブネットに設置
プライベートサブネットに5つのサーバーを設置
もう一つのプライベートサブネットにRDSを設置する。

AZ障害を防ぎたいのでサブネット3つ×AZ2で作成する必要する。

極めてシンプルな設計です。

## 利用したサービス

・EC2
・RDS
・S3
・SNS
・CloudWatch
・EventBridge
・IAM

AWSの基本的なサービスだけで

元記事を表示

【AWS SAA合格体験記】AWS未経験から1か月でSAAに合格した話

# 初めに
はじめまして、記事をご覧いただきありがとうございます。
Qiitaが初投稿となりますので、温かい目で見ていただけると幸いです。

本記事では少し前のことになりますが、私がAWS未経験から 2022/6/13 – 2022/7/15 の約一か月間で、
「AWS Certified Solutions Architect – Associate」(通称、SAA)
に833点で合格しましたので、これから受験される方に向けて、試験概要や勉強方法、やってよかったことなどを共有します。

# AWSSAA試験の概要
まず、AWSSAA試験の概要について説明します。
詳しい情報につきましては、以下をご確認ください。

https://d1.awsstatic.com/ja_JP/training-and-certification/docs-sa-assoc/AWS-Certified-Solutions-Architect-Associate_Exam-Guide.pdf

AWSSAAの試験ガイドによりますと、
>AWS Certified Solutions Architect –

元記事を表示

【短期間の学習でも合格可能!】AWSのクラウドプラクティショナー試験を受けてみた

2022年8月29日、クラウドプラクティショナーに合格しました!

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2729568/7d97705a-49f5-5082-3e9c-9d5819742b9f.png)

受験の目的は、AWS サービスパートナーティアの知識要件を満たすことでしたが、
* AWSについて体系的に学習したい方
* 未経験からのエンジニア転職を志す方

にとっても学習することは有益だと感じたので、学習の振り返りを記事にしました。

学習時間は30時間~50時間程度あれば合格ラインに達するという肌感覚です。

| 目次 |
| —- |
| [1.学習スケジュール](#1-学習スケジュール) |
| [2.学習教材](#2-学習教材) |
| [3.学習ロードマップ](#3-学習ロードマップ) |
| [4.おわりに](#4-おわりに) |

# 1. 学習スケジュール
– 8/1~8/5 試験内容の確認と学習方法の調査
– 8/6~8/28

元記事を表示

API Gatewayを環境構築しながら学ぶ

「APIを実装する」ということが良く分からなかったため
一度環境構築してみることで理解を深めた際のメモです。
AWSの無料利用枠で試してます。
– **最終目標**

AWS API Gateway と AWS Lambda で `Hello Nodejs!` を出力する

## 1. Lambda関数の作成
API Gatewayを作成する場合、API Gatewayのバックエンドを指定しないといけません。
そのバックエンドをLambda関数としたいので、その関数※を作成します。
※API Gatewayからのデータを受け取り、そのまま返すLambda関数

– 関数の作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1665304/6ecae22d-8e8b-30a2-1400-0a27e6efaaa6.png)

> – apiGateWayTestという関数名で作成
![image.png](https://qiita-image-store.s3.ap-northeast-

元記事を表示

QuickSightのデータセットの更新をStep Functionsでノーコードで出来るようになった話

# はじめに
先日、AWS Step Functionsで使える組み込み関数が増えました。

https://dev.classmethod.jp/articles/aws-step-functions-14-new-intrinsic-features-process-data-workflows/

https://aws.amazon.com/jp/about-aws/whats-new/2022/08/aws-step-functions-14-new-intrinsic-features-process-data-workflows/

以前、「Step FunctionsでQuickSightのデータセット更新を行う際、ランダム文字列が必要でLambdaを使う必要がある」という内容の記事を書きました。

https://qiita.com/a_b_/items/2adee15fc693307f95da

今回のアップデートで追加された組み込み関数を用いることで、ノーコードでStep FunctionsからQuickSightを更新できるようになりました。

# やったこと

元記事を表示

IAMロールを使って、別アカウントに権限を移譲する

# 別アカウントに権限を移譲するためのIAMロールを作成する
AWSマネジメントコンソールにログインしてください。
IAMダッシュボードのロールをクリックしてください。
ロールページが表示されます。
[ロールを作成]をクリックしてください。
![スクリーンショット 2022-09-01 6.33.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/14202/2ded8dea-5e92-deff-d716-dedc3699cb4e.png)

信頼されたエンティティタを選択ページが表示れます。
信頼されたエンティティタイプで、[AWSアカウント]をチェックしてください。
![スクリーンショット 2022-09-01 6.34.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/14202/9b588113-e1ce-8aaa-f1a1-2744f2cce86a.png)
AWSアカウントで、[別のAWSアカウント]をチェ

元記事を表示

OTHERカテゴリの最新記事