AWS関連のことを調べてみた2019年11月27日

AWS関連のことを調べてみた2019年11月27日
目次

【クラウド初心者向け】Amazon Connectの案内音声を人間の音声に変更

# 概要
– マイクを利用して音声録音を行います。
– コンピューターの音声を録音した音声に置き換えます。

## 使用ユーザー
– IAMユーザー

## 手順
1. AWSにサインインします。
1. アカウント、ユーザー名、パスワードを入力してサインインします。
[アカウント内(IAM)で作成したユーザーを使用してコンソールにサインインする](https://qiita.com/echolimitless/items/129495c920217916a14f#%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E5%86%85iam%E3%81%A7%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9F%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%E3%81%AB%E3%82%B5%E3%82%A

元記事を表示

Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #17 (サテライト)

Amazon Web Services (AWS)のサービスで正式名称や略称はともかく、読み方がわからずに困ることがよくあるのでまとめてみました。

Amazon Web Services (AWS) – Cloud Computing Services
https://aws.amazon.com/

まとめルールについては下記を参考ください。

Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #1 (コンピューティング) – Qiita
https://qiita.com/kai_kou/items/a6795dbab7e707b0d1a6

間違いや、こんな呼び方あるよーなどありましたらコメントお願いします!

## Satellite – サテライト

### AWS Ground Station

– 正式名称: AWS Ground Station
– https://docs.aws.amazon.com/ground-station/?id=docs_gateway
– 読み方: グラウンド ステーション
– 略称: なし

元記事を表示

AWS LambdaのDestinationsを試してみる

AWSから割とすごい機能が発表されました。

Introducing AWS Lambda Destinations
https://aws.amazon.com/jp/blogs/compute/introducing-aws-lambda-destinations/

![スクリーンショット 2019-11-27 6.51.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102769/8dcc8bb4-f376-17ae-1ccf-b64739c3289b.png)

Lambdaの実行結果に従って次のアクション(AWSサービス)を指定できる、というものです。
成功/失敗の条件で流れを制御したい場合には、Step Functionsを使う必要もなく、Lambdaだけで完結することができるようになりました。

早速試してみます。

# 呼び出し元のLambdaを適当に定義

こんな感じのPythonを書きます。(Python 3.7を利用)

“`python
import json
impor

元記事を表示

やねうら王を AWS Lambda で動かす

[やねうら王](https://github.com/yaneurao/YaneuraOu) は 2019 年現在最も強い将棋 AI の一つです。AWS Lambda 上で実行できれば、API Gateway と連携したりして夢が広がります。
やねうら王 V4.88 を AWS Lambda 向けにビルドしてみよう。

# 実行環境

AWS Lambda の実行環境 OS は Amazon Linux 2 なので、Amazon Linux 2 上でビルドすれば十分です。
SIMD 拡張命令は 2017 年時点で SSE 4.2 が動くらしい。

– [AWS Lambda ランタイム](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-runtimes.html)
– [AWS LambdaのCPUを見てみる](https://qiita.com/kurimoto/items/eca091cccc54d7c07634)

# ビルド

[Amazon Linux の Docker イメージ](https://hub.d

元記事を表示

Serverless Frameworkでevent scheduleをステージ毎に切り替える

## 環境

* Serverless Framework

## やりたいこと

CloudWatch Eventの定期実行をステージングでは手動実行、本番では定期実行させたいということがあったので、備忘録として残しておきます。

## serverless.yml

至って簡単です。

“`yaml

service: hoge

provider:
name: aws
runtime: nodejs8.10
stage: ${opt:stage, self:custom.defaultStage}
region: ap-northeast-1

custom:
defaultStage: dev
schedule_active:
dev: false
prod: true
default: false

functions:
hello:
handler: handler.hello
events:
– schedule:
rate: rate(30 minutes)

元記事を表示

【初心者】AWS CloudFormation を使ってみる

# 目的
– CloudFormation のテンプレートがある程度読めるようになりたい。ハンズオン等で「このテンプレートをデプロイして下さい」と言われることがあるが、中身がよく分からないテンプレートを実行して、想定外のリソースができてしまったりするのが嫌なので。

# やったこと
– 以下を実現するシンプルな CloudFormation テンプレートを作成する。
– VPC, IGW, Subnetを作成する。
– SubnetにIGW向けのルーティングを入れる。

# 構成図
![cf構成図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189302/54c6dd20-b0ba-6818-ff99-fe7f6869509c.png)

# 作業手順

– AWS公式のテンプレート[「DNS およびパブリック IP アドレスを持つ Amazon VPC」](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserG

元記事を表示

Node.jsでGlobal Secondary Indexを使用して特定条件のレコードを抽出する

## 環境

* Nodejs
* AWS Lambda
* AWS DynamoDB

## はじめに

DynamoDBではパーティションキーもしくはレンジキーを使用してしか基本的には抽出が出来ないのですが、任意のキーを元に抽出を行いたいという時は、Global Secondary Index(以下GSI)を使用する事で任意のキーでレコードを抽出することが出来ます。

## 注意点

以下の点に気をつける必要があります。
* GSIは1テーブルにつき20件までしか作成出来ない
* GSIのキーに指定出来るカラムのデータ型は文字列、数値、バイナリのいずれかである必要があります
* Serverless Frameworkではまだそこまで自由なGSIは作成出来ないようなので、DynamoDBコンソールからGSIを作成する必要がある(ハッシュキー or レンジキー以外でのGSIの作成がうまくいかなかった)

例えばboolean型のカラムをキーにGSIは作成出来ません(私がやろうとしていました…)

参考情報:
* [DynamoDB での制限](https://docs.aws.a

元記事を表示

CloudFormationテンプレートのセキュリティ的な問題を開発プロセスの初期段階から警告しよう

CloudFormation を使用することで、AWS のリソースを素早くプロビジョニングできます。また、yaml 形式のテンプレートファイルで記述することにより、インフラ開発者はどのリソースが作成されるのかを宣言的に管理できます。
開発者は AWS リソースをすばやく簡単に作成できますが、安全でないリソースもすばやく作成できてしまいます。「安全でない」とは、TCP ポートを世界中に公開したり、特定の IAM ユーザーにフル権限を与えてしまうことでセキュリティ的に問題があるリソースを作り出してしまうことを意味しています。

以前、CircleCI MeetUp で [CloudFormation を静的構文解析する話](https://speakerdeck.com/gawa/aws-testing-techniques-and-policy-as-a-code?slide=17)をしました。
CloudFormation を静的構文解析することにより、セキュリティ的に問題があったり、命名規則に従っていないリソースに対して警告できます。このようにポリシー違反を検知する仕組みを作ることで

元記事を表示

AWSの利用料金をGoで積み上げ棒グラフ化した

## はじめに

– 最近いろんな所でDevOpsって言葉を聞きますね。
– DevOpsの影響を受けて[FinOps](https://www.finops.org/what-is-finops/)と呼ばれるテクノロジー、ビジネス、財務を融合させたクラウドの運用モデルも提唱されています。
– もしかしたら、数年後にはDevOpsと同じくらいメジャーな概念となっているかもしれません。
– FinOpsを始めるための第一歩としてクラウドの利用料金の可視化、通知が挙げられています。
– というわけで、今回はAWSの利用料金を手っ取り早くグラフ化してslackに通知するツールについて紹介します。

## TL;DR
– CostExplorer APIからサービスごとの利用料金を取得
– [gonum/plot](https://github.com/gonum/plot)でStackedBarChartを生成
– [nlopes/slack](https://github.com/nlopes/slack)でslackに通知

## AWS料金の可視化方法いろいろ
– [CostExp

元記事を表示

Glueの使い方的な㊷(XMLで出力)

# DataFrameでCSVをXMLで出力するジョブを作る

## ジョブの内容

Glue、というか多分DynamicFrameが、
XMLの入力には対応していますが、出力には対応していません。

https://docs.aws.amazon.com/ja_jp/glue/latest/dg/aws-glue-programming-etl-format.html

>現在、AWS Glue は出力用に “xml” をサポートしていません。

DataFrameを使ってXML出力するにはdatabricksが作ったライブラリなどが必要です。DataFrameを使ってのXML出力をやってみます

※”[Glueの使い方的な①(GUIでジョブ実行)](https://qiita.com/pioho07/items/c9ce1d0677777f974ffe)”(以後①とだけ書きます)とほぼ同じ処理

“今回は出力をXML形式にします”

その際に以下のjarを使う
spark-xml_2.11-0.5.0.jar

Glueのv0.9はSpark2.2、v1.0はSpark

EC2のパブリックIPアドレスを意識せずにSSHログインする

# やりたいこと
踏み台サーバーを構築した際などは、基本的にSSHでログインすることになる。
そのEC2のパブリックIPアドレスを知らない状態で、SSHログインをしたい。

EC2を起動する度にパブリックIPアドレスは切り替わるので、ElasticIPを付与するケースが多かったりする。
しかし、ElasticIPは1AWSアカウントに対し、デフォルトではリージョン毎に5つしか設定できなかったりと何かと制約がある。
そのため、不必要にElasticIPを使うのも避けたい。

# 解決策
下記の流れで解決できます。

1. (事前準備) EC2インスタンスにタグを貼っておく
2. (SSH接続時) SSH接続したいインスタンスのオブジェクトをタグで検索をかける
3. (SSH接続時) ヒットしたEC2のパブリックIPアドレスを取得
4. (SSH接続時) 取得したパブリックIPアドレスに対し、SSH接続

## インスタンスへのタグ付
下記のように、Nameというキー名でタグを貼ると、コンソール画面のNameの場所にタグの値が表示されます。
スク</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>AWS</div>
<div class='tag-cloud-link'>EC2</div>
<div class='tag-cloud-link'>aws-cli</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/Canon11/items/40e781bd7dd0e0568c95'>元記事を表示</a></div>
<h3 id=AWS EC2でWordPressを構築する際に500エラーに悩まされた話

# はじめに
今回、「ゼロからわかるAmazonWebServices入門」という書籍でAWSを学習しているものです。
こちらの書籍の第4章でエラーに遭遇し、多くの時間を浪費してしまったので備忘録として記します。
同じようなエラーに悩んでいらっしゃる方の一助となれれば幸いです。

# ブラウザからパブリックIPにアクセスすると500エラーになった
書籍の手順通り、デフォルトのVPC、サブネットにEC2インスタンスを作成、起動させ、そこへsshでログイン後、Apache、PHP、MARIADB、WordPressをインストールし終えたところでブラウザからパブリックIDを仕様してサーバーにアクセスすると、500エラーが表示されました。

# 原因と対処法
私の場合、インストールしたPHPとWordPressのバージョンが合わず、エラーを引き起こしていました。
そこでいったんインストールしたWordPressを削除してから、古いバージョンのものをバージョン指定してインストールする事で解決しました。

1、インストール、展開したWordPressを削除
“`/home/wordpress
$

【クラウド初心者向け】Amazon Connectのリアルタイムモニタリング

# 概要
– ユーザー(エージェント)が受けている電話を管理者がリアルタイムに聞くことができる。

## 使用ユーザー
– IAMユーザー

## 手順
1. AWSにサインインします。
1. アカウント、ユーザー名、パスワードを入力してサインインします。
[アカウント内(IAM)で作成したユーザーを使用してコンソールにサインインする](https://qiita.com/echolimitless/items/129495c920217916a14f#%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E5%86%85iam%E3%81%A7%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9F%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%E3%81%AB%E3%82%B5%E3%82%A4%E3%

AWSのサブアカウントを作る

今日はAWSのサブアカウント(支払いクレカが一緒の別アカウント)を作る方法をメモります
大した事ではないのだけど
割と「どっからやるんだぁ?これぇ」ってなるので

メモりますよ~メモメモ

# 【マイ組織】にアクセス

![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529242/6caa9d3a-9d96-f9be-0554-3285ac578c45.png)

# 【アカウントの追加】を押す

![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529242/b1397296-a169-509e-8f38-d24c6d07d86e.png)

# 【アカウントの作成】を押す

![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529242/5be0d21b-4ea6-43ef-cc5e-74d8da2b16b6.png)

【クラウド初心者向け】Amazon Connectの録音確認

# 概要
– 問い合わせフローで「通話記録動作の設定」ボックスを置くことにより自動的に通話を録音する。
– 録音した通話は、通話終了後少し経つと聞けるようになる。

## 使用ユーザー
– IAMユーザー

## 手順
1. AWSにサインインします。
1. アカウント、ユーザー名、パスワードを入力してサインインします。
[アカウント内(IAM)で作成したユーザーを使用してコンソールにサインインする](https://qiita.com/echolimitless/items/129495c920217916a14f#%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E5%86%85iam%E3%81%A7%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9F%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%

【クラウド初心者向け】Amazon Connectの着信確認までの振り返り

# 振り返り
– 概念図を見ながら、作成した順序と電話番号やルーティングプロファイルなどの関連を整理します。

## 概念図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/520689/b8d0af1d-c351-0251-ef50-f5abbfe34697.png)
– 赤い線:電話を架けた場合の流れ
– 青い線:関連付け
– 赤い数字:作成順序

## 作成順序
– ①:電話番号の取得
– ②:キューの作成
– ③:ルーティングプロファイルの作成
– ④:ユーザー(エージェント)の作成
– ⑤:問い合わせフローの作成

## 関連付け
– 電話番号から問い合わせフローを指定
– 電話番号に関連づけられる問い合わせフローは一つのみ
– 問い合わせフロー内で呼び出すキューを指定
– 問い合わせフロー内で指定により呼び出すキューを変えられる
– ルーティングプロファイルが参加するキューを指定
– 複数のキューに参加可能
– ユーザー(エージェント)が所属するルーティ

【クラウド初心者向け】Amazon Connectの顧客キューのフロー変更

# 設定していない音声と音楽が流れた理由
– 着信確認した際に設定していない音声と音楽が流れた理由を説明します。

## 使用ユーザー
– IAMユーザー

## 手順
1. AWSにサインインします。
1. アカウント、ユーザー名、パスワードを入力してサインインします。
[アカウント内(IAM)で作成したユーザーを使用してコンソールにサインインする](https://qiita.com/echolimitless/items/129495c920217916a14f#%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E5%86%85iam%E3%81%A7%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9F%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%E3%81%AB%E3%82%B5%E3%8

【クラウド初心者向け】Amazon Connectの着信確認

# 概要
– 今まで作成した内容が正しく反映されているか確認します。
– ソフトフォン(CCP:Contact Control Panel)を起動して電話を受け会話します。

## 使用ユーザー
– IAMユーザー

## 手順
1. AWSにサインインします。
1. アカウント、ユーザー名、パスワードを入力してサインインします。
[アカウント内(IAM)で作成したユーザーを使用してコンソールにサインインする](https://qiita.com/echolimitless/items/129495c920217916a14f#%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E5%86%85iam%E3%81%A7%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9F%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E

【クラウド初心者向け】Amazon Connectの問い合わせフロー作成

# 概要
– かかってきた電話をどう処理するか流れを決められます。
– 電話番号やお客様の選択によって処理を分ける事ができます。
– ログの取得ができます。

## 使用ユーザー
– IAMユーザー

## 手順
1. AWSにサインインします。
1. アカウント、ユーザー名、パスワードを入力してサインインします。
[アカウント内(IAM)で作成したユーザーを使用してコンソールにサインインする](https://qiita.com/echolimitless/items/129495c920217916a14f#%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E5%86%85iam%E3%81%A7%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9F%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%

【クラウド初心者向け】Amazon Connectのユーザー(エージェント)作成

# 概要
– お客様の電話を受け取って対応する人。
– ソフトフォンを利用してお客様からの電話を受け取ります。
– ユーザー(エージェント)は複数のルーティングプロファイルを割り当てる事ができます。

## 使用ユーザー
– IAMユーザー

## 手順
1. AWSにサインインします。
1. アカウント、ユーザー名、パスワードを入力してサインインします。
[アカウント内(IAM)で作成したユーザーを使用してコンソールにサインインする](https://qiita.com/echolimitless/items/129495c920217916a14f#%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E5%86%85iam%E3%81%A7%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9F%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%B3%E3%83%B3%E3%82%