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

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

【Amazon Connect】電話でEC2インスタンスを停止したり、再起動したりする。

#解決したいこと
“`
仮想カスタマ「しもしも!? サーバーの調子おかしいんだけど!??マッハでリブートして!!」
オペレータ 「おかのした」
※フィクション
“`

ここからカスタマの情報を確認して、EC2インスタンスの状態をチェックして、カスタマのインスタンスかどうかをダブルチェックして、オペレータが心の準備をしてからインスタンスを再起動する。

#いや、無駄ちゃう?
自分はセールスなんで実際に作業をしている訳ではないですが、割と前述みたいな電話がかかってくることは多いです。
そして、確認して作業して…。
大したこと無い作業ですが、その割には影響が大きい(聞いたことはありませんが、他のインスタンスをリブートしたりとかのリスクを懸念する)ので、脳味噌ゼロでやれるようなことでもありません。

いやでもそれにしてもこんなことに時間を取られるのは如何なものか。
「いっそ、電話受付無くしたら?」という声も聞きますが、それならそれに代わるサービスを考えねばなりません。

#お客様で作業を完結してもらう
電話受付を無くす&お客様で作業をしていただく方向性で考えました。

**【使うもの】**

元記事を表示

AWS Update 6/2-6/24

最近AWSに少し飽き始めてバイクに時間を使っていました。
ですが、バイクに飽き始めたのでAWSに戻ります。
アップデート追って行きましょうーーーー!!!

#6/2
##AWSデータ移行サービスは、リレーショナルソースからAmazon Neptuneへのグラフデータのコピーをサポートするようになりました
https://aws.amazon.com/about-aws/whats-new/2020/06/aws-data-migration-service-now-supports-copying-graph-data-from-relational-sources-to-amazon-neptune/
##Amazon AthenaでメタデータカタログとしてApache Hiveメタストアを使用する
https://aws.amazon.com/about-aws/whats-new/2020/06/use-apache-hive-metastore-metadata-catalog-amazon-athena/
##Amazon Redshiftのスキーマのストレージ管理を発表
h

元記事を表示

RDS vs DynamoDB をCAP定理から整理する

AWSの2大データベースであるRDSとDynamoDB、シンプルに初心者向けに何が違うのか、違いが簡単にわかるような説明を考えてみます。

# はじめに
初めてAWSのアーキテクチャーを考えるときに、最近ではサーバーレスな設計がごろごろ落ちているため、初めてシステム設計をする場合でも、NoSQLデータベースである、DynamoDBを使ったシステム構成が描けてしまいます。私が駆け出しのころは、Oracleまっさかりで、RDBを使ったシステム構成しか描けなかったものです。あらためて今回CAP定理という言葉をつかって初心者向けに比較してみたいと思います。

# CAP定理 と ACID と BASE を覚えておこう
CAP定理は、Wikipedia 分散コンピューティングの考え方として、以下のように示されています。BASEは、スケーラビリティを高める代わりに、トランザクションを諦めている。ACIDは、トランザクションを極めているようです。

