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

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

WordPressにGoogleAnalyticsを導入してみた

# はじめに
「[AWSにWordPressを構築してみた](https://qiita.com/olaf_system/items/e5e17cd8ead71ec9a096)」
「[AWSに構築したWordPressに独自ドメインを割り当ててみた](https://qiita.com/olaf_system/items/46723a020456120ffd65)」
「[AWSに構築したWordPressをhttps対応してみた](https://qiita.com/olaf_system/items/d80aa943107eb2cfcb20)」
の続き。

WordPressの準備は終わったので次はPVを確認するためにGoogleAnalyticsを導入していく。

# 設定
## Googleアカウント作成
まずはじめにGoogleアカウントを作成する。
作り方は割愛。

## GoogleAnalyticsの設定
次にGoogleAnalyticsを設定する。

https://analytics.google.com/analytics/web/provision/?authu

元記事を表示

APIGatewayにCognitoオーソライザーをSwaggerで設定する(CloudFrontも少し)

# 背景
AWS使ってサーバーレスで自分用の家計簿的なwebサービスを勉強も兼ねて開発中。メイン機能は大分出来てきて、あとは残課題の対応という形。[前の記事](https://qiita.com/silverbox/items/b3c8a53aa4baa3d02ff8)でCognitoは対応していたが、フロント部分のみ。APIGateway部分にはCognito制御をしていない。せっかくCognito使ってるので、APIGateway側でも制御を入れたい。

# まずAWS側設定
### 手法検討
色々ページを見ていると、CloudFormationでやっているケースあればSwaggerでやってるケースもあり。今回、API部分はSwaggerでやっているのでSwaggerで出来る部分はSwaggerでやりたい。

### やってみた。
色々なページを参考にさせてもらうと、lambdaで認証しているケースが多い。世の中はlambdaで認証チェックするのが主流らしい。Cognitoでやろうという所はあまりないらしい。色々試してみたが、swagger書式でないとか言われたり、エラーは出なかっ

元記事を表示

EC2 拡張ネットワーキングとプレイスメントグループ

https://dev.classmethod.jp/cloud/aws/ec2-placement-group/
> プレイスメントグループは、単一のアベイラビリティーゾーン内のインスタンスを論理的にグループ化したものです。サポートされているインスタンスタイプとともにプレイスメントグループを使用すると、アプリケーションが低レイテンシーの 10 Gbps (ギガビット/秒) ネットワークに参加できるようになります。

元記事を表示

code-server オンライン環境篇 (7) git 上のcompose を EC2上に展開する

目次
[ローカル環境篇 1日目](https://qiita.com/kyorohiro/items/35bab591cd4a6b975c80)
[オンライン環境篇 1日目 作業環境を整備する](https://qiita.com/kyorohiro/items/603d6ee693fc2300079e)

[オンライン環境篇 2日目 仮想ネットワークを作成する](https://qiita.com/kyorohiro/items/6f2452ec2a2fe3640979)

[オンライン環境篇 3日目 Boto3 で EC2 インスタンスを立ち上げる](https://qiita.com/kyorohiro/items/32c9b7f9ebfccbeb6ac5)

[オンライン環境篇 4日目 Code-Serverをクラウドで動かしてみる](https://qiita.com/kyorohiro/items/3701fc97f61e94c5ba95)

[オンライン環境篇 5日目 Docker 上で、code-server を立ち上げる](https://qiita.com/k

元記事を表示

golang で aws s3v4 の署名を作成する方法(署名キーを作成する方法)

# aws s3v4 署名バージョン
aws s3 は version4 より署名プロセスが変わっています
https://docs.aws.amazon.com/ja_jp/general/latest/gr/signature-version-4.html

## 署名作成の流れ

1. 署名に必要なキーを作成する(本記事はここ)
2. 1.で作成したキーを使って署名を作成する

## 各言語での署名キー作成方法

各言語の署名キー作成フローは以下の文書にまとまっています。しかしながら、`Java`, `.NET (C#)`, `Python`, `Ruby`, `Javascript` のサンプルコードはあっても、Golangのサンプルコードは存在しません
https://docs.aws.amazon.com/ja_jp/general/latest/gr/signature-v4-examples.html

そのため、本記事ではGolangで version4 用の署名取得処理のサンプルコードを載せることとします
ちなみにですが、本記事では署名キーを作成する部分の説明であり

元記事を表示

lambda+API Gateway構成を作ってみる

lambdaとAPI辺りの学習です。
外部APIをコールするlambdaをコールするAPI(via API Gateway) を意味もなく作る備忘録。
それだけだとつまらないので天気予報を取得し、取ってきたjsonをそのままDynamoDBに格納する構成を作る。

_contents_

* Node.jsでAPIをコールする方法。
* AWS環境でAPI Gateway + lambdaの設定方法。
* ローカル環境でAPI Gateway + lambdaの設定・実行方法。

## 事前準備

* OpenWeatherにSign UpしてAPIキーを入手。
* AWS SSM パラメータストアへURIとキーを登録。

## SSMとDynamoDBのSDK(Node.js)の使い方

### Node.jsからパラメータストアを参照

“`js
const AWS = require(‘aws-sdk’);
const ssm = new AWS.SSM();
const res = ssm.getParameter({Name: “パラメータ名”, WithDecryptio

元記事を表示

AWSからAbuse Reportがきた時の対応方法

#注意
Abuse Reportが届いたら正規のアドレス(ec2-abuse@amazon.com)から来たことやIDなど間違いないかを確認し、速やかに対応・返信をしてください!返信せずそのまま放置していると、インスタンスなどの強制停止処分などの可能性があります。

#AWSからAbuse Reportが届いた…
最近AWSを使ってなかったのに、AWSから突然メールが届いた。件名が「Your Amazon EC2 Abuse Report」 (アマゾンEC2 不正使用報告)。これはなんだと思い、読んで見た。

(日本語・内容省略)
「リモートホストにハッキングする行為が行われている可能性があり、この行為を止めて、あなたが行った行動についてメールに返信してください。もし不正行為でないと思ったら、詳細を書いて返信してください。」と言った内容。

(英語)
「From: Amazon EC2 Abuse
Subject: Your Amazon EC2 Abuse Report (AWS ID ○○)

メールの内容
Hello,

We

元記事を表示

CloudWatch Logsのイベントを期間指定で取得する

# CloudWatch Logs
CloudWatchに保存されたログはAWSのコンソールで確認する事ができて便利ですが、ログを解析する場合にS3にエクスポートするなど一手間かかります。ログの解析には、私はPythonスクリプトで行う事が多いので、PythonスクリプトでCloudWatchからログを取得するスクリプトの作成を目指します。なお、以下のコードはpython3(3.7.5)で動作させています。

“`bash
$ python3 –version
Python 3.7.5
“`

# PythonでのCloudWatch Logsの取得方法
他のAWSの制御と同様でboto3を利用します。boto3が入っていない場合は、インストールをして下さい。

“`bash
$ pip3 install boto3
“`

boto3を利用するためには、AWSのIAMアカウントのアクセスキーとシークレットを利用する必要があります。そちらについては、aws configureで事前に設定しておいて下さい。設定されていれば、boto3が環境変数を読み取リますので、pythonス

元記事を表示

AWSの概念

出展:[AWS認定資格試験テキスト AWS認定 クラウドプラクティショナー](https://www.amazon.co.jp/AWS%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-AWS%E8%AA%8D%E5%AE%9A-%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E3%83%97%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%BC-%E5%B1%B1%E4%B8%8B-%E5%85%89%E6%B4%8B/dp/4797397403/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=3ERB303UT76DT&keywords=aws%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E3%83%97%E3%83%A9%E3%82

元記事を表示

aws EC2でのruby 環境構築

#aws での ruby on rails 環境構築メモ

* root ユーザーの切り替え

* git のインストール

“`
$ sudo su –
# yum -y install git
“`

# Rubyに必要なパッケージのインストール

“`
# yum -y install gcc-c++ glibc-headers openssl-devel readline libyaml-devel readline-devel zlib zlib-devel libffi-devel libxml2 libxslt libxml2-devel libxslt-devel sqlite-devel
“`

# rbenvのインストール

“`
# git clone https://github.com/sstephenson/rbenv.git /usr/local/rbenv
# cp -p /etc/profile /etc/profile.ORG
# diff /etc/profile /etc/profile.ORG

# echo ‘expor

元記事を表示

AWSでランディングページを立ち上げた話【1.導入編】

コンバージョン率(お問合せ・成約)を上げるため、**ランディングページ**を作ったときの話をする。

当方、ホームページ屋では無いが、専門業者に頼むと金も時間も掛かるので自分でやることになった。
ランディングページではイメージ画像を多用するが、素材は会社が契約する Adobe Stock から購入する。

# ランディングページとは
WEB業界用語である。本サイト(ホームページ)とは異なる自己完結型のページのことを言い、**LP**と略される。
ページが縦長で、縦スクロールで読み進めるのが特徴。営業のセールストークを1枚に書き連ねた感じ。
ページ移動があると訪問者が離脱しやすいので、他ページへのリンクは極力つけないのが一般的。

# サーバ手配
WordPressが動けば良いので、エックスサーバーやさくらサーバなどの国産レンタルサーバ(共用タイプ)で良いのかもしれないが、ここでは自由度と拡張性を重視し、AWSで構築する。
とはいえ、**Amazon EC2** では流石にオーバースペックなので、月額 **$3.50** の固定料金から始められる **Amazon Lightsail**

元記事を表示

はじめてAWSでデプロイする方法④(EC2インスンタンスにSSHログイン)

## 前回までの記事
[はじめてAWSでデプロイする方法①(インスタンスの作成)](https://qiita.com/nousi/items/f0ab345402362e43db80)
[はじめてAWSでデプロイする方法②(Elastic IPの作成と紐付け)](https://qiita.com/nousi/items/0fe964f0be7e1cfa2ca1)
[はじめてAWSでデプロイする方法③(AWSセキュリティグループの設定)](https://qiita.com/nousi/items/cd2d937e9faf0c0c669c)

EC2インスタンス(サーバー)を作成し、パブリックIPをElastic IPで固定。
一般ユーザーがアクセスできるように、セキュリティグループの設定を追加(入り口を作成)
ざっくり説明すると、こんなところです。

## 今回実施すること
今回はEC2上にRailsやMySQLなどをインストールする、つまり環境構築をするために、SSH接続でEC2にログインをしていきます。
EC2にログインするにはどうすればいいのか?

IDとPWが必要です。
I

元記事を表示

DynamoDB の条件付き書き込みを試してみる - condition-expression

デフォルトでは、DynamoDB 書き込みオペレーション (PutItem、UpdateItem、DeleteItem) は無条件です。
つまり、これらの各オペレーションでは、指定されたプライマリキーを持つ既存の項目が**上書き**されます。

条件付き書き込みを利用すると項目の属性が 1 つ以上の想定条件を満たす場合のみに成功できるようできます。それ以外の場合は、エラーが返されます。

とりあえず検証してみる。


#1.適当なtableを作成する#

項目を追加する。

“`json:item.json
{
“Id”: { “N”: “100”},
“Price”: {“N”: “3000”},
“Category”: {“S”: “Tshirt”}
}
“`

“`
aws dynamodb put-item \
–table-name fashion \
–item file://item.json
“`

#2.更新される場合#

ここでは、limit 2000 以下のものに対してのみ、update するものと

元記事を表示

GitHubへのCommitによりCircleCIを起動し、S3静的サイトを更新するプロジェクトをつくってみた

#目的
CircleCIとGitHubのキャッチアップのため、前回作ったS3静的サイトを更新するCD環境を作ってみました。

#構成図
![Arch2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136929/db410f19-4305-16f3-d834-a1ea66e554c4.png)

#流れ
1.GitHubの準備
2.CircleCIとGitHubとS3の連携
3.検証

##1.GitHubの準備
S3とローカルに保存しているだけでしたので、休眠していたGitHubアカウントを復活させ、ローカルGitと接続しました。

##2.CircleCIとGitHubとS3の連携
@kenta_ojapi さんの記事を参考にさせて頂きました。ありがとうございました。
https://qiita.com/kenta_ojapi/items/221dd147944b

元記事を表示

AWS EC2でyumが使えない

#1. エラー文
EC2のインスタンス内でyumを使おうとすると以下のエラー文が表示される

“`
One of the configured repositories failed (不明),
and yum doesn’t have enough cached data to continue. At this point the only
safe thing yum can do is fail. There are a few ways to work “fix” this:

1. Contact the upstream for the repository and get them to fix the problem.

2. Reconfigure the baseurl/etc. for the repository, to point to a working
upstream. This is most often useful if you are using a newer
distribution

元記事を表示

AWS SOAを取得するまで

[AWS SAAを取得したので](https://qiita.com/sicksixrock66/items/fa7be87c0dc9a6ce1e63)、
より知識の定着を図るために
AWS 認定 SysOps アドミニストレーター – アソシエイトを続けて受験し合格しました。

#勉強期間
AWS SAA合格が12月22日で翌年の1月11日に受験したので3週間ぐらい

#勉強した内容
対策の書籍はない(少なくともSOAに特化している日本語の書籍はない)
ので公式の試験概要を参照してそれに付随するサービスのBlackBeltやよくある質問を読みました。

https://aws.amazon.com/jp/certification/certified-sysops-admin-associate/

>推奨される知識と経験
AWS の信条 (クラウドのアーキテクチャの設計) に関する理解
AWS CLI および SDK/API ツールの実践経験
AWS に関連するネットワーク技術の理解
セキュリティ概念の理解と、セキュリティコントロールとコンプライアンス要件の実装の実践経験
仮想化テ

元記事を表示

AWS上に構築したWordPressで「504 gateway timeout」が頻発した時の対処法

#概要
AWS上に構築したWordPressで「504 gateway timeout」が頻発したので、その際の対処方法を記載します。

#前提
AWS上に構築したWordpressは以下のようなアーキテクチャで動作しています。
route53は使用しないシンプルな構成になってます。

 インターネット
 ↓
 ALB(セキュリティーグループのインバウンド設定:http,https)
 ↓
 EC2(セキュリティーグループのインバウンド設定:http)

#事象
504 gateway timeoutが頻発した。
うまく表示される時もあれば、うまくいかないこともあったりと不安定な状態。
またページの読み込みもなんだか遅いような感覚。

#解消方法
上記の前提にもあるようにALB→EC2の通信は httpでしか疎通しないアーキテクチャになっている。

ALBのターゲットグループを確認したところ、http,httpsの両方が設定されていた。これをhttpのみ設定したところ504の事象が解消し、ページの読み込みが早くなった!

おそらくALBからhttpsでEC2に送った際に、EC2側で

元記事を表示

【AWS完全に理解したへの道】データベース(RDS/ElastiCache/DynamoDB)基本編

[【AWS完全に理解したへの道】 VPC 基本編](https://qiita.com/y-u/items/40fa729d54ebab52fcb3)
に続く、データベース(RDS/ElastiCache/DynamoDB)基本編(項目の然るべき順序的なものは後で整理するかも)

AWSが提供しているデータベースサービスは以下の4つ。

1. リレーショナルデータベースサービス : RDS
2. NoSQLデータサービス : DynamoDB
3. インメモリキッシュサービス : ElastiCache
4. データウェアハウスサービス : Redshift

## 1. RDS
RDSで選択できるデータベスエンジンは以下6種類。

1.1 Amazon Aurora
1.2 MySQL
1.3 MariaDB
1.4 PostgreSQL
1.5 Oracle
1.6 Microsoft SQL Server

### 1.1 Amazon Aurora
Amazon AuroraはMySQLと互換性のあるAWS独自のリレーショナルデータベースエンジン。
※各データベースエンジンの差

元記事を表示

ElastiCache サービスの導入 – Nextcloud 環境の構築を通じて AWS での環境構築を体験する②

「Nextcloud 環境の構築を通じて AWS での環境構築を体験する」 の第 2 回となります。
これまでの記事が下記からどうぞ。

* 【第1回】[EC2 と RDS を利用した Nextcloud 環境の構築](https://qiita.com/S_Katz/items/756ca04ecece844ce503)

# はじめに
今回は、[前回記事](https://qiita.com/S_Katz/items/756ca04ecece844ce503) で作成した環境構成から キャッシュサービスである Redis を分離してみます。
この Nextcloud 環境において、 Redis は次の役割を担っております。

* セッション情報の保持
* ファイルロック情報の保持

このサービスを分離することで、将来的に EC2 サーバーをロードバランサ等を利用して複数台運用としても、上記情報を Web サーバーで共有することができるようになります。
前回の記事で環境を構築して Nextcloud の環境を少し理解されている方であれば、「あれ、他にも分離しなきゃいけないやつある

元記事を表示

Cloud9とGithubを連携する方法

### 前提
* Githubのアカウントを持っている
* Cloud9を使用できる状態

### Cloud9でSSH認証の公開鍵を作成する
1. ./sshに移動する
`$ cd ~/.ssh`

2. 公開鍵を作成する
`$ ssh-keygen`

色々聞かれますが、とりあえずはEnterで進めて大丈夫です。

3.公開鍵ができているか確認する
`$ ls`

コマンド実行後、id_rsaとid_rsa.pubというファイルが出来てたらOKです。
→id_rsa.pubファイルの中身が公開鍵になります。

4.公開鍵をコピーする
`$ cat id_rsa.pub`

実行後に表示された、文字列をコピーしてください。

### Githubに公開鍵を登録する

Githubの`Settings`→`SSH and GPG keys`→`New SSH key`をクリック

![スクリーンショット 2020-01-11 0.34.04(2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/32887

元記事を表示

OTHERカテゴリの最新記事