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

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

AWS STSを試験利用

#STSとは…

AWS Security Token Serviceの略称で、一時的な認証情報を発行。
認証情報として、「アクセスキー」、「シークレットキー」、「セッショントークン」の3つが発行されるが、
あくまで期限付きで一時的に権限を付与する用途で用いられる。

STSで権限付与を行うためには、以下IAMユーザとIAMロールが必要になる。
これらはお互いに同じアカウントに所属していても、違うアカウントに所属していても良い。

>1. 権限を引き受けるIAMユーザ
1. 付与する権限の塊であるIAMロール

また、上記のそれぞれが下記のポリシーを持つ必要がある。

“`ruby:権限を引き受けるIAMユーザに付与するポリシー
#Assume Roleを実行する権限
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Action”: [
“sts:AssumeRole”
],
“Effect”: “A

元記事を表示

-備忘録- AWS SES を使ってRedmineからのメールを送る

# Redmine からメールを送ろう
Redmine は便利なタスク管理ツールですが、これでメールが送信できないと嬉しさは半減してしまいます。
そこで、備忘録をかねて、ちょっと設定したことを書いていきます。

## AWS の設定
### 試験していませんが、これは必要の無いことかも‥。(必要ありませんでした。これは受信用)
### 前提条件
Route 53 で名前を登録していた方が良いかも、私は登録していたので特に問題がありませんでしたが
名前登録のないときは試験していないので、即答しかねます。

AWSのマネジメントコンソールへ入って
「カスタマーエンゲージメント」の項目にある「Simple Email Service」を選択します。

SESの画面が出たらダッシュボードから
「Identity Management」→「Domains」と選択します。
「Verify a New Domain」と青いボタンが右ペインにありますので、そこをクリック。
すると Verify a New Domain というダイアログが出てきますので、ここで、使いたいメールアドレスの
ドメインにした

元記事を表示

AWS LambdaからEvent Bridgeに通知してみる

# はじめに
[前回](https://qiita.com/drafts/a49da460fd67e197a5b7/edit)、MackerelのアラートをAWS Event Bridgeに通知してみたので、
今回は、Lambda A→EventBridge→Lambda B&Cの構成を試します。
自作のアプリケーションから、カスタムイベントを発火させるイメージですね。

# 構築手順

## Lambda B&C(EventBridge受信側)
* Lambda B
* Lambda Function名:register-item
* 実行ロール:CloudWatch Logsの権限があれば良いので、「基本的な Lambda アクセス権限で新しいロールを作成」を選択
* 処理内容:DBに商品を登録するというイメージだが、今回はログ出力するのみとします。

“`python
import json

def lambda_handler(event, context):
print(Register a new item.)
print

元記事を表示

AWS EC2でMemoryErrorとNo space left on deviceで詰まった話

# 対処
MemoryError → `–no-cache-dir`をつければ通る。
No space left on device → ファイル容量を減らせ!

以下余談

### MemoryErrorの対処
AWSのEC2でpipからtensorflowを入れようとしたところ。。。

“`sh
pip install tensorflow
~
真っ赤なエラー…
~
MemoryError
“`
MemoryErrorで入れることができない。。。
そんな時は`–no-cache-dir`を付けてキャッシュを無効化すればいい!ということで再度実行。

“`sh
pip install tensorflow –no-cache-dir
~
やっぱりエラー…
~
ERROR: Could not install packages due to an EnvironmentError: [Errno 28] No space left on device
“`

エラーが`[Errno 28] No space left on device`に変わった。こいつの原因は

元記事を表示

AWS CDK(Python)開発からAWSリソース構築までの手順※開発初心者向け

自分がほぼインフラ一本でやってきて、開発経験が乏しかったことから
開発初心者がCDKを使ってAWSリソースを構築するために行ったことや手順を纏めてみました。
※バージョンによってはこの通り動かないこともあると思いますのでご了承ください
 私は2019年12月時点の最新版のバージョンを利用しています

## コーディング環境
環境用意は下記の記事を参照
WindowsにCDK環境構築する手順(Python)
https://qiita.com/toma_shohei/items/985916e1a95ec4c38121

## CDK(Python)コーディング
◾️まず概要をつかむ
https://pages.awscloud.com/rs/112-TZM-766/images/B-3.pdf

