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

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

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つ以上必要になる場合は上限緩和申請といって上限を増やすことができます。でも今回は特に作る予定はありません。

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

元記事を表示

AWSアカウント初期準備

# 準備
## AWSアカウント契約
今まで使用していたアカウントもありましたが、今回のシステム構築を機に個人のAWSアカウントを作成しました。今から12か月は無料枠を使用できます。

### 無料枠について
最初のころはよくある動画、音楽サブスクのように12か月は完全に無料と思っていましたが、そうではないらしいです。
EC2ならt2,t3.microが750時間、S3は5GBまでと各々のサービスに上限があるようです。
確かに完全に無料となったら高いインスタンスタイプでEC2をつくれちゃいますもんね。。

[AWS無料利用枠](https://aws.amazon.com/jp/free/?all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types=*all&awsf.Free%20Tier%20Categories=*all
)

ちなみに750時間は約31日(750/24=31.25)。使用するときだけEC2を起動させておけば月

元記事を表示

CloudFormationで構築したリソースの削除

## はじめに
CloudFormationで構築した不要なリソースを削除する機会があったので、対応方法について記事を書きたいと思います。

## 事前確認
– AWS Console から CloudFormation のダッシュボードを開く。
– Stacks内から削除対象のStackを開く。
– Templateのタブを開き、Templateが以下の状態であることを確認する。
– `DeletionPolicy` が設定されていないこと
– もし設定されていれば、`Template`から`DeletionPolicy`の記述を外す。

![スクリーンショット 2022-09-10 21.03.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/636476/d9e12ab4-7348-953f-04a3-c7ec53218bc6.png)

## リソースの削除方法
削除対象のStack を削除する。

![スクリーンショット 2022-09-10 21.05.38.png

元記事を表示

AWSでUbuntu Serverを立てるときはキーペアに要注意

AWSでUbuntu Serverを構築したときに、なぜかSSH接続できなくて困ったため備忘録として残します

# 結論
– Ubuntu ServerのキーペアはRSAタイプではなく、ED25519タイプで作成する必要がある
– Ubuntu 22.04で採用されているOpen SSHのバージョンでは、RSAタイプの鍵が無効化されたため
– Ubuntu 20.04まではRSAタイプのキーペアが使える

| | RSAタイプのキーペア | ED25519タイプのキーペア|
|—|—|—|
|Ubuntu 22.0.4 | **デフォルトでは使用不可** | デフォルトで使用可|
|Ubuntu 20.0.4 | デフォルトで使用可 | デフォルトで使用可|

# やってみる

## Ubuntu 22.04にRSAタイプのキーペアでアクセスしてみる
Ubuntuが載ったインスタンスを作成します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1471959/9fd

元記事を表示

IAM Roles Anywhereのハンズオンを通して、OpenSSLとか証明書とかについて勉強できたのでメモ

AWSエバンジェリストシリーズの特別編でIAM Roles Anywhereのハンズオンに参加したときに、OpenSSLやら証明書やら使用したので非常に勉強になりました。

https://awsbasics.connpass.com/event/254836/?utm_campaign=event_message_to_selected_participant&utm_source=notifications&utm_medium=email&utm_content=title_link

ハンズオンの後に色々調べてみたので、個人的なメモとして残しておきます。

# IAM Roles Anywhereとは
本筋とは外れるので詳細は調べていただくとして、IAM Roles Anywhereについてザクっと説明しておきます

– オンプレ機器からAWSのサービスを使う時に、IAMロールによるアクセス制御ができるサービス

– IAM Roles Anywhereは主に、以下の2つのコンポーネントから成り立つ
– 信頼アンカー:オンプレとAWSの間の信頼関係

元記事を表示

OTHERカテゴリの最新記事