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

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

【ほぼ無料】FreenomとLet’s Encryptを使って0円でドメインとSSL証明書を手に入れて、AWS EC2にdockerを入れてnginxコンテナを起動してドメインで繋がるHTTPS WEBサービスを立ち上げる方法

# 経緯
何か業務で使う技術や新しい技術を試したいときにAWS上にWebサーバーを立ててAPIとかテストページとか用意して、ローカルのChromeやAndroid端末からhttpで繋いでごにょごにょやるってのを結構やる。
RestAPIの疎通確認ぐらいならそれでいいんだけど、WebRTCやWebSocketの検証で使いたい場合、SSL化されたサイトでないとエラーになって接続できないため動作確認が出来ない問題があった。
どうにかこうにか安価でオレオレ証明書じゃないWebサーバーを立てられないかなーと調べたところ、FreenomとLet’s Encryptを使えばほぼ無料で独自ドメインのhttpsサーバーを立てられそうだと判明。

Freenomでのドメイン取得方法やLet’s EncryptでのSSL証明書取得方法、それらをAWSで設定するやり方等は探せば断片的にはあるけど、全部まとまった記事は無かったので、備忘録もかねてここに残しておく。

# やること
1. 【無料】Freenomで無料ドメインを取得する
1. 【条件付無料】AWS EC2インスタンスを作成してdockerをインスト

元記事を表示

S3の画像データを無理やりBlob型に変換する方法

# なにこれ
S3の画像データをBlob型にしたい!っていう珍しい状況になった時の解決策です。
Vue(Nuxt)で下記のように`’Content-Type’: ‘multipart/form-data’`で送りたい!って時に遭遇する可能性が高そうです。
“`test.js
const response = await this.$axios.put(`/hoges/${this.hoge.id}`, req, {
headers: {
‘Content-Type’: ‘multipart/form-data’
}
})
“`

# どうやるか
### axiosを利用します
axiosでs3のURLをgetして、その時にresponseをblobで受け取ります。
受け取ったresponseを使って、new BlobでBlob型に変換します。

