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

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

忙しい人のためのAWS「IAM」

##はじめに

自分のアウトプットがてら、さくさくとAWSの各種サービスについてまとめていくシリーズです。
今回はIAMについて取り上げます。

##IAMとは

Identity and Access Managementの略称。結論、**ユーザー管理**をしてくれる、もしくは自分でするためのサービスです。

いちばん初めにAWSにサインアップしたときのアカウントを**ルートユーザー**と呼びます。
このユーザーは本当に何でもできる神のような存在なので、普段使いはしないようにすることが推奨されています。

そこで、**IAMユーザー**というものを神によって創造し、普段の操作はそのアカウントを使うことで、変なことをしないようにできます。つまり、安全にAWS操作を実施するための認証や認可の仕組みを作れます。

##主要トピック

**ユーザー**、**グループ**、**ポリシー**、**ロール**の4つがあります。

ポリシーとは、このIAMユーザーは○○と△△のサービスにアクセスできます、などのルールのことです。ルートユーザーはポリシーもクソもないのでまったく別で考えます。何といって

元記事を表示

Route 53を使用し、お名前.comで取得した独自ドメインでWebページを表示させる

前提として
お名前.comで独自ドメインを取得済み、
IPアドレスでWebページが表示されていることとします。
やり方はこちらをご覧ください

