AWS関連のことを調べてみた2021年01月19日

AWS関連のことを調べてみた2021年01月19日

【React】ユーザー認証をCognito + Amplifyで構築してみた ~サインインページカスタマイズ編~

## はじめに
Reactで作成したWebアプリケーションのユーザー認証部分をCognito + Amplifyフレームワークで構築してみました。「【React】ユーザー認証をCognito + Amplifyで構築してみた」の[構築準備編](https://qiita.com/maika_kamada/items/1289b8926208d35751b1)と[構築完成編](https://qiita.com/maika_kamada/items/bd55a9fa3dd551d63b94)を経て、現状下記のようなサインインページのWebアプリケーションが出来上がっています。

![ezgif.com-gif-maker.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/546572/51ac1e5f-3746-8ef9-e384-32582e3ea8b2.gif)

ただ、このWebアプリケーションは管理者が事前にユーザーを登録し、登録されているユーザーのみが使用できるようにしたいので、今回はサインインペ

元記事を表示

AWS Client VPN構築・設定(相互認証、プライベートDNS)

# はじめに
AWSのClientVPNを利用したクライアントVPN構築・設定の行った際のメモ。
再度構築設定する際に参考にするために記録する。

# 前提
– 認証方式は、相互認証
– Route53プライベートDNSの利用
– サーバ証明とクライアント証明書は同一環境(EC2)で作成

# 各種証明書作成
## 1. OpenVPN easy-rsaをダウンロード
“`
$ wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.7/EasyRSA-3.0.7.tgz
$ tar zxfv EasyRSA-3.0.7.tgz
$ cd EasyRSA-3.0.7
“`
## 2. PKI環境を初期化
※サーバ証明書の有効期限を延長させる場合は事前に下記のように設定する
(EASYRSA_CERT_EXPIREは、日数)

“`
$ cp vars.example vars
$ vi vars
set_var EASYRSA_CERT_EXPIRE 365
$ ./easyrsa init-pki
`

元記事を表示

AWS Braket を使ってQAOAを実装してみる②

# この記事について
AWS Braket が公開されてから、一般の人にとっても量子コンピュータの実機に触れる機会が増え、それに伴い、私も量子コンピュータのお勉強をしています。
Braketではゲート型の最適化を行うにあたってQAOAというアルゴリズムを使用します。
AWS Braketのサンプル上ではGraph Coloring Problem という問題を解いており、「各ノードに赤や青の色をつけ、色の異なるノード間の各枝に点数をつけていきより良い点をしよう」という問題の求解を行っています。
こちらの問題ですが、以下の式で表されるコスト関数を定義し、($z_n= {-1,1}$, $J$は枝間の重み)それを最小化する問題に帰着できます。

“`math
H_{C}=\sum_{i>j} J_{i,j} z_{i} z_{j},
“`

このような問題に帰着できるものであれば、AWS Braketのサンプルを流用することで動かすことができますが、最適化問題をより一般的に表すには、以下の通り線形項も加味する必要があります。

“`math
H_{C}=\sum_{i>j} J_{i

元記事を表示

AWS Braket を使ってQAOAを実装してみる①

# この記事について
AWS Braket が公開されてから、一般の人にとっても量子コンピュータの実機に触れる機会が増え、それに伴い、私も量子コンピュータのお勉強をしています。
Braketではゲート型の最適化を行うにあたってQAOAというアルゴリズムを使用します。
AWS Braketのサンプル上ではGraph Coloring Problem という問題を解いており、「各ノードに赤や青の色をつけ、色の異なるノード間の各枝に点数をつけていきより良い点をしよう」という問題の求解を行っています。
こちらの問題ですが、以下の式で表されるコスト関数を定義し、($z_n= {-1,1}$, $J$は枝間の重み)それを最小化する問題に帰着できます。

“`math
H_{C}=\sum_{i>j} J_{i,j} z_{i} z_{j},
“`

このような問題に帰着できるものであれば、AWS Braketのサンプルを流用することで動かすことができますが、最適化問題をより一般的に表すには、以下の通り線形項も加味する必要があります。

“`math
H_{C}=\sum_{i>j} J_{i

元記事を表示

Amplify 学習資料

## AWS 公式 Slideshare

[20200520 AWS Black Belt Online Seminar AWS Amplify](https://www2.slideshare.net/AmazonWebServicesJapan/20200520-aws-black-belt-online-seminar-aws-amplify-234663231)

[AWS Black Belt Online Seminar AWS Amplify]
(https://www2.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-aws-amplify-122274815)

[[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開…]
(https://www2.slideshare.net/AmazonWebServicesJapan/cto-night-day-2019-aws-amplify-webm

元記事を表示

EC2インスタンス起動後に「DeleteOnTermination」を変更する

EC2インスタンス起動後に「DeleteOnTermination」を変更する

⓪対象のインスタンスの詳細を調べる
マネジメントコンソールから、「DeleteOnTermination」を変更したいEBSがアタッチされているEC2インスタンスの詳細を調べる。記録しておく情報は以下の通り。
・対象EBSがアタッチされているEC2インスタンスのインスタンスID
・対象EBSのデバイス名

①インスタンスの状態を調べる
以下のコマンドをAWS CLIから入力して、ボリューム情報を参照する。
“`aws ec2 describe-instances –instance-id <インスタンスID> –query Reservations[].Instances[].BlockDeviceMappings[]
“`

②①で表示された内容から以下の内容を確認する。
・⓪で確認した対象EBSのデバイス名
・⓪で確認した対象EBSのデバイス名の「DeleteOnTermination」の値(boolean)

③「DeleteOnTermination」の値を更新する
以下のコマンドをAWS

元記事を表示

Amazon Connectを利用してコールセンターを構築してみた

## 概要
ちょっと事情があってコールセンターについて理解を深めてみようと思い、手軽に構築を試せるAmazonConnectを利用して構築してみました。
随分と前に記事の投稿を試して以来久々の投稿なので緊張しています。
何番煎じかわかりませんが、良かったら読んでいってください。

## コールセンターの仕組み
そもそもコールセンターの仕組みってどんなものでしょうか。
改めて何か調べてみました。

### コールセンターとは
コールセンターは企業における電話応対を担う部門や事業所・またそのための設備を指すようです。ここで言う電話応対は顧客からの電話受付[^1]や、セールスなどで顧客への電話を掛ける対応[^2]も行うことができます。

ところで、よくよく考えてみるとこのコールセンターシステム構築にかかる要件定義はかなり大変そうです。

コールセンターは通常、顧客を待たせてしまうことのないように大人数のオペレータ[^3]で構成されています。
ということは、顧客から来た電話を効率よく割り振るような仕組みが必要になるはずです。[^4]
また、逆に架電する際も、誰がどこにかけたか、どこにかけていな

元記事を表示

Amazon Braket のゲート型量子コンピュータで指定できる量子回路

# この記事について
– メモです。
– Amazon Braketにおいてゲート型量子コンピュータであるIonQ、Rigetti Aspen-8と量子シミュレータであるSV1シミュレータでどんな量子回路を使うことができるかを確認する方法を示します。
– 記事作成日は 2021/01/18のものなのでその時に使えている量子回路群を示しています。

なお、量子コンピュータ関係の他の記事は、[こちらのページで一覧にしています](https://qiita.com/shnchr/items/41fa7fd1284d74007a7c)

# AmazonBraketで指定できる回路群の確認
最低限 AwsDeviceをimportする必要があります。
どのデバイスを使うか指定する必要があります。
確認したいデバイスがある場合は下のソースコードでコメントアウトを外してください。

“`python
# SV1の指定
device = AwsDevice(“arn:aws:braket:::device/quantum-simulator/amazon/sv1”)

# Rigetti Aspe

元記事を表示

Terraformで初期パスワードとシークレットアクセスキーを持つIAMユーザを作成する

# はじめに

Terraformで複数のtfファイルを定期的にapply, destroyする必要があり、スクリプトを使って楽をしたいなぁという話になりました。

以下の流れをそれぞれスクリプトに分けて自動化したいです。

1. IAMユーザーを作成
2. 1. のユーザーでリソースを作成
3. 1. のユーザーでリソースを削除

まずは、手動での実行がどのようなものか自分自身が理解する必要がありそうだなと。
ということで、TerraformとGnuPGを使って初期パスワードとアクセスキーを持つIAMユーザを作成してみます。

1. IAMユーザを作成
2. 1. のユーザーでリソースを作成

## 環境

“`shell
$ sw_vers
ProductName: macOS
ProductVersion: 11.1
BuildVersion: 20C69

$ terraform -version
Terraform v0.14.4

$ gpg –version
gpg (GnuPG) 2.2.27
libgcrypt 1.8.7
“`

## やること

1. IAM

元記事を表示

AWS Lambda + カスタムランタイムでbash実行

## 概要

2020年12月にLambdaのコンテナ実行に対応([リンク](https://aws.amazon.com/jp/blogs/news/new-for-aws-lambda-container-image-support/))しているが、任意のプログラムを実行するために Lambda ランタイム APIに準拠して実装する必要がある。
(カスタムランタイムは2020年8月にAmazon Linux2に対応([リンク](https://aws.amazon.com/jp/about-aws/whats-new/2020/08/aws-lambda-supports-custom-runtimes-amazon-linux-2/)))

このページでは、[公式チュートリアル](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/runtimes-walkthrough.html)にあるbashをコンテナ経由で実行する。

既存のzipファイル化する方法とさほど変わらないがECRにdockerイメージを置いとくだけなのでデプロイ

元記事を表示

【AWS】VPCエンドポイント

## エンドポイントとは
インターネットを通さないで他のサービスと通信できるようにする仮想デバイス

## エンドポイントを使うとできること・利点
– インターネットを通さないで外部リソース(S3,DynamoDB,別のサブネット)にアクセスできる
– **データをインターネットに公開しなくて済む**
– プライベートサブネットから外部リソースにアクセスできる

## GW(ゲートウェイ)型
– ネットワークレイヤで動作
– サブネットに特殊なルーティングを設定してGWに向けてルーティング
– VPC内部から直接通信

## 構成

![endpoint_GW.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/968526/6a37fff7-a9e1-eb13-f942-83424c8e0fbd.png)

## インターフェース型
– アプリケーションレイヤで動作
– AWS PrivateLinkと呼ぶ
– 実態はプライベートアドレスを持つENI(Elastic Networ

元記事を表示

AWS athenaでのテーブルのプレビュー結果がzero recordになった時

# はじめに
Glue catalogに作成されたテーブルを確認する際、テーブルの中身は表示されず以下のようなメッセージが出力される場合があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004329/f7726606-02c5-0d5c-cfda-a36444ec491a.png)
Crawlerのパスもうまく設定したのに、中身がないと表示されるだけで原因について教えてくれないため、この現象を解決するのに時間がかかり苦労するケースがあります。

この記事では

– なぜzero record状態が起こるのか
– 解決方法は何か

について説明したいと思います。

# なぜzero record状態が起こるのか
Crawlerを回す際、Crawlerはパス内のデータの隙間の類似性を下に1つのテーブルを作成して返します。
この場合、Crawlerの実行のリソースとして作られるテーブルがzero recordになる原因は、**_パスの中の複数のファイルが持つスキーマがそれぞれ違う

元記事を表示

AWS Aurora(MySQL)のスロークエリログめも

## 概要
Aurora(MySQL)でスロークエリをテーブル(`mysql.slow_log`)に記録し確認できる

## スロークエリログがテーブルに記録されるようにする

DBパラメータグループで以下を設定

| パラメータ名 | 設定値 | 説明 |
| ————— | —— | —————————————— |
| log_output | 1 | スロークエリログを有効にするかどうか |
| long_query_time | 5 | ログに記録されるクエリの最短実行時間(秒)。任意の値を設定する |
| log_output | TABLE | ログの出力先(TABLE or FILE) |

参考: [MySQL データベースログファイル – Amazon Relational Database Service](https:

元記事を表示

【AWS】ACL と セキュリティグループ の違い

## 初めに
AWSでのトラフィック制御には代表として2つある

## 適用範囲イメージ
![Untitled Diagram (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/968526/0c151725-4f85-f7cb-7405-b2f4e701a74e.png)

## ネットワークACL
– VPC/サブネットのトラフィックを制御する適用されるFW機能

## セキュリティグループ
– インスタンスのトラフィックを制御するFW機能

## 比較

| 項目 | ネットワークACL | セキュリティグループ |
|:-:|:-:|:-:|
| 単位 | VPC/サブネット | サーバー単位 |
| ステート | ステートレス | ステートフル |
| 設置項目 | 許可(In/out)と拒否(In/out) | 許可のみ(In/out) |
| デフォルト通信 | すべての通信を許可(外部と通信可) | 同じセキュリティグループ内のみ許可(外部と通信不可) |
|

元記事を表示

Amplify [Hosting] ↔ API Gateway [REST] ↔ Lambda

# はじめに

– [前回](https://qiita.com/narutaro/items/adaf160d944b91791b59)のバックエンドにWebフロントエンドつなげようと思って、Cognito周りを触れるJSのSDKを探していたのだが、メンテが終わっていて[どうやらAmplifyに統合されようとしていることに気づく](https://github.com/amazon-archives/amazon-cognito-identity-js)

>Amazon Cognito Identity SDK for JavaScript
NOTE: We have discontinued developing this library as part of this GitHub repository. We will continue to develop it as part of the AWS Amplify GitHub repository. You can still reach us by creating an issue on the AWS Amplif

元記事を表示

EBSボリュームタイプの変更(gp2→gp3)

#はじめに
* EBSのボリュームタイプの変更を実施したので備忘録として残します。
※EC2インスタンスの停止させることなく、オンライン状態でのEBSボリュームタイプ変更作業です。
* AWS-CLIを用いて作業をおこないます。

#実施手順

##環境
“`
OS情報
[root@localhost ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)

AWS-CLIバージョン
[root@localhost ~]# aws –version
aws-cli/2.1.19 Python/3.7.3 Linux/3.10.0-1160.11.1.el7.x86_64 exe/x86_64.centos.7 prompt/off
“`

##EBSボリュームタイプ変更作業

▼EBSのボリューム IDを変数「EBS_VOLUME_ID」に格納

“`
# EBS_VOLUME_ID=”vol-1111111111111111″
“`

▼現在のEBSのボリュームタイプを確認

“`
[root@l

元記事を表示

Lambda ↔ DynamoDB

# はじめに

`Lambda` から `Ruby` で `aws-sdk` つかって `DynamoDB` な話です。何番煎じやねんと思いつつ、本日付のものは一つしかないだろうということで書きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/32540/21ebdab8-8851-8c3c-2599-648311da9967.png)

# ゴール的なもの

– LambdaつかってサーバレスでクラウドネイティブなWebのバックエンドをブラウザ開発してみる
– 今回はとりあえず、`Lambda` から `Ruby` で `aws-sdk` つかって `DynamoDB` へというとこまでやる
– 最終的には、AWSのあれやこれやのサービスをつなぎ合わせてアプリ作る

# 開発の流れ

1. DynamoDBにテーブルつくる
2. IAMでDynamoにアクセスできるようなロール作る
3. ロールをLambdaに適用する
3. Cloud9上で、aws-sdkつかってDynam

元記事を表示

RDSのDBパラメーターグループ関連のコマンドめも

#はじめに
* RDSのDBパラメーターグループ関連のコマンドメモとしての備忘録
* 本手順では、AWS-CLIでの操作となります。

#実施手順

##DBパラメーターグループ名の一覧を出力

“`
[root@localhost ~]# aws rds describe-db-parameter-groups –query ‘DBParameterGroups[].DBParameterGroupName’
[
“aurora-postgresql11”,
“postgresql11”
]
“`

※現在、登録してあるDBパラメーターグループは「aurora-postgresql11」「postgresql11」の2つです。

##DBパラメーターグループの設定値をファイルに出力

▼DBパラメーターグループの設定値をJSON形式(デフォルト)で出力

“`
・aurora-postgresql11 の場合
# aws rds describe-db-parameters –db-parameter-group-name aurora-postgresql

元記事を表示

ちゃま語でツイートするSlack Bot 〜AWS Lambdaを用いたSlack Botの作り方〜

# はじめに
## こんな人に読んでもらいたい
ネタはホロライブ関連だけど、やってることは以下のようなことなので、役に立つかも(役に立ってほしい)。

・AWS Lambdaを用いてSlack Botを作る
・Botとの個人チャットに送信された文章を取得して、定められた動作する。(返信もする)
・twitterAPIでツイート
・AWS Lambdaをserverless-frameworkでデプロイ
・Python外部モジュールはserverless-python-requirementsで導入

## これは…?

 ちゃま語でツイートするSlack Botを作った。ざっくり説明すると、

1. Slack Botにツイートしたい文を入力する
2. ちゃま語に翻訳する
3. 翻訳した文をツイートする

## そもそも「ちゃま語」って…?(最初にこれ書けよ

 先日、マリン船長が配信で、**「ちゃま語であそぼ」**なるものを、はあちゃまが提案していたという旨の話をしていた。(以下の動画を参照)
https://www.youtube.com/watch?v=T2yMNE_zb

元記事を表示

簡単Webサイトホスティング③特定のURLを定期的にモニタリングするCloudFormationテンプレート

# はじめに

Amazon Web Services(AWS)が提供する、“Amazon CloudFront“ や “Amazon S3“ と呼ばれるサービスを組み合わせることで、 **HTMLやJavaScript、画像、ビデオなどで構成される静的Webサイトの配信基盤** を[**安価に構築**](https://aws.amazon.com/jp/websites/)することができます。本記事では、リソースのセットアップを自動で行うことのできる、“AWS CloudFormation“ を用いることで、これらの配信基盤を **ミスなく迅速に構築** する手順をご説明します。なお、今回使用する CloudFormation テンプレートは、以下の GitHub リポジトリで公開しています。

+ [AWSCloudFormationTemplates/static-website-hosting-with-ssl](https://github.com/eijikominami/aws-cloudformation-templates/blob/master/sta

元記事を表示

OTHERカテゴリの最新記事