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

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

【AWS】Lambda用のNAT Gatewayの削除方法

# NAT Gatewayのコスト
東京リージョンの場合は下記の料金が発生します。
`$0.062 per NAT Gateway Hour`

## NAT Gatewayを削除してみる

### ルートを編集する
VPCのルートテーブルのページに移動し、ルートの編集を指定する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/68bab1b4-3ae8-651c-c5a0-028393eb8caf.png)

下記の設定項目を削除する

“`
送信先:0.0.0.0/0
ターゲット:nat-(作成したやつ)
“`
### NATゲートウェイの削除
VPCのNATゲートウェイの設定画面に移動し、`NATゲートウェイの削除`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/3b120d72-f6e1-3478-71f3-2b0b0578176d.png)

元記事を表示

eb deploy するときに勝手にmigration と cache clear をしてくれるようにする(Laravelアプリケーション)

## これは何
Laravelを使ったアプリケーションにおいて、AWS ElasticBeanstalk において、コードデプロイのタイミングで migration と cache clear をやってくれるようにする方法です。

## やり方

.ebextensions/ 以下の ファイルに以下の記述を追加します。

“`.ebextensions/migrate_and_cache_clear.config
container_commands:
01-migration:
command: “php artisan migrate –force”
leader_only: true
02-cache-clear:
command: “php artisan cache:clear”
leader_only: true
“`

## 補足

##### `container_commands` について

https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/cus

元記事を表示

M5StackでAmazon FreeRTOSを使用する7(Greengrass編)

# はじめに

M5StackでAmazon FreeRTOSを動かすと、効率的にアプリケーション開発、デバイス管理ができることがわかってきました。とはいえ、多数のM5Stackデバイスが直接クラウドに接続しないとうまく管理できない状況は非効率です。そこでAWS IoT Greengrassを利用してみましょう。
AWS IoT Greengrassを使うと、IoTデバイスの通信をローカルネットワークで行うことができ、サーバーレスで使い慣れたLambdaを使って処理を行ったり、データを格納したりすることができるようになります。

![greengrass.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555397/9a753cac-3153-cb37-a001-cb86fb5b12b7.png)

