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

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

Amazon Managed Service for Prometheus(AMP), Grafanaを組み込んでみた

はじめに

初めまして!日鉄ソリューションズ株式会社(NSSOL) 流通・サービスソリューション事業本部 流通・サービスソリューション第三事業部 リテイルDXビジネスソリューション部 所属のharukaと申します。

私の所属する部では、業務を通じて蓄積した技術知見を社外へ発信を行う取り組みを始めました。今回その第一弾としてQiitaの記事を作成しました。

監視のお勉強として、サンプルアプリにAmazon Managed Service for Prometheus(以下AMP)、Grafanaを組み込んでみました。

※**Prometheus**→オープンソースのデータ収集ツール。サーバーのリソースの使用状況など、各種メトリクスを収集して監視ができます。

※**Grafana**→オープンソースのデータ可視化ツール。Prometheus等で収集したデータをわかりやすく可視化できます。

PrometheusはOSS版もありますが、今回はAWSサービスと組み合わせるためAWSマネージド版のAMPを使うことにしました。

Grafanaは今回OSS版をAmazo

元記事を表示

インターネットに繋がらない原因はWifiのせいではない ERR_ADDRESS_UNREACHABLE

朝から仕事にならなくて困っていませんか…?

自宅のWifiが不調なのかなとACアダプタを抜き差ししてました…
スマホからLINEはみれるのに、PCからSlackに接続できないので、Wifiのせいかなーと思ったんですよね…

## 現時点でAWSに接続できません。
お気づきの方も多いかと思いますが、インターネットインフラの根っこである(と私は思ってる)アマゾンウェブサービスに接続できなくなっています。

この記事を書いたのは2022年9月6日火曜日の朝です。

# 落ちてるサービス

以下のサービスが落ちてます…?
– https://aws.amazon.com
– https://www.amazon.co.jp
– https://www.nicovideo.jp
– https://github.com
– https://www.chatwork.com
– https://dashboard.stripe.com
– https://login.skype.com
– https://bank.gmo-aozora.com
– https://fantia.

元記事を表示

個人サービス「Circuit Junction」開発記録(Vue.js , Laravel , AWS)

# 挨拶
はじめまして。たしろと申します。
人気のフレームワークであるLaravel+Vue.jsを使った個人サービスを開発いたしましたので、紹介させていただきます。

# 自己紹介
経歴:工業高校卒業後、製造業メーカーに勤務
年齢:27歳
趣味:車 , バイク , キャンプなど

# 開発したサービスについて

### サービス名:*Circuit Junction*

URL : https://circuit-jct.com
GitHub : https://github.com/KyoheiTashiro/PF1

### サービス概要

全国各地で開催されているサーキット走行会の情報を、
まとめて閲覧・管理できるサービスです。

### 作った理由

私の趣味の1つに、車でのサーキット走行があります。
そのサーキット走行ができるイベントのことを走行会といいます。
現状で走行会の開催情報を新たに調べようとすると、下記のようなことが起こります。

1. いくつかある走行会の主催団体のWebサイトを渡り歩き、日程や開催コースなどの情報を見比べないといけない。

2. いくつかあるW

元記事を表示

SAMのAutoPublishAliasでバージョンがうまく発行されないときの対処法