+ 一貫性 (Consistency)
– すべてのデータ読み込みにおいて、最新の書き込みデータもしくはエラーのどちらかを受け取る。
+ 可用性 (A

元記事を表示

AWS CLI で EKS クラスターの IAM OIDC ID プロバイダーを作成

“`
$ CLUSTER_NAME=example-eks-cluster
$ ISSUER_URL=$(aws eks describe-cluster –name $CLUSTER_NAME –query “cluster.identity.oidc.issuer” –output text)
$ JWKS_FQDN=$(curl -sS $ISSUER_URL/.well-known/openid-configuration | jq -r ‘.jwks_uri’ | perl -pe ‘s/^https:\/\/(.+?)\/.+$/${1}/’)
$ CERTIFICATE_BODY=$(openssl s_client -servername $JWKS_FQDN -showcerts -connect $JWKS_FQDN:443 < /dev/null) $ CERTIFICATE_START=$(echo $CERTIFICATE_BODY | grep -n 'BEGIN CERTIFICATE' | sed -e 's/:.*//g' | tail -n

元記事を表示

あらためてEPELリポジトリの使い方をまとめてみた

# 1. はじめに
RHEL系ディストリビューションにおける、拡張パッケージのリポジトリ**「EPEL」**を使っている人は多いだろう。筆者もこれまでの記事で何度か紹介してきた。ところがクラウドでは状況が微妙に異なる。そこで使い方をまとめることにした。

### 1-1. TL;DR

* クラウドでは、デフォルトで有効になっていることや、独自のインストールコマンドが提供されていることがある
* 記事で毎回EPELの使い方を説明するのは無駄

### 1-2. 前提条件

* RHEL系Linuxディストリビューション。FedoraやCentOS、Amazon Linux、Oracle Linuxなど

# 2. EPELとは

EPELを使う手順は簡単だ。すぐにインストールしたいときは[「3. EPELリポジトリを有効にする」](https://qiita.com/yamada-hakase/items/fdf9c276b9cae51b3633#3-epel%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%82%92%E6%9C%89%

元記事を表示

【AWS】AmazonLinuxのyumができない場合の対処

# はじめに
AmazonLinux構築中に`yum update`ができない事象が発生しました。
この場合の原因と対処についてアウトプットしていきたいと思います。

# 事象

AmazonLinuxにて`yum update`を実施したところ、下記画面にて止まることを確認。

“`bash
[root@ip-192-168-5-129 ec2-user]# yum -y update
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
“`

# 環境

## 自宅環境

| 項目 | 説明 |
| —- | —- |
| 自宅PC | Windows10 |
| ターミナル | TeraTerm |

## クラウド環境

| 項目 | 説明 |
| —- | —- |
| PublicCloud | AWS |
| OS | Amazon Linux 2 AMI (HVM), SSD Volume Type |

**※自宅P

元記事を表示

【AWS初心者】AWS Batchで作られるEC2インスタンスがECSクラスターに入らない!ハマったのでメモ

# はじめに

タイトルの通り、”AWS Batchで作られるEC2インスタンスがECSクラスターに入らない!”というハマり方をしました。
今後同じようになった人の解決の助けになればと思います。

# 1つ目のハマったところ → 原因: AWS Batchで選択しEC2たインスタンスタイプが東京リージョン未対応だったため

## 現象

AWS BatchにてCompute environments、Job queue, Job definitionsを作成しJob実行後、”RUNNABLE”の状態で止まったままでした。
このとき、EC2インスタンスはできていませんでした。AutoScalingGroupの設定を見ると下記スクショのようなエラーメッセージが出ていることがわかりました。

![スクリーンショット 2020-06-14 18.42.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91562/2f8f8005-5a40-f391-38cc-33fdfa2c6bfd.png)

エラーメッ

元記事を表示

Next.jsを使って医師国家試験の勉強ノートを公開するブログを作った話

# Next.jsを使って医師国家試験の勉強ノートを公開するブログを作った話

表題の通りです。まずは完成品とレポジトリのURLをどうぞ。

サイト:https://chilvary-beta.vercel.app

GitHub:https://github.com/yokonao/chilvary-beta

## 作ったきっかけ

next.jsの公式チュートリアル(URLは以下)をやったら、構築の容易さとSPAのページ遷移の速さに感動したので。これで自分のブログ作ったら超便利じゃない?と思いました。単純なページ公開だけならバックエンドなしでも可能です。
https://nextjs.org/learn/basics/create-nextjs-app?utm_source=next-site&utm_medium=homepage-cta&utm_campaign=next-website
## アーキテクチャ

アーキテクチャっていうのは大げさすぎるかもしれません。

1. ローカルPCで書いたMarkdownファイルを作成
2. Markdownファイルを**AWS S3*

元記事を表示

【AWS;Lambda入門】第二弾;jsonファイルから文章抽出してS3保存♬

[前回](https://qiita.com/MuAuan/items/49cbc0a18dcf6c6406bb)は、以下のコードでs3://バケットに配置されたmp3ファイルをtranscribeしてテキストに変換して、jsonファイルをOutputBucketNameのS3;バケットに配置した。
今回は、このjsonファイルを呼び出して、テキスト変換された文章を抽出しようと思います。わざわざ前回コードを出したのは、今回もコードが似ているからです。

“`py
s3 = boto3.client(‘s3’)
transcribe = boto3.client(‘transcribe’)
def lambda_handler(event, context):
bucket = event[‘Records’][0][‘s3’][‘bucket’][‘name’]
key = urllib.parse.unquote_plus(event[‘Records’][0][‘s3’][‘object’][‘key’], encoding=’utf-8′)
try:

元記事を表示

TerraformでAWS VPCを作成する

TerraformでAWS VPCを作成するコード

## 実行環境
– Windows 10 Home (1919)
– Git Bash (git version 2.25.1.windows.1)
– AWS CLI (aws-cli/2.0.3 Python/3.7.5 Windows/10 botocore/2.0.0dev7)
– Terraform (v0.12.26)

## 作成する構成

まっさらな環境にVPCを1つ作成

![20200623.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660929/44f3c342-a8b0-f543-7378-309fdf02600d.png)

## main.tf

“` main.tf
provider “aws” {
profile = “prj01-profile”
region = “us-west-2”
}

resource “aws_vpc” “prj01VPC” {
cidr_block = “10.10.

元記事を表示

【AWS】GithubからCodePipelineでECS/Fargateにデプロイする方法

#【AWS】GithubからCodePipelineでECS/Fargateにデプロイする方法

CodePipelineを使ってECS/Fargateにnginx,phpコンテナをデプロイする方法をまとめます。

## 目次
* [構築イメージ](#構築イメージ)
* [動作環境](#動作環境)
* [手順](#手順)
* [STEP1. ECRの作成とイメージのプッシュ](#step1-ecrの作成とイメージのプッシュ)
* [STEP2. タスク定義ファイルとAppspecファイルの作成](#step2-タスク定義ファイルとappspecファイルの作成)
* [STEP3. アプリケーションロードバランサーとターゲットグループを作成する](#step3-アプリケーションロードバランサーとターゲットグループを作成する)
* [STEP4. ECSクラスターとサービスを作成する](#step4-ECSクラスターとサービスを作成する)
* [STEP5. CodeDeployアプリケーションとデプロイグループを作成](#step5-codedeplo

元記事を表示

AWS IoT 概要

# AWS IoT
* [AWS IoTとは](https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/what-is-aws-iot.html)

## AWS IoTコンポーネント
### [メッセージブローカー](https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/iot-message-broker.html)
* [プロトコル](https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/protocols.html)

|プロトコル|認証|Port|ALPN ProtocolName|メッセージ|
|—|—|—|—|—|
|MQTT|X.509クライアント証明書|8883,443|x-amzn-mqtt-ca|subscribe, publish|
|HTTPS|X.509クライアント証明書|8443,443|x-amzn-http-ca|publish|
|HTT

元記事を表示

AWS IoT Core と MQTTクライアント (mosquitto/paho)の疎通

# 概要
* AWS IoT CoreとMQTTクライアントの最も簡単な結合確認を行う
* MQTTクライアントには既成の[mosquitto](https://mosquitto.org/)、[paho](https://www.eclipse.org/paho/)を利用
* MQTT publisher (mosquitto_pub.exe)は、MQTTクライアントからAWS IoTに向けてのpublish送信を確認する。
* MQTT subscriber (mosquitto_sub.exe, paho_cs_sub)は、AWS IoTへのsubscribe実行とpublish受信を確認する。

# 前提知識
### AWS IoT
* インターネットに接続されたデバイスとAWS クラウドとの**セキュア**な**双方向通信**が可能になります。
* 複数のデバイスからテレメトリデータを収集し、保存して、分析できます。
* これらのデバイスをユーザーが各自の電話やタブレットから制御できるようにするアプリケーションを作成することもできます。
* 構

元記事を表示

Railsアプリに独自ドメインを与えてAWSに上げても表示されない問題

「自分のアプリを独自ドメインにしてAWSに上げたろー」

ということで以下の記事を参考に自分のアプリに独自ドメインを付与しました。
https://mel.onl/onamae-domain-aws-route-53/

しかし3日待っても全く表示されない。AWSの紹介ページが表示されるだけ・・・
そこで色々調べた結果、Nginxの設定が必要であるとわかった。

Nginxの設定

EC2で

“`
[USERNAME|~]$ cd /etc/nginx/conf.d/
[USERNAME|conf.d]$ sudo vi 〇〇.conf (#自分のアプリケーション名)
“`
〇〇.confで

“`
server_name  〇〇.com;(#アプリの独自ドメインに変更してください)
“`
保存して終了。再起動する。

“`
[USERNAME|〇〇(アプリ名)]$ sudo nginx -s reload
“`

これで行けるはず!

参考文献
https://qiita.com/naoki_mochizuki/items/5a1757d222806cbe0cd1#n

元記事を表示

AWSハンズオン実践メモ 〜スケーラブルウェブサイト構築編〜

# はじめに
AWSでWeb三層モデルを体系的に構築した事が無かった為、AWS公式の[ハンズオン(スケーラブルウェブサイト構築編)](https://pages.awscloud.com/event_JAPAN_Hands-on-for-Beginners-Scalable_LP.html?trk=aws_introduction_page)を実践しました。
本記事は自身のハンズオン学習メモとして投稿します。
# 目次
– [ハンズオンの目的](#ハンズオンの目的)
– [本編](#本編)

– [おわりに](#おわりに)

# ハンズオンの目的
WordPressを具体例に、

– Amazon EC2
– Amazon Virtual Private Cloud (VPC)
– Amazon Relational Database Service (RDS)
– Elastic Load Balancing (ELB)

を利⽤し、スケーラブルなWebシステムを構築する。
>WordPressを使ったブログサイトの構築を通じて、スケーラブルな Web システム構築を学んでいただける

元記事を表示

AWSのEC2内でDockerコマンドを使えないときの対処法【目的:load遂行】

##はじめに
ローカルにあるファイルをEC2へ送りたかったのですが、dockerコマンドが使えませんでした。

“`
[ec2-user@ip-xxx-xx-xx-xx ~]$ docker load < dockerfiles.tar -bash: docker: command not found ``` 色々試行錯誤しながら、EC2環境にdockerをインストールすることで解決できたので共有したいと思います。 ##手順 ``` [ec2-user@ip-xxx-xx-xx-xx ~]$ sudo yum install -y docker ``` EC2環境にDockerをインストール。EC2環境で上記コマンドを叩きます。「完了しました!」が最後に表示されたら成功。 ``` [ec2-user@ip-xxx-xx-xx-xx ~]$ sudo service docker start ``` dockerを起動させます。 さあ、もう使えるだろうと思い、手始めにdockerイメージの一覧でも見るかとコマンドを叩くと ``` [ec2-user@ip-xxx-xx-xx-x

元記事を表示

CDKでWordpressをFargate+EFS環境に移行する

## 概要

AWS ECS Fargate1.4.0がついにEFS(Elastic File System)をサポートしました。

これまではコンテナ内にボリュームをマウントしていたため、タスク数が増えたり、タスクがリフレッシュされるとマウントしていたデータが消えてしまっていたので、Wordpressのようなローカルにファイルを保持するようなアプリケーションにFargateは適用できませんでした。

EFSを利用することで、データを永続的に保持することが可能になるため、WordpressでもFargateを利用することができます。

今回は、CDKを利用してWordpressが稼働するインフラ環境を構築しました。

## インフラ構築

### 1. セキュリティグループを定義

RDS、EC2、EFSのセキュリティグループを作成します。

“`typescript
export class SystemStack extends cdk.Stack {
constructor(scope: cdk.Construct, id: string, props?: cdk.Stac

元記事を表示

AWS LambdaのCORSでハマったからreturnを共通化した

# はじめに
前回、AWS Lambdaを使用したサーバーレス開発について、私がハマった箇所をまとめました。
[インフラエンジニアがやってみた AWSでサーバーレス Webアプリケーション開発](https://qiita.com/wakoit/items/aef089dd04533025f142)

そこでCORSについて毎回returnでハマるのでreturnを共通化しました。
文中のAWS LambdaのソースはPython 3.8で書かれています。

# 言いたいこと
CORSでエラーが出たらLambdaのreturnを疑え。

# Why?
JavascriptのコンソールにCORSのエラーが出るとき、十中八九Lambdaで正しくreturnしていないからです。

CORSの仕組みや考え方は以下の参考ページが大変詳しいです。
[なんとなく CORS がわかる…はもう終わりにする。](https://qiita.com/att55/items/2154a8aad8bf1409db2b)

ある程度仕組みを理解して頂いたところで、CORSのエラーが出るパターンは以下になります

元記事を表示

サーバレスなVOD配信環境を構築

AWS Media Blog の [Creating a secure video-on-demand (VOD) platform using AWS](https://aws.amazon.com/jp/blogs/media/creating-a-secure-video-on-demand-vod-platform-using-aws/) の記事で紹介されていた [download this detailed lab guide](https://testorlando1.s3.amazonaws.com/VOD-Blog-LabGuide.docx)を参考にサーバレスなVOD配信環境を構築してみました。

# サーバレスなVOD配信環境でできること

認証されたユーザーのみが動画をアップロード、処理、配信および閲覧可能なサーバレスのVODストリーミングプラットフォームです。

## ■動画アップロード画面(管理者権限付与ユーザのみログイン可能)

### ログイン

![Adminログイン画面.png](https://qiita-image-store.s3.ap-no

元記事を表示

AWSにおける最適なDB選択指針

#本整理の目的
特に頭を使わず、DBならRDSでしょと考えてきた基盤エンジニア(5年目)が適材適所なDB選択を体系的に学びなおしたのでまとめる。
参考は2019年のAWS Summitのセッションより。

# DBの歴史[要件の変化(2000年~)]
RDBMSだけでは様々な要件に対応できなくなり、KVSなど特性を持ったDBが誕生した。

|項目|従来要件|新要件|
|:–|:–:|:–:|
|ユーザ|~10万|100万+|
|データ量|~TB|PB-EB|
|範囲|社内|グローバル|
|パフォーマンス|秒|マイクロ秒|

# AWSにおけるデータカテゴリと選択指針
グラフ化や台帳といったカテゴリもあるが、本整理の範囲外。

|データカテゴリ|Relational|Key-value|Document|In-memory|
|:–|:–:|:–:|:–:|:–:|
|AWS サービス|RDS|DynamoDB|DocumentDB|ElastiCache|
|特徴|参照結合性、ACI

元記事を表示

OTHERカテゴリの最新記事