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

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

AWS ちょっと費用計算が楽になる係数

* $/時 => ¥/月
93,600 ≒ 9万 (為替130)
100,800 ≒ 10万 (為替140)

例: t3.large 0.1088$/h => 約1.1万円/月 (為替140)
為替140だと計算しやすくて良いね(吐血)

* $/日 => ¥/月
3,120 ≒ 3.1千 (為替130)
3,360 ≒ 3.4千 (為替140)

元記事を表示

EKSクラスタの作成者でないメンバーがkubectlでアクセスする設定

# はじめに
KubernetesをAmazon EKSで動かすことが増えてきました。自分で調査や開発するときはeksctlでクラスタを生成してkubectlで操作していますが、先日その私が生成したクラスタを他の開発メンバーに操作してもらおうとしたとき、どうするんだっけとあたふたしたので、対応方法を備忘録的に残しておきます。

基本は[AWS ナレッジセンターの情報](https://aws.amazon.com/jp/premiumsupport/knowledge-center/eks-cluster-connection/)を基に進めました。

# 前提条件
– KubectlとAWS CLIがインストールされている。
– AWSのIAMユーザにEKSの権限が付与されており、`aws configure`でプロファイル設定がされている。

# 設定
以下の操作は、eksctlでクラスタを生成した自分(管理者)ではなく、

元記事を表示

請求額を減らすために、AWSの不要なリソースを削除してみる

# はじめに
AWSのハンズオンをやった後、いつもリソースを消しているのですが、消し忘れがあり、ずっと毎月600円弱の請求が来ています。そこで、今回はこの請求をなくすべく、不要なリソースを削除していこうと思います。

![ブログ_20220911_01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1615121/382bf598-50fc-b2f1-5c63-63d1f54e450e.jpeg)

展開してみるとこんな感じ

![ブログ_20220911_02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1615121/9e49c5b9-ab82-2f4c-69e1-b90a1dc3d59b.jpeg)

# EBSを削除

まずは、上から順にEBSからです。東京リージョンの汎用SSD(gp2)のEBSは、毎月0.12USD/GBですね。料金表は[公式](https://aws.amazon.com/jp/ebs/p

元記事を表示

Pumaの再起動に時間がかかる

本番のElastic Beanstalk環境にてRailsアプリをデプロイしたところ、Pumaの再起動に時間がかかりダウンタイムが発生しました。
なぜこの事象が発生したのかがわからず、調査を行ったので記録として残しておきます。

解決していないのでhelp wantedです。

## 前提
#### 環境
– ElasticBeanstalk環境 (Ruby 2.7 running on 64bit Amazon Linux 2/3.4.7)
– EC2インスタンス数:1台 (t3.medium)
– Puma 5.6.4

#### その他
デプロイ時にWeb、DBサーバーのCPU使用率、メモリ使用率に問題がないことから、インフラ側ではなくアプリ側の問題と推測しています。

## 発生した事象
デプロイ終了間際のアプリ再起動時に、Pumaが立ち上がるまでに時間がかかり(6分40秒)、その間にダウンタイム`502 Bad Gateway`が発生しました。

`/var/log/puma/puma.log`より
Pumaを落としたログ(17:56:22)
[![Image from G

元記事を表示

Elastic Beanstalkのlogrotateについて

## ログローテーションについて
Elastic Beanstalkのログローテーションについて調査をしたので、内容をまとめておきます。

### ローテーションの設定
※以降はPumaのログについて記載していきます

デフォルトの設定で、1時間に1度、該当ログのファイルサイズが10MBを超えていたらローテーションするようになっていました。
1時間に1度の契機は、下記cronジョブによって呼びだされます。
“`terminal
/etc/cron.hourly/cron.logrotate.elasticbeanstalk.puma.conf
“`

ローテーションの設定ファイルについては下記コマンドで確認できます。
“`terminal
$ less /etc/logrotate.elasticbeanstalk.hourly/logrotate.elasticbeanstalk.puma.conf
“`

“`conf:logrotate.elasticbeanstalk.puma.conf
/var/log/puma/* {
su root root

元記事を表示

社内コードを公開せずに内部で共有する方法

# はじめに

見つけやすく、インストールしやすいソフトウェアパッケージは、開発者にとって使いやすいです。[React](https://reactjs.org/)、[Ruby on Rails](https://rubyonrails.org/)、[Airflow](https://qiita.com/hankehly/items/1f02a34740276d1b8f0f) のような有名な OSS は良い事例です。しかし、社内の非公開のコードは、企業秘密として**世間から隠されることが多いです**。権限を持っている人のみ見ることができて、オープンソースのように `npm` `gem` や `pip` で簡単にインストールすることもできません。

その結果、社内のコードがうまく再利用されなくなる(あるいはできなくなる)ことがあります。各チームはそれぞれ独立したコードベースを持ち、他のチームにコードを共有したくても、満足がいく解決策を導き出すことが難しかったりします。戦略を立てないままでは、それぞれの独立したコードベースを充実させ続け「社内共通のライブラリー」が遠い夢のようになっていきま

元記事を表示

KMSでSecp256k1の署名と検証(後編)

# はじめに(Introduction)

BitcoinやEthereumでは署名にECDSA(楕円曲線DSA)を用いています。
そこで使用される、楕円曲線はSecp256k1と呼ばれるパラメータです。
AWS Key Management Service (AWS KMS) では、Secp256k1のECDSAを用いることが出来るのでこれをJavaを使用して署名、検証を行います。

サンプルで使用するライブラリとしては、Ethereumで利用されているWeb3jを使用します。

筆者は、AWSもEthereumも素人なので、そこら辺の間違いについてはご指摘いただけるとありがたいです。

この記事は後編です。
[前編はこちら](https://qiita.com/tnakagawa/items/7c4ef36080aed97516d1)

# 実装(Programming)

JavaでKMSを利用して署名と検証を行います。
前編で取得した、IAMユーザの「**アクセスキーID**」と「**シークレットアクセスキー**」と
KSMで作成した鍵の「**キーID**」を使用します。

#

元記事を表示

KMSでSecp256k1の署名と検証(前編)

# はじめに(Introduction)

BitcoinやEthereumでは署名にECDSA(楕円曲線DSA)を用いています。
そこで使用される、楕円曲線はSecp256k1と呼ばれるパラメータです。
AWS Key Management Service (AWS KMS) では、Secp256k1のECDSAを用いることが出来るのでこれをJavaを使用して署名、検証を行います。

筆者は、AWSもEthereumも素人なので、そこら辺の間違いについてはご指摘いただけるとありがたいです。

記事が長くなってしまったので、前編、[後編](https://qiita.com/tnakagawa/items/8e7277aed49f279655f8)にわけて投稿します。
この記事は、AWS KMSで鍵を作るまでの手順となります。

# IAMユーザー作成

AWSのIAMユーザーを作成します。
内容としては、ユーザーを追加して、「AWSKeyManagementServicePowerUser」の権限を持つグループに所属させます。
最終的にIAMユーザーの「**アクセスキーID**」と「

元記事を表示

【AWS】AmazonConnectのコンタクトフロー内でLexを呼び出す

# 1.はじめに
どうも、ARIの名古屋支社に勤務している愛知県民です♪
(/・ω・)/

最近、AWSでLexを使いボイスボットを作成する機会がありました。
調べてみるとAmazonConnectと組み合わせて、Lexと顧客を会話させることができるようでした。

そこで**今回はAmazonConnectのコンタクトフロー内でLexを呼び出す方法**
について記事にしたいと思います♪
AmazonConnectやAWSについて勉強中の方の参考になれば幸いです。
(*^^)v

# 2.Lexボットの作成
今回はAWSから提供されているLexボットを利用します。

:::note info
既にLexボットを作成している方は3章から読み進めてください。
:::

2.1.Lexの管理画面から「ボットを作成」を選択します。

|![010_ボットを作成を選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1372071/99b9e76d-d473-a81f-d471-b7e3bef4b6fc.png)|

元記事を表示

【Amazon Lightsail】LAMP環境構築チュートリアル②(DB編)

# 構築作業

[前回の①](https://qiita.com/LingmuSajun/items/76066a6ef43676041941)では、Webサーバの構築まで完了しました。ここからはDBを構築をしていきたいと思います。

## 1. MySQL接続

– [Amazon Lightsailのホーム画面](https://lightsail.aws.amazon.com/ls/webapp/home/instances)にアクセスし、「LAMP_TEST」インスタンスにSSH接続します。
![スクリーンショット 2022-09-11 20.05.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304307/6d600bca-9d93-f5f8-db3b-9f4da4c6406b.png)

– SSHクライアントのWindow上で下記コマンドを実行します。

“`
$ cat $HOME/bitnami_application_password
$ (パスワードが表示されます)
$ m

元記事を表示

[DVA試験対策]AWS Cognitoの機能

Cognitoを理解するため、機能をまとめる

# AWS Cognitoとは何か
Webアプリやモバイルアプリケーションに認証機能を提供するサービス

## サービス

### ユーザープール
* サインアップ、サインインを簡単にアプリケーションに実装
* カスタム可能な組み込みサインインUI
* ユーザープロファイルの管理(ログイン情報、ステータス管理など)
* MFA,本人確認などユーザー認証の一般的な機能
– アドバンスセキュリティ機能:有効にすると、ユーザープールに記録されたID、パスワードが漏洩した時にユーザーブロックが自動で可能
* Lambdaトリガー(サインインをトリガーにLambda実行など)
* Web IDフェデレーション(Facebook,Googleなど)

**ユーザープール = 認証**

### IDプール

S3やDynamoにユーザーが一時的にAWS credentialsを発行しアクセスできる。
IDはアイデンティティという意味。

**IDプール = 認可(アクセスコントロール)**

元記事を表示

API Gateway の WebSocket で connectionId を部屋ごとに管理するチャットアプリ実装サンプル

## 概要

User A がメッセージを送信したときに User D にはメッセージが受信されずに User B と User C がメッセージ受信されるような実装をしてみます。

“`plantuml
@startuml
title api-websocket-lambda-dynamodb

!define AWSPuml https://raw.githubusercontent.com/awslabs/aws-icons-for-plantuml/v13.1/dist

!includeurl AWSPuml/AWSCommon.puml
!includeurl AWSPuml/AWSSimplified.puml

!includeurl AWSPuml/ApplicationIntegration/APIGateway.puml
!includeurl AWSPuml/Compute/Lambda.puml
!includeurl AWSPuml/Database/DynamoDB.puml
!includeurl AWSPuml/General/User.puml

元記事を表示

LocalStack ローカル環境でAWSを使おう

# この記事は?
AWSのエミュレーションツール[LocalStack](https://github.com/localstack/localstack)を使って仮想のAWS環境を立ち上げ、その中にLambdaとS3をデプロイして動かしたときの備忘録

https://localstack.cloud/

# LocalStackとは?
Dockerコンテナ内でAWSのエミュレートし、その環境内にデプロイしたりできるツール
無料版では利用できるAWSサービスに制限があるものの、メジャーどころは大体抑えられている

:::note info
無料版で利用できるのは[このページ](https://docs.localstack.cloud/aws/feature-coverage/#aws-feature-coverage)にあるサービスのうち`(Pro)`がついていないもの
**Lambda**, **S3**, **DynamoDB**など主要なサービスはだいたい無料で使える
:::

https://docs.localstack.cloud/aws/feature-coverag

元記事を表示

aws lightsailブログの立ち上げ手順(備忘録)

# 目的
* aws lightsailを使ったブログ開設手順を残す(ざっくり)
* いろいろと詰まったので、誰かの参考にはなりそう

# 手順
1. amazon lightsailを立ち上げる
1. 静的IPを設定
1. ドメインを取得(route 53利用)
1. route53のネームサーバー削除
1. route53のドメインの参照ネームサーバー変更
1. bncert-toolでhttps化
1. IP直打ち時のドメイン遷移を設定
1. メールサーバーの設定(gcp, WP Mail SMTP by WPForms利用)
1. wordpressのテンプレ探し
1. 投稿!!

# ハマったところ
### wordpressに古いプラグインを入れたら、ログインできなくなった
対応:FTPクライアントでpluginディレクトリを一時退避(ディレクトリ名を変更)し、ログイン. 上記プラグインを削除してから、戻した

### wordpressからメールが届かなかった
対応:メールサーバーの設定が必要だった(上記、WP Mail SMTP by WPForms利用)

# 情報の

元記事を表示

Amazon CloudWatch SyntheticsのCanaryグループを試す

# はじめに
最近のアップデートで、SyntheticsのCanaryをグルーピングできる機能が追加されていました。

https://aws.amazon.com/jp/about-aws/whats-new/2022/08/amazon-cloudwatch-synthetics-support-custom-canary-groups-group-level-availability-metrics/

気になるので試してみます。

Amazon CloudWatch Syntheticsとは:

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html

# 試してみる
簡単ですが以下の構成で試してみます。

異なるリージョンに存在するCanaryもグルーピングできるそうなので、リージョンをまたがる形で作成します。

![qiita_synthetics.png](https://qiita-image-store.s3.ap

元記事を表示

AWS SAM Pipelineを試す

# はじめに
AWS SAMを用いてLambdaを作ることはやっていましたが、CI/CDの環境を構築してみたく、SAM Pipelineを試してみました。

# 概要
– 「Git(今回はCodeCommit)にPUSHすると自動でデプロイする環境」を構築してくれる
– SAMのファイルがあればよい
– 今回は事前に、Lambda関数のPythonスクリプトと、SAMのテンプレートファイルの2つのみ用意
– パイプラインはテンプレートが用意されている
– 一度ファイルに出力されるためカスタマイズ可能ではあるが、かなり大変そう

# 参考
## SAM Pipelineの例

https://aws.amazon.com/jp/builders-flash/202110/new-lambda-container-development-6/?awsf.filter-name=*all

https://dev.classmethod.jp/articles/sam-cli-pipeline/

## 用語
参考やほかのページにはパイプライン特有の用語が頻出しますので、以下

元記事を表示

AWS Organizationsを使って、AWSメンバーアカウントを登録し、ある組織単位に所属させる

# AWS Organizationsの組織を作る
AWSマネジメントコンソールにログインします。
AWS Organizationsダッシュボードを表示します。
[組織を作成する]をクリックしてください。
![スクリーンショット 2022-09-11 6.44.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/14202/9ecd02ae-a889-e3b3-8c08-01875ed0c893.png)

組織が作成され、管理アカウント(マスターアカウント)が表示されます。
![スクリーンショット 2022-09-11 6.46.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/14202/f7976253-1558-9680-24eb-68cc9c4ce968.png)

# メンバーアカウントを登録する
AWS Organizationsダッシュボードの[招待]をクリックしてください。
![スクリーンショット

元記事を表示

AWS Systems Manager Calendarの癖

# AWS Systems Manager Calendar で何ができるか
+ 実行して良いタイミングかどうかを判定するために参照するもの
+ スケジュールの開始終了時間になったらイベント発行するもの
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185989/5ec119d8-7677-ee26-2dcd-01cfaac2b6bc.png)

AWS管理コンソール画面:カレンダーの種類をデフォルトCLOSEDにしたもの![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185989/c7bd8cae-ce3d-2189-33ec-bdd4831d4ed6.png)

スケジュールイベント時間になったら、カレンダーのステータスがOPEN・CLOSEDに切り替わる
※ 1つのカレンダーには、複数のスケジュールイベントが登録できるが、カレンダー状態は一つ(OPENかCLOSED)

# まず

元記事を表示

AWS Step FunctionsとAmazon Pinpointでプッシュ通知処理を実装した

## 概要
複数の通知をそれぞれの対象者に向けてプッシュ通知する流れを実装しました。

### 使用したサービス

– AWS Step Functions
– Amazon Pinpoint
– AWS Lambda

## アーキテクチャ

[AWS workshop](https://catalog.us-east-1.prod.workshops.aws/workshops/070a93a2-3373-4736-8af0-f7a08c9eb08a/en-US/marketing-automation#use-cases)にあったものを参考にしています。

![push_notice_qiita.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192406/e2e91cc9-1ccb-f195-c12d-cd0e6a548f5e.png)

## 処理の流れ

流れとしては先程のとおりなのですが

1. 通知対象のリストを取得
1. (各通知に対して)対象ユーザーリストを取得、S3にファイル保存

元記事を表示

AWSで基本的なネットワークを構築してみた

AWSでのネットワーク構築ですが実務でもやったことがあります。

先日、改めてAWSの学習をしていて「そういえばどうやってネットワークの構築ってどうだっけ?」と思う節があったので

自宅PCで基本的なネットワークを構築してみました。

VPCやAWSでネットワーク構築で行う基本的な知識をアウトプットしながら、ネットワークを構築していきたいと思います。

## まずそもそもVPCとは?
AWSのネットワーク構築では、よく使われるVPC。実は最近までよく理解していませんでした。
VPCとは巨大なAWSのネットワークの中からユーザ専用の領域を切り出すことのできる仮想ネットワークのサービスのことを言います。

イメージでいうと広大な土地があって、そこでそれぞれに自分達が使う領地を決めているといったイメージです。

## VPCには上限がある

VPCはリージョンあたりの上限が5つまでと決まっており、VPCは6つ以上必要になる場合は上限緩和申請といって上限を増やすことができます。でも今回は特に作る予定はありません。

## 一つ設定すると自動で他の設定をやってくれる
実際に構築をやっているときは

元記事を表示

OTHERカテゴリの最新記事