# はじめに
みなさま,こんにちは.
[株式会社オプティマインド](http://www.optimind.tech)にて,GISエンジニアをしている@tkmbnです.

# 概要
SAMを用いたLambdaのデプロイ時にAutoPublishAliasを利用すると,うまくバージョンが発行されないときがありました.
対処法をいろいろと探っていたところ,良さそうな対処法を見つけたので,ご紹介いたします.

# なぜ書いたか
SAMを用いて,Lambdaをデプロイしたが,以下のパターンのときに,うまくバージョンが発行されませんでした.
– Layerの中身のみ変更
– Lambdaの環境変数のみの変更

手動で,バージョンを発行し,エイリアスに設定をすれば,やりたいことはできるんですが,
CanaryDeployが適用できないのが課題でした.

# 本題
## 現状の環境
– SAM テンプレートの内容
– API Gateway
– Lambda (複数)
– 複数Lambda内で共通で利用するものを集めたLayer
– 環境

元記事を表示

DynamoDB のテーブル設計

![dynamobasicknowledge.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59081/2c799a4e-be49-d062-c617-5efa9e4cf38f.png)

引用元; https://d1.awsstatic.com/webinars/jp/pdf/services/20181225_AWS-BlackBelt_DynamoDB.pdf

## パーティションキーのみ

* パーティションキーは `ハッシュキー` (hash key)とも呼ばれる (AWS のドキュメントだと hash key が使われていることが多いような気がする)
* テーブルを作成後は変更できない
* テーブルからデータをフェッチするときは [Scan](https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/APIReference/API_Scan.html) または [GetItem](https://docs.aws.amazon.co

元記事を表示

ElastiCache for Redisのフェイルオーバー時間を計測してみた

# やりたいこと

– ElastiCache for Redisの設計をしたい(まずは方式レベル)
– 用途はアプリケーションのセッション管理
– 可用性要件が高く、AZ障害の際にもダウンタイムを最小限にしたい

# 参考文献

– 公式ドキュメントだとこれがドンピシャ

https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html

– 2年前ですが分かりやすい公式スライド

https://pages.awscloud.com/rs/112-TZM-766/images/Session%201%20-%20ElastiCache-DeepDive_v2_rev.pdf

– 基本のおさらいには安定のクラメソさんブログ

https://dev.classmethod.jp/articles/elasticache-cluster-mode/

これらより、まずは「クラスターモード」を採用すべきか否か、の判断のためフェイルオーバー所要時間を実測してみる。

# 試したこと

### 準

元記事を表示

【個人開発】3つに厳選した自分の考えを送る「3選」を投稿するサービスを作りました

こんにちは、Qiita初投稿になります。
普段は仕事でWebサービスを開発していますが、今回勉強がてら初めて個人開発してみようということで、Webサービスを作ってみたのでご紹介させてください。
# どんなサービス?
## 背景
日々ネットを見ていると、
「料理で役立つ便利グッズ5選」
「今年を代表するおすすめ曲10選」
など、筆者が厳選した○選についてのサイトや動画を目にすることがあります。

そんなとき自分の場合、おすすめ曲やゲームに関する○選を見ると「自分だったら…」みたいなことを考えることがありました。大体はそこに付いているコメント機能で送れたりもできるのですがあまり目立たないので、もっと他者の考えも目立つ形にできないかと思いました。

なので考えたのは以下のこと。
・○選についてのトピックを誰でも作れるようにする
・他ユーザーの考えも集められるようにする

そして、5選でも10選でもいいのかというところで、見やすさ・投稿しやすさを考えた結果「3選」という枠組みに限定することと決めました。

というわけで3選を投稿するサービス、その名も **「SANSEN」** を作りました

元記事を表示

【LINE WORKS】IFTTTを経由してカレンダーを連携してみる

# はじめに
LINE WORKSのカレンダー機能はAPIも提供されており、それを使うことでカレンダー上で何かの実行スケジュールを管理することも可能。

今回は、IFTTTを経由してカレンダーの予定と連携する仕組みを作った。

![calendar_batch-概略図.drawio (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241369/26214d0a-57ad-d2b7-e64b-d9fdfe512e3c.png)

# ソースコード
https://github.com/mmclsntr/lineworks-calendar-ifttt-integration

## 利用した言語・フレームワーク等
– 言語 : Python 3.9
– デプロイ : [Serverless Framework](https://www.serverless.com/framework/docs)
– 開発フレームワーク : [AWS Lambda Powertools for Python](htt

元記事を表示

AWS CodeGuruについてざっくりまとめてみた

今日、アマゾン ウェブ サービス ジャパン、シニアエバンジェリスト 亀田さんの[AWSの基礎を学ぼう 第九十七回](https://awsbasics.connpass.com/event/257614/)に参加してAWS CodeGuruについて学んだのでをこちらでざっくりまとめてみました。
AWS CodeGuruというワードを見て、何だこれ?と思われている方に最初のざっくりの把握するのに役立てれば幸いです。
(今回の記事はKoki_jpさんの[質問思考:自分にとっての新しい技術を効率的に学ぶ方法](https://qiita.com/Koki_jp/items/ee613e9a8f05d335a456)を参考に記載させていただいています)

## AWS CodeGuruとは?
AWS CodeGuruとは2つのプロダクトの総称のことである。
その2つのプロダクトは下記のふたつのことです。
– Amazon CodeGuru Reviewer
– Amazon CodeGuru Profiler

それぞれ役割が違い、それぞれ単体での使用も可能です。

## Amazon Cod

元記事を表示

AWS EC2インスタンスの起動・停止をスケジュール実行してみた

## はじめに
テスト環境など、常時起動しておく必要のないインスタンスは、コスト削減の観点などから、決まった時間に起動、停止するようにしたいと考える人は多いと思います。

以前は、λでコードを書いたりする必要があったりしましたが、最近では、CloudWatch Eventsの後継のEventBridgeとSystemsManagerのオートメーションドキュメントを利用する事で、簡単にEC2インスタンスのスケジュール実行ができるようになっているので、改めて確認してみました。

## IAMロールの作成
事前にIAMロールを作成しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2554521/dc806c4c-d32c-ad71-b992-b458c89b7d1f.png)
EventBridgeには、オートメーションドキュメントとパラメータを使用して、SSM Start Automation Execution を呼び出すための権限が必要です。

:::note warn
Ev

元記事を表示

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

元記事を表示

OTHERカテゴリの最新記事