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

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

AWSの基本的なサービスと機能を整理したで

# はじめに
* AWSのサービスと機能は共通点が複雑なところもあるので、自分用にまとめてたものがありました。
* 僕がAWSクラウドプラクティショナーを受験した時の内容なので変わってるかもしれません。(2021/2/14現在)
* [AWS認定資格クラウドプラクティショナーの一発合格体験記](https://qiita.com/oichokabu/items/c5334289dd48e82c6e69) の続きになります。よければこちらも参考にしてください。

# サービスごとの整理
## EC2
* アウト通信に転送料金が発生する。
* EC2からS3にアクセスするにはEC2インスタンスにIAMロールを指定する。
* 数ヶ月利用しない場合、AMIを作成してから削除する。
* **EC2だけを停止してもEBSボリュームが残る**ため。
* AMIにはEC2のほか、EBS、管理情報も含まれる。
* AutoScalling
* 起動設定は**「AutoScallingグループ」****「AutoScallingポリシー」****「インスタンスタイプ(=性能)」*

元記事を表示

マルチクラウド下でのTerraformのディレクトリを改めて考える

# 概要
TerraformはAWSやGCPなどのクラウドを管理するための構成管理ツールですが、
自分でtfファイルやディレクトリ構成の粒度を決めれます。
Terraformでマルチクラウドを扱う時にどのような粒度でディレクトリを分ければいいのかを考えていきます。

## 前提条件
Terraformを使う場面は様々ですが、今回はGCPとAWS2つのクラウドをTerraformで管理することを前提とします。
またAWSはステージングアカウントと本番アカウント2つある前提で話します。

※様々な流派がTerraformにあるのですが、今回はシンプルにしたいのでworkplaceやmoduleは使わないです

以下が今回例として扱うGCPとAWSの状態です。

“`yaml
AWSアカウント:
– prodアカウント ・・・ 本番環境用
– stgアカウント ・・・ ステージング環境用/開発環境用

GCPアカウント:
– anlytics folder ・・・ 分析環境用のfolder
|- prod project ・・・ 本番分析環境用のプロジェクト

元記事を表示

Route53を用いてCloudFrontに独自ドメインを設定する

#1 はじめに
皆さんはRoute53を用いてCloudFrontに独自ドメインを設定したいと思ったことはありますか?
私はあります。
CloudFrontのURLを見かけるたびに独自ドメインを設定したくてウズウズしてしまいます。
さすがに見知らぬURLに独自ドメインを設定することはできないため、この記事にて勘弁してください。

#2 全体イメージ
このようなイメージで作成します。
ACMでサーバー証明書を作成し、それをCloudFrontとRoute53に紐づけます。
Route53をCloudFrontに紐づければ完了です。
![全体イメージ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674265/50717d58-b407-a2a7-4635-0d0536ee8bd1.png)
#3 実施手順
以下の手順で実施します。
1 ドメイン取得可否確認
2 Route53のホストゾーン作成
3 ドメイン取得・Nameservers登録
4 Certificate Managerでのサーバー証明書作成

元記事を表示

新型コロナ陽性者数をQuickSightで予測してみた

# はじめに
AWSのBIツールQuickSightにて、ノーコードで機械学習を用いた予測ができるとのことで
最近よく目にする新型コロナ陽性者数で試してみました。
また、データの自動更新についても試してみました。

# データソース
新型コロナ陽性者数のデータはオープンデータとして厚生労働省のサイトで公開されています。
https://www.mhlw.go.jp/stf/covid-19/open-data.html

この中から[陽性者数](https://www.mhlw.go.jp/content/pcr_positive_daily.csv)をダウンロードして使います。

## 方針
ダウンロードしたファイルpcr_positive_daily.csvを直接QuickSight(SPICE)に取り込みでもいいのですが、
ここではS3に保存してそれをQuickSightのSPICEに取り込むようにします。
理由:
このデータは日々更新されていくので、この出来上がったグラフも最新データに追随していかせたいのです。
データソースがS3だと自動更新させて追随させることができるのですが

元記事を表示

AWS認定ソリューションアーキテクトプロフェッショナルに920点で合格するために使用した教材とおすすめ度

先日、[AWS認定ソリューションアーキテクトプロフェッショナル](https://aws.amazon.com/jp/certification/certified-solutions-architect-professional/)(以下、AWS SAP)に**920点**で合格しました。

というと、すごく聞こえますが、1度の不合格を経て、2度目の受験でなんとか合格することができました。

AWS SAPは、試験範囲がとても広いことからAWS認定試験の中で一番難しいと言われています。私自身、何度も心が折れそうになりました。そんなときに励まされたのが色々な方のブログや記事でしたので、私が勉強で使用した教材とおすすめ度をまとめてみました。

# 経歴
– AWS利用歴は2年
– サーバー、インフラを主に担当しています
– オンプレ、ハイブリッドの経験はありません
– 1年前にAWS認定ソリューションアーキテクトアソシエイト取得済

# 実績
– 2020年12月
– コロナの影響で年末年始の予定がなくなったので受験を決意
– 2020年1月
– 1回目の受験。727点で

元記事を表示

Amazon Cognitoを使ってシンプルなログイン画面を作ってみる

AWS資格取得に向けて実際にAWSを利用してみたシリーズの投稿です。
今回はAWSを使って素早く簡単にユーザーのサインアップ/サインインおよびアクセスコントロールの機能を追加できるAmazon Cognitoを利用してみる編です。1時間程度でCognitoを利用したログイン機能が作成できます。
資格勉強的にはCognitoのユーザープール、IDプールの違いを確認しつつ、手っ取り早くログイン画面の作成するための手順になっています。
興味がある方は読んでみて下さい。

資格試験の勉強法は記事は以下を参照。

[AWS初心者がAWS 認定ソリューションアーキテクト – アソシエイト資格試験に合格した時の勉強法](https://qiita.com/fkooo/items/e5284a4ed3c3466ffd41 “AWS初心者がAWS 認定ソリューションアーキテクト – アソシエイト資格試験に合格した時の勉強法”)
[AWS初心者がAWS 認定ソリューションアーキテクト – プロフェッショナル資格試験に合格した時の勉強法](https://qiita.com/fkooo/items/17f

元記事を表示

AWS Amplifyでリソース(API, Auth)構築からフロントエンド(React)へ導入するまでの手順をまとめました

#はじめに
AWS Amplifyを使うとサーバレスのバックエンドを簡単につくれるという話をききました。個人でアプリ開発をやってみたいなーという気持ちがあったのですが、バックエンド構築の手間がネックでなかなか手をつけられずにいたので、この機会にAmplifyを学習してみることにしました。
以下はAPIとAuthリソースを構築してフロント側に実装するまでのまとめです。

#AWS Amplify とは
CLIでコマンドをポチポチするだけでクラウドにバックエンドリソース(S3やAPI GatewayなどのAWSサービス)を設定することができ、サーバレスバックエンドを簡単に構築できるサービスです。このサービスを使うことで、アプリ開発を超高速に行うことができます。

コマンドで作成できるリソースとしては以下のようなものがあります。

– Auth: Amazon Cognito(SignIn/SignUp機能を追加)
– Analytics: Amazon Pinpoint(ユーザのセッションやイベントを記録)
– Storage: Amazon S3
– Caching: Amazon Cl

元記事を表示

[aws-cdk]S3 + CloudFrontで静的コンテンツ配信する

S3 + CloudFrontの構成で静的コンテンツ配信する構成をCDKで作ってみた。

YAMLから開放されて非常に良い・・・CDKはいいぞ!:relaxed:

# 前提
– aws-cdkの実行環境は構築済み
– 今回は [TypeScript](https://docs.aws.amazon.com/cdk/latest/guide/work-with-cdk-typescript.html) で構築してます
– Route53の設定済み
– ACMで証明書を発行済み

# 準備
不足しているパッケージを追加します。

“`sh
$ npm i -D @aws-cdk/aws-s3 @aws-cdk/aws-cloudfront @aws-cdk/aws-route53-targets
“`

# コード

## ディレクトリ構成
今回は以下の構成で動かすことを想定しています。l

“`
./
├ bin/
│ └ cdk.ts
└ lib/
└ sample/
└ index.ts
“`

## bin/cdk.ts
`sampl

元記事を表示

DockerでRails開発時に,画像の保存先をAWS S3にする

先日,Rails, Dockerでの開発時に画像の保存先をローカルからS3に変更した際の手順を記録した.

## 開発環境
WSL2 (ubuntu 18.04 LTS)
Docker
– Ruby (2.7.1)
– Rails (6.0.3)

## 画像をS3に保存する手順

Active Storageがインストールされており,S3バケット作成まで完了していることを想定

Active Storageのインストールは以下のコマンドでできる

“`sh:terminal
docker-compose run コンテナ名 rails active_storage:install
docker-compose run コンテナ名 rails db:migrate
“`

#### 用意するもの

– S3バケット情報
– バケット名
– リージョン

– IAMユーザー情報
– アクセスキー
– シークレットアクセスキー

#### 手順
##### 1. root dirにて以下のコマンドを実行

“`sh:terminal
docker exec –

元記事を表示

AWSの環境をTerraformを使って構築してみた

AWSで使い捨ての環境を構築する際は、AWS CloudFormationを利用することが多いと思います。
検証環境をテンプレートとして残しておいたり、マネジメントコンソールやAWS CLIから簡単に構築/削除を行うことができます。

AWS公式のツール以外だと、Terraformが選択肢の1つとして挙げられます。

## Terraformって何?

HashiCorp社が提供するTerraformは、インフラ構築や設定などをコード(テンプレートファイル)を使って自動化するツールです。(Infrastructure as Code)

AWS以外にも数多くのプロバイダ(クラウドサービスやツール)に対応しています。

この記事の載時点では最新バージョン0.14.5までリリースされています。(2021年 1月時点)
Terraformの開発は非常に活発であり、最新バージョンのリリースもかなり頻度が高いです。
今後、Infrastructure as Codeの分野でますます注目を浴びそうです。
https://www.terraform.io/

## 構築内容

今回はシン

元記事を表示

AWS日記24 (Cognito – OIDC)

# はじめに
今回は AWS Cognito の OpenID Connect (OIDC) を試します。
OIDCを利用しGitHubとアカウント連携します。

# 準備
[AWS SAM の準備をします](https://qiita.com/tanaka_takurou/items/cae7c19fc3aaf0031abb)

[AWS Cognitoの資料]
[AWS Cognito](https://aws.amazon.com/jp/cognito/)
[ユーザープールへの OIDC ID プロバイダーの追加](https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/cognito-user-pools-oidc-idp.html)

# AWS SAM テンプレート作成

AWS SAM テンプレートで API-Gateway , Lambda, AWS Cognito の設定をします。

[参考資料]
[AWS SAM テンプレートを作成する](https://docs.aws.amazon.com

元記事を表示

一問一答で学ぶAWS責任共有モデル

AWSクラウドプラクティショナーの資格試験の学習を兼ね、
一問一答形式でAWS責任共有モデルについて記載しています。

今後、追記予定です。
(内容が薄い&インフラ初心者ではあります。ご容赦の上、ご覧ください。)

##概要

###Q.責任共有モデルって何?
A.AWS側の責任、ユーザ側の責任を定め、全体のセキュリティを担保しようという考え方

###Q.元ネタは?
A.英語で、shared responsibility modelの日本語訳。
ただし、ここでのsharedは「共有」という意味合いより「分担」という意味合いの方が正確

###Q.何故こういった考え方が存在する?
A.責任の所在を明確するため

###Q.責任の分界点を一言で言うと?
A.クラウド自体(AWS)か、クラウド内(ユーザー)か

###Q.もう少し詳しく
A.AWS側は物理的なインフラや、仮想環境を動かすハイパーバイザーに対し、そしてユーザー側はOSより上のレイヤーに対し責任を負う

###Q.ちなみに、ここでいうクラウドって何よ?
A.インターネット経由でさまざまなITリソースをオンデマンドで利用すること

元記事を表示

[Ansible]EC2のメタデータを変数に格納する

### pre_tasksでec2のメタデータを収集する。

“`yml
pre_tasks:
– name: gather ec2_metadata
amazon.aws.ec2_metadata_facts:
“`

[収集できるメタデータ(公式サイト)](https://docs.ansible.com/ansible/latest/collections/amazon/aws/ec2_metadata_facts_module.html)

### 変数に格納
例) “public_ip”にEC2のパブリックIPを格納したい場合、下記のように変数を設定しておく

“`
public_ip: “{{ ansible_ec2_public_ipv4 }}”
“`

### 使い所
AWXのワークフロー使用時、CloudFormationで新規構築したEC2のIPを後続タスクで使用する変数に格納したい時などに使えます。

元記事を表示

AWS Amplifyの認証画面を多言語対応してみた

## はじめに

Ionic(Angular)環境でAWS Amplifyの認証画面を多言語対応してみました。

Angular環境の場合は、ionタグの部分を無視して読んで下さい。

AWS Amplifyの環境構築は、こちら

=>[[Ionic6 + Angular11]AWS AmplifyとIonicでさくっと認証画面を作成する](https://qiita.com/reriiasu/items/0d3affe022a9f8c5c296)

2021年2月時点

## 思い

1. できるだけ、コストをかけずに認証画面を作成したい。

– 認証画面を自作するコストをかけたくないが、AWS Amplifyの認証画面がカスタマイズできず結局自作というケースも多いのでは?

## 完成画面

![selectLanguage.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553528/97c915f1-8565-521c-4104-287920e1092a.gif

元記事を表示

AWSの障害を考える

2021/02/19(土)の夜間にAWSで障害が発生しました
ここのところ一年に一度のペースで大きな障害が発生しているので
自分なりに考察していきます

# 2021/2/19日のAWS障害の詳細
* 障害時間 2021/02/19(土) 23:50~20(日) AM5:30
* ダウンタイム 4時間40分
* 障害が発生したリージョン/AZ 
* 東京リージョン
* ap-northeast-1(apne1-az1)

* 影響を受けたサービス
* EC2
* EBS
* 原因
* 冷却ユニットの温度上昇の影響により、冷却ユニットの電源がダウンする

# 過去に発生した大きな障害(東京リージョン)
* 2019/8/23 EC2、EBS、RDS、Redshift、ElastiCache 、Workspacesで障害
* ダウンタイム 約4時間
* [AWSの障害レポート](https://aws.amazon.com/jp/message/56489/)

* 2020/4/20 SQS、Lambda、CloudWatc

元記事を表示

【AWS】VPCを作成

# はじめに

Amazon VPC (Virtual Private Cloud)の略で、AWS上に自身のプライベートネットワークを作成できます。
このネットワーク上にEC2やRDSといったAWSサービスを作成しシステムを構築できます。

プライベートなNW空間になりますが、インターネットゲートウェイを作成しインターネットと接続したり、Direct Connectという機能を利用して社内のイントラと接続することも可能です。
### 前提
VPC作成前にリージョンとアベイラビリティゾーン(AZ)について簡単に触れておきます。
AWSはリージョンとAZという単位に分割して管理されています。
### リージョン
AWSの各サービスが提供されている世界各地の地域のことです。
例えば、日本はアジアパシフィック(東京)というリージョンに含まれています。他にもバージニア北部、オハイオといったリージョンが存在、リージョン間は完全に分離されており耐障害性を保っています。
### アベイラビリティゾーン(AZ)
AZとは、各リージョンに存在するデータセンターです。 各リージョンには複数のアベイラビリティ

元記事を表示

【学習メモ】AWS DynamoDB

#DynamoDbとは
Amazonが提供するNoSQLデータベースサービス。
特徴:信頼性が高い、スケーラビリテ、低レイテンシ

#DynamoDbの基本概念
##DynamoDbの構成
構想部分:テーブル、アイテム、属性。
DynamoDbはテーブル単位から設定する。
テーブル:データのコレクションのこと。
アイテム:各テーブルの中にアイテムを作ってデータを作成する。
属性:各アイテムは1つ以上の属性で構成される。
![dynamoDBのテーブル.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1082021/3d36196e-4c9f-ba03-af84-2d04727cd576.png)

##DynamoDbのプライマリーキー
テーブルを作成するとき、テーブル名を指定する以外、プライマリーキーも指定しないといけいない。
プライマリーキーはアイテムを認識するものなので、異なるアイテムは同じプライマリーキーを使っては行けない。

プライマリーキーは2つある。
・パーティションキー(Parti

AWS認定ソリューションアーキテクトプロフェッショナルを受験した時の話

## この記事の概要
2020/09/06と2021/02/28の2回
**AWS認定ソリューションアーキテクト – プロフェッショナル**
(AWS Certified Solution Architect – Professional (SAP-C01))
を受験したので、その時の記録

1度不合格となり、約半年後に再挑戦しなんとか合格しました。
その時の反省も踏まえて、振り返ります。

## 試験の概要

![aws_sap.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140013/ab855d56-200f-da90-4575-58def481e50b.png)

プロフェッショナルレベル(一番上)の**設計者向け**試験です。

「AWSプラットフォームでの**分散アプリケーションおよびシステムの設計**における高度な技術スキルと経験を認定します。」
AWS公式より引用:[引用元](https://d1.awsstatic.com/ja_JP/training-and-certificati

Amazon Aurora Serverless

# Amazon Aurora Serverless
– [Amazon Aurora Serverless | AWS](https://aws.amazon.com/jp/rds/aurora/serverless/)
– [Aurora Serverless v1 の仕組み](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.how-it-works.html)
– [Aurora Serverlessの導入時に気をつけるべきこと](https://dev.classmethod.jp/articles/lessons-learned-from-up-and-running-aurora-serverless/)
– [Aurora Serverlessを実際に使ってみたメリットとデメリット](https://service.plan-b.co.jp/blog/tech/28232/)
– [AWS Aurora Serverlessを使ってみた感想](http

①NiceHashマイニング収益をAWS Lambda×SNSでメール通知する

#目次
– [1.背景](#1-背景)
– [2.構成/構築手順](#2-構成構築手順)
– [2-1.Lambdaの構築](#2-1lambdaの構築)
– [2-1-1.IAMロールの作成](#2-1-1iamロールの作成)
– [2-1-2.Lambda関数の作成](#2-1-2lambda関数の作成)
– [2-1-3.ソースコードのデプロイ](#2-1-3ソースコードのデプロイ)
– [2-1-4.レイヤー作成](#2-1-4レイヤー作成)
– [2-1-5.タイムアウト値の延長](#2-1-5タイムアウト値の延長)
– [2-2.APIによる収益情報取得](#2-2apiによる収益情報取得)
– [2-3.EventBridgeによるトリガー定義](#2-3eventbridgeによるトリガー定義)
– [2-4.S3バケットへの書き出し・読み込み](#2-4s3バケットへの書き出し読み込み)
– [2-5.Amazon SNSによるメール通知](#2-5amazon-snsによるメール通知)
– [3.