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

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

[AWS]AWS Certified DevOps – Professional に合格しました!イエイ!

##はじめに
先日AWS Certified DevOps – Professionalに無事合格でき、AWS認定試験5冠を達成できたので、勉強した内容を共有します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205092/97f5c017-0cd5-be8c-0eba-14639588b19a.png)

https://www.certmetrics.com/amazon/public/transcript.aspx?transcript=S02T92E111EQ1VGR

##試験については下記のような感じ

“`
AWS 認定 DevOps エンジニア – プロフェッショナル試験は、AWS 環境のプロビジョニング、運用、管理において 2 年以上の経験を持つ、DevOps エンジニア担当者を対象としています

認定によって検証される能力

– AWS で継続的デリバリーのシステムと手法を実装して管理する
– セキュリティコントロール、ガバナンスプロセス、コンプライアンス検

元記事を表示

AWSの全体像

#AWSとは
AWS(Amazon Web Service)とはAmazonが提供するWEBサービスを構成するためのインフラ系のサービスです。AWS側で世界各地にあるサーバーを仮想化しており、ユーザーはその仮想化されたサーバーをカスタマイズし使用できます。

##AWSのメリット

従来のオンプレミスのサーバーと比較して私が思うAWSのメリットは以下です

・料金形態が月ごとのサービス使用量で決まるため料金のため無駄がない
・世界各地にあるデータセンターに分散してデータを保存できるため可用性が高い
・サーバー・DB側の多くをAWS側に任せられる(信頼性)
・管理サービスが充実している(CloudWatch,CloudTrail)
・ユーザー側で自由に設計できる

##AWSのデメリット

逆にAWSのデメリットは以下だと私は思っています

・サービス多すぎ(数:175以上、設計が大変そう)
・料金形態が月ごとのサービス使用量で決まるため見積もりが難しい

#AWSの全体像

AWSを理解するには各メインのサービスを理解し、AWSの全体像を把握するのがいいと思う。
各段階ごとに重要度の高

元記事を表示

主要4パブリッククラウドのVPC,Subnetの構成を比較してみた

#主要4パブリッククラウドのネットワーク構成を比較してみた
 いま現在よく使われている主要4パブリッククラウドについて勉強していたところ、IaaSとして利用する場合の最初の関門であるネットワークについてかなりの考え方の違いがあることがわかりましたのでまとめてみました。
##VPCの考え方
###AlibabaCloud,AWS,Azureの場合
 クラウドでは仮想ネットワークの中に仮想サーバなどのリソースを配置して行きます。この仮想ネットワークをAWSやAlibabaCloud, GCPではVirtual Private Cloud(VPC)と呼んでいます。AzureではVNetと呼んでいます。
 AWS,AlibabaCloud,Azureではリージョンの中にVPCを作る方式です。地域に別れたデータセンター群(リージョン)の中に仮想ネットワークを作る概念です。リージョン間の通信もVPC間を接続するVPC Peeringを作らないとインターネット越しの通信になってしまいます。
![3A-VPC.png](https://qiita-image-store.s3.ap-northeast

元記事を表示

[refile][heroku]refileを使った本番環境での画像投稿機能[AWS][s3]

#はじめに
refileを使って、画像投稿機能を作って、herokuにデプロイして、オリジナルサービス完成!
と思ってたら、思わぬことに。
なぜか投稿した画像が一定時間過ぎると見れなくなる。 とか
パソコンでは見れるのに、iPhoneで画像が見れない。
という問題に直面しました。ので、その状況に陥ったときの対処方法を今回は書いていきます。

#そもそも
herokuにアップした画像は一定時間しか保存してくれないとのこと(どっかの記事で見ました)。
なので、どこかに保存する場所を作ってあげないといけない。そこで見つけたのが、AWSのs3という機能(?)。
s3のバケットというところに保存すればこの問題は解決しました。
ちょっと長くなりますが、方法をまとめていきたいと思います。

#どうするか
細かく伝えいきますので、順にやっていってください。

##gemの追加
refileには、AWSのs3と連携してくれる便利なgemがあります。それがこれ↓です。[(refile/github)](https://github.com/refile/refile)

“`ruby:Gemfile
g

元記事を表示

AWS KMSを使ってローカルに鍵を保存せずに暗号化・複合化を行う

# まとめ

AWS KMS では鍵をローカルで管理することなくテキストの暗号化・複合化を行う機能を提供している。
システムで利用するパスワードなどを暗号化・複合化したいといった「ちょっとした暗号化」が欲しい場合にはこれを利用できる。

なお、効率の面から小規模データ向けの方法。
この記事では取り扱わないが、大量のデータを暗号化・複合化する場合にはKMSに暗号化・複合化で使える鍵を発行してもらってそれを使う。

# bashコード

awscli を使って `TARGET_TEXT` を暗号化・複合化する例。

“`bash:enc.sh
#!/bin/bash

CMK_ID=<自分のAWSアカウントで利用するKMSのカスタマー管理型のキーのID>
PROFILE= TMPFILE=.tmp-bin

TARGET_TEXT=P@ssW0rd

if [ “$PROFILE” != “” ]; then
PROFILE_CONTEXT=”–profile $PROFILE”
else
PROFILE_CONTEXT=””
fi

e

元記事を表示

Amplify functionで簡単DynamoDB Stream & api Multi-Auth

今回は、AWS Amplifyのfunctionカテゴリを指定して、DynamoDBの変更をトリガーに実行(DynamoDB Stream)するLambda関数を作ってみます。

# DynamoDB Stream
DynamoDB Streamを使うとイベント駆動型のアーキテクチャを構築することができます。
例えば、テーブルに特定レコードが登録、削除された場合のみメールやSlackに通知する、なんてこともできます。

DynamoDB StreamとLambdaトリガーについての詳細は[公式](https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/Streams.Lambda.html)をご参照あれ。

せっかくなので、とあるテーブルにデータが登録されたらLambda関数が実行され、別テーブルにデータを登録する処理を実装してみたいと思います。データ登録はAppSyncを呼び出してみます。

# 事前準備
## amplify cliのインストール

“`
npm install -g @aws-

元記事を表示

オンライン授業や無観客ライブのシステムを内製する(1):バックエンド編

# ライブストリーミング環境を作る

**IDやnameの入力値は、適宜変更してください。**

—-

# 1.MediaPackageでのチャンネル設定

AWSマネジメントコンソールから、サービス->メディアサービス->MediaPackageを選択。

リージョンはアジアパシフィック (東京)を選択。

channels画面に遷移するので、右上のCreateボタンを押す。

IDとDescriptioneに「SampleChannel1」を入力、InputTypeは「Apple HLS」を選択、CloudFront
distribution detailsは「Create a CloudFront distribution for this
channel」を選択し、右下のCreateを押す。

![](https://github.com/rgbkids/aws-document-samples/raw/master/livestreaming/screenshots/AWS001.png)

これで、Channelが作成されました。

![](https://gith

元記事を表示

オンライン授業や無観客ライブのシステムを内製する(2):フロントエンド編

# プレイヤー

## hls.jsを利用したWeb版プレイヤー

– `https://*****/*****.m3u8` の部分を適宜変更してください。

`player.html`

“`html





Live streaming player(HLS) – Demo