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

AWS関連のことを調べてみた2020年01月30日
目次

[Media-JAWS][ハンズオン]AWSの方に学ぶ「Amazon Comprehend, Amazon Transcribe」

先日、以下に行ってきたので自分がハマったことも含めて残しておく。

https://media-jaws.doorkeeper.jp/events/102726

# 今回のハンズオン内ででてくるサービスのざっくり概要
+ Amazon Translate
+ https://aws.amazon.com/jp/translate/
+ 機械翻訳サービス
+ Amazon Polly
+ https://aws.amazon.com/jp/polly/
+ Text to Spearch
+ 文字をMP3にしてくれる
+ Amazon Transcribe
+ https://aws.amazon.com/jp/transcribe/
+ Speech To Text
+ Comprehend(コンプリヘンド)
+ https://aws.amazon.com/jp/comprehend/
+ 自然言語処理
+ 文章の構造解析
+ その文章の感情や主語/主題などを解析してくれる
+ ポジティブ/ネガティブに部類分けなんかもできる

元記事を表示

Ansible で Ubuntu 18.04 に Docker をインストールする試みが成功したっぽい

Terraform で AWS (ap-northeast-1d) に t2.large で `Ubuntu Server 18.04 LTS (HVM), SSD Volume Type (64 ビット x86)` を apply したあとに Ansible で Docker をインストールする手順がわかったので共有してみる

## さいしょ

