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

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

めちゃくちゃ簡単 Amazon Polly

AIとか音声解析とか聞くとなんか難しそうだけど、Amazonが提供しているサービスを使うと簡単に実装できるので、試してみた!

## Amazon Pollyとは
文章をリアルな音声に変換するサービス。テキスト読み上げができるアプリケーションを作成できるため、まったく新しいタイプの音声対応製品を構築できる。Polly は、高度な深層学習技術を使用したテキスト読み上げサービスで、人間の声のような音声を合成します。

ひと昔前はあきらか、機会が読んでる感じの音声だったけど、かなり人間に近い音声!!

## ひとまず実装してみる
環境を作成するのが手間なのでLambdaを使って実装。
プログラムはLambdaで提供があるPython 3.7。

入力された音声をPollyを使って音声に変換し、mp3ファイルをS3に保存する。
これだけでOK。

“`Python
from boto3 import Session
from boto3 mport resource
from contextlib import closing
import os
import sys

def lambd

元記事を表示

AWS IoTボタンで自分の訃報をツイートする「死んダッシュボタン」を作ってみた

# 死んダッシュボタンとは
自分の身にもしものことが起こった(死んでしまった)とき、自分の訃報をできるだけ早く周囲に知らせたい!
そんなとき、ワンクリックで自分の訃報をTwitterに投稿してくれる便利なボタン!
それが **死んダッシュボタン** です。

# なぜこんなものを?
友人と話しているとき、自分が死んだときってどうやって周囲に伝わっていくのか?という話題になりました。
親族や親しい友人にはすぐに伝わるでしょうが、たまにしか合わない友人や知人には伝わるまでにタイムラグがあるはずです。
そんな人達と生前たまたま飲み会や遊ぶ予定が入っていた場合は、ドタキャンと思われかねない。
連絡も返さない嫌なヤツになってしまう。
そんな不安から作成を決意しました。

# 準備
まず、[AWS IoT ボタン](https://aws.amazon.com/jp/iotbutton/)が必要です。
クリック、ダブルクリック、長押しで色々なことができるデバイスです。
あとはAWSアカウントとTwitterアカウントを用意します。

# Twitter APIの登録
自動でツイートを行うには、Tw

元記事を表示

serverless-cloudform の紹介

# この記事は

[Opt Technologies Advent Calendar 2019](https://qiita.com/advent-calendar/2019/opt-technologies) の 12日目の記事です。(遅れて投稿)

# serverless-cloudform とは

[gcchaan/serverless-cloudform](https://github.com/gcchaan/serverless-cloudform) は [ServerlessFramework](https://serverless.com/)(以下SLS) のプラグインです。
利用用途は [bright/cloudform](https://github.com/bright/cloudform) で SLS の CloudFormation(以下CFn) テンプレートを定義することです。
メリットには serverless.yml から CFn テンプレートを分離できること、cloudform を利用できることなどがあります。

### cloudform とは

c

元記事を表示

[AWS初心者向け] AWS スポットインスタンスで割安の Kaggle 計算環境を構築

## はじめに
データ分析コンペの Kaggle に参加する際、Notebook (Kernel) やラップトップを使用していましたが、モデルの学習時にリソースが足りなくなることが多くあります。単純に AWS で EC2インスタンス を立てて Jupyter を導入することもできますが、**出来るだけ低コストに使えるように AWS のスポットインスタンスで Jupyter を起動するまでの手順** について書こうと思います。

## AWS スポットインスタンスとは
スポットインスタンスはオンデマンド価格より低価格で利用できる未使用の EC2 インスタンスで、需要と供給によって利用料金が変動します。GCP でいうとプリエンティブインスタンスにあたると思います。**オンデマンドに比べて大幅に割引されます**が、いくつかの理由によりインスタンスを中断されることがあります。今回の Kaggle 計算環境のように中断されてもそこまで影響の無いワークロードに向いています。

参考:[AWS ドキュメント スポットインスタンス](https://docs.aws.amazon.com/ja_jp/

元記事を表示

本番環境リソース以外をTerraformでIaCして別アカウントに移す方法

# はじめに
こんにちは! こちらは[terraform Advent Calendar 2019](https://qiita.com/advent-calendar/2019/terraform) 15日目の記事として書いています。

今回は、**一つの現行アカウントで全て管理していたものをステージング/開発環境のリソースだけ新アカウントを移す際にやったこと**を、既存リソースのIaC話を中心にまとめていきたいと思います。

# 対象読者
– **現状本番環境とステージング/開発環境を単一アカウントで管理しており、アカウント分離を検討している方**
– **既存リソースのIaC/ステートフルなリソースのアカウント移行プロセスに興味がある方**

# 何をやったか
**現行のアカウントの既存のステージング/開発環境のリソースのみTerraformでIaCし、新アカウントへ移植した。**
![stageのリソース移行.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321850/49c34b55-6854

元記事を表示

Amazon Kinesis Video StreamsのWebRTC対応まとめ + 1対1の低遅延なビデオ通話を試してみる

# はじめに

この記事は DMMグループ Advent Calendar 2019 15日目の記事です

今年DMM.comに新卒入社した @k0bya4 です
現在はWebRTCを利用したライブ配信サービスで主にサーバサイドの開発をしています

今回は、先日発表されたAmazon Kinesis Video StreamsのWebRTCサポートについて個人的に試してみたことについてまとめます

# Amazon Kinesis Video Streams
### サービスの概要
[Amazon Kinesis Video Streams](https://aws.amazon.com/jp/kinesis/video-streams/)

> Amazon Kinesis Video Streams を使用すると、分析、機械学習 (ML)、再生、およびその他の処理のために、接続されたデバイスから AWS へ動画を簡単かつ安全にストリーミングできるようになります。Kinesis Video Streams は、数百万ものデバイスからの動画のストリーミングデータを取り込むために必要

元記事を表示

【AWS】RDSで作成したMySQLのDBに日本語が保存できないを解決 | Rails on Docker

## はじめに
やっとのおもいでAWSにRails on Railsで作成したアプリケーションをデプロイできた!!
と感激していた直後、本番環境でユーザー登録をしてみたところ、こんな画面が登場して絶望しました。

![FireShot Capture 009 – We’re sorry, but something went wrong (500)_ – techlog-316940954.ap-northeast-1.elb.amazonaws.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285374/e545a8fc-0fc3-a1cb-069f-6a16eb0efa10.png)

ただローカル側のテストではすべてパスしている、本番環境に問題がありそうということが分かったので、様々なパターンでユーザー登録を実行してみたところ「**日本語で登録するときのみ**」上のエラー画面が表示されることが判明した

## 解決策
### 1. パラメータグループを作成して文字コードを修正する

元記事を表示

AWSのIPレンジを調べる

AWSのサービスで使用されている、IPアドレスのレンジを調べる。

# 調べ方

“`bash
curl -s https://ip-ranges.amazonaws.com/ip-ranges.json |
jq -r \
–arg REGION “ap-northeast-1” \
–arg SERVICE “EC2” \
‘.prefixes[] |
select(.region == $REGION and .service == $SERVICE) |
.ip_prefix’ |
sort -n
“`

# 参考

– [主要クラウドサービスの公開 IP アドレスレンジ(AWS/Azure/GCP/OracleCloud)](https://qiita.com/y10exxx/items/706b5b510aef07ef7879#amazon-web-serviceaws)

元記事を表示

[AWS]ALB +ACM + EC2でWordPressをSSL化した際の勘所

####■概要
AWS上に構築したWordPress環境をSSL化しました。
構成は下記となりALBで終端してALBから先はHTTP通信となります。
ALBのリダイレクト機能とx-forwarded-protoを利用して構築したので
WordPressサーバの.htaccessにリダイレクト設定を入れる必要がありません。
また、ACMを利用したのでSSL証明書費用を抑えることができました。

![Untitled Diagram.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/207381/36b3181c-c2df-6a06-6333-6ad1ed93d3ee.png)

通信プロトコルのシーケンス図は下記です。
ユーザからのアクセスがHTTPでもHTTPSのいずれでもALBとEC2間はHTTP通信となり
ユーザへの応答はHTTPSに統一されます。

![FireShot Capture 009 – js-sequence-diagrams by bramp – bramp.github.io.png]

元記事を表示

流行りにのってAmazon SageMaker Studioを使ってみた!!

本記事は[うるる Advent Calendar 2019](https://adventar.org/calendars/4548) 15日目の記事です。

## はじめに

みんな大好き機械学習。在庫予測からF1のタイヤ消耗度まで様々な分野で活用されています。
Amazonでもそんな機械学習を簡単に行えるサービスを展開してます。
その中のAmazon Personalizeを使う場面があったので、あえてその源流のAmazon SageMakerを使ってみようと思います。そしてついでに最近公開されたばかりのAmazon SageMaker Studioも使ってみようというノリの記事です。今回は学習モデルの作成、デプロイまで行おうと思います!!

## Amazon SageMakerってなんぞや

アマゾンさんのサイトから引用

> Amazon SageMaker は、すべての開発者やデータサイエンティストが機械学習 (ML) モデルを迅速に構築、トレーニング、デプロイできるようにする完全マネージド型サービスです。SageMaker は高品質モデルの開発を容易にするため、機械学習の

元記事を表示

Backlogの課題内容に自動バリデーションをかける

2019-12-15 00-08-45.png

Backlog の課題登録時に、項目を未入力のまま課題登録をしてしまうケースがよくありました。
手作業でのチェックが面倒だったので、自動でバリデーションをかけて、問題がある場合には担当者を課題作成者に差し戻す簡単な処理を、API Gateway/Lambda/CDK で作成してみました。

方針としては、以下の通りです。

– Backlog 上での課題登録・更新時に webhook でチェックツールにデータを飛ばす
– API Gateway で POST リクエストを受け、Lambda でバリデーション処理を行う
– チェックのルール定義には、とりあえず [JsonLogic] を用いる
– もっと良いものがないか探し中
– バリデーションエラー時は、状態

元記事を表示

サーバレスフレームワークに触れる

## Serverless Frameworkとは
サーバーレスなアーキテクチャをかんたんに作成できるオープンソースのフレームワークです。
サーバーレスへの理解を深めるために軽く触れてみたいと思います。
[Serverless Framework](https://serverless.com/)

## 1.環境構築
コンソール画面から「Cloud9」を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510859/c30e3e49-baf0-5ccc-76c3-40d57eebde7c.png)

「Create enviroment」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510859/8d3dd698-21c3-248d-a862-54fe8b016fd4.png)

作成する環境名を入力する。
![image.png](https://qiita-im

元記事を表示

AWS CLI の認証情報まとめ(プロファイル追加、ロール使用)

AWS CLI の認証情報の設定について、いつも調べつつ利用していたので、自分用にまとめました。

## 認証情報の設定
以下のように aws configure コマンドでセットアップした場合、default という名前のプロファイルに保存される。

“`bash
$ aws configure
AWS Access Key ID [None]: ********************
AWS Secret Access Key [None]: ********************
Default region name [None]: ap-northeast-1
Default output format [None]: text
“`

プロファイル設定ファイルは `~/.aws/credentials.`(機密性の高い認証情報)と `~/.aws/config`(機密性の低い設定)に保存される。

“`bash
$ cat ~/.aws/credentials
[default]
aws_access_key_id=********************
aw

