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

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

AWS+Nginx+Unicornを利用してRailsアプリをデプロイしてみた。〜その1〜

##はじめに
[前回記事](https://qiita.com/President_Taka/items/a55c85996dd6a8a8bb4c)で作成したAWSの環境を利用し、Nginx+Unicornを使用してRailsアプリをデプロイします。
次のアプリがローカル環境と同じように動作するようにデプロイします。

スクリーンショット 2020-01-25 6.40.58.png

##Railsアプリケーションの実行環境
DB:MySQL
ruby 2.6.3
rails 5.2.4
bundler 2.1.0

##EC2接続
EC2を起動し、SSH接続を行います。

“`
$ ssh -i aws-test.pem ec2-user@[パブリックIPアドレス]
The authenticity of

元記事を表示

NATゲートウェイを使わずにプライベートサブネットをインターネットにつなぐ

# NATゲートウェイを使わずにプライベートサブネットをインターネットにつなぐ
## 概要
AWSを日々活用の皆様、セキュリティには苦労されていることと思います。
特に、プライベートサブネットの管理については頭を悩ませていることと思います。

私も、いろいろ悩んだ結果、↓のような工夫していたりします。
https://qiita.com/SSMU3/items/23c533066ff9456c3bd1

話を戻しますが、ご存じの通り、プライベートサブネットを作ることによるメリットデメリットは以下の通りです。

|方向|メリット|デメリット|備考|
|:——————-:|:——————–|:——————–|:——————–|
|IN|インターネットからアクセスされない為セキュアである。|インターネットからSSHやRDPで接続できない。||
|OUT|インターネットに余計なデータを出力しない為、情報漏洩の危険が少ない。|**インターネット経由のアップデートが出来ないため、インストールやアッ

元記事を表示

AWS DefaultのVPCにプライベートサブネットを作る

# AWS DefaultのVPCにプライベートサブネットを作る
## 概要
初心者向けの記事です。
わりとニッチなニーズですが、初心者への説明用に作成しています。

AWSを使い始めて最初の頃はDefaultのVPCを使うことが多いと思います。
ですが、最初から用意されているDefaultのサブネットはインターネットに公開されています。
なので、DBや個人情報の格納されたサーバはDefaultのサブネットに配置するのは避けた方がいいです。

本当は、VPCの作成がわかるならきちんとVPCから設計すればいいですが、わからない方はそのままDefaultに構築しがちです。
今回の記事はそんな時の為のやり方になります。

各所に例>の記載があると思います。
全くの初心者であれば例の通りに入力してみてください。

## 前提
東京リージョンであること。

## やり方
### ルートテーブルの作成
#### (1) VPC設定画面を開く
マネジメントコンソールにサインインして、メニュー画面よりVPC設定画面へ移行します。
![WS000077.JPG](https://qiita-image-

元記事を表示

【AWS】Qiita 週間いいね数ランキング【自動更新】

# 他のタグ

– [Python](https://qiita.com/kou_pg_0131/items/9d7f2ffeafb36cf59a77)
– [JavaScript](https://qiita.com/kou_pg_0131/items/eaa7ac5b62a0a723edbb)
– [AWS](https://qiita.com/kou_pg_0131/items/e24b6279326a462d456c)
– [Ruby](https://qiita.com/kou_pg_0131/items/72c3d2e896bdc3e1a6b3)
– [Rails](https://qiita.com/kou_pg_0131/items/93b9e7f7d143e9ce650e)
– [Docker](https://qiita.com/kou_pg_0131/items/ae11fca7d2eba445b037)
– [Vue.js](https://qiita.com/kou_pg_0131/items/2774e02c6eea5c830d99)
– [PHP](htt

元記事を表示

AWS Lightsailと既存VPCをピアリング接続する

# AWS Lightsailと既存VPCをピアリング接続する
## 概要
LightsailはAWSのVPSサービスとして通信料込みの破格なサービスです。
全てをEC2で構築している方が多いですが、テスト環境その他、Lightsailで十分という要件も多いと思います。

Lightsailで構築し、その上で既存のAWS環境と接続し、有効活用するためにLightsailの既存VPCをピアリング接続したいと思います。

## ピアリング接続すると何がうれしいの?
LightsaiでEC2から接続するかのようにEFSやRDSが使えます。
グローバルIPでインターネット経由であれば、もちろんピアリング接続しなくても使えますが、ピアリング接続すると内部IPでの接続になるので、通信料もセキュリティ面でも安心です。

## 注意点
Lightsailと接続できるのはどうやらDefaultのVPCだけのようです(2020年1月時点)。
自分で構築したVPCと接続したい場合は、直接ピアリング接続はできませんので、注意してください。

尚、LightsailはSLAが設定されていません。
AWS側が原因

元記事を表示

AWS AmplifyのAPI.graphqlで”TypeError: Must provide Source. Received: undefined”

# 前提
amplify add apiでgraphqlを追加して、

> const todos = await API.graphql(graphqlOperation(queries.listTodos));
> console.log(todos)

のようなコードでAPIを呼び出すときに、
“TypeError: Must provide Source. Received: undefined”
のエラーが出た場合の対処について。

# 対応
結論、サンプルコピペのままで、存在しないクエリを設定してました。。
queries.listTodosじゃなくて、別のだった。

# というわけで
エラーメッセージが大変わかりづらいので、もうちょっとがんばってほしいところです。

元記事を表示

AWSのVPCピアリング接続

# AWSのVPCピアリング接続
## 概要
AWSを使っていて、VPCを分けることやルートテーブルの編集に苦手意識がある方が多いのに気が付いたので、説明用に記載します。
VPCをわけてもVPC同士をつなぐことができます。なので、遠慮なく分けてください。

デフォルトのVPCに全て格納し、サブネット分けすら適当な本番環境を見てて、すごくもったいないと感じます。
AWSを使うのであればきちんとVPCから設計し、きれいな形で作ると整理がしやすいし、セキュリティ面も強化されます。

## 注意
VPC同士でアドレス重複があるとピアリングができず、少し面倒なことになるので、必ずCIDRの範囲はVPC同士で分けてください。

## やり方
### ピアリング接続
#### (1) ピアリング接続の設定画面を開く
マネジメントコンソールのログにログインし、VPCの設定画面から、「ピアリング接続」を選択します。
![WS000018.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/c7131b06-fb4

元記事を表示

【AWS】トライアル期間を試してみる。最初にやるべきことは何?~登録編~

## 目的
自分でサービスを作るのに、AWSを使えないか考えている。
とりあえずフリーで使えるなら使って作ってみよう!と思って初めてみる。
やっていることを時系列順に並べていく記録。

やるべきこととか大まかな流れは以下の記事を参考にした。
>[初めてのAWS (Amazon Web Service)](https://qiita.com/terappy/items/1e10bb85505acac5c282)
>[qiita : AWS1年目無料期間でやったこととハマったこと](https://qiita.com/chroju/items/c7ad918d79b0288bc490)
>[AWSアカウントを取得したら速攻でやっておくべき初期設定まとめ](https://qiita.com/tmknom/items/303db2d1d928db720888)

細かい操作とかは、awsのドキュメントを参考にした。
>[IAM Best Practices](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/best-practic

元記事を表示

AWS EC2のインスタンス毎のデータ転送量を知る方法

EC2インスタンス毎の月々のデータ転送量を知る方法です。今まではLambdaからDynamoに書き込む仕組みを自作していたのですが、他に便利な方法を見つけたので紹介します。

# コストエクスプローラー

![2020-0126-AwsCost.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253995/61cd2aae-88df-85b4-1e7e-1ddc360091ea.png)

– 請求書ページのコストエクスプローラーへ移動します。
– グループ化の条件を指定します。詳細→タグ→Name
– 使用タイプグループを指定します。EC2: Data Transfer-Internet (Out)

これで下のリストに料金と転送量が表示されます。条件を保存することもできます。応用すれば他にももっとできるかもです。

# まとめ

オンプレをそのままクラウドに移行させた、なんちゃってクラウドサービスを運用しています。インスタンスごとにダウンロード容量を出す必要があり苦労しました。5年前にはこんな機能がな

元記事を表示

EC2Launchの「setMonitorAlwaysOn : true」ってなに

# 事象

Windowsサーバ構築のために
EC2LaunchのConfigのデフォルト値を調べようと、AMI[^1]から新規インスタンスを作成したら
[ドキュメント](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/ec2launch.html#ec2launch-config
)にない項目があって、AWSサポートに問い合わせてみた。

`C:\ProgramData\Amazon\EC2-Windows\Launch\Config\LaunchConfig.json`

“`json
{
“setComputerName”: false,
“setMonitorAlwaysOn”: true, #これ
“setWallpaper”: true,
“addDnsSuffixList”: true,
“extendBootVolumeSize”: true,
“handleUserData”: true,
“adminPasswordType”: “Ra

元記事を表示

【AWS・Python】Slash Commandsを拡張性高く実装する

# 1. はじめに

本記事ではデザインパターンの一種であるChain Of Responsibilityを利用して、
SlackのSlash Commandsを拡張性高く実装する方法を紹介します。

Slash Commandsの処理を受け取るサーバーはAWSを、言語はPythonを利用します。

手軽に試せるようにコマンド3つでAWSへデプロイできるGitPod環境も用意してあります。

## 1.1 Slash Commands とは

Slack CommandsとはSlackに独自のコマンドを追加し、そのコマンドにより任意の処理を実行できるものです。
Slackが既に用意しているものもあり、有名なのは`/remind`などでしょうか。

“`
/remind me tomorrow 11:00 meeting
“`

と打てば、以下のような表示ととも明日の11時にslack botからリマインドが自分宛に飛んできます。
![62EBF581-B936-412F-9D23-902BAAD5E851.jpeg](https://qiita-image-store.s3.ap-

元記事を表示

本番環境でbackground-imageが反映されない

## background-imageが本番環境で反映されない
ローカルでは background-image: url(******.jpg) と記述して反映されているが、本番環境では読み込まれない。

“` ******.css
background-image: url(******.jpg);
“`

## 対処法
background-image: image-url(“******.jpg”)と記述する

“`*******.css
background-image: image-url(“******.jpg”);
“`

元記事を表示

(コマンド化)AWS CLIにおけるMFA認証

概要

AWSマネジメントコンソールにアクセスするためのIAMユーザーにMFAを設定している場合、
同ユーザーにてAWS CLIを使う時にもMFAによる認証が必要になるけど、
すぐに忘れちゃうのでコマンド化した。

ざっくりセットアップ手順

1. アクセスキーの作成(まだやってない人は)
2. .bashrcに以下追記
3. ログインし直す or `source ~/.bashrc`

“`bash:.bashrc

function AWSCLIINIT() {
unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY
unset AWS_SESSION_TOKEN
aws configure

mfa_arn=`aws sts get-caller-identity –query ‘Arn’ –output text 2>/dev/null | sed -e “s/:user\//:mfa\//g”`
if [ -n “$mfa_arn” ]
then

元記事を表示

EC2 でアクセスキーを設定することなく、ロールによりコマンドを実現する方法

EC2 から s3 バケットを操作したいです。
例えば、バケットを新規作成してみます。

“`console
$ aws s3 mb s3://<バケット名>
make_bucket failed: s3://<バケット名> Unable to locate credentials
“`

ここで、aws configure コマンドを実行して credentials を設定するかと思います。
しかしながら、.aws/config に記録されてしまい、セキュリティ的によろしくないです。

以下を実行します。
要すれば、Access Key を設定しないことが大事です。

“`console
$ aws configure
AWS Access Key ID [None]: <そのまま Enter>
AWS Secret Access Key [None]: <そのまま Enter>
Default region name [None]: ap-northeast-1
Default output format [None]: <そのまま Enter>
“`

ファイルの中身を確

元記事を表示

AWS lightsailで構築したWordPressの管理画面にログインできなくなった時の対応方法

# はじめに
AWS lightsailでWordPressを構築したのですが、プラグインをインストールすると重大なエラーが発生して管理画面にログインできなくなり、しかもなぜかリカバリーモードのURLが管理者メールアドレスに届かない、というトラブルに見舞われた為、対応方法をメモしておきます。

# 対応方法

**1.FTPツールを使ってWordPressのファイルディレクトリにアクセスする**
**2.復旧に必要な処理をする**

たぶん、これが一番簡単です。

私の場合はプラグインのインストールが原因だったので、FTPツールを使ってファイルディレクトリにアクセスし、プラグインを一旦すべて無効化しました。

### 1.FTPツールを使ってWordPressのファイルディレクトリにアクセスする
ネットで調べると、さくらインターネットやロリポップなどのレンタルサーバーだと、そもそも管理画面からWordPressのファイルディレクトリにアクセスできるよう。

何やそれ、AWSはできへんで!ってところから僕は迷いました。

まずはFTPツールの準備からです。

FTPツールは何でも良いので

元記事を表示

SQSメッセージ数に応じてSpotFleetでインスタンスをAutoScalingする。

SQSメッセージの数に応じてスポットインスタンス数を調整したい。

## SQSの作成
SQSキューの作成

“`
$ aws sqs create-queue –queue-name YOUR_QUEUE_NAME
{
“QueueUrl”: “https://ap-northeast-1.queue.amazonaws.com/xxxxxxxxxxxx/YOUR_QUEUE_NAME”
}
“`

## CloudWatchAlarmの設定
CloudWatchコンソールから`ApproximateNumberOfMessagesVisible`メトリクスを選択。
アラームの閾値は0以上として設定し、メトリクス名をつけて作成。(`YOUR_METRICS_NAME`とする。)

※ アラームの閾値はいくつで設定しても良いが、ここで設定した数値以下の値をAutoScalingのスケーリングポリシーで取得することはできない。

## SpotFleetの設定

### リクエストの作成
EC2コンソールのナビゲーションペインから「スポットリクエスト」を選択し、[スポットイ

元記事を表示

Node.jsでAWS ElasticSearchへのHTTP リクエストの署名

#はじめに
情報保護を難しくなっている現代社会では、セキュリティ対応はますます重要になってきています。
Cloud技術の進化によって、セキュリティ対応しやすくなる部分もあります。

AWSのElasticeSearchサービスへのHTTP リクエストの署名方法を簡単にまとめてみます。

#1. AWS SDKのライブラリを使う
AWSのドキュメントにある通り、署名したリクエストを送信できますが、検索のクエリなどはちょっと手間ですね。

参考URL: https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/es-request-signing.html

“`node.js
var credentials = new AWS.EnvironmentCredentials(‘AWS’);
var signer = new AWS.Signers.V4(request, ‘es’);
signer.addAuthorization(credentials, new Date());

元記事を表示

AWSからECインスタンスProxy経由でデータセンター側サーバへ接続するTips

# 概要
AWSパブリックインスタンスからSandboxをProxyにして、データセンター側サーバにSSHする

## 設定:SSG(ファイアウォール)
SSGのGlobal Policy へ、対象AWSインスタンスのGlobal IP許可するように設定追加する

## 設定:Sandbox
GlobalIP 115.30.28.159
LocalIP 172.18.4.127

下記にAWSインスタンスの公開鍵データを追記
[root] .ssh/authorized_key

## 設定:データセンター側のサーバ
例:172.18.8.149

下記にAWSインスタンスの公開鍵データを追記
[root] .ssh/authorized_key

## 確認:AWSインスタンス
例:service-web01

### .ssh/config を修正
Snadbox経由で通信可能となるように設定する

ServerAliveInterval 60
Host 172.18.8.149
ProxyCommand ssh 115.30.28.159 nc %h %p

元記事を表示

CloudFormationでパラメータストアから値を動的参照する際にハマったところ

## 背景

作成中のCFnのスタックをいくつかのVPC上で実行したいので
vpc-idやその他のパラメータはベタ書きせずに外部から参照するかたちにしました。

CFnでは[動的な参照を使用してテンプレート値を指定する](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/dynamic-references.html)機能を利用して
SSMのパラメータストアやSecrets Managerから値を参照することができます。

```yml:参照パターン
# '{{resolve:ssm:parameter-name:version}}'
'{{resolve:ssm:vpc-id:1}}'
```

## 問題

SSMパラメータストアにパラメータを設定した上で
テンプレート名のパラメータセクションでこのように書きました。

```yml:CFnテンプレート
VpcId:
Type: AWS::EC2::VPC::Id
Default: '{{resolve:ssm:vpc-id:1}}'
`

元記事を表示

M5Stack + UiFlow + AWS でグラフ化 & 異常通知

# M5Stack + UiFlow + AWS でグラフ化 & 異常通知

2020-01-25
JAWS-UG金沢 #49 × Marutsu Maker Starter #70 AWS×M5StackでIoTをはじめよう
JAWS-UG金沢 PhalanXware ふぁらお加藤

![この文章へのリンク](https://paper-attachments.dropbox.com/s_4DDEECE9FFA144C892BAFD4ED711EB0ABA8D5E302F698C9FF6499B99CE9E10CA_1579912131213_qr20200125092755717.png)

# AWS とは

クラウド業界トップシェア。IoTとの連携方法もたくさんあるのでぜひ使いましょう。

# 全体的な設計
## やりたいこと

温度を測定して送信。グラフで確認できる。しきい値を超えたら自動でメール通知くるようにする。

## AWS IoTを使いたいんだけれど

 AWS IoTへはMQTTやHTTPでデータをやりとりするんですが、今日のUiFlowを使うと、メモリが足りな

元記事を表示

OTHERカテゴリの最新記事