“`sh

❯ ansible-playbook ./aws-docker.yaml -I “xx.xxx.xxx.xx,” -u ubuntu -v -C
Using /Users/sogaoh/src/../ansible.cfg as config file
____________
< PLAY [all] >
・・・
fatal: [xx.xxx.xxx.xx]: UNREACHABLE! => {“changed”: false, “msg”: “SSH Error: data could not be sent to remote host \”xx.xxx.xxx.xx\”. Make sure this host ca

元記事を表示

初心者必見! 「最小限の知識と手間で実現」既存システムの AWS 移行 その1 【移行概要 編】

# はじめに
既存システムのバックアップデータを利用し、**最小限の知識と手間** で AWS 上へ **AMI 変換により移行を実現**する方法を 4回に分けてご紹介します。

利用する製品は、取り扱いがとっても簡単で安定性の評価も高い **“Veritas System Recovery”** です。
バージョン 18 SP1(Service Pack 1)から、**4ステップの項目に答えるだけ**で AWS 上に既存システムの AMI を作成できる **AWS 移行ツール(AMI 変換ツール)** が標準機能として添付され、Veritas System Recovery をご利用のお客様は、追加コストなしに AWS 移行ツールをご利用いただけるようになりました。

最終回までご覧いただくと、**バックアップ から AMI 変換完了 まで の手順**を ステップ by ステップ で解説した 『**実機確認済み** の AWS 移行手順書』を入手いただけます!

# こんな人におすすめ
・**AWS の知識が殆どない**が

元記事を表示

DynamoDBのチュートリアルを読み解く【3: Amazon SNS トピックを作成する】

# はじめに

引き続き[DynamoDBのチュートリアル](https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/Streams.Lambda.Tutorial.html)を実施しました。
今回はSNSです。

(バックナンバー)
[1.DynamoDB テーブル作成](https://qiita.com/kkino1985/items/f9091c1e1efb35009ce7)
[2.IAMポリシー/ロール作成](https://qiita.com/kkino1985/items/a087bc3077f36b4b1e21)

# 3.1 SNSトピック作成

aws sns create-topic –name wooferTopic

## –name

– 書式 : –name `(value)`

作成するトピックの名前。
(トピックと次に出てくるサブスクライブについては後述します)

# 3.2 SNSトピックにE-mailアドレスをサブスクライブ

aws sn

元記事を表示

cloud-initをデバッグする Part 1

# 1. はじめに

以前書いた記事「[cloud-initを使ったLinux OSの初期設定](https://qiita.com/yamada-hakase/items/40fa2cbb5ed669aaa85b)」が、特定クラウドに依存しないこともあって**「いいね」**が好調だ♪ そこでデバッグ方法も書いてみることにした。

**「cloud-initをデバッグする」**というタイトルを付けたが、cloud-init自身はデバッグの対象ではない。正確には**「cloud-initのUser-Dataに指定したスクリプトのデバッグ方法」**である。

### 1-1. 対象環境

* cloud-initを利用できる環境(cloud-init 18.5で確認)
* 特定のクラウドサービスには依存しない。プライベートクラウドも同様
* Linux OSイメージ

### 1-2. 予定している内容

* User-Dataを書くときのチェック項目
* デバッグのためのcloud-initの理解
* インスタンスを作成しないでcloud-initを実行する方法
* その他高度な分析方

元記事を表示

AWS SESをGoでサンプルアプリケーションを作ってみた

仕事でsesを使う機会があったので、手元で試してみたく、サンプルアプリケーションを作りました。

# 前提
実装は組み込めるようにしたものではなく、サンプルアプリケーションを動かすだけのものです。

# sesの設定
## SMTPの設定
SMTP Settings > Create My SMTP Credentialsを選び、適当な名前でIAM Userを作成します。
ここを参照するとわかりやすいです。
https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/smtp-credentials.html

## ポリシーの設定
IAM Userを作成しただけでは、メールが送信できませんでした。

“`
$ go run main.go
AccessDenied: User `arn:aws:iam::11111111:user/ses-smtp-user’ is not authorized to perform `ses:SendEmail’ on resource `arn:aws:ses:us-west-2:11

元記事を表示

AWS SAMとCircleCIでアプリのバックエンドをつくった話

# AWS SAMってなーに?
AWS サーバーレスアプリケーションモデル (SAM、Serverless Application Model) とは、
> サーバーレスアプリケーション構築用のオープンソースフレームワークです。迅速に記述可能な構文で関数、API、データベース、イベントソースマッピングを表現できます。リソースごとにわずか数行で、任意のアプリケーションを定義して YAML を使用してモデリングできます。デプロイ中、SAM が SAM 構文を AWS CloudFormation 構文に変換および拡張することで、サーバーレスアプリケーションの構築を高速化することができます。
引用: [AWS サーバーレスアプリケーションモデル](https://aws.amazon.com/jp/serverless/sam/)

つまり、サーバレスなアプリケーションを割と簡単に構築可能にします。
サーバレスに特化したCloudFormation(というか拡張版CloudFormation)

## やりたいこと
* モバイルアプリのバックエンドをAWSサービスで実現したい!(APIとかD

元記事を表示

M5Stackをプリントサーバーにする

# はじめに

[前回](https://qiita.com/fukuebiz/items/cfad81fac76888abd27a) プリンターに接続できることが確認できたので、プリントサーバーとして動作させてみました。下記のように、印刷したいファイルのURLをトピックに入れて発行したら、M5Stackが受け取ってファイルを印刷するイメージです。

![m5stack_print_overview.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555397/0ae0d12e-6c44-e273-1b2a-7010878c3885.png)

# 検証

課題がいくつかありました。本当はAmazon FreeRTOSを使いたかったけど、まだAmazon FreeRTOSがBLEのClient部分がまだ実装されていないとか、M5StackのBLEがメモリをたくさん使うといったところです。次のページを参考にさせて頂きました。

– [BLE環境センサー・ゲートウェイ(ESP32編)](https://am

元記事を表示

AWSのSAMテンプレートでLambdaをVPC内に入れるときに付ける権限。

CodeStar実行時に、CloudFromationで、Lambdaの権限が足りなくて、以下のようなエラーが出力される場合:

“`
The provided execution role does not have permissions to call CreateNetworkInterface on EC2 (Service: AWSLambdaInternal; Status Code: 400; Error Code: InvalidParameterValueException; Request ID:xxxxxxxxxxxxxxxxxx)
“`

EC2のエラーとか表示されるので紛らわしい。実際はEC2ではなくVPCの権限。
templete.yamlに以下の行を追記すれば、動く。

“`
LambdaExecutionRole:
Description: Creating service role in IAM for AWS Lambda
Type: AWS::IAM::Role
Properties:
…略

元記事を表示

AWS AmplifyをVue.jsで使い倒したい!(API編)