AWS IoT Greengrassの要件はこちら [サポートされているプラットフォームと要件](https://docs.aws.amazon.com/ja_jp/greengrass/latest/dev

元記事を表示

Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #19 (ブロックチェーン)

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

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

## Blockchain – ブロックチェーン

### A

元記事を表示

AWSコンソールのログインが面倒なのでSORACOM Kryptonを使う

# はじめに

AWSコンソールのログインがめんどい。
MFAにしてるともっとめんどい。
なんかこう簡単にログインする方法って、無いの?

ということでSORACOM Kryptonです。

# SORACOM Kryptonとは

> SORACOM Krypton は セキュアプロビジョニングサービスです。
SORACOM が発行する SIM と SORACOM プラットフォーム上に構築した SIM 認証基盤を使用し、さまざまなクラウドサービスに接続するためのプロビジョニング(初期設定)をセキュアに実現するサービスです。

https://soracom.jp/services/krypton/

SIMカードというのはなんか良く分からないけど携帯電話に必要なやつ、みたいな認識ですが、実は耐タンパ性にすぐれたセキュリティチップです。SIMの中には認証鍵が入っており、携帯通信時にはこの鍵を用いて認証されています。そのため携帯電話はどんな端末を使ってもそのSIMの番号として電話したり、通信したりすることができるようになっています。また、この認証をもとに暗号鍵を交換して、3GやLTE通信

元記事を表示

AWS DMSをCloudFormationでかく

たまたま`DMS(Database Migration Service)`をCloudFormationで書く機会があったので残しておきます。

ほんとにざっくりイメージはこんな感じです。
![dms.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556143/e5f9cbbf-a63c-3827-351e-d28e22c50be2.png)
VPCとかDBとかセキュリティグループの設定はできてる前提とします。
すいません。

“`dms.yml
AWSTemplateFormatVersion: “2010-09-09”
Metadata:
AWS::CloudFormation::Interface:
ParameterGroups:
– Label:
default: “General Configuration”
Parameters:
– ServiceName
– Label:

元記事を表示

AWS DevOps Engineer Professionalに合格したのでレポート

先日AWS DevOps Engineer Professionalに無事合格したので今更ですがレポート、振り返り、備忘をまとめます。

## AWS認定資格 取得状況
こんな感じ↓
ソリューションアーキテクト – アソシエイト (2017年10月)
SysOpsアドミニストレーター – アソシエイト (2017年11月)
デベロッパー – アソシエイト (2019年2月)
セキュリティ専門知識 (2019年7月)
ソリューションアーキテクト – プロフェッショナル (2019年9月)
DevOpsエンジニア – プロフェッショナル (2019年12月)

##試験結果など
850/990でした。
ちなみに受験は2回目です。
1回目の受験は本人確認書類(パスポートなどの顔つきの公的書類)を家に忘れて門前払いを食らいました泣

##補遺:本人確認書類を忘れるとどうなるか
まず、受験会場の人に「我々では判断できないのでここに電話して」と電話番号を渡されます。
電話をすると応対する言語を選べます。(日本語or英語で、日本語を選択しました)
そして、カタコトの日本語で「モーシワケアリマセン」的

元記事を表示

Amazon Rekognitionはどこまで認識できるのか

先日に引き続き、AWSから出ているAIのサービスを使って遊んでいこうと思います。

今回使うサービスは**Amazon Rekognition**という画像分析のツールです。

Rekognitionは画像や動画の分析を自動化してくれるシステムで、画像の顔認証や、物体へのラベルの付与、動画の動線の検出などを自動で行ってくれます。

アメリカのアメフトリーグのNFLでもプレーの分析のためにRekognitionが用いられているようです。

今回はこのRekognitionを用いて、1枚の画像に写っている人物を他の画像から抜き出していきます。

条件変えて、どんな画像が抜き出せるのか検証します。

#コード

コードは以下のとおりです。

“`py:face_compare.py
# 各種インポート
import boto3
import json
import sys
from PIL import Image

# コマンドライン引数が3つじゃなかったら抜ける
if len(sys.argv) != 3:
print(‘python’, sys.argv[0], ‘sourc

元記事を表示

気付いたらAWS EC2の無料枠が終了していた!(無料枠からスポットインスタンスへの移行)

# 要約
AWSのEC2無料枠が終わったことに気づいたので、使用料金を下げるためにスポットインスタンスに移行した話です。
いまさらの二番煎じ感ありますが、、、

## 起きたこと
* AWSの無料枠の範囲内でWordpressを運用していたつもりが、ある日突然50円/日くらい課金されていることに気づく。
* AWSのインスタンスの無料使用枠が**12ヶ月間限定**だということを失念しており、無料期間が終わっていた模様。

## やったこと
* そのまま運用すると、1500円/月。自己満足のブログには高い。
* EC2インスタンスをスポットインスタンスに移行することで、400円/月(想定)あたりまで料金を下げた

## ポイント
* インスタンスの移行は本当に一瞬で終わる。すごい。

# そもそもAWS無料枠とは?スポットインスタンスとは?

## AWS無料枠
参考:[AWS公式 AWS無料利用枠](https://aws.amazon.com/jp/free/?all-free-tier.sort-by=item.additionalFields.SortRank&all-free

元記事を表示

Elasticsearch Service 6.8 に取り込んだログ(INDEX)を Curator で削除するメモ(Lambda Python 3.8 版)

Curator による取り込みログ(INDEX)削除の Elasticsearch Service 6.8 / Lambda Python 3.8 対応化メモを残しておきます。

**旧記事:**

– **[Elasticsearch Service (6.0/6.2) に取り込んだログ(INDEX)をCuratorで削除するメモ](https://qiita.com/hmatsu47/items/e4b8a5bd44de0bee1682)**

# 手順

## 1. IAM Role の確認/作成

ログ取り込みで IAM Role は作成されてるはずですが、なければ作成します。

* **[IAM Role の作成](https://qiita.com/hmatsu47/items/826b00ff008d4e3edecf#iam-role-%E3%81%AE%E4%BD%9C%E6%88%90)(以前の ALB/CLB 取り込みメモより)**

## 2. AWS Lambda ファンクションの作成

### Lambda にアップロードする .zip ファイルの作成(A

元記事を表示

AWS+NodeJSでサーバレスな環境構築⑤

# はじめに
[前回](https://qiita.com/isacRU/items/b4ab67d12f2d2377aea8)ではAPI Gateway(REST API)+Lambda(NodeJS)+DynamoDBの組み合わせてCRUDを作りました。今回はS3+Lambda+DynamoDBを組み合わせていきます。S3をトリガー(S3バケットにJsonファイルがアップロードされた段階)にし、Lambda(NodeJS)で取得したJson形式のデータをDynamoDBテーブルに保存します。
表現等がわかりにくければ、容赦無くご指摘いただければ幸いです。
※サーバレスでピンとこない方は[こちら](https://qiita.com/isacRU/items/fe4751603d3da32b2daf#%E3%82%B5%E3%83%BC%E3%83%90%E3%83%AC%E3%82%B9%E3%81%A3%E3%81%A6%E3%81%AA%E3%81%81%E3%81%AB)をご覧ください。

# DynamoDBを作成
DynamoDBダッシュボード>テーブルの作成

元記事を表示

Lambda+API GatewayのレスポンスをJSONとしてパース出来ない

# はじめに

「[内閣府の祝日CSV](https://www8.cao.go.jp/chosei/shukujitsu/gaiyou.html)をLambda上でJSON形式に加工して、API Gateway経由で使えるようにする」というプログラムを考えたのですが、API GatewayのレスポンスがJSONとして正しくパース出来ないことが分かりました。

Lambda上で動いているRubyプログラムは単体のスクリプトとして問題なく動作することを既に確認していましたが、原因が分かるまで少し時間がかかったので、その記録をまとめてみました。

# 使用した環境

* Lambda(Ruby)
* API Gateway

# 正しく動作しなかったコード

* `JSON.pretty_generate`や`JSON.generate`、`JSON.dump`などでシリアライズした結果を返すと、**API Gatewayを通して取得したレスポンスの前後に不要なダブルクォート(”)が付いてしまい、JSONとしてパース出来ませんでした。**
* その後にさらに調べてみると、API Gate

元記事を表示

AWSでのデプロイ手順①ネットワーク環境設定

初心者には難関である、AWSを使用したデプロイ手順を書いてみます

AWSはUIもよく変化するので、
現在のもの(2019/10)で書いています

※アカウントがない人はまず新規で申し込みしておいてください

今回内容
[**STEP1 ネットワーク環境設定**](https://qiita.com/drafts/9a8e88a777a3a4ee7a09#step1-%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E7%92%B0%E5%A2%83%E8%A8%AD%E5%AE%9A)
1.VPCの作成
2.サブネットの作成
3.インターネットゲートウェイの作成
4.ルートテーブルの作成
5.サブネットとの紐付け
6.セキュリティグループの作成

[**STEP2 EC2の設定**]
(https://qiita.com/drafts/9a8e88a777a3a4ee7a09#step2-ec2%E3%81%AE%E8%A8%AD%E5%AE%9A)
1.EC2にてインスタンスの作成
2.Elastic IPの割り当て
3.

元記事を表示

#Ruby + #AWS S3 / publish presigned url ( temporary access URL ) / example codes

# Code

“`rb
# https://www.rubydoc.info/github/aws/aws-sdk-ruby/Aws%2FS3%2FObject:presigned_url

require ‘aws-sdk-s3’

credentials = Aws::Credentials.new(ENV[‘AWS_ACCESS_KEY_ID’], ENV[‘AWS_SECRET_ACCESS_KEY’])
s3_resource = Aws::S3::Resource::new(region: ENV[‘AWS_REGION’], credentials: credentials) # e.g ap-northeast-1

# If no bucket then create
# s3_bucket.create

s3_bucket = s3_resource.bucket(ENV[‘AWS_BUCKET’])
# , @dat

元記事を表示

#Ruby + #AWS S3 / パブリックに一時アクセス可能な「resigned URL」を発行するコード例

# Ref

【AWS S3】S3 Presigned URLの仕組みを調べてみた – Qiita
https://qiita.com/tmiki/items/87697d3d3d5330c6fc08

# Code

“`rb
# https://www.rubydoc.info/github/aws/aws-sdk-ruby/Aws%2FS3%2FObject:presigned_url

require ‘aws-sdk-s3’

credentials = Aws::Credentials.new(ENV[‘AWS_ACCESS_KEY_ID’], ENV[‘AWS_SECRET_ACCESS_KEY’])
s3_resource = Aws::S3::Resource::new(region: ENV[‘AWS_REGION’], credentials: credentials) # e.g ap-northeast-1

# If no bucket then create
# s3_bucket.create

s3_bucket = s3_resource.buck

元記事を表示

[AWS] EC2からRDS(MySQL)へ接続する方法

# 参考記事
[Amazon RDS編~EC2インスタンスからDBインスタンスへの接続~
](https://recipe.kc-cloud.jp/archives/397)

# EC2からデータベースの中身をみるには
1. EC2へssh接続する
2. 接続するコマンドを入力する
3. 設定したパスワードを入力する

のたった三つの手順です。

# 接続するコマンドとは
こちらです

“`
mysql -h エンドポイント -P 3306 -u ユーザー名 -p データベース名
“`

# 各パラメータの確認方法
### エンドポイント
1. AWSへログイン
2. サービスから「RDS」を選択
3. “データベース”から接続したいデータベースを選択
4. 【接続とセキュリティ欄】にて**エンドポイント**を確認

### ユーザー名
1~3まではエンドポイントと同じ
4. 【設定】にて**ユーザー名**を確認

### データベース名
エンドポイントやユーザー名を確認した際の**データベース名**です

# 以上です
qiita初投稿でした。至らない点があると思いますが、

元記事を表示

aws cliでセキュリティグループにICMPのルールを追加するときのPortの意味

aws cliでセキュリティグループにICMPのルールを追加するとき、`FromPort`、`ToPort`には0、65535でも指定しておけば良いのかなと思ったらエラーになった。

“`
$ aws ec2 authorize-security-group-ingress –group-id sg-xxxxxxxx –ip-permissions IpProtocol=icmp,FromPort=0,ToPort=65535,IpRanges='[{CidrIp=999.999.999.999/32,Description=”Example”}]’

An error occurred (InvalidParameterValue) when calling the AuthorizeSecurityGroupIngress operation: ICMP code (65535) out of range
“`

0、0にしたらエラーにはならなかったけど、プロトコルが`エコー応答`として登録された。プロトコルは`すべて`で登録したい。

調べてみたところ、ICMPのルールを

元記事を表示

ecs-cliでHelloWorldしてみた

## 背景
あるバッチ処理をクラウド上で定期実行させたかった。
色々調べてた所、ECS-Fargateで定期実行が出来るみたい。
とりあえず雰囲気掴むためにHelloWorldしてみた。

## チュートリアル
[公式チュートリアル: Amazon ECS CLI を使用して Fargate タスクのクラスターを作成する](https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/ecs-cli-tutorial-fargate.html)

## 手順
### 1. config編集

“`
$ ecs-cli configure –cluster hello-world –default-launch-type FARGATE –region ap-northeast-1 –config-name hello-world

$ cat ~/.ecs/config
version: v1
default: ecs-cli-test-config
clusters:
hello-world:
c

元記事を表示

STOPPEDになってから1時間以上経過したECSタスクの起動ログを確認する

# TL;DR
CloudTrailイベント履歴から、RunTask APIの実行結果を参照します。

# 概要

ECSのコンソールで確認できるECSのタスク実行結果は、1時間以内のものに限られています
(それ以上昔の実行結果の表示は保証されない)
夜間のバッチ処理が失敗していたときなど、すぐに気がつけなかったときは困ります。CloudTrailから証跡を確認しましょう。

# 手順

基本的にCluodTrailの公式ドキュメントに沿う形で進めます。
https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/view-cloudtrail-events-console.html

1. CloudTrailのコンソールを開きます。
https://ap-northeast-1.console.aws.amazon.com/cloudtrail/home

2. イベント名 `RunTask` で絞り込みます。
![image.png](https://qiita-image-store.s3.ap-

元記事を表示

New – Amazon Comprehend Medical Adds Ontology Linking 和訳してみた

##はじめに
Danilo Poccia 氏が2019年12月16日に投稿した「New – Amazon Comprehend Medical Adds Ontology Linking」の記事を翻訳し、まとめてみました。

■本記事 URL
[New – Amazon Comprehend Medical Adds Ontology Linking](https://aws.amazon.com/jp/blogs/aws/new-amazon-comprehend-medical-adds-ontology-linking/)

##Amazon Comprehend
###Amazon Comprehend とは
Amazon Comprehend は自然言語処理サービス(NLP)で、機械学習を用いて非構造化された文章の中から洞察を見つけるサービスです。本サービスは機械学習の知識が無くとも利用でき、そしてユーザ自身でカスタマイズすることが可能です。
※当サービスは東京リージョンでは利用できませんのでご注意ください(2020年1月6日現在)

そして昨年、AWS では医学用語にも対応

元記事を表示

OTHERカテゴリの最新記事