元記事を表示

Amazon Rekognition を使ってみた

この記事は YAMAP エンジニア Advent Calendar 2019の14日目の記事です。

# はじめに
おかげさまで、 YAMAP には毎日大量の写真がアップロードされております。
その中で自分が写っている写真をシュッと検索できたらな〜と思い立ち、まずはお手軽な Amazon Rekognition で試してみました。

# 手順

Amazon Rekognition には顔コレクションというものがあり、下記の手順で自分が写っている写真を検索できます。今回はAWS CLIで実施しましたので、コマンドと結果と共に手順を記載します。

## 1. 顔コレクションを作成する。

まずは、顔の情報を保存するコレクションを作ります。

“`
aws rekognition create-collection \
–collection-id “sampleCollection”
“`

正常に作成できました。

“`
{
“CollectionArn”: “aws:rekognition:ap-northeast-1:270040163539:colle

元記事を表示

[小ネタ]VSCodeからSAMによるLambdaのローカル実行で「Error with child process: Building resource ‘awsToolkitSamLocalResource’」がでて動かない場合の対処

# 要約
SAMの内部にあるpipのversionとローカルのpipのversionが合わないと動かない時があるので、ローカルのpipのversionを修正する必要がある。

# 実行環境

|項目名|バージョン|
|—|—|
|OS|MacOS High Sierra 10.13.6|
|VSCode|1.40.2|
|SAM|0.37.0|
|Python|3.7.3|
|pip|19.3.1(記事内で19.2.3に変更)|

# 問題
VSCodeの「Run Locally」からAWS Toolkitを使用してローカル環境で試験したい時に動かない場合があります。例えば以下のようなエラーです。

“`python