# はじめに
[先日書いた記事](https://qiita.com/jre233kei/items/d719159c6b0b44b3980d)の続きです。

Amplifyでは、GraphQLを使って、APIを追加する事ができます。

# GraphQLとは
GraphQLを使うと、既存のRESTとは違って、過不足なく必要なデータを取ってくる事ができます。JSONをやり取りする感覚に近く、とても直感的です。

Amplifyでは、GraphQLでデータの構造を定義するとそれに伴い

– データの追加
– データの更新
– データの取得
– データの削除

を行う関数を自動で作成してくれます。便利。

# セットアップ

コンソール上で次のコマンドを実行します。

“`
$ amplify add api
“`

指示にしたがって、設定を行います。

スクリーンショット 2020-01-28 23.15.42.pngRDB脳が理解するDynamoDBのテーブルの設計方法

## はじめに

普段RDB(MySQL、PostgreSQLなど)を使っていて、DynamoDBのテーブルを初めて作ったときに`別物過ぎて全然手出しができなかったので`考え方・設計の方針を書こうと思います。

### 対象読者
DynamoDBのテーブルを初めて作るそこのあなた:baby:

## サンプルケース

ユーザが購入した本を登録するテーブル(`OrderHistories`)を考える。

カラムとしては、

– UserId
– CreateAt
– BookId

何も考えずUserIdをプライマリパーティションキー(RDBの主キー相当)として設定した場合、

– CreateAtで範囲検索
– 特定のBookIdがどれくらい売れたか

が検索できません!(スキャンと呼ばれる全文検索になるので現実的ではなくなる)

:flushed:ってなりますよね?

## DynamoDBのテーブルは辞書型だと考える。

DynamoDBはRDBのテーブルではなく`プログラミングのよくある辞書型`と捉えると理解が早い気がします。

UserIDを主キーにした場合は1レコードが主キー

元記事を表示

terraformで死活監視(ALBのhalthyhostsを監視)

トピックをChatbotでサブスクライブすれば、いい感じのグラフと一緒にslack通知されます。

“`
resource “aws_sns_topic” “cloudwatch_topic” {
name = “${var.app_name}-${var.env}-cloudwatch-topic”
}

resource “aws_cloudwatch_metric_alarm” “alb_healthyhosts” {
alarm_name = “${var.app_name}-${var.env}-alb-healthyhosts”
namespace = “AWS/ApplicationELB”
metric_name = “HealthyHostCount”
comparison_operator = “LessThanThreshold”
evaluation_periods = 2
period = 60
statistic = “Av

元記事を表示

Amazon Kinesis Video Streams の Producerをブラウザで実現したかったお話

# Abstract
* Amazon Kinesis Video Streams にブラウザから配信したかった。
* 問題いは多いものの、実現はできた。
* 実用には向かなそう。

# Amazon Kinesis Video Streams の概略
> 再生、分析、機械学習のためにメディアストリームをキャプチャ、処理、保存します。
> (https://aws.amazon.com/jp/kinesis/video-streams/)

リアルタイムな動画ストリーミングサービスで、配信、アーカイブのみならずMLフレームワークによる分析にも有用らしいです。

ユーザーが実装分はストリームを流す側と再生する側のふたつに大別できそうです。前者は**Producer** Library、後者は**Stream Parser** LibraryとしてSDKが提供されています。また、再生側にはHLS、MPEG-DASHなどの既存のストリーム規格にしてくれるAPIもあります。

# なぜブラウザか
Webアプリがベースのシステムに組み込むために、ブラウザで動作してくれれば最も完結な実装になるの

元記事を表示

EC2(インスタンス)が削除されて残ってしまったボリュームの削除

#問題
複数ボリューム持ちのAMIからインスタンス作成時、「終了時に削除」にチェックを忘れると、インスタンスを終了してもボリュームが迷子になって残る。
存在監視より定期的に掃除しましょう。

#lambda

“`python:python3.8
import json
import boto3

def lambda_handler(event, context):
client = boto3.client(‘ec2′, region_name=’ap-northeast-1’)

res = client.describe_volumes(
Filters = [
{‘Name’: ‘status’, ‘Values’: [‘available’]}
,{‘Name’: ‘tag:lambda’, ‘Values’: [‘delete me’]} #status条件だけで足りない時
]
)
#print(res)

for vol in re

元記事を表示

Amazon Personalizeのメモ

公開されているハンズオン ( https://pages.awscloud.com/event_JAPAN_Hands-on-Amazon-Personalize-Forecast-2019.html ) の [資料](https://pages.awscloud.com/rs/112-TZM-766/images/201912-AmazonPersonalizeHandson.pdf) を頼りに、Amazon Personalizeを体験した時に、ハンズオンと[公式の開発者ドキュメント](https://docs.aws.amazon.com/ja_jp/personalize/latest/dg/what-is-personalize.html) の補足をまとめていきます。

## 使われる単語

単語の関係性を クラス図で表現してみました。
![AmazonPersonalize.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/145742/2c571643-2d85-c7eb-dd59-4464

元記事を表示

AWSマネージドでEC2サーバ群の1台にcronする

AutoScalingなどEC2冗長化されたシステムにて、いい感じに1台だけからバッチしたい。
そう思ったときにサクッと出来る仕組みがなかったので作ってみました。

## 要件とアイデア
やりたいことは次のような要件です。

* EC2内でコマンド実行したい
– サーバ内ミドルウェアに依存した処理やDB接続などを行う場合、Lambdaでやるとsecretsや通信経路などややこしくなります。
* AutoScaling環境など、複数のEC2があるけど1台だけで実施したい
– 集計をしてDBに書き込むなどのようなバッチだと複数台から同時実行されると困ります。
* crontab置きたくない
– AutoScalingではcrontabを1台だけ有効など難しく、また全部に置いて排他を行うのもややこしい。

これらを以下のようにAWSサービスを組み合わせれば解決できそうです。

* CloudWatch EventsのタイマーでLambdaを発火させる
* LambdaにてEC2リスト取得&1台だけ選ぶ
* 同Lambda内から、選んだ1台に対してSSM RunCommandでコマ

元記事を表示

Amazon WorkSpaces会社でやってくれないかなという話

# Amazon WorkSpaces で実現するテレワークによる働き方改革
はい皆さんこんにちは

結論から言うとこの記事は
自宅でも職場でも外出先でも仕事用の仮想デスクトップを使えたら働き方が変わりますね
という話です。

ちなみにAWS Innovate Online Conferenceでも講習がありました

# 詳細
テレワークとは、情報通信技術 (ICT : Information
and Communication Technology)を活用した、場所や
時間にとらわれない柔軟な働き方のこと。

デスクトップ仮想化とは
ネットワークを通じてデータセンターやクラウド
上にあるサーバーで実行しているデスクトップ環
境に接続し、その画面情報をクライアントデバイ
スに転送することで、遠隔利用するしくみ

サテライトオフィスー>外出先の近くであれば移動時間のロスが無い
在宅勤務ー>通勤時間分を家庭の用事などに充てられる
モバイルワークー>外出時の待機時間中に働ける

##Amazon WorkSpaces への接続
・クライアントソフトウェアからログインするだけ

##OSの

元記事を表示

Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #25 (全般的なリファレンス)

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

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

全サービスを並べたチートシートもあるよ!

Amazon Web Services (AWS)サービスの正式名称・略称・読み方チートシート – Qiita
https://qiita.com/kai_kou/items/cb29d261c8acc49fd22a

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

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

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

## General Reference – 全般的なリファレ

元記事を表示

Transit Gateway でインターネットの出口を 1 つにする

## 目的

AWS 上で複数のアカウントや VPC を使用して開発していると、各アカウントに NAT Gateway が存在し、そんなにたくさん利用しているわけでもないのに維持するためのコストだけがかさむなぁ、という気分になってきます。

そんなとき、Transit Gateway というものがあるのを知りました。
Transit Gateway を使用すると、NAT 専用の VPC を作成し、ほかの VPC の Private な Subnet からは、その NAT 専用 VPC の NAT を経由することで、NAT は 1 台になって、コストが削減されるかも、という期待を抱いて試してみました。

結論からいうと、Transit Gateway は接続されている VPC の数によって課金されるので、全く安くならなかったのですが・・・。(まさに技術の無駄遣い)
せっかく作ったの何かのご参考にどうぞ。

## 全体構成

NAT 専用 VPC: 10.255.255.0/24

– Public Subnet1: 10.255.255.0/27 (Default GW: IGW) (N

元記事を表示

DynamoDBのチュートリアルを読み解く【2: Lambda 実行ロールを作成する】

# はじめに
[前回](https://qiita.com/kkino1985/items/f9091c1e1efb35009ce7)に引き続き[DynamoDBのチュートリアル](https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/Streams.Lambda.Tutorial.html)を実施しました。
今日はIAM関連になります。

# 2.1 IAMポリシー作成(Lambda用)

{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Principal”: {
“Service”: “lambda.amazonaws.com”
},
“Action”: “sts:AssumeRole”
}
]
}

## E

元記事を表示

OTHERカテゴリの最新記事