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

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

是丈は心得おくべし:AWS

深く後悔したことをメモしていく。

# AWSのサービスと関係するコードは、最初の1行からAWS上でユニットテストすべし

ユニットテストは手元で走らせたいのが人情だが、やってはならない。うっかり`moto`を信じた私が馬鹿だった。`moto`は何をしてもまったくエラーを返さない。

随時追記する予定。

元記事を表示

AmazonConnectのチャット機能をテストしてみた

# はじめに
先日追加されたAmazonConnect のチャットをテストしてみました。
具体的な部分はまだ調査中ですが、動かすことができたので投稿します。

# 事前準備
## ルーティングプロファイルの編集
チャットするAgentのルーティングプロファイルで[Chat] にチェック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/339600/152647dd-707e-91cc-237c-40deec1ba262.png)

## セキュリティプロファイルの編集
[Agent] の [数字とフロー] > [Chat test mode] > [すべて]にチェック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/339600/f9e5248f-190b-4bb9-99cb-f71f9ade3513.png)

# チャットをテストしてみる
①[ダッシュボート] から [チャットをテス

元記事を表示

Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #16 (ビジネスアプリケーション)

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

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

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

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

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

## Business Applications – ビジネスアプリケーション

### Alexa for Business

– 正式名称: Alexa for Business
– https://docs.aws.amazon.com/a4b/?id=docs_gateway
– 読み方: アレクサ フォー ビジネス

元記事を表示

【AWS】S3で独自ドメインでhttpsホスティング

## はじめに

S3を使うと手軽に静的ウェブサイトホスティングすることができ、
Route53でCNAMEを指定すれば[独自ドメインでホスティング](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html)することができます。
ただhttps化することはできずChromeでは「保護されていない通信」扱いされてしまいます。
そこでCloudFrontを使ってS3で独自ドメインhttpsホスティングさせたときのメモです。

## 前提

独自ドメイン取得済みでACMなどの設定済

## S3バケット作成

1. 任意の名称でS3バケットを作成する

## CloudFront Distributions 作成

1. [CloudFront](https://console.aws.amazon.com/cloudfront/home?region=ap-northeast-1)へアクセス
2. 「Create Distributions」-W

元記事を表示

CloudFormation超入門

# What’s CloudFormation?

クラウドリソースをコードで表現してプロビジョニングできるようにする仕組み。
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/Welcome.html

要するに Infrastructure as Code(IaC)。記述形式は JSON or YAML。
似たようなサービスには terraform, cdk などがある。

# 利点

– インフラストラクチャをコードとして扱える
– コードとして扱えればメンテナンス性が向上する
– ちょっと頑張ればデプロイを自動化できる

# 主なテンプレート解説

超入門なので一部割愛。
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/template-anatomy.html

“`yaml
# フォーマットのバージョン(yyyy-mm-dd)を指定する
AWSTemplateFormatVersion: “ver

元記事を表示

ElasticBeanstalk Blue-Green Deployment

# はじめに
ElasticBeanstalkでのBlue-Green Deploymentの方法をネットを探してみたものの、まとまったものが見つかりづらかったので、他の方の参考になればと思いあげさせていただきます。

# Blue-Green Deployment とは
* アプリケーションの動作を事前確認しつつ、ダウンタイム無しのリリース
* Blue – 本番環境へのデプロイ
* Green – テスト環境へのデプロイ

つまり、テスト環境で問題がないことを確認して、そのテスト環境と本番環境のURLを交換することによって、ダウンタイム無しのリリースを実現しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308256/dc057006-674c-1a20-845f-a09c684f5be3.png)

# 操作方法
## 前提条件
* アプリケーションが参照するDBは同じ場所を指していること(Blue-Green Deploymentがダウンタイム

IAMの自分なりのまとめ

#AWSにおける、IAM,ロール,ポリシーについて
入社して3週間経ちますが、今後実務でデータベースを扱うにあたり、AWS周りの単語を学ぶ機会が増えたので、忘れないように自分なりにメモしました。おそらく、まだまだ理解が浅いところ多々あると思います。認識の違いなどがありましたら、ご指摘いただけると幸いです。
IAMには、4種類あると教えていただきました。

##IAMとは
様々なリソース(EC2,RDS,S3,Lambdaなど)へのアクセスを安全に制御するためのウェブサービス。IAMを使用することによって、許可されたユーザーだけがリソースにアクセスできるように制御する。
(公式ではコンソールするためのサービスと書いていましたが、制御と変換しました。)

##なぜIAMを使うのか??
AWSに初めてサインインした時の初期状態だと、rootユーザーで全ての権限を持ってしまっているので、IAMを使うことにより、ユーザーのリソースへのアクセスを安全に制御することができる。

##ポリシーとは
ユーザーに対して、どのリソースを、どこまでの操作を許可するのかを、JSON形式で記述したもの。
※JSO

AWS Cloud9でThird-party cookies disabledと出た場合

AWSのCloud9にて以下のエラーが発生
スクリーンショット 2019-11-21 21.45.58.png

調べた結果safariの環境設定から「サイト越えトラッキングを防ぐ」のチェックを外すことで対処可能とあったが結果は変わらず。。。

スクリーンショット 2019-11-21 22.26.14.png

ブラウザの再起動も行なったが駄目だったのでパソコン自体を再起動したら解決。

2時間ぐらいハマったよー

aws-vaultでいらなくなったprofileを消したい時

# 背景
AssumeRoleをprofileに書きすぎたり、不要になったIAMユーザーを整理したい

# コマンド
“`
$ aws-vault remove [profile]
“`

# 参考

How-to: Use aws-vault to manage credentials for an AWS account

案件が増えるたびにRoute53・S3・Cloudfront・ACM作るのがだるいのでTerraformを使って自動作成するようにしてみた

どうもこんにちは。

先日はTerraformerのインストール方法なんて書いてみましたが、結局使ってません。
きっと既存のインフラをIaCする時だけでいいんでしょうね。(初めてなのでよくわかりませんでした。)

さて、表題の通り、案件が増えるたびに手作業でやってましたがさすがにだるすぎるのでTerraformを覚えて
以降はterraformファイルのコピペだけでできるようにしました。

#いつも手作業でやっていたこと
## 前提
  本番URL: **anken.co.jp**
  案件名: **anken**

を既存のALB、その配下の既存のEC2に相乗りで運用するとします。

環境は
 ・テスト環境(**test.anken.co.jp**)
 ・本番環境(**anken.co.jp**)
を用意します。

##手順
###1. URLの取得
諸所ありMUUMUU辺りで取ってます。

###2. ホストゾーンの作成
取得したURLでALB配下ないし既存のEC2で応答させたいです。
その為にRoute53でホストゾーンを作成し、以下のレコードを作成しています。

– an

IAMの既存ポリシーの名前に惑わされない

最近こういう事件がありました。

> AWS上のDynamoDBに対する権限を本来持っていないはずのエンジニアが、ローカルでDynamoDB localを試そうとして色々作業していたら、AWS上にテーブルを作成していた。やばい。

最初は「マジか。」となったんですが、幸いDynamoDBのテーブルをまったく作ったことのないAWSアカウント上だったので大事にいたりませんでした。

めでたしめでたし?

となるはずはもちろんないので、原因を探りました。

# IAMをよく見てみた

結論から言うと、`AWSLambdaFullAccess` という既存のポリシーをアタッチしたIAMユーザーのAccess Key IDとSecret Access Keyを設定したSDKでテーブルの作成を実行していたことが原因でした。

このポリシーの概要を確認すると

“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”:

AWS,Azure,GCPの3大クラウドのアーキテクト試験に合格してみての個人的比較

3大クラウドと呼ばれてる(はず)のAWS、Azure,GCPについて、それぞれ一番中心となるだろうアーキテクト試験を取得してきたので、個人的な感想や比較を書きたいと思います。

– AWS Solution Architect Professional
– Azure Solutions Architect Expert
– GCP Professional Cloud Architect

3つを受けてみると、各社の色が現れていて面白かったです。
以下、個人的かつ定性的な評価となります。

# 3試験で共通していること
IaaSが半分、残りをPaaSをSaaSを組み合わせたような出題分野で、所謂インフラ寄りですね。開発知識が問われる問題はほとんど無かったです。

# AWS Solution Architect Professional
まず、AWSです。

1回目の試験は2015年頃に合格しました。その後更新はせずに一回失効して、2019年になってもう一度会社の報奨金目当てに取り直しました。

3試験の比較において、AWSの試験の特徴はその問題文の量だと思います。

全体として、

EC2上で動くアプリケーションのログを、CloudWatchに送信してみる

AmazonLinux2上で動かしているアプリケーションのログをCloudWatchから見れるようにするための手順を自分用にメモ。

ざっくり言うと、EC2にCloudWatch用の権限を持っているIAMロールをアタッチした上で、エージェントをインストールすればOK。

# IAMロールの作成
## IAMロールの作成画面
ロールの作成ボタンを押下。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/369844/c73b9d74-06c2-bc21-abf1-abceccdb4a3c.png)

## このロールを使用するサービス
EC2を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/369844/8b9d1e17-f73d-cd18-2cf3-5329d05d7b45.png)

## アタッチするポリシー
「CloudWatchLogsFullAccess」を選択。
ポリシー名は

AWS 認定ソリューションアーキテクトアソシエイトを受験(合格)してきた話

# はじめに
1つ前に今年の7月にAWS認定クラウドプラティクショナーを受験した記事を書きましたが、
その後にソリューションアーキテクトアソシエイト(以下SAA)も受験してきたので、こちらも今更ながら勉強した内容とか書いていきます。

クラウドプラティクショナーはこちら
[AWS 認定クラウドプラクティショナーを受験(合格)してきた話](https://qiita.com/handy-dd18/items/c2b62ad58206e47f1345)

# 目次
* 前提
* SAAを受験した理由とその結果
* 実際に勉強した内容
* 受験した感想

# 前提
SAAを受験時の状況は以下の通り

・SAA受験の数週間前にクラウドプラティクショナーを受験、取得
・AWSは趣味と転職後にEC2やRDSを少し触っていた程度
・一般的なIT、クラウドの知識は持っている
・運用設計の思想は何となく理解している

基礎知識はありましたが、がっつりとAWSについての知識はなく、転職してからまともに触り始めたタイプです。
とはいえ、

EC2 Amazon Linux 2にDockerを入れてtd-agentを動かす

全然理想形では無いのだが、fluentd公式Dockerイメージを起動してみたらAlpine Linuxで、fluentdプラグイン入れるのにもはぁはぁしてしまったりして、やっぱり地道にできるところからやってみたのであった

# まずは土台
##EC2でAmazon Linux 2を1台立てる
割愛
ちなみに今回使用したAMI

“`
# cat /etc/image-id

image_name=”amzn2-ami-hvm”
image_version=”2″
image_arch=”x86_64″
image_file=”INCOMPLETE-amzn2-ami-hvm-2.0.20191024.3-x86_64.xfs.gpt”
image_stamp=”0c64-ace2″
image_date=”20191030215819″
recipe_name=”amzn2 ami”
recipe_id=”2428dc59-f379-186b-2da3-7300-200a-9c34-a139571b”
“`

## 土台のAmazon Linux 2の初期設定(おもに日本語と日本

【AWS】初心者が EC2 + RDS で簡単なサーバー構築とアプリケーションを動かすまでの手順

#概要
AWSを使って、簡単なサーバー環境を構築しました。 
目的は、AWSの学習・理解のためです。

行ったこととしては、
0、基礎知識を得る
1、サーバーを構築(EC2とRDS)
2、EC2上でNginx+PHPをインストール
3、EC2からRDS内のMySQLにPDO接続
4、AMIを使ってインスタンスをコピー
5、ALBを作成

#基礎知識
AWS素人がインフラ設計/構築を理解するために、まず最初におさえるべきキーワード15選
https://qiita.com/Futo23/items/318d89eccdbf5697f8bf
AWS入門者向け 初心者が最初に理解すべきEC2とVPCの基本的な用語解説

AWS入門者向け 初心者が最初に理解すべきEC2とVPCの基本的な用語解説

#サーバーを構築(EC2とRDS)
こちらの記事を参考に簡単なサーバー構築をします。

【AWS 再入門】EC2 + RDS によるミニマム構成なサーバー環境を構築してみよう

流れとしては、

– VPCの作成

AWS Glueのテスト環境をローカルに構築

# Glueをローカル環境でテストしたい
AWSのLambdaがローカル環境で開発できるため、Glueもできないかなーと思い調べたところ、AWSからライブラリが提供されていました。
最初は個別でインストールしての利用を試みたのですが、うまくいかず…。
ググったところ、Dockerで一気に作成する手順を発見。ローカル開発環境の構築に成功しました。

#前提条件
– CentOs 7.6
– Docker 19.03.2

#大まかな手順
1. Dockerファイルを作製
2. 1.に基づき、コンテナをビルド
3. コンテナを起動
4. コンテナにログインしgluepyskarkを起動

#手順詳細
### 1. Dockerファイルを作製
適当なディレクトリに、Dockerfileという名前のテキストファイルを作製し、そこに設定内容を記述します。
※Emacs派なので、viでなくemacsで開いてます。

“`terminal
$ mkdir aws-glue-local
$ cd aws-glue-local/
$ emacs Dockerfile
“`
下記Dockerfil

AWS 認定クラウドプラクティショナーを受験(合格)してきた話

# はじめに
今年の7月にAWS認定クラウドプラティクショナーを受験し、合格しましたので、今更ながら具体的にどのような勉強をしたのかを書いていこうと思います。

本記事はあくまで個人の受けた所感なので、あくまで参考にするぐらいで読んでいただければと。

# 目次

* AWS認定クラウドプラティクショナーとは
* どんな勉強をしたのか
* 受験した結果とその感想

# AWS認定クラウドプラティクショナーとは

まずクラウドプラティクショナーとはどのような資格かですが、AWS認定試験の中でも一番入門レベルの試験で、これからAWSを勉強する方や営業の方がAWSについて勉強するために受験する資格です。
ここではそこまで詳細に説明はしないので、より詳しく知りたいという方は他の方のブログを見ていただければと思います。
もしくは以下の公式ページをご覧ください。
[AWS 認定試験について](https://aws.amazon.com/jp/certification/?nav=tc&loc=3)

AWS認定の種類
[![aws cirtifications.png](htt

Amazon SQSでキューが削除されない

SQSをメッセージを受信してから、処理を行ってから、そのメッセージを削除するリクエストを送ったのですが、何度リクエストを送っても削除されませんでした。

以下は削除しているPHPのサンプルコードです

“`php
### Controller

$messageList = $sqsService->receiveMessage(
self::SQS_CONFIG[‘QueueUrl’],
self::SQS_CONFIG[‘MaxNumberOfMessages’],
self::SQS_CONFIG[‘AttributeNames’]
);

if (is_array($messageList) === true) {
foreach ($messageList as $message) {

// SQSのメッセージを削除する
$s

ipアドレスを変更する方法

##環境
RedHat Enterprise Linux 7.7

##ipアドレスを変更するには?
###viコマンドの利用
“`
# vi /etc/sysconfig/network-scripts/ifcfg-eth0

“`
##やり方
①ファイルの中身を確認します

“`
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
“`

②ファイルの中身を書き換えます

“`
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
“`

③再起動します

“`
# reboot
“`

④変更が反映されているのかを起動後に確認します。確認コマンドは下記の通りです。

“`
# ip a
“`

因みにAWSでは変更できません。下記のように表示されました。

“`
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Created by cloud-init on instance boot automatically, do