Local invoke of SAM Application has ended.
Preparing to run app.lambda_handler locally…
Building SAM Application…
An error occurred trying to run SAM Application locally: Error

元記事を表示

EKS for Fargate the Hard Way 〜 EKS for Fargateをeksctlに頼らず構築する

# TL:DR
`eksctl`に頼らず、EKS for Fargateクラスタを構築する際は以下を確認!

1. プライベートサブネットにアタッチするルートテーブルにはNAT GWへのルートを!
2. VPCのDNSホスト名を有効にしているか確認!
3. PodテンプレートのAnnotationに`eks.amazonaws.com/compute-type: fargate`をつけよう!

# EKS for Fargate the Hard Way
2019/12/5にAWS Re:InventにてGAとなった[EKS for Fargate](https://aws.amazon.com/jp/blogs/news/amazon-eks-on-aws-fargate-now-generally-available/)。皆様もう試してみたでしょうか?? 私もただいまECS for Fargateと比較して、何ができて何ができないのか、絶賛検証中でございます!

さて、EKS for FargateのGAの記事を見ると、`eksctl`コマンドを使ってEKS for Fargate

元記事を表示

InCaaaan:印鑑マシーンの作り方 上司ツール編

#InCaaaanとは?
[InCaaaan:印鑑マシーンの作り方 超概要編](https://qiita.com/oic0310/items/fb0aca7d355df9ddafb3)に、全体的な構成と動画を置いてますので、ご確認ください。
では、早速作り方を!!!!

#InCaaaanの中核は、IBM CloudのNode-RED
主に以下の制御を行っている。

– 部下用の申請Webコンテンツの表示(LINE ID、LINE名取得もする)
– Kintoneに申請データを保存する
– AWSからKintoneのレコードが無事に追加されたことを受ける
– レコードが追加されたことをトリガーにTwillioに自動音声の電話を要求(今回は説明対象外)
– 電子型押印にKintoneのレコード IDとLINE名と金額をMQTTで送る
– 電子型押印からの承認要求を受けて、承認データを生成してKintoneに送信
– Obnizのサーボを動作

スクリーンショット 2019-12-14 20.14.28.pngAWSの講義を受けて書いたメモ

[AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得](https://www.udemy.com/course/aws-and-infra/)を受けた。出てくる語句をメモ。

### どんな講義?
講義の流れはこんな感じ。

|セクション|AWS|インフラ|内容|
|:-:|:–|:–|:–|
|1|概要|概要|AWSでネットワーク・サーバを構築しよう|
|2|サインアップ、CloudWatch、IAM、CloudTrail|-|AWSを始めよう|
|3|VPC|IPアドレス、ルーティング|[ネットワークの構築しよう](#【VPC】ネットワークの構築しよう)|
|4|EC2|SSH、公開鍵認証、ポート番号、ファイアウォール|[Webサーバーを構築しよう](#【EC2】Webサーバーを構築しよう)|
|5|Route53|ドメイン、DNS|[ドメインを登録しよう](#【Route53】ドメインを登録しよう)|
|6|RDS|-|[DBサーバーを構築しよう](#【RDS】DBサーバーを構築しよう)|
|7|EC2|HTTP、TC

元記事を表示

AWS SDK for Python(Boto3)ではClient APIよりResource APIを使おう

# はじめに
この記事は[AWS初心者 Advent Calendar 2019](https://qiita.com/advent-calendar/2019/aws_beginner)
の14日目の記事です。
もし誤りがあれば指摘してもらえると幸いです。

# 要約
Boto3の中ではサービスによってリソースAPI(boto3.reosurce(‘サービス名’)で呼び出すもの)があります。リソースAPIの方がクライアントAPIより抽象化されていて不要な情報を書かずに実装できるので、それぞれのAPIで同じことができる場合はリソースAPIを優先して使用した方が良いです。

# 記事全体の構成
まずBoto3、クライアントAPI、リソースAPIとは何だったのかを再確認します。
その後に両方のAPIを使用した場合にSQS、S3、DynamoDBの使用パターンを1ケースずつとりあげて比較してどう違うのかを具体的に見てみます。
最後に現在リソースAPIが提供されているサービスの一覧と所感を書いてます。

# Boto3とは
Pythonに提供されているAWSのSDKで、コードからAWSの各種サ

元記事を表示

主要クラウドサービスの公開 IP アドレスレンジ(AWS/Azure/GCP/OracleCloud)

## はじめに
ネットワーク制限が厳しい環境などで明示的に通信許可を設定する場合などに、主要なクラウドサービスが所有しているパブリック IP アドレスの範囲を確認したい時があります。
そこで、主要なクラウドサービスが保持する IP アドレスリストを取得する方法について調査し整理しておきます。

## Amazon Web Service(AWS)
AWS では、JSON 形式でリストを公開しています。

AWS IP アドレスの範囲
https://docs.aws.amazon.com/ja_jp/general/latest/gr/aws-ip-ranges.html

次のエンドポイントで最新の IP アドレスリストを取得することができるため、定期的に参照するのが良いと思われます。

AWS ip-ranges.json
https://ip-ranges.amazonaws.com/ip-ranges.json

なお、createDate の項目が更新日時のため、プログラムなどで自動参照する際は、更新時に最新を取り込むようにするのが良いでしょう。

“`json

元記事を表示

OTHERカテゴリの最新記事