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

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

別のAWSアカウントのSNSに通知を飛ばす方法

#背景・やりたいこと
何かある度に(例えば、ヘルスチェックのエラーだったり、負荷が高くなったり、オートスケールが走ったり)
管理用のメールアドレスに通知を飛ばしたかったりする。
もちろんそういう場合はCloudWatchなどで監視して、SNSに通知を飛ばし、そこからメールを飛ばす構成が一般である。

SNSにアクセスして、新しくトピックを作成し、更にそこに新しいサブスクリプションを追加し、
送信したいメールアドレスを追加して、認証メールを受け取って承認すれば、
このトピックあての通知は設定したメールに通知されるようになる。
後はCloudWatchのアラームが上がったときなどにこのトピックあてに通してあげればよいわけだ。
![構成1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/361076/c37a0085-c877-ec39-2ec5-d2411b7369af.png)

しかし、アカウントがひとつの場合は、ここまでの設定でやりたいことが解決するのだが
AWSアカウントを様々な事情で複数持っている

元記事を表示

AWS ACM で com.amazon.coral.service.InternalFailure エラーが出る

ACM で証明書のリクエストを行ったら、`com.amazon.coral.service.InternalFailure` エラーが表示された。

実行していた IAM ユーザは、AdministratorAccess ポリシーと下記のように `NotIpAddress` による IP 制限ポリシーをアタッチしていた。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_examples_aws_deny-ip.html