◾️環境用意したらWorkShopやってみる
・Workshop(英語)
https://cdkworkshop.com/30-python.html

・Workshop(日本語:ダウンロード版)
http://bit.ly/cdkworkshopjp

### requirements.t

元記事を表示

CloudFront+Lambda@Edgeの画像リサイズでハマったことまとめ

# 概要

Lambda@Edgeとは、CloudFrontのエッジロケーションで実行できるLambda関数です。
コンテンツがオリジンから返されたときにキャッシュできるので、アプリケーション側のパフォーマンスを向上させることができます。
さらにLambda@Edgeの処理として、画像リサイズ機能を組み込むとリサイズされた画像をCloudFrontがキャッシュするので、ユーザはリサイズによるオーバーヘッドを受けない綺麗なアーキテクチャを作ることができます。
具体的には、下図で右下の「Origin response」に画像のリサイズ機能を持ったLambda@Edgeを配置します。
(下図はオフィシャルから拝借)

![cloudfront-events-that-trigger-lambda-functions.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/196414/42cfd882-1f5c-793a-7079-33cbefbcd4dd.png)

そんな一見便利そうに見えるLambda@Edgeで

元記事を表示

AWS ALB Ingress Controller を External DNS と Cognito と連携させる on EKS

以下の構成を作成し、Cognito 認証を終えたトラフィックのみ eks の世界に到達できるようにします。

![20200228_CognitoALBExternalDNSonk8s.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/39442/07d453e6-35ba-55a1-5d90-544517c42e0b.png)