[**お名前.comを使い、独自ドメイン取得**](https://qiita.com/tksh8/items/ab3748bcb01316461abe)

[**AWSでのデプロイ手順**](https://qiita.com/tksh8/items/9a8e88a777a3a4ee7a09)

# Route 53を使用し、お名前.comで取得した独自ドメインでWebページを表示させる

## Route 53の設定
### ホストゾーンの作成

Top画面→Route 53を検索
![スクリーンショット 2020-11-10 10.18.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355517/6e298daa-ba95-f0bd-c727-fd67bd5d9e0f.png)

[ホストゾーンの作成]を押下する

![スクリーンショット 2

元記事を表示

RailsのアプリをEC2へデプロイしてみる-後編(サーバー構築編)-

#この記事について
今回はEC2でサーバー構築をしていきます。
前編の内容が前提となりますのでまだの方はご確認ください。
尚今回はEC2内にnode.jsやRubyといった必須のソフトウェアは既にインストールしたものとして記述していきます。
https://qiita.com/kotobuki562/items/57ffbaadad8ec8d16a4f

#データベースの用意
今回はMariaDBを使用します。インスタンスをAmazonLinux2で起動しているためです。
MYSQLの派生版と考えていただければ相違ありません。

下記コマンドを入力してデータベースをインストールしましょう。
MariaDBはyumコマンドでインストールできます。

“`terminal
[ec2-user@ip-111-11-11-111 ~]$ sudo yum -y install mysql56-server mysql56-devel mysql56 mariadb-server mysql-devel
“`
systemctlコマンドでMariaDBを起動しましょう。

“`termin

元記事を表示

Codepipelineの通知をchatbot経由slackに。CDKを使って。

以下のようなファイルを用意して。

“`chatbot-stack.ts
import * as cdk from “@aws-cdk/core”;
import * as chatbot from “@aws-cdk/aws-chatbot”;
import * as codestarnotifications from “@aws-cdk/aws-codestarnotifications”;

export interface ChatBotStackProps extends cdk.StackProps {
name: string; // 適当な他とかぶらない文字列

workspaceId: string; // 繋ぎ込みすると management consoleから確認できます。
channelId: string; // チャンネルID。copy linkして最後のセクションの文字列。

pipelineArn: string; // 対象pipelineのarn
}

export class ChatBotStack exte

元記事を表示

AWS CloudFormationでCloudFormationテンプレートのマクロを構築しよう

# はじめに
AWS CloudFormationを利用して、CloudFormationマクロを構築するテンプレートのサンプルです。

テンプレートの概要が分からない場合は、[はじめてのAWS CloudFormationテンプレートを理解する](https://qiita.com/miyabiz/items/eb7b0fa1675b5199b9b7)を参考にしてください。

コードは[GitHub](https://github.com/miyabiz-room/CloudFormation-Template/tree/macro-01)にもあります。

今回は、akane というシステムの all 環境を想定しています。
同じ構成で違う環境を作成する場合は、{環境名}-parameters.jsonを別途作成します。

“`text:ディレクトリ構成
akane (システム)
└─ macro (スタック)
├─ macro.yml (CFnテンプレート)
└─ all-parameters.json (all 環境のパラメータ)
“`

# マク

元記事を表示

AWSのオートスケールの負荷試験のため、EC2にVegetaを設定する

# はじめに
AWS EC2に分散負荷試験ツールである[Vegeta](https://github.com/chidakiyo/vegeta)の設定方法です。

ロードバランサーのオートスケールがどのくらいスケールするか試験する際に、Vegetaを利用しました。
以下の有名な負荷試験ツールは、試験環境構築のコストが高いです。

– Apache Bench
– Apache JMeter
– Locust
– Tsung

**コストが高い理由**

– クラスターを構築する必要がある
– そもそも負荷が掛からない
– シナリオを記述しなければならない

**やりたいこと**

– URLに指定したメソッドで、指定した秒間リクエストで負荷を掛けたい。

[![[GitHub]Vegeta](https://camo.githubusercontent.com/faf9be097f4731212debdd24210c750b2dc276d0a17df19c6a8ac026427c09e9/687474703a2f2f666330392e64657669616e746172742e6e

元記事を表示

S3+CloudFrontを使ってReactアプリを独自ドメイン on HTTPSで公開する

# この記事について
この記事では、ReactアプリをHTTPSで公開するために、S3+CloudFrontでどのような設定・操作を行えばいいのかを解説します。
また、ドメインを独自のものにしたい場合には追加でどのような設定が必要かも示します。

## 使用する環境・バージョン
– OS: macOS Catalina 10.15.7
– aws-cli/2.0.10 Python/3.7.4 Darwin/19.6.0 botocore/2.0.0dev14

## 前提条件
– AWS CLIは使用できる状態にセットアップされているものとします。
– 独自ドメインを購入済み&そのドメインのホストゾーンがRoute53に存在済みとします。

## 構成概要
実はS3だけでもバケットの中身をWebに公開できる「静的ウェブサイトホスティング」という機能が存在します。
![スクリーンショット 2020-11-09 20.14.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/520877/08689a59

元記事を表示

AWS〜EC2にSSHログインし、Railsの環境構築をする〜

# この記事を読んでできるようになること
**EC2にSSHログインし、環境構築を行う**ことができる。
# 記事を読むにあたってのお願い
私は**AWSの初学者**で、アウトプットをすることで知識を定着させるためにこの記事を書いています。内容に誤りがある場合は、コメントをいただけますと幸いです。
`学習に使用した教材`
AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得
https://www.udemy.com/course/aws-and-infra/
# SSHとは
Secure Shellの略で、リモートコンピュータと通信するためのプロトコル。認証など全てのネットワーク通信が暗号化されており、安全に通信を行うことができる。
# EC2へのログイン手順
**※[EC2インスタンスの作成](https://qiita.com/kawano30/items/06f6ee056b90968ed376)まで完了している前提です。**
**※MACでの操作手順となります。ご了承ください。**
① 「ターミナル」を起動する。

“`

元記事を表示

Lambdaで”An error occurred (AccessDenied) when calling the GetObject operation: Access Denied”と言われてハマった

#概要
LambdaにてS3の特定オブジェクトをダウンロードする操作をPython(boto3)で実行したが、Access Deniedと言われて実行できない。
実行ロールにAmazonS3FullAccessを付与するも同様の結果。

#実行内容
“`Python
import json
import boto3

def lambda_handler(event, context):

s3 = boto3.resource(‘s3’)
bucket = s3.Bucket(‘my-hoge-hoge-bucket’)
bucket.download_file(‘test.txt’, ‘fuga.txt’)

“`

#Lambdaで表示されるエラー
“`
{
“errorMessage”: “An error occurred (AccessDenied) when calling the GetObject operation: Access Denied”,
“errorType”: “ClientError”,
“stack

元記事を表示

Secrets Managerを使ってみた

CloudFormationの学習を進めていく途中で、[こちら](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/security-best-practices.html#creds)のベストプラクティスが目に留まりました。

>AWS CloudFormation テンプレートに機密情報を埋め込むのではなく、スタックテンプレートで 動的なリファレンス を使用することをお勧めします。

>動的なリファレンスにより、AWS Systems Manager パラメータストアや AWS Secrets Manager などの他のサービスで保存、管理されている外部値を参照するためのシンプルで強力な方法が提供されます。

ん?

ていうことは、見られちゃ困るものは↑のサービス使って隠してねって事?

~~ほッほじゃぁ~~

という事で今回はSecrets Managerの簡単な使い方を調べてまとめてみました。

##①新しいシークレットを保存する をポチっと
![シークレット1.PNG](https://q

元記事を表示

AWS Athenaで複数のクエリを投げてみた

Athenaでクエリを投げる時に色々と苦労したので、まとめてみる。

利用環境はMacです。
## 【背景】
– Athenaがクエリを並列で処理できるのが20並列と書いてあったが([AWSのドキュメント](https://docs.aws.amazon.com/ja_jp/athena/latest/ug/service-limits.html))実際に確かめたい
– athenaに大量のリクエストを送った場合、エラーが出るのか、queueを管理してくれるのか、してくれるならどのようにしてくれるのか知りたい
– ただ、実際にどう実現すればいいかわからない

こんな課題感で手を動かし始めました。

## 【実際にやったこと】
1. Athenaのconsoleからクエリを投げてみた
2. cliからクエリを大量に投げてみた

これらをどのようにしていったかまとめます。(いろんな記事を参考にしました)

## AthenaのConsoleからクエリを投げてみた
以下簡単に、手順をまとめます。

– S3にデータを配置する
– AthenaにDBとTableを作成する
– Athenaから

元記事を表示

【入門】Serverless Framework をデフォルト設定のままデプロイして挙動を確認してみた

# はじめに
タイトルの通りです。
Serverless Framework のデフォルト時の挙動を確認するだけになります。

こちらの記事がとても参考になりました。
・[AWS Lambda入門①(Node編)〜関数をデプロイして動かす〜](https://qiita.com/ozaki25/items/883aec0ab4398aa4abbe)

# 動作環境

“`
$ sls –version
Framework Core: 2.11.0
Plugin: 4.1.2
SDK: 2.3.2
Components: 3.3.0
“`

前提として、Serverless Framework はインストール済み、 `aws configure` も設定済みになります。(`aws configure list` で確認できます。)

# プロジェクトの作成

プロジェクトを作成(`sls create -t <テンプレート名> -p <作成するディレクトリ名>`)してみます。

テンプレートは[公式サイト](https://www.serverless.com/framework/

元記事を表示

備忘録:AWS S3活用による画像保存

#はじめに
Railsでオリジナルアプリを制作しています。このアプリに画像投稿機能を実装しました。しかしHerokuでデプロイしたところ、24時間後には画像は表示されなくなりました(仕様です)。この問題を解決するため、AWS(Amazon Web Service)のS3(Simple Storage Service)を活用しました。今後も使用する機会がありそうなので、備忘録として書き記します。なお、AWS上のアカウント作成やセキュリティ対策方法は割愛します(別記事でまとめます)。

#手順
1.S3でバケット(データ格納場所)の準備
2.データ(今回は画像)保存先の設定

#1.S3でバケット(データ格納場所)の準備
バケット準備は大きく分けて下記2つの手順が必要です。

**1-1.バケットの作成**
AWSの公式サイトのサービスタブをクリックし、S3を選択します。その後「バケットを作成」をクリック。バケット名は誰かが既に使用していると、保存できないので注意。

[AWS公式サイト](https://aws.amazon.com/jp/console/)

**1-2.バケットポリシ

元記事を表示

初心に戻って AWS で静的 Web サイトを作成する

AWSのサービスはなんだかんだ、UIが変わったりし、定期的に触らないと忘れてしまうので、基本に戻って、AWS 上で静的な Web サイトを作成します。

– **Amazon S3** の静的ウェブサイトホスティング機能を用いて、簡単な Web サイトをインターネット上に公開する。
– **Amazon CloudFront** で CDN サービスを用いたコンテンツキャッシュを利用する。
– **Amazon Route 53** で DNS サービスを用いた独自ドメインの取得 & ネームサーバーへのレコード登録を行う。
– **AWS Certificate Manager** を用いた証明書の作成 & 配置をする。

![スクリーンショット 2020-11-03 21.18.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/55b97be0-c512-f1a9-797e-15c3a2dda553.png)


#1.S3 の静的ホスティング機能を使って、Web サイトを表

元記事を表示

【AWS Glue】ジョブパラメータを利用する

## ジョブパラメータ
AWS Glueではジョブ実行時にジョブパラメータを設定可能です。環境変数のようなもので、スクリプトの中でその変数を受け取ることが可能です。
同じスクリプトでも変数を変えることで挙動を変えることが可能となります。

## ジョブパラメータの取得方法

“`py
import sys
from awsglue.utils import getResolvedOptions
args = getResolvedOptions(sys.argv, [‘hoge_string’, ‘hoge_int’])
step_count = args[‘hoge_string’]
store_name = args[‘hoge_int’]
“`
`getResolvedOptions(sys.argv, [‘arg_name_1’, ‘arg_name_2’,…])` のように引数に受け取るパラメータ名を並べていくとジョブパラメータの連想配列が取得できます。あとはその配列のkeyに取得したいkeyを指定するだけでOKです。
またパラメータはすべてstring型なので数値と

元記事を表示

AmazonConnectの東京リージョンで米国電話番号を利用したテスト環境を構築する

Amazon Connectの東京リージョンにて、テスト環境を構築するための手順を紹介します。
最近(2020年11月時点)、なぜか日本の電話番号が取得できないため、米国の電話番号を取得してLINE Out Freeを用いて電話をかけるようにします。

# 用意するもの
– AWSアカウント
– LINEを使うことができるスマホ
– 上記のスマホとは別に、Connectから電話を転送させるための電話機

# AWS側の設定
Amazon Connectのインスタンスを立てるところまでは他の記事にお任せします。
左側のメニューより、「ルーティング」⇒「電話番号」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/776880/ccff4136-986a-f17b-5cb0-271d13168619.png)
右側の「電話番号を取得」ボタンをクリックすると、以下のような画面が表示されます。
日本の番号は取得できないので、米国のDID番号を取得します。
(米国の料金無料通話番号を取得

元記事を表示

AWS EC2 で Code Deployのセットアップ

## 環境
– EC2
– Amazon Linux 2

## ルートユーザーとしてログインする

“`bash
sudo su –
“`

## shellを作成する

“`bash
vi install.sh
“`

## 以下のコードを貼り付ける

“`bash
#!/bin/bash
sudo yum update
sudo yum install ruby
sudo yum install wget
cd /home/ec2-user
wget https://aws-codedeploy-ap-northeast-1.s3.ap-northeast-1.amazonaws.com/latest/install
chmod +x ./install
./install auto
“`

## 実行権限を付与

“`bash
chmod +x install.sh
“`

## install.shを実行

“`bash
./install.sh
“`

元記事を表示

EC2 + NginxでCSRキーを作成する

## 秘密鍵作成するディレクトリに移動する

“`bash
cd /etc/pki/tls/private
“`

## 秘密鍵を生成する

“`bash
sudo openssl genrsa -out costom.key
“`

## 新しいプライベートキーに、所有権とアクセス権を設定する

“`bash
sudo chown root:root custom.key
sudo chmod 600 custom.key
ls -al custom.key
“`

### 次のような結果になる

“`bash
-rw——- root root custom.key
“`

## CSRキーを作成する

“`bash
sudo openssl req -new -key custom.key -out csr.pem
“`

## CSR生成情報を入力する

| 項目名 | 説明 | 例 |
| —- | —- | —- |
| Country Name※ | 国を示す2文字のISO略語 | JP |
| State o

元記事を表示

Amazon Linux 2 で Laravel用の初期セットアップを行う(Nginx, PHP, MySQL, Composer)

## shellを作成する
“`
vim setup.sh
“`

## 以下のコードを貼り付ける
“`
#!/bin/bash
sudo yum update -y

# nginx
sudo amazon-linux-extras install nginx1.12 -y
sudo systemctl start nginx
sudo systemctl enable nginx

# php
sudo amazon-linux-extras install php7.3 -y
sudo yum install php-xml php-mbstring -y

# mysql
sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y
sudo yum install mysql-community-server -y
sudo systemctl start mysqld.service
sudo systemctl enable mysqld.

元記事を表示

AWSのEC2にユーザーデータで再起動時シェル実行スクリプト作成

##初めに

Amazon EC2でインスタンス起動する時、起動後にそのインスタンスにユーザーデータを渡し、一般的な自動設定タスクを実行したり、スクリプトを実行したりできます。

下のスクリプト例では、スクリプトがウェブサーバーを作成し、設定します。

“`:サンプルコード
Content-Type: multipart/mixed; boundary=”//”
MIME-Version: 1.0

–//
Content-Type: text/cloud-config; charset=”us-ascii”
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=”<任意ファイル名>.txt”

#cloud-config
cloud_final_modules:
– [scripts-user, always]

–//
Content-Type: text/cloud-config; charset=”us-ascii”
MIME-Version

元記事を表示

OTHERカテゴリの最新記事