“`test.js
import axios from ‘axios’

// 〜省略〜
const req = new

元記事を表示

AWSでクソアプリのアーキテクチャを2週間でガチガチに改修した

AWS雰囲気使いを卒業するために、既存アプリのアーキテクチャを
2週間で結構強固なものに改造してみたので改造前と改造後、そして将来的に実装したいFuture workを書き残しておこうと思います。

(ほとんど自己満足で行ったので、必要以上のことをしてしまっている部分があったり、説明を省いている部分があります。)

##既存アプリの詳細
今回改造することにしたアプリケーションは非同期でチャットができるようなwebアプリで、いわゆるL○NEやカカ○ークのようなチャットアプリのwebブラウザバージョンと思っていただけたらと思います。

改造前は、2つのAZ上のpublic subnetにおいたEC2(t2micro)をロードバランサーに設定したうえ、単一のRDSをprivate subnetに置いただけの設計で、ストレージもそれぞれのEC2インスタンス(Ruby on Rails内)が保持し、DBに画像ファイルのパス名を格納しているというもはや完全に不具合とも捉えられる状態でした。

このままではユーザー数が増えた際のEC2インスタンスのサーバーダウンが容易に考えられ、またDBのフェイルオ

元記事を表示

Lambda(Python)でRDSスナップショットをS3にエクスポートする

#はじめに
RDSのデータを参照する際

・日時のdumpジョブなどを用意していない
・リードレプリカがない
・商用環境ログインには問答無用で承認が必要

などの理由で直接RDSの中身を覗くことが困難な場合がありました。
そんな時、Amazon RDSにはスナップショットをS3にエクスポートし、Athenaで参照することが可能とのことでしたので実際にLambdaを使ってRDSスナップショットのS3エクスポートを試してみました。

#全体像

スクリーンショット.png

RDSスナップショットのS3へのエクスポートをLambdaにて実行する。
エクスポートされたデータはKMSにより暗号化されるため、KMSキーも用意する必要がある。

#前提
・RDS及びスナップショットを作成してある。
・エクスポート先のS3バケ

元記事を表示

【AWS】Lightsailで作成したWordpressにRoute53で独自ドメインを紐づける

はじめに

先日LightsailにWordpressをインストールしてサイトを立ち上げたのですが、Route53を使った独自ドメイン紐づけに苦戦したので、備忘録を残します。

(ググって出てきたやり方だと見事に全滅しました。。許すまじ)

おおまかな流れ 

  1. Route53で独自ドメイン取得
  2. LightsailインスタンスにStatic IPを紐づける。
  3. LightsailでDNSゾーン作成。
  4. 作成したDNSゾーン内に、Aレコードを作成し、取得したドメインとStatic IPを関連付ける。
  5. Route53で登録したドメインのネームサーバーを、Lightsailで作成したDNSゾーンのネームサーバーの値に書き換える。
  6. 数分待ってアクセスしてみる。
  7. 完了

手順解説

インスタンスにsta

元記事を表示

【AWS】新規インスタンス(EC2)作成手順

AWSの知識皆無ですが、勉強用に無料アカウントを作ってみました。
EC2インスタンス作成時のメモです。

##アカウント作成
[AWSのサイト](https://aws.amazon.com/jp/register-flow/)からアカウントを作成

– アカウント作成自体は無料
– ベーシックプランは無料

##サインイン
AWSサイトからマネージメントコンソールへログイン

**コンソールにサインイン>ルートユーザー>サインイン**

##EC2インスタンスの作成
#####コンソール画面の「サービス」から「EC2」を選択
![スクリーンショット (6).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684529/3c18387c-6c54-743e-edf5-5f068438e6eb.png)

#####ダッシュボードで「インスタンスを起動」を選択
(無料アカウント用なのか、既にインスタンスが生成されていました。)

![スクリーンショット (8).png](https://qiita-imag

元記事を表示

AWS AmplifyでReactアプリをデプロイする。

# この記事のゴール

本記事は、AWS amplifyを用いて、CRA(Create React App)をデプロイする流れを記載した記事になります。
n番煎じ感ある記事ですが、備忘のために記事にしてみました。

## ※前提

Githubアカウントを持っていて、CRAをプッシュしたリポジトリを持っていること。

## はじめに

まずは、CRAでReactアプリを作成します。アプリの作成方法に関しては、今回は割愛させていただきます。
※過去にDockerでReactサンプルアプリを作成した記事を掲載させていただきます。

React.js (Create React App) × TypeScript対応プロジェクトをdockerで作成する。
[https://qiita.com/koh97222/items/a53cacd0ff85c896bf11](https://qiita.com/koh97222/items/a53cacd0ff85c896bf11)

## 手順1. AWSマネジメント コンソールにログインする。

AWSのアカウントを作成して、AWSのコンソール画面

元記事を表示

【合格体験記】実務経験半年くらいの初心者エンジニアが3週間でAWS SAA資格を取得するまでにやった事まとめ

## 概要

タイトル通り、実務経験半年くらいの初心者エンジニアが3週間で「AWS認定 ソリューション・アーキテクト・アソシエイト(SAA)」の資格を取得するまでにやった事についてまとめていきます。

この手の記事はすでに世間でたくさん溢れているため、もう何番煎じかわかりません。ただ、人それぞれスペックや経歴というのは全く違うわけで、それらが参考になるかどうかはまた別問題。

普段からAWSに触る機会のあった人が書く合格体験記と、これまでほとんど触れる機会の無かった人が書く合格体験記というのは読み手によって全く違う価値をもたらすでしょう。

なので、たとえ何番煎じと言われようが、記録を残しておく事には意味があると自分は考えています。

今回は、自分のようにまだ実務経験が浅い初心者エンジニアの参考になれば幸いです。

## 筆者のスペック

– 年齢: 20代後半(まだまだ脳は柔らかいと信じたい)
– エンジニア歴: 半年くらい(インフラはほとんど触らないポジションにいるため、AWSに関する知識はほとんど無しの状態でスタート)
– 学歴: 早慶上理レベルの大学卒(ある程度試験範囲の決

元記事を表示

無料枠のRDSをマルチAZ構成化させ、手動でフェイルオーバーする

#はじめに
※本記事は、AWS初心者がマルチAZ構成の練習した際の情報をまとめたものです。

無料枠のRDSでは初期設定でマルチAZ構成のオプションが使えないため、「無料枠でつくったRDSでは無理か……」と思っていましたが、実は後からの設定できるようなのでマルチAZ構成化させてみます。
そして、手動でフェイルオーバーを起こして切り替わっているか確認してみます。

そこまで時間のかからない作業内容ですが、変更作業に数分以上待ち時間が発生します。
筆者は別の練習も並行したため数時間稼働しましたが0.19$しか掛かっていません。

#注意
– 低額ですが、**料金は発生**します。無料枠はシングルAZのRDSが対象だからです。
– 料金は1時間辺り**「0.052USD」**(db.t3.micro(東京・MariaDB))だと思われます。
※2020年11月23日時点

– 練習後、放置すると料金が加算されていきますので、**ちゃんと消しましょう。**
– 料金に関する部分はAWS公式でご確認して下さい。
※[Amazon RDS for MariaDB の料金](https://aws.

元記事を表示

【AWS】「InstanceStateとInstanceStatusは違う」という紛らわしいお話【EC2】

## 1. はじめに
タイトルだけで完結してしまっているような気もしますが、
「そうなんだ!」と思った方は少しスクロールしていただけると幸いです。

## 2. とりあえず取得してみる
早速`describe-instance-status`を叩いてみましょう。
~~と言いつつ、自分はリファレンスの実行例をコピペしましたが。~~~

“`shell:describe-instance-status
$ aws ec2 describe-instance-status –instance-id i-1234567890abcdef0
{
“InstanceStatuses”: [
{
“InstanceId”: “i-1234567890abcdef0”,
“InstanceState”: {
“Code”: 16,
“Name”: “running”
},
“AvailabilityZone”: “u

元記事を表示

AWS AthenaでWAFで検知したDoS攻撃の内容を調査する

## 目的
AWS WAFで設定した、DoS攻撃検知用のルールが稼働していると思われるログがあったので、DoS攻撃の詳細内容を調査した時の方法をまとめておくものです。

## 前提となる環境
以下のサービスが有効になっている環境での調査方法となります。
※ この環境ではWAF自体のロギングを有効としていないため、ALBのログを調査します。

### AWS WAF
* AWS WAFにて、ACL(アクセスコントロールリスト)として5分辺りのリクエスト件数を低閾値としたrate limit baseのルール設定が可能です。該当の環境では2000件を設定しており、これを越した時をDoS攻撃とみなしています。
Lambdaの非同期処理のリトライ設計値をまとめる(Streams/SQS編)

# はじめに
Lambdaの非同期処理の設定値と動作は複雑でわかりにくい。
しかも、DynamoDB Streams/Kinesis のストリーム系の非同期処理と、SQS といったイベント系の非同期処理では設定値が異なる。

今回は、上記の非同期系処理を適切にリトライするための設計値をまとめる。
また、Terraformで設定する際のリソースと設定値も付記しておこう。

ちなみに、今回書いた機能では、Lambdaのリトライや保持期間、DLQの設定は無視されるので注意が必要。

# ストリーム系非同期処理の設計値
ストリーム系非同期処理の設計値は、以下の項目が重要になる。

|マネージメントコンソールの設定値|Terraformリソース|Terraformの設定値|デフォルト値|
|:–|:–|:–|:–|
|レコードの最長有効期間|aws_lambda_event_source_mapping|maximum_record_age_in_seconds|-1(無制限)|
|再試行|aws_lambda_event_source_mapping|maximum_retry_att

元記事を表示

実際に構築してみる(Internet gateway と NAT gateway)

[実際にVPCを構築してみる(VPCとサブネット)](https://qiita.com/miyuki_samitani/items/1484f6396fd044122515)でやった続きです。
※完成してません、試行錯誤中です。

## 勉強前イメージ

インターネットゲートウェイとNATゲートウェイについては[これ](https://qiita.com/miyuki_samitani/items/53b0b35defcfebc2ffa3)でなんとなくやったけど、
実際の構築イメージはわかない….

## Internet gateway と NAT gateway

[AWSのVPCのよく使われるコンポーネントについて](https://qiita.com/miyuki_samitani/items/53b0b35defcfebc2ffa3) で書いたイメージから、
[前回](https://qiita.com/miyuki_samitani/items/1484f6396fd044122515) からの修正を行ったイメージ図が以下です。
今回、このようなイメージで設定していき

元記事を表示

S3 Storage Lens

## Storage Lens

S3の利用状況(容量やPUT APIリクエスト数のトレンドを見たり、ストレージクラスをスタンダードで使ってる割合分布を見たり)を可視化して分析するものです。多分。
アカウント、リージョン、ストレージクラスなどの軸でトップNなど見れて、個人的にいい感じです。

## ダッシュボード作成

S3のメニューから”Sotrage Lens”->”ダッシュボード”をクリックして、右上の[ダッシュボードを作成]をクリックし、必要な値を設定してダッシュボードを作成します。48時間くらいかかります。

設定値

* ホームリージョン:このダッシュボードがあるリージョン
* ダッシュボードの範囲:Organization配下の任意のアカウント含めたり、リージョンやバケットを限定したり
* メトリクスの選択:無料メトリクスだけか有料のメトリクスも含めるか

![スクリーンショット 0002-11-23 18.04.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27932/0621ab

元記事を表示

AWS DynamoDB を API Gateway で変更する

– 目的
– AWS Lambda の設定値を変更したい
– 背景
1. 社内向けのLambdaがあり「AWS LambdaのJsonを編集してください」が他の部署では敷居が高い。
1. config.jsonをS3に置いたりしたが、S3は直接プレビューできなかったり。
1. DynamoDBがコード的にも楽だった。
– 作業
– DynamoDB を使ってAPI Gateway→Lambda→DynamoDB で値を変更。
– 利点
– 完全サーバーレス!
– 補足
– 今回の記事はDynamoDBを変更するLambdaです。運用中のLambdaは別です。

# 完成イメージ

– DynamoDB を Web で変更できます。


QuickSightで東京都の陽性者数を予測

# 陽性者数の推移を予測を使用と思った経緯
東京に観光や出張したいと思ったとき、今の東京は、大丈夫なのか?感染リスクを予測しようと思った時、東京都の陽性者数の推移の予測は、1つの指標になるのでは、ないかと思った。

# Amazon QuickSight
機械学習のテクノロジーをベースとしたインタラクティブなダッシュボードを簡単に作成して公開。ダッシュボードは、あらゆるデバイスからアクセスでき、アプリケーション、ポータル、ウェブサイトに埋めることが可能。
[Amazon QuickSight](https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/welcome.html)

### ML を使用した予測をしようする
Amazon QuickSight を使用すると、非技術系のユーザーは自社の主要ビジネスメトリクスを自信を持って予測できます。内蔵の ML Random Cut Forest アルゴリズムは、外れ値を除く季節性や傾向の検出、欠損値の入力など、複雑な現実のシナリオを自動的に処理します。ポイントアンドクリックで簡単に

元記事を表示

既存 AWS VPC の中に EKS を構築する時の注意点

AWS EKS を構築する手順に関して、[このサンプル](https://eksctl.io/usage/creating-and-managing-clusters/#using-config-files)を見ると「簡単にできる」と思いませんか?
eksctl で例をあげると

“`
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
name: basic-cluster
region: eu-north-1

nodeGroups:
– name: node-group-hoge
instanceType: m5.large
desiredCapacity: 1
volumeSize: 100
ssh:
allow: true
publicKeyPath: ~/.ssh/ec2_id_rsa.pub
– name: node-group-fuga
instanceType: m5.xlarge
desiredCapaci

元記事を表示

【備忘録】AWS LightSailでterminalからssh接続

#はじめに
AWS LightSailでデータサイエンス環境構築の練習の備忘録です

#目次
1. LightSailでインスタンスを作成
2. shh接続

#1. AWSのlightsailでインスタンスを作成する
https://lightsail.aws.amazon.com
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/861809/792d06ee-fabd-aa7e-6602-2aa77859d971.png)

#2. ssh接続
アカウントページからプライベートキーをダウンロードする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/861809/32e5844b-73cc-0dae-c900-f542e7d0203a.png)
アカウントページ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaw

元記事を表示

AWSのEC2にGUI環境を構築する

学習環境が欲しくて、EC2にGUI環境を構築したら、思いのほか苦戦したのでメモ。

# 環境
サーバー : Amazon Linux 2
クライアント : Mac

# 事前準備
・AWSのアカウント作成
・[EC2作成](https://qiita.com/r_saiki/items/dfc6122aaeb830256cf8)
・[EC2にSSH接続](https://qiita.com/r_saiki/items/cc1d7ed9864ce07501f2#ssh%E6%8E%A5%E7%B6%9A)

# GUI環境構築
[公式](https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-linux-2-install-gui/)から、ほぼコピペして進める。

~~~
# MATEデスクトップ環境のインストール
$ sudo amazon-linux-extras install mate-desktop1.x
# 全てのユーザーにMATEをデフォルト設定
$ sudo bash -c ‘echo PREFERRE

元記事を表示

【AWSクラウドプラクティショナー受験用】混同しやすい用語リスト

AWSクラウドプラクティショナーの受験に向けて個人的に混同しやすいと思った用語をまとめてみました。
※初心者のため、認識違いの箇所がありましたら、ご指摘いただけると幸いです。

#セキュリティグループとネットワークACLの違い
– セキュリティグループ・・・EC2インスタンス向けのトラフィック管理
– ネットワークACL・・・サブネット向けトラフィック管理

#リードレプリカとは
– マスタからレプリケーションされた読み込み専用のDB
– レプリカを複数作成しておくことで、全体の読み込みスループットを向上させることが出来る

#InspectorとConfigの違い
– Inspector・・・テンプレに基づいて、EC2インスタンスを分析する(デプロイされたAPの脆弱性チェック)
– Config・・・AWSリソースの設定変更を継続的にモニタリングする

#VPCとEC2の違い
– EC2・・・仮想サーバ、立てたサーバ一つ一つのことをインスタンスと呼ぶ
– VPC・・・ユーザ専用のプライベートなクラウド環境を提供=仮想サーバ(EC2)でネットワークの設定をする際に、VPCと接続する

元記事を表示

OTHERカテゴリの最新記事