“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Deny”,
“Action”: “*”,
“Resource”: “*”,
“Condition”: {
“NotIpAddress”: {

元記事を表示

AWS IoT エラー AMQJS0008I Socket closed

# AMQJS0008I Socket closed

PCからAWS IoTに向けて、メッセージを送信したが、
タイトルのエラーが表示された。

# 結論
モノに対してポリシーをアタッチする必要がある。
(チュートリアルの中で、アタッチしたつもりだったが、漏れていたみたい?)

# 対応
管理→モノ→対象のモノを選択
![ 2019-11-15 10.14.47.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/290588/38140e3b-69b5-2541-db46-ab7c596e6d7b.jpeg)

セキュリティを選択し、対象のセキュリティを選択
![ 2019-11-15 10.15.32.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/290588/81f1ee5f-f87b-c65f-f174-f9a9addc49d7.jpeg)

右上からポリシーのアタッチを選択する
![ 2019-11-15 10.1

元記事を表示

Amazon RDS for MySQL でスナップショットから復元したDBにアクセスする

某案件で Amazon RDS for MySQL を利用しています。
追加開発で既存テーブルにカラム追加をしてAPIを新設してほしいという作業依頼がきました。

追加対象のテーブルの現在のレコード数を聞くと、7桁レベルのレコードがあるようです。
そこへ ALTER TABLE 〜 を流すと、どのくらい時間がかかるのだろうか? リリース時、本番環境で流せるレベルだろうか?

ふと気になったので先輩に相談し、スナップショットからデータベースを復元し、検証用のデータベースを作成して試してみることにしました。
スナップショットは毎晩深夜に自動取得されているものを使います。

Amazon RDS > スナップショット で表示される一覧から、復元したいスナップショットを選択して 「スナップショットから復元」を選択します。

データベース名の入力が必須、インスタンスタイプがデフォルトで本番環境と異なったものが選択されていたので、選択し直しました。
これは本番環境のインスタンスタイプが “旧世代のインスタンスタイプ” という扱いになってしまったからかもしれません。

それと念の為、本番環境とは別の

元記事を表示

CloudFormation Resource Importで、実体と違うテンプレートを使うとどうなるのか

# 概要
CloudFormationに待望のリソースインポート機能がリリース[^aws]:tada:
使い方は、例によってクラメソさんが記事化しているので[^class]、気になったところを追加で確認する。

# 気になっていること
対象のリソースが存在していなければならない、などいくつかの必須条件はドキュメントにも記載済み[^req]。
では、インポートするリソースと、違うパラメータ設定のテンプレートを使うとどうなるのか。置換されたり、上書きされたりする?

# 実験
対象はS3 Bucket:`hogehoge-fugafuga-poyopoyo`
全てデフォルト設定。

## テストその1:ユニークキーとなるBucketNameが違うテンプレート
取り込むバケット名とBucketNameが異なる。

“`yml
AWSTemplateFormatVersion: ‘2010-09-09’
Resources:
S3Bucket:
Type: ‘AWS::S3::Bucket’
DeletionPolicy: ‘Retain’
Properties:

元記事を表示

クラウド開発環境構築(メモ)

# はじめに
本記事は、「Webサービス開発のため」の仮想マシン構築(AWS)~クラウド開発環境構築(Cloud9)までの手順を自分用にまとめたものです。

# 前提条件
* クライアントはWindows環境
* クラウドはAWS利用(AWSアカウント作成済み)
* AWSの基礎知識有

 基礎知識が足りない場合`@Futo23`さんの記事が大変参考になりましたのでそちらを参照してください。
> 引用:[AWS素人がインフラ設計/構築を理解するために、まず最初におさえるべきキーワード15選](https://qiita.com/Futo23/items/318d89eccdbf5697f8bf)

# 手順
## 仮想マシン構築
### 管理コンソールサイトへアクセス
( [マネージメントコンソール](https://signin.aws.amazon.com/signin?redirect_uri=https%3A%2F%2Fconsole.aws.amazon.com%2Fconsole%2Fhome%3Fstate%3DhashArgs%2523%26isauthcode%3D

元記事を表示

gsutil、aws s3での基本的なファイル操作(Google Cloud Storage、S3)

`aws s3`コマンドはS3しか操作できませんが、Google Cloud Storage(GCS)のCLIである`gsutil`コマンドはGCSだけでなくS3に対しても同じように操作できます。

# ファイルのアップロード(ローカルからクラウド)

“`
$ gsutil cp dir/foo.txt gs://xxx-bucket/dir/
$ gsutil cp dir/foo.txt s3://yyy-bucket/dir/
$ aws s3 cp dir/foo.txt s3://yyy-bucket/dir/
“`
※`g3://xxx-bucket/dir/foo.txt`または`s3://yyy-bucket/dir/foo.txt`にファイルができます

ローカルでのパイプからのアップロード

“`
$ cat dir/foo.txt | gsutil cp – gs://xxx-bucket/dir/foo.txt
$ cat dir/foo.txt | gsutil cp – s3://yyy-bucket/dir/foo.txt
$ cat dir/fo

元記事を表示

Amazon CloudWatch LogsのログをAWS CLIでいい感じに取得する

Amazon CloudWatch LogsにあるログをAWS CLIでいい感じに取得する方法を毎回忘れている気がするのでメモ。

## コマンド

とある環境でUnixBenchを走らせた際のログがあったのでそれを取得してみました。
ポイントは`–query “events[].[message]”` でログだけを抽出して、`–output text` でテキスト形式にします。

“`console
> aws logs get-log-events \
–log-group-name <ロググループ名> \
–log-stream-name <ストリーム名> \
–query “events[].[message]” \
–output text

# # # # # # # ##### ###### # # #### # #
# # ## # # # # # # # ## # # # #

元記事を表示

AWS無料枠内だと思ってたら料金発生してた話

EC2のt2.microは月750時間までは無料とういことで早速使ってみたんですが、**いきなり料金発生してる!なんで?**ってなったのでメモ

[▼AWS ドキュメント » Amazon EC2 » Linux インスタンス用ユーザーガイド » ネットワークとセキュリティ » Elastic IP アドレス](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384069/e67f617f-e792-61b7-7d58-03199695ea42.png)

なるほど、

– Elastic IP アドレスが実行中のインスタンスに関連付けられていない場合
– Elastic IP アドレスが停止しているインスタンスやアタッチされていないネットワークインターフェイスに関連付けられている場合

にも料金が発生するようで

元記事を表示

各種クラウド PaaS (Platform as a Service) 実行環境 (プログラミング言語とバージョン) まとめ (2019年11月15日現在)

## 概要

– AWS Elastic Beanstalk, Azure App Service, Google App Engine について実行環境 (プログラミング言語とバージョン) の情報をまとめる

## AWS Elastic Beanstalk (Amazon Web Services: AWS)

– [AWS Elastic Beanstalk Supported Platforms \- AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html)
– Packer 1.0.3
– Docker
– Go 1.13
– Java 8, 7
– .NET Core 3.0.0, 2.2.7
– Node.js 10, 8, 6, 5, 4
– PHP 7.2.19
– Python 3.6.8
– Ruby 2.6, 2.5, 2.4

## Azure App Service (Microsoft Azur

元記事を表示

EC2のNodeサーバーと連携するReactクライアントをS3にデプロイ

AWS Summitに参加してからAWS関連でなんかしたいなあと思っていたので、
S3にReactで作ったクライアントを、EC2にNodeのサーバーを置いて、
簡単にアプリをデプロイしてみます:desktop:

以下の準備が整っていることを前提とします。
・Reactでクライアントアプリを作っており、これと連携しているサーバーサイドも作られている。
・EC2インスタンスを作成しており、sshでEC2に入れる。
・作成したEC2のセキュリティグループのインバウンドの設定でhttpによる接続を受け付けられるようにしておく(これは後で設定しても良いですが)。

# EC2にNodeで作ったサーバーを置く

まず、

1. git
2. nginx
3. pip3を使うためにpython3
4. pip3を使ってaws-cli
5. nodeのlts版

をインストールします。
Nodeサーバーの場合なので、他の言語で書いていたりしたらそれに合わせてください。

“`shell
$ yum update -y
$ yum install git -y
$ yum install nginx

元記事を表示

【AWS-SES】C#でメール一括送付するツールを作成してみた

# 概要

以前にGASでQRCodeを一括でメール送付する仕組みを作成しました。これはこれで便利なのですが1日に送信できるメールが限られているのが弱点でした。そこで今回は社内でAWSをお試しで使っているので、SESを使ってメールを一括送付する仕組みを作成しました。

[■GoogleSpread(GAS)でQRCodeを一括で送付する](
https://qiita.com/tamoco/items/bb62ef68b6b5e34638b8)

# 構成
主にC#のフォームで作成しました。C#でのSESの利用についてはSDKを使う方法とSMTPを使用した方法がサンプルとしてあるので、今回はSMTPを使用する方法を採用しました。C#のフォームアプリでSMTPインターフェイスからEメールを送信する仕組みを作成します。フォームアプリについてはSMTPの設定値や送信アドレスなどを設定できるようにし、SESの設定ができていればアプリから一括でメール送信が可能です。

[■AWS SDK for .NETを使用してEメールを送信する](
https://docs.aws.amazon.com/j

元記事を表示

API Gateway + Lambda + DynamoDBでサーバーレス環境を構築する

# API Gateway + Lambda + DynamoDB = Serverless

AWSでサーバーレスを構築するアーキテクチャを考えた時に、もっとも基本的でわかりやすい構成は、API Gateway + Lambda + DynamoDB(ないしはS3)の組み合わせだと思います。

## このエントリーで触れること
– Lambda関数の作り方
– API Gatewayでのリソースの作り方
– API GatewayとLambda関数の紐づけ方
– Lambda関数でのDynamoDBのいじり方

AWS SAMには触れないです。

## Lambdaで関数を作る

Lambdaで関数を作ってデプロイするのは非常に簡単な作業です。

ランタイムはnode.jsを使います。

関数を作成する方法としては、
1. AWSコンソール上で関数を作成する
2. ローカルで関数を作成してzip化し、Lambdaにアップロードする
3. ローカルで関数を作成してzip化し、S3にアップロードした後に、Lambdaからそれを呼ぶ
4. ローカルで関数を作成してzip化し、cliでデプロ

元記事を表示

CloudFormationでVPC&Subnet作成

こんにちは、risakoです!
最近寒くなってきましたね:snowflake:
最近は体調を崩し気味なので、よく寝てよく食べて風邪を引かないように気をつけています:slight_smile:

前回は、EC2を自動で増やしたり減らしてくれるAWS Auto Scalingについてご紹介しました!
今回は、AWS CloudFormation(以下、CloudFormation)について簡単ではありますがご紹介します。

#AWS CloudFormationを知ったきっかけ
このサービスを使い始めたきっかけは、一度設定したAWS Elemental MediaLiveを来年も使うかもしれない….と思った時に、そのまま残しておいては料金がかかってしまうためCloudFormationで書いてbacklog等メモで残しておけばいいのでは?との発想からでした。つまりは、節約のためです!:ok_hand:
ちなみに、CloudFormationの利用自体は無料です!
テンプレートに従って構築された各AWSサービスに対して課金されるようです。

#そもそもAWS CloudFormatio

元記事を表示

CloudFormation備忘録

現存する環境から複製するために部分的に書けたテンプレートを起こすというようなタスクがアレで個人的な覚書を。

##### ・なんでこれで?

→ほかのあらゆるInfrastracture as a codeと同様に見える化と省力化とミス防止などいろいろメリットがある。当初の担当者が既にいないがブラックボックスな状況を多少は防げると思われるしわかる人どうしなら引き継ぎがしやすい。
 強いて言うとクラウドプロバイダ謹製だから新サービス対応が早い
 わかる人がみるとエクセル資料などをあさって確認せずとも環境を確認・俯瞰しやすいリアルな資料がわりに。
 乖離してなければ。

##### ・Terraformとなにが違うか

テスト結果の確認しやすさはTerraformが上かもしれないけども、CFでも変更検知は可能。
Terraformもマルチクラウドでできるといってもそれぞれのクラウドのことを知らずに使えるわけでもなく、
リソースの書き方はクラウドによって独特な感じなので、使う人々が使いやすい広めやすい方でよくてケースバイケースかな。

##### ・一度始めたら手動対応するとめんどくさい

元記事を表示

【AWS】ECR, ECS(Fargate), StepFunctions, CloudWatch でバッチ処理~後編~

# はじめに

本記事は、AWS FargateタスクとActivityステートマシンを利用して
・ソースの管理用リポジトリ(ECR)
・Activityをポーリングするワーカー
・アクティビティの処理内容
を実装しつつ、CloudWatchで定期実行するバッチ処理を作成するための概要(&備忘録)の**後編**です。

**前編**は[こちら](https://qiita.com/yut0201/items/5a8d5876b0fbfcafb82f)です。

筆者自身、まだ理解が追いついていないと感じる部分はありますが、初学者の方の一助にでもなれば幸いです。

誤字・脱字や前編での疑問点などあればコメントいただけると幸いです。

改めて、手順の全体は以下の通り。

1. ECR リポジトリの作成
2. アクティビティステートマシンの作成
1. アクティビティの作成
2. アクティビティステートマシン用のタスク定義ファイルを作成
3. アクティビティステートマシンの作成
3. docker イメージの準備
1. ソースのbuildとタグ付け
2.

元記事を表示

AWSのタスクスケジュールの起動タスクを最新にする方法

## なぜ書くのか
AWSのECSを使う際にタスクスケジュールはcronみたいな使い方ができて、めちゃ便利なんすけど
その際にタスクをlatestに指定する方法がなかなか見つからなかったので書きます

## 対象
– AWSのECSをFargateを使って運用してる
– ECSでタスクスケジュールを定期的に移動するものとして使いたい

## 書くこと
– タスクスケジュールの起動タスクのリビジョンを最新にする方法

## 書かないこと
– AWSの説明
– ECSの説明
– タスクスケジュールの作り方

## 流れ
– タスクスケジュールは何してる?
– タスクスケジュールの起動種類
– タスクスケジュールのリビジョン最新化

## タスクスケジュールは何してる?
すごくざっくりの僕理解で書きます。
ECSはDockerで動くもので、タスクスケジュールは特定のことを
任意のタイミングのみで実行したいときに基本使うんだと理解してます。
で起動条件をCloudWatchイベントで管理しています。
なんでかというと起動の種類が時間単位とかなのでCloudwatchなんだと勝手に思っています。

元記事を表示

AWS Lambdaで毎日料金を取得する

# AWS Lambdaで毎日料金を取得する

## TL;DR
AWSのダッシュボード見たほうが早い

## はじめに
監視しようがしてなかろうが、どのみちAWSのコンソールを常に開いている人にとっては、AWSのダッシュボード見たほうが正確で早いです。

しかし、そこまでAWS漬けでもない人にとってはいちいちAWSのコンソールを開き、料金やインスタンスの稼働状況を確認するのは面倒です。そこでSlackに稼働状況を監視して通知するAWS Lambdaの関数を定義して、楽して監視するようにします。

## やりたいLambda関数の疑似コード

* EC2の全インスタンスを取得する
* タグ情報を取得し、稼働状態を列挙する
* CostExplorerから料金情報を取得する
* 現時点の料金を出力
* 現時点の料金を日数で割り、月の日数倍して予想価格を出す

料金は直近の1日分料金を取得し、その金額を月の残りの日数分足したほうが正確ですが、これはこれで1日だけ異様に活発だった時等に瞬間風速に引きずられてそこまで正確じゃないので、今回は今までの平均が一番平均に近いという

元記事を表示

AWSのRoute 53で登録したドメインに、サブドメインを追加する。

投稿するレベルのことではない気がするけど、備忘録として。

Route 53 → ホストゾーン

ですでに登録してあるドメインをクリック。

スクリーンショット 2019-11-14 10.30.17.png

そうすると、上記のようなメニューバーが出てくるので、「レコードセットの作成」をクリック。

そうすると下記のようなレコードセット作成画面が出てくるので、「名前」のところに登録したいサブドメインを入力する。
スクリーンショット 2019-11-14 10.27.25.pngIoT@Loft #5 – クラウドとロボティクス、オープンソース活用による次世代ロボットの可能性(2019年11月13日実施)

IoT@Loft #5- クラウドとロボティクス、オープンソース活用による次世代ロボットの可能性を受講したよ

一番の収穫は、ASIMOを作っていた本田技研が今も新しいものを作ろうとしていることだよ。

##ソニーロボティクスシステムとROS/ROS2の活用
ソニー株式会社 ソフトウェアエンジニア
###藤田 智哉 氏
Aiboの中にRosが動いている
目などはリアルタイム性が必要なのでLinuxのDeamonで動いているらしい
Githubで公開されていてRosKineticやRosMedricでコンパイルすればすぐ使える
資料
https://roscon.ros.org/2018/presentations/ROSCon2018_Aibo.pdf

ROSCONの資料
https://roscon.ros.org/jp/2018/presentations/ROSCon_JP_2018_presentation_12b.pdf

###![IMG_0830.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com

元記事を表示

OTHERカテゴリの最新記事