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

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

[神本]この本から培った基礎的なネットワークとサーバーの知識

# はじめに
職場でインフラ系の仕事を任せられ、勉強することに。。
某スクール時代に少しかじったくらいでほとんど知識が無いので、どのように勉強しようか悩んでいると、この本([Amazon Web Service 基礎からのネットワーク&サーバー構築](https://www.amazon.co.jp/Amazon-Services-%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF-%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%A7%8B%E7%AF%89-%E6%94%B9%E8%A8%823%E7%89%88/dp/4296105442))が良いと言う記事を多く見かけて読んでみることにしました。
そこで学んだ基礎知識を忘れないようにアウトプットしようと思います。

## 学んだこと(CHAPTER毎に)

####CHAPTER1
インフラ知識を身につけると良いこと↓↓

– 障害に強くなる

– アプ

元記事を表示

指定したEC2インスタンスのEIPを開放するスクリプ

時代遅れだけど。

“`
cat <(xargs -I{} aws ec2 disassociate-address –public-ip {}) \
>(xargs -I{} aws ec2 describe-addresses –filter Name=public-ip,Values={} | jq ‘.Addresses[].AllocationId’ -r | xargs -I{} aws ec2 release-address –allocation-id {})
i-xxxxxxxxxxxxxxxxx
i-xxxxxxxxxxxxxxxxx
i-xxxxxxxxxxxxxxxxx
i-xxxxxxxxxxxxxxxxx
i-xxxxxxxxxxxxxxx

元記事を表示

AWS認定資格 データアナリティクス – 専門知識 (DAS-C01) の学習ポイント


##はじめに
[AWS 認定 データアナリティクス – 専門知識 (DAS-C01)](https://aws.amazon.com/jp/certification/certified-data-analytics-specialty/)の試験に合格することができましたので、これから受験しようとしている初学者に向けて、簡単な学習ポイントをまとめてみました。
少しでも**初学時**の参考になれば幸いです。

##試験の出題範囲を把握する
どのような試験にも当てはまることですが、受験しようとする試験の出題範囲を確認し、これから学習する全体像を把握した上で、学習に着手した方が良いかと思います。

[試験ガイド]
(https://d1.awsstatic.com/ja_JP/training-and-certification/d

元記事を表示

【AWS】EFS改めてまとめてみた

#Elastic File Sysytem (EFS)とは
複数のEC2インスタンスからアクセス可能な共有ストレージ。シンプルでスケーラブルで柔軟に利用できるファイルストレージ。

##特徴
– フルマネージド型サービス
– NFSv4プロトコルを利用して、関連ツールや標準プロトコル/APIでアクセス可能
– ペタバイトまでスケーラブルにデータを蓄積可能
– スループット/IOPS性能は自動的にスケーリングし、低レイテンシーを維持
– ファイルの減少に合わせて自動で拡張・縮小
– 従量課金
– 事前に容量を設定する必要なし

##基本性能
###基本性能
– 100MB
– ファイル名は255Byte
– 1ファイルの最大容量48TB
– インスタンス当たり128ユーザまでの同時オープンが可能
– 何千もの同時アクセスが可能

###制限
– アカウント当たりのファイルシステム数:1000
– AZごとのファイルシステム当たりのマウントターゲット:1
– ファイルシステム当たりのタグ:50
– マウントターゲット当たりのセキュリティグループ:5
– ファイルシステム当たりのVPC数:1

元記事を表示

AWS CDK (Python) を使ってAPI Gateway + LambdaでPOSTを受け取る

AWS CDKとは大雑把に言うと、AWS上で構築するアプリケーションの設計書(CloudFormation)をプログラミング言語で書いてしまおうというもの。
本記事では、POSTされたJSONをAPI Gatewayを通してLambdaで処理するという単純な流れをPythonを用いて実装します。
AWS CDKを使えるようにするための設定は、以下の公式ドキュメント等を参照のこと:

– [Getting started with the AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html)
– [AWS CDK Workshop](https://cdkworkshop.com/15-prerequisites.html)

手順

まず適当なディレクトリを作り、以下の`cdk.json`を作成します。

“`cdk.json
{
“app”: “python3 app.py”
}
“`

次にそのディレクトリ内に新しいディレクトリ(例えば`lambda`)を作り、その中にLa

元記事を表示

AWS上にサーバーを作る(その01)

前回の投稿
[AWS上にサーバーを作る(序章)](https://qiita.com/aa_ha1uhik0/items/fc315edd6d6af2088e15 “AWS上にサーバーを作る(序章)”)
# サーバーに必要なAWSサービス
サーバー作るためには何が必要なんだっけ?
オンプレサーバーをベースにちょっと考えてみる。

* PC本体とOS
* ネットワーク

たぶん最低限このへんが必要だと思われる。
これをクラウドサーバーで実現したい。
## PC本体とOS
ここがAWSでいうところのEC2にあたるらしい。
[Amazon Elastic Compute Cloud (Amazon EC2)](https://aws.amazon.com/jp/ec2/ “Amazon Elastic Compute Cloud (Amazon EC2)”)
EC2ってワードは聞いたことがある。
ふむふむ。なんかAWSっぽくなってきたな。
しかし慌ててはいけない。
ここで高額な費用になっては、お金が払いきれない。
無料枠についてチェックしてみる。
>AWS の無料利用枠には、1 年間毎月 7

元記事を表示

AWS Batchでコンテナの実行方法および実行結果の確認

## 概要

自前で作成したコンテナをAWS Batchで使えるようにするためにいろいろ調べて試した流れのメモです。
rdkitを使いたかったのでrdkitを使えるコンテナを使用しています。

## 事前準備

### Dockerimage の作成

* 起動させるDockerコンテナのイメージを作成します。

“`dockerfile
FROM mcs07/rdkit:2020.03.2
# https://github.com/mcs07/docker-rdkit
RUN apt-get update && apt-get upgrade -y
RUN apt-get install python3-pip -y
RUN pip3 install pandas && \
pip3 install numpy && \
pip3 install hashids && \
pip3 install xlsxwriter && \
pip3 install Pillow
WORKDIR /dev/app
COPY module .
ENTRYPOINT [“python3”, “s

元記事を表示

AWX on AWS(EC2) を構築する

# 背景
AWXを触ってみたいとAWSに構築しようと思いましたところ、公式の構成はかなり冗長化されてて課金やばそう

ということでEC2にインストールして実行してみます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/398359/044e9c01-51eb-b1cc-db00-775da775ceec.png)

# やること

EC2 を立てて、そこにAWXを導入します

## AWS環境
| 項目 | バージョン |
|:-:|:-:|
| AMI | Ubuntu Server 18.04 LTS (HVM), SSD Volume Type – ami-08046c40513c3265e (64 ビット x86) |
| Ubuntu | Ubuntu Server 18.04 LTS (HVM) |

# 構築

## EC2を立てる

以下の要件に従って作成します。

私は`Ubuntu Server 18.04 LTS (HVM), SSD Volume Type`を`

元記事を表示

【忘備録】AmazonLinux2にseleniumを導入し、GUIで操作する。

## 概要

### 内容
– EC2をデスクトップ化して、seleniumを導入する

### メリット
– EC2環境で、seleniumの挙動をGUIで確認できる。
– 他の記事では、headressで起動しないとできないと記載されていたが、この方法を使えばGUIで挙動を確認できる

### 参考資料
https://qiita.com/hitomatagi/items/e63dd8c4b879de156628
https://qiita.com/onorioriori/items/4fa271daa3621e8f6fd9
https://qiita.com/natsu_san/items/e8b17306385d5ab72969

### 作業工程

## AmazonLinux2にデスクトップ環境を作成する
– こちらを参照
– https://qiita.com/shunsuke-nashiki/items/cc16746a6ce6a9f82ed1

## Python3を導入する

MATE上部にあるAplication→System Tools→Mate

元記事を表示

Azure Cloud Shellを最強のAWS CLI環境にする

最近Azureも触りだしましたが、AWSにない便利な機能の一つに`Azure Cloud Shell`があります。

Azure Cloud Shellとは

> Azure Cloud Shell は、Azure リソースを管理するための、ブラウザーでアクセスできる対話形式の認証されたシェルです。 Bash または PowerShell どちらかのシェル エクスペリエンスを作業方法に合わせて柔軟に選択できます。

https://docs.microsoft.com/ja-jp/azure/cloud-shell/overview

[ブラウザ](https://shell.azure.com/)からちょっとしたコマンドが実行できるので便利ですね。また、[Windows ターミナル](https://www.microsoft.com/ja-jp/p/windows-terminal/9n0dx20hk701)やスマホアプリからも使用することができます。
Azure Cloud shellの環境にAWS CLIをインストールしてしまおうという作戦です。

![image.png](

元記事を表示

【AWS】課金料金をなるべくなくす【初心者】

## はじめに(ターゲット層の方)
・初めてWebアプリケーションをAWSを使いデプロイした後、料金が発生してしまい困っている方
・ポートフォリオとして使っていたWebアプリを転職成功などの理由により使用しなくなった方

## CloudTrail、CloudWatch
・課金が発生したリージョンを選択。
・「CloudTrail」「CloudWatch」該当ページに行き、以前設定したファイルを削除するだけでいい。

## EC2
料金画面
### Amazon Elastic Compute Cloud running Linux/UNIX
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481640/1a34d0a1-0e69-756f-3d55-45576b645e5f.png)
実行しているインスタンスを停止するだけでOK。

### EBS
料金画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaw

元記事を表示

Amplifyアプリのリダイレクト設定をaws-cliで行う

create-react-appとamplify-cliでアプリを作成していたところ、[ここ](https://docs.aws.amazon.com/amplify/latest/userguide/redirects.html#redirects-for-single-page-web-apps-spa)をみてリダイレクトの設定をしようと思ったのですが、AWS Consoleからしかできなくて調べました。
amplify-cliの設定でうまくやる方法が無いようでした[^1]が、aws-cliではできました。

### 方法

まずリダイレクトのルールを書いたJSONファイルを作成します。

~~~json:custom-rules.json
[{“source”: ““, “status”: “200”, “target”: “index.html”}]
~~~

以下のようにappIdを指定してコマンドを実行します。

~~~

元記事を表示

Flutterアプリのユーザー認証システムにAmazon Cognitoを使う(OAuth 2, Google, LINEなど)

**Special Thanks! : @to-jiki と共同でこの記事を作成しました.**

**結構長いのでご注意!**

Flutterを使ったアプリで, ユーザー認証のシステムを作りたいと思い, バックエンドをAWSで実装する必要があったため, Amazon Cognitoを使うことになりました. ただ, Flutter+Firebaseの情報は結構出てくるのですが, Flutter+Amazon Cognitoの方があまり出てこなくて困ったのでメモ程度にまとめたいと思います. 個人的に結構困った, **Flutter部分も結構詳しめに書いています.**

1つ注意していただきたいのが, FlutterもAWSも初心者の状態でいろいろ手探りなため, 正直遠回しなところや, よくない事をしているところもあるかもしれません. 参考程度にとどめて, あくまで自己責任でやっていただきたいと思います.

また, この記事ではバックエンドとの通信はAPI Gateway+Lambdaを用いたフルサーバーレスなアプリケーションの作成を想定しています([furaiev/amazon-cogn

元記事を表示

【サーバーレス初心者向け】Serverless Framework + SwaggerでWeb APIを作る!第3回 Dynamo編(全3回)

# はじめに
こんにちは!
本記事は先日公開した本記事は先日公開した[【サーバーレス初心者向け】Serverless Framework + SwaggerでWeb APIを作る!第2回 WAF適用編](https://qiita.com/nekoze-climber/items/92916700b9375690c1ef)の続きとなります。

前回はWAFを適用し、特定のIPアドレスにのみAPI Gatewayへのアクセスを許可するようにしました。

第3回となる今回は、Lambda関数からDynamoDBにアクセスするAPIのロジック部分を実装したいと思います。

過去の記事はこちら

– [【サーバーレス初心者向け】Serverless Framework + SwaggerでWeb APIを作る!第1回(全3回)](https://qiita.com/nekoze-climber/items/30ca7da8d86629d1e50c)
– [【サーバーレス初心者向け】Serverless Framework + SwaggerでWeb APIを作る!第2回 WAF適用編(全3回)

元記事を表示

SQSでCognitoユーザー一覧をS3に作成するキュー処理を行う関数とAPIをLambdaにSAMでデプロイする

日本語が不自由なタイトルになりましたが順に設定していきます。

AWSのCognitoで管理されているユーザー一覧のCSVファイルをS3上に自動で作成する関数をLambda上に構築します。
そのLambdaを発動させるトリガーにSQSを設定し、SQSにメッセージキューを追加するAPIも別のLambdaに実装しAPI Gateway経由でHTTPリクエストを受け取るようにします。

* Cognito: ユーザー管理サービス。多要素認証(MFA)やSNS連携などを簡単に実装できる。
* S3: クラウドストレージ。バージョニングや一時的に利用可能なダウンロードURL作成などもできる。
* SQS: AWS上でキューを管理する。非同期処理などに利用される。
* Lambda: サーバーレスの関数実行環境
* API Gateway: LambdaやEC2にAPIのインターフェースを提供する。

構成図は以下のとおりです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/74622/3672

元記事を表示

【JavaScript】String配列の要素をキーとするオブジェクトを作成する方法

# はじめに

ループしながら、配列内の要素をキーとするオブジェクトを作成する方法を紹介します。

# 方法

“`javascript
const array = [‘key1’, ‘key2’, ‘key3’,]

const createObj = (array) => {
const obj = new Object();
array.forEach(item => (Object.defineProperty(obj, item, {
enumerable: true, // ループのために必要!
value: ‘ここに値’
})));
return obj;
}

console.log(createObj(array));
// {key1: ‘ここに値’, key2: ‘ここに値’, key3: ‘ここに値’}
“`

オプションとして設定する、`enumerable: true`が重要です。
これがないと動きません。

# まとめ

配列内の要素をキーとするオブジェクトを作成することができました。

元記事を表示

AWSで割とモダンな技術使う大学生日記①

## 前置き
terraformで構成しようとしたが、まずはAWSを理解するためコンソールから構築
本記事は私自身が少し悩んだ、ネットワークの構成やトラブルシューティングについて重点的に記載されております。ハンズオン形式の記事はQiita等にも多くございますのでそちらを参照しつつ、こちらの記事でより理解を深めていただければな、と思います。

|使用技術 |
|:———————————–|
|Laravel6.x |
|AWS ECS(Fargate), RDS, ElasticCache |
|Docker, docker-compose |

## ネットワーク構成
VPCは10.1.0.0/16を利用。
サブネットの利用感は下記みたいな感じ

| サブネット | 用途 |
|:—————–|——————:|
| 10.1.0.0/24, 10.1.1.0/24|Publ

元記事を表示

NUXTJS公式:S3 と CloudFront を使用して AWS へデプロイするには?の補足

# はじめに
※画像多めです
公式ドキュメント内の`AWS: S3 バケットと CloudFront Distribution の設定`の参考記事が古く、そのままの手順では動かなかったので、画像多めで手順をまとめたいと思います。

[(公式ドキュメント)S3 と CloudFront を使用して AWS へデプロイするには?](https://ja.nuxtjs.org/faq/deployment-aws-s3-cloudfront/)
[(参考記事)S3 と CloudFront をセットアップするためのチュートリアル](https://reidweb.com/2017/02/06/cloudfront-cdn-tutorial/)

(次の記事でデプロイをdocker-composeコマンド1つでできるようにカスタマイズする記事を書く予定です。)

# 前提
– AWSアカウントを作成済み
– Route53に作成予定のドメインを設定済み
– サブドメインを作成して公開する

# AWSの環境準備

S3、CloudFront、Route53、Certificate Manag

元記事を表示

AWS Fargate サービスを Terraform で構築、 コマンドラインからデプロイ

# 動機

[【AWS】 Fargate CLI + Terraform で Docker コンテナを動かす簡単なチュートリアル](https://qiita.com/items/512ad160fb78e421214c) というのを書いたんですが、下記の問題点を感じました。

– Fargate CLI のインストールが若干手間。
– Fargate CLI を使うと、 Terraform だけで完結しないため、一部ハードコーディングが必要になる。
– Fargate CLI は冪等性が無い。
– SSL 証明書周りで、どうしても手間がかかる。

よって、最近は

– インフラ構築は Terraform に任せる
– デプロイは AWS CLI でやる
– 環境変数は `.env` 経由で読み込む

としています。

Terraform は長くなるので aws-cdk とかに移行しようとしたのですが、 CloudFormation は ECS に適用するのは難しいことが分かったので、 Terraform の方が確実だとなりました。

# Terraform

`”subnet-xxx

元記事を表示

QuickSightのDatasourceをCLIで操作した

# 背景
QuickSightで作成するAnalysis、Dashboardなどユーザによって作成したユーザでないと何も
できない。それらをCLIにて操作して変更を加えたらいろいろできることを試してみた。
以下Datasourceの権限追加した時の操作です。

# DataSourceの確認とユーザの権限追加

– ユーザのリストを出して権限など確認する。

“`
aws quicksight list-users –aws-account-id ACCOUNT_ID –namespace default –region us-east-1 

結果:
{
“Status”: 200,
“UserList”: [
{
“Arn”: “arn:aws:quicksight:us-east-1:ACCOUNT_ID:user/default/xxxxxxxxxxxxx”,
“UserName”: “xxxxxxxxxxxxx”,
“Email”: “xxxxxxxxx

元記事を表示

OTHERカテゴリの最新記事