– 参考: [AWS ALB Ingress Controller](https://kubernetes-sigs.github.io/aws-alb-ingress-controller/)

## EKS クラスター作成

– まずクラスターを作成

`eksctl create cluster –name=k8s-cluster`

## ALB Ingress Controller のデプロイ

– Ingress リソースがデプロイされたタイミングで ALB を作成させる

1. IAM OIDC(OpenID Connect) プロバイダーを作成してクラ

元記事を表示

Capistranoでのデプロイを攻略する

# 今日の目標 
デプロイ作業でよく使うコマンドを整理する

# 前提 
Rails 5.0.7.2
レポジトリ名:freemarket
pemキー名:team_c.pem
ユーザー名:ec2-user
Elastic IP:@18.176.134.115

# SSH接続
“`
$ cd .ssh/
$ ssh -i team_c.pem ec2-user@18.176.134.115
cd /var/www/freemarket
“`
# pemキー確認

“`
cd
cd .ssh
ls
“`
# デプロイコマンド
“`
bundle exec cap production deploy
“`
#AWSアクセスキー、キーID確認

“`
env | grep AWS_SECRET_ACCESS_KEY
env | grep AWS_ACCESS_KEY_ID
“`
# MySQL
“`:ターミナル(本番環境)
状況確認
sudo service mysqld status
起動する
sudo service mysqld start

mysqlにアクセスする

元記事を表示

amazon-qldb-driver-nodejsからQLDBを使う①(接続編)

## QLDBとは

https://aws.amazon.com/jp/qldb/
Amazonが提供するフルマネージド型の台帳データベースです。
ブロックチェーンとは異なり中央集権で管理されます。

データに対する変更は全て記録され、後から確認可能なようです。
また、変更履歴が正確であることを暗号的に検証する機能を提供しています。
https://docs.aws.amazon.com/qldb/latest/developerguide/verification.html

中央集権からトランザクションの実行時にネットワーク参加者の合意を経る必要がないため、一般的なブロックチェーンベースのフレームワークより高いスループットが出るようです。

以上から、「データの信頼性やトレーサビリティを担保したいけど、分散型である必要はない」などの場合にとても魅力的な選択肢になりそうです。

## amazon-qldb-driver-nodejsについて

プログラムからアクセスする場合は現状はJavaのdriverを使うのが主流なようです。
nodejs用のdriverも用意されており、今

元記事を表示

【AWS】IntelliJ(Jetbrains)からAWSを操作する設定方法まとめ。AWS作業が爆速はかどります!

#はじめに
AWSに接続するのに、毎回、Terminalを立ち上げて、コマンドを打ってCLIで管理する。。
そんなことしなくても、
**IntelliJの画面から、数クリックでGUIでAWSを操作できます。**

一度設定するだけで、AWSへの操作が劇的に楽になります。
さっそく設定方法をまとめてみました。
IntelliJに限らず、Jetbrains社のIDEなら共通で、
PyCharm,RubyMine,PhpStormなどでも利用できます。
*以下、説明はintelliJの日本語版で進めさせていただきます。英語版の方は読み替えてください。*

#何が楽になるか
IntelliJで設定するとこんな事が簡単に↓

– sshログイン→2clickでできます。
– DB接続,データ閲覧→3,4clickでできます。
– Deploy作業 → [“cmd” + S]でできます
– Deploy先と差分確認 →2,3clickでグラフィカルに差分表示できます。

#リモートホスト
まずは、基本の設定です。
sshログイン、GUIでファイル管理、Deploy簡単にできるようになります。

元記事を表示

Lambda+API Gateway+CloudFrontとVueでOGP画像の自動生成をする

Lambda+API Gateway+CloudFrontとVueを使ってフロントエンドのみでOGP画像の自動生成をしてみたので備忘録。

###構成
まずVueでSVGを返すページを用意しておく。
Lambda側は`chrome-aws-lambda`でスクリーンショットを撮って、base64で返すようにする。

よくあるLambda@Edgeを使ったダイナミックレンダリングを行いつつ、Edgeで返すMetaタグの`og:image`や`twitter:image`のURLへのアクセスがあったら、用意しておいたSVGページをLambdaでスクリーンショット撮ってAPI Gateway経由でpngにして返す、というちょっと面倒くさい構成。

バックエンド側でLambdaを起動させてスクリーンショット撮ってS3に保存とかでもよかったのだけど、今回はあくまでもアクセスがあったらOGP画像を返すようにしたかったので、こんな感じの構成にした。

###VueでSVG生成
VueでSVGを生成するのはこちらの記事を参考にさせていただいた。
[Vue.jsとFirebaseでOGP画像生成系のサー

元記事を表示

LambdaでCognito認証(ユーザー認可)

#はじめに

SDKをローカルに持ってきてゴニョるサンプルは検索に引っかかるのですが、
クラウド側(Lambda関数内部)で完結するサンプルが見つからない…
よし、ならば投稿してしまえ。

[トップ](https://qiita.com/minmax/items/a36b081c073eff4a6533)
├[ユーザー作成](https://qiita.com/minmax/items/8c2aa57b76e09b8192ed)
├[ユーザー確認](https://qiita.com/minmax/items/ed4f81e61c2617d5c6cf)
├[ユーザー認証](https://qiita.com/minmax/items/12e65cd51d85f419faa5)
└__ユーザー認可 ←イマココ__

#注意事項
本稿は、[こちらの記事](https://aws.amazon.com/jp/premiumsupport/knowledge-center/decode-verify-cognito-json-token/)をLambda関数で実現することを目的としています

元記事を表示

S3とその管理 1

業務でS3を扱っているが、もう少し詳しく知りたい。

とりあえず公式を読む
「Amazon Simple Storage Service (Amazon S3) は、業界をリードするスケーラビリティ、データ可用性、セキュリティ、およびパフォーマンスを提供するオブジェクトストレージサービスです。つまり、あらゆる規模や業界のお客様が、ウェブサイト、モバイルアプリケーション、バックアップおよび復元、アーカイブ、エンタープライズアプリケーション、IoT デバイス、ビッグデータ分析など、広範にわたるユースケースのデータを容量に関係なく、保存して保護することができます。Amazon S3 では使いやすい管理機能を使用するため、データを整理して、細かく調整されたアクセス制御を設定することで、特定のビジネスや組織、コンプライアンスの要件を満たすことができます。Amazon S3 は 99.999999999% (9 x 11) の耐久性を実現するように設計されており、世界中の企業向けに何百万ものアプリケーションのデータを保存しています。」公式

要は、
AWSのストレージサービス!
高い拡張性!
大規

元記事を表示

ELB配下のEC2インスタンスのnginxの設定

## ELBを使うと何が困るか
ELBを使ってEC2にアクセスする場合、nginxが認識する直近のアクセス元は全てELBとなります。
従って、アクセスログをみるとアクセスがすべてELBということになったり、IP制限をかけようにもクライアントのIPが取得できなくて困ることがあります。

そういう時には`X-Forwarded-For`を使うといいと言うことがさらっと書いてあることが多いのですが、もう少し細かく記載しておきます。

## 実際の設定
“`
set_real_ip_from 172.32.10.0/20; # プライベートIPは実際のものを使ってください
set_real_ip_from 172.32.18.0/20; # プライベートIPは実際のものを使ってください
real_ip_header X-Forwarded-For;
real_ip_recursive on;
“`
この設定を追加します。この設定を追加すると`set_real_ip_from`で設定したサブネットからのアクセスは`X-Forwarded-For`を利用するようになります。`real_ip_r

元記事を表示

【Amazon Web Services 基礎からのネットワーク&サーバー構築 】に取り組む

AWS_Fundarmental_Of_Network_and_Servers.jpg
[Amazon Web Services 基礎からのネットワーク&サーバー構築](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/ref=sr_1_3?__mk_ja_JP=%E3%82%AB%E3%82

元記事を表示

aws cli でcloudwatch log group の保持期間をまとめて設定する

備忘録

– 1. ロググループ名を列挙する

“`bash
# 保持期間(retentionInDays)が設定されていないロググループを列挙する
# 数が多くて1回で取り切らない場合は –log-group-name-prefix で絞り込むとか
aws logs describe-log-groups \
–query ‘logGroups[?!(retentionInDays)].logGroupName’ \
–output text
“`

– 2. 保持期間を設定する

“`bash
aws logs put-retention-policy \
–log-group-name <ロググループ名> \
–retention-in-days <保持日数>
“`

– 1. と 2. の合わせ技

“`bash
# 保持期間が設定されていないloggroupの保持期間を7日間に設定する
for lg in `aws logs describe-log-groups –query ‘logGroups[?!(retentionInDays)].logGro

元記事を表示

AWS CLIでパラメーターストアにパラメーターを保存する方法

# パラメーターストアに文字列値をセット

“`bash
# プロファイルを指定
$ export AWS_PROFILE=<プロファイル名>

# 値をセット
$ aws ssm put-parameter \
–type String \
–name キー \
–value 値
“`

# パラメーターストアに安全な文字列値をセット

“`bash
# プロファイルを指定
$ export AWS_PROFILE=<プロファイル名>

# 値をセット
$ aws ssm put-parameter \
–type SecureString \
–name キー \
–value 値
“`

元記事を表示

AWS Lambda入門(Node編)

## 概要

– ServerlessFrameworkを使ってLambda関数を作り、ローカルで動作確認したあとにAWSにデプロイしてアクセスするところまでやってみます

## Lambdaとは

– LambdaはAWSが提供するサービスの1つで以下のような特徴を持ちます

### サーバーレス

– 通常のアプリケーションはサーバにデプロイし稼働させることでアクセスすることができますが、当然サーバが止まっていたら利用することはできません
– Lambdaはサーバーレスに分類されるサービスで、アクセスがあるとそのつど起動し処理が実行され終了すると停止します
– つまりLambdaはサーバの死活監視のようなことをする必要がなく、また課金も実行時間単位なので金銭面でもお得といった特徴があります

### FaaS

– LambdaはいわゆるFaaS(Function as a Service)に分類されます
– つまり、Function(関数)をデプロイして、それを公開するサービスというわけですね

## 関数の作成

– 今回は[ServerlessFramework](https

元記事を表示

Lambda入門#4 API Gatewayとの連携

昨日の続き、やってきます!

# 参考URL
今日も以下の記事を参考にしてやったことを記載しています。

[API Gateway + Lambda]ステージとエイリアスを使ってバージョン管理してみた

## API Gatewayの設定
↓のような感じでエンドポイントを払い出します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138274/aa3693f7-533a-0a00-34f1-d1736be80543.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138274/17b834d9-b3b7-4dd4-f1f7-be72c128393e.png)

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

元記事を表示

Amazon Rekognition チュートリアルほんとに10分でできるか?

#モチベーション
Amazon Rekognition チュートリアル
10 分間と書いてあるが、ほんとに10分でできるか検証したい。

# 結果→できた
チュートリアル:https://aws.amazon.com/jp/getting-started/tutorials/detect-analyze-compare-faces-rekognition/

23:24~23:32 約8分

「類似度」が 10 を超えていないことに注意してください。 と記載あるがsimilarityが13超えていたパターンがあったのはご愛敬w

元記事を表示

OTHERカテゴリの最新記事