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

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

【Laravel】S3にファイルUP後、ファイルURLが取得できなくなった事象

ハマる人はハマるかもしれないのでメモ。

## 事象
LaravelからS3にファイルアップロード後、保存したファイルのURLが正常に取得できない事象が発生。
通常、LaravelからS3にファイルをUPする際は、以下のような形式で行うが、

“`php
//ファイルアップロード(putメソッドでアップロード実行し、返り値にS3アップ後のファイル名が取得できる)
$s3_file_name = Storage::disk(‘s3’)->put(‘/’, $file, ‘public’);

//ファイルURL取得(urlメソッドの引数にS3でのファイル名を指定)
$url = Storage::disk(‘s3’)->url($s3_file_name);
“`

今回はアップロード先をルートではなく配下のuserディレクトリにしたかったので、こう書いた。

“`php
// putメソッドの第一引数を’/user/’に指定
$file_name = Storage::disk(‘s3’)->put(‘/user/’, $file, ‘public’);
“`
その結果、無事

元記事を表示

Amazon DynamoDB Accelerator(DAX)とは?

## 勉強前イメージ

名前からして、DynamoDBを高速化するようなやつのイメージ

## 調査

### そもそも DynamoDBとは?

フルマネージド型のNoSQLデータベースクラウドサービスで非定型な構造を持つデータを柔軟に管理することができます。
詳細は [こちら](https://qiita.com/miyuki_samitani/items/4177fcd0e5361523941b) をご確認ください

### Amazon DynamoDB Accelerator(DAX)とは?

DynamoDBと互換性のあるフルマネージド型のインメモリキャッシュサービスになります。
レスポンスをミリ秒単位からマイクロ秒単位まで高速化することが出来ます。
また、既存のDynamoDBのAPIと互換性があるため、すでにDynamoDBを使用していても簡単に移行することが出来ます。

### 特徴

– パフォーマンス

ミリ秒からマイクロ秒へパフォーマンスをあげ、高速化することが出来ます。

– 移行の負荷の低減

API互換性のあるマネージドサービスなので既存のアプリケーション

元記事を表示

【AWS】AWSのSESとnodemailerを使って、独自ドメインからメールを送信してみた

皆さんこんにちは!

最近AWSの様々な機能に触れるようになったのですが、何と言っても便利!!!

こういう機能無いかなと調べたらほぼ確実にある!

そんなこんなで今回はAWSのSES(Simple Email Service)を使って、“nodemailer“で独自ドメインからメールを送信して見ようと思います!

#はじめに#

独自ドメインは取得しているていで話を進めていきます。

また、SESでの設定も今回は省きます。

SESでメール送信の設定を行っていないという方は、下記の記事をご覧ください。

・[【AWS】AWS初心者がRoute53+SESを使って、独自ドメインでGmailからメールを送信してみた](https://qiita.com/akki-memo/items/616671ccb009a0202113)

それでは説明を見ていきましょう!

#nodemailerの準備#

まずは、パッケージをインストールします。

“`
npm i nodemailer
“`

次に、SESでメールの登録を行った際に、ユーザー名、パスワードの情報をダウンロードしているか

元記事を表示

ECS構築時の”ResourceInitializationError”について

# 概要
cloudformationを使用したECS環境構築時に、エラーが発生しました。

エラー内容は下記の通り。

`ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve ecr registry auth: service call has been retried 1 time(s): RequestError: send request failed caused by: Post https://api.ecr….`

google翻訳で訳したら、

`ResourceInitializationError:シークレットまたはレジストリ認証をプルできません:実行リソースの取得に失敗しました:ecrレジストリ認証を取得できません:サービス呼び出しが1回再試行されました:RequestError:リクエストの送信に失敗しました原因:投稿https://api.ecr。 ..。。

元記事を表示

EBSのgp2とgp3の細かな性能の違い

# EBS ボリュームタイプ gp3 の性能ってどうなの?

gp3がリリースされてから3ヶ月が経過したので(2020年12月→2021年3月)、そろそろ本番業務のサーバに使おうかな、と。

その前に生じた疑問、
**「本当に gp3 は gp2 の上位互換なんだろうか」**

念のために、ベンチマークツールでパフォーマンスをチェックすることに。

## 検証環境

###EC2 Instance

Region: **ap-northeast-1**
OS: **Windows 2019 Server Base**
Instance Type: **c5.large**
EBS#1: **200GiB gp2**
EBS#2: **200GiB gp3 (3000 IOPS, 250 MB/s)**

###検証ツール

– fio
– Crystal Disk Mark 8.0.1 x64

## 確認項目

ディスクの性能といえばこの3つの項目ですね。

– 応答速度 (msec)
– スループット(MB/s)
– IOPS

gp3は、*スループット* と *IOPS* の2つ

元記事を表示

Railsの【flash】を自分なりに噛み砕いた(3部作その3)

`flash`を理解する過程で、`params`や`session`についても理解できたのでまとめ
長くなりそうだったので、`1:params`、`2:session`、`3:flash`の3回に分けた

####【3部作リンク】
[1:params](https://qiita.com/masahiroDIARY/items/68c5294c8160ef6499c5)
[2:session](https://qiita.com/masahiroDIARY/items/4b442b149d0dc9a42eb0)
3:flash(ここ)

####【ページ内リンク】
[0.環境](#0環境)
[1.利用方法](#1利用方法)
[2.結論](#2結論)

#0.環境
・AWS
・Rails 5.2.4.5
・ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]

#1.利用方法
###順序①:Controller指定
“`rb:examples_controller.rb
その1:flash = {notice: “noooo”

元記事を表示

AWS Step Functionsってなんだろ?

# AWS Step Functionsってなんだろ?
試験の練習問題でもたまに出てくる**Step Functions**というサービスがありますが、なんとなく業務フローの自動化サービスぐらいに使うということぐらいしか知りません。なので今回はStep Functionsについて調べてみようと思います!
実はこれを書いてる当日に、仕事で少しStep Functionsを触り始めたので、その辺の感想も少し書きたいと思います。

## まずは概要から
>AWS Step Functions は、AWS Lambda 関数および AWS の複数のサービスを、ビジネスに不可欠なアプリケーション内に簡単に配列することができるサーバーレスの関数オーケストレーターです。
[AWS Step Functions(分散アプリケーションの調整)| AWS](https://aws.amazon.com/jp/step-functions/?step-functions.sort-by=item.additionalFields.postDateTime&step-functions.sort-order=

元記事を表示

AWS Cognito ユーザー一覧を取得する

# やりたいこと
Lambda 関数に Cognito のユーザー一覧を取得するコードを書きたい。

“`py
import boto3

def lambda_handler(event, context):
client = boto3.client(‘cognito-idp’)
response = client.list_users(
UserPoolId=’ap-northeast-1_XXXXXX’
)
user_list = [x[‘Username’] for x in response[‘Users’]]
return user_list
“`

結果

“`
[
“test-user-2”,
“test-user”
]
“`

# ユーザープールIDの記載場所

これを探すのに非常に時間がかかった。調べてもユーザープールとIDプールの違いしか出てこない・・・
全般設定がクリックできるなんて思わなかった!

![image.png](https://qiita-image-store.s3.ap-

元記事を表示

【SAA試験対策】EBSボリュームタイプについて

SAAの過去問で毎回どのボリュームタイプを選択すればよいか分からなくなるため、まとめました。

#EBSのボリュームタイプ

 ・大きく分けて、SSDタイプとHDDタイプの2種類
 
  **SSD**・・I/O負荷の高いデータベース処理等で頻繁な読み取り/書き込み操作を含む場合に使用。性能指標はIOPS(1秒あたりに処理できるI/Oアクセスの数)
  **HDD**・・ログ分析や大容量のファイルデータを保存する処理で使用。性能指標はスループット(単位時間あたりの処理能力 (=MB/秒))

##汎用SSD
 ・EC2インスタンスを作成する際のデフォルトのボリュームタイプ
 (AWSSAA過去問で正解として選ぶこと少ない気がする。。)

##プロビジョンド IOPS SSD
  ・EBSの中で最も高性能なボリュームタイプ
  ・RDSやEC2インスタンスでデータベースサーバを構成する場合等、高いIOP性能が求められる場合に使用
  (AWSSAA過去問ではこれかスループット最適化HDDが正解になることが多い気がする。。)

##スループット最適化HDD
  ・高いスループットを

元記事を表示

Laravel × Vue.jsでゲームコミュニティサイトを作成し、AWSにデプロイしてみた

# はじめに
今回様々な技術を学んできて、総合アウトプットとしてWebアプリを作りました。

この記事ではこのアプリを作ろうとした背景や、どんなアプリ、仕様技術、苦労した点など伝えていけたらいいなと思います。

# アプリ概要
PlayStation4ソフト「機動戦士ガンダムEXTREME VS.マキシブーストオン」をプレイをする仲間を募集するコミュニティサイトです。

– 相方や仲間の募集する投稿
[![Image from Gyazo](https://i.gyazo.com/dd0d04661d271a174a2874e94ef08989.gif)](https://gyazo.com/dd0d04661d271a174a2874e94ef08989)
– 気になった投稿やマッチした投稿をクリップして保存
![96bafa681895adc64bb641054110d66e.gif](https://i.gyazo.com/96bafa681895adc64bb641054110d66e.gif)
– 自分の条件に合って参加したい募集にコメントができる
![57061139191

元記事を表示

AWSでCloudWatch Logsのフィルター後のURLの作り方

## やること
CloudWatch Logsのフィルタリング後(filter pattern)入力後のURLを生成

## 環境
python 3.8
aws

## 背景
CISベンチマークに関するアラート通知を作った。
AWS公式ドキュメントに記載のある、フィルタリング条件で、CloudWatch Logsでフィルタリング後のURLを通知したかった。
https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-cis-controls.html

## やってみた

実際に[CIS3.1](https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-cis-controls.html#securityhub-cis-controls-3.1)を例にやってみる。
CloudWatchLogsには検索文字列、開始日時、終了日時の3つを指定できるため、それぞれ作成して最後にくっつける。

### フィル

元記事を表示

Athenaで別アカウントのS3をクエリーする最短手順

## やりたいこと
別アカウントのS3バケットにあるデータをAthenaからクエリーしたい。
別アカウント側のGlueカタログ(Glueのクロスアカウントアクセス)は使わず、あくまで自アカウントのGlueカタログに別アカウントのS3バケットを登録して、検索を実行するのがゴール。

## 前提
– アカウントA:読み取られる側
– アカウントB:読み取る側

とする。
こんなイメージ。
![スクリーンショット 2021-03-13 午前1.05.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609876/905f9b88-7fc5-dca0-a7f2-a73016ad9414.png)

## ステップバイステップ

### アカウントAの準備

– S3バケットを作成し、テストデータを置く。
– バケット名は`athena-crossaccount-20210310`とする。
– テストデータは[こちらの記事](https://qiita.com/itsuki3/items/a79

元記事を表示

AWS Lambda + API Gatewayでjinja2を動かす

# はじめに
AWS LambdaとAWS API Gatewayを使用して、
サーバレスなお天気アプリを作成したので内容をまとめました。

# 目次
* 基本的なHTTPの動き
* HTTPの中身
* API Gateway
* AWS Lambda
* Layerについて
* [図解]API Gateway + Lambda統合
* 完成

# 基本的なHTTPの動き
まず、Webアプリをサーバレス化する際に必要な知識としてHTTPの動きを理解しておくとスムーズに出来ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1194812/c17491a2-a532-8693-d2e9-772eab4744ea.png)
引用:[第1回HTTPプロトコルとは](https://www.atmarkit.co.jp/ait/articles/1703/29/news045.html)より

HTTPバージョンは、HTTP/1.1, HTTP/2., HTTP/3とありますが、今回は、H

元記事を表示

Railsの【session】を自分なりに噛み砕いた(3部作その2)

`flash`を理解する過程で、`params`や`session`についても理解できたのでまとめ
長くなりそうだったので、`1:params`、`2:session`、`3:flash`の3回に分けた

####【3部作リンク】
[1:params](https://qiita.com/masahiroDIARY/items/68c5294c8160ef6499c5)
2:session(ここ)
[3:flash](https://qiita.com/masahiroDIARY/items/d2d81f55fd695eb9d44e)

####【ページ内リンク】
[0.環境](#0環境)
[1.前提知識](#1前提知識)
[2.利用例](#2利用例)
[3.結論](#3結論)

#0.環境
・AWS
・Rails 5.2.4.5
・ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]

#1.前提知識
`session`も値ではなく**ハッシュ**!!!!!(←超重要)

[ページ内リンクへ戻る](#ページ内リンク)

#2

元記事を表示

祝★AWS Fault Injection Simulator

昨年のre:Inventで発表された中で個人的に注目していたサービス、「AWS Fault Injection Simulator(以降、FISと記載)」がリリースされました。

## What is “AWS Fault Injection Simulator”
一言で言えば、マネージドなカオスエンジニアリングサービスです。

https://aws.amazon.com/jp/blogs/aws/aws-fault-injection-simulator-use-controlled-experiments-to-boost-resilience/

EC2を落としたり、RDSをフェイルオーバーさせたり、OSにコマンドを送って負荷をかけたりといったことが実現可能です。

Get Started(ハンズオン的チュートリアル)(*1)も用意されているので、設定方法は割愛します。
ここでは、あくまで個人的に感じるFISの導入メリットを記載したいと思います。

## デメリット(?)
その前に、先立ってデメリット。
「追加コストがかかる」
この一点だけだと思います。FISはアクション時間に

元記事を表示

Railsの【params】を自分なりに噛み砕いた(3部作その1)

`flash`を理解する過程で、`params`や`session`についても理解できたのでまとめ
長くなりそうだったので、`1:params`、`2:session`、`3:flash`の3回に分けた

####【3部作リンク】
1:params(ここ)
[2:session](https://qiita.com/masahiroDIARY/items/4b442b149d0dc9a42eb0)
[3:flash](https://qiita.com/masahiroDIARY/items/d2d81f55fd695eb9d44e)

####【ページ内リンク】
[0.環境](#0環境)
[1.前提知識](#1前提知識)
[2.利用例](#2利用例)
[3.ストロングパラメータ](#3ストロングパラメータ)
[4.結論](#4結論)

#0.環境
・AWS
・Rails 5.2.4.5
・ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]

#1.前提知識
この2つは**同義**。よく考えたらRubyで勉強したハッシュの仕

元記事を表示

AWS Fault Injection Simulator を早速使ってみました

こんにちは。

2021/3/16に公開になった、AWS Fault Injection Simulator(AWS FIS) を早速使ってみました。

https://aws.amazon.com/jp/blogs/aws/aws-fault-injection-simulator-use-controlled-experiments-to-boost-resilience/

本日時点では、大阪リージョン、中国の2つの地域を除く、商業 AWS リージョンすべてでの利用が可能とのことです。日本では東京リージョン(ap-northeast-1)で利用できます。

マニュアルはこちらです。
https://docs.aws.amazon.com/fis/latest/userguide/what-is.html

このサービスは、疑似障害や疑似攻撃を稼働中のシステムに与えた際に、どれだけ耐えられるのか、回復力をどれだけ有しているのかを確認する手法「カオスエンジニアリング」が行えるものです。
これまでは、 Chaos Monkey などの OSS ツールや、 [Gremlin](https

元記事を表示

HerokuにAWSのS3を導入する方法(Rails)

# HerokuにS3を導入して、画像の永続化をできるようにするための手順を紹介します!(学習記録):city_dusk:

#### HerokuにS3を導入するメリット
投稿機能がついているアプリケーションは画像を保存する機能が必要になる場合があり、herokuでは画像の永続化はできず、ある一定の時間で表示されなくなってしまします。それを回避するためにAWSのS3を利用します!

#### S3を利用する際のセキュリティー対策
AWSを利用する際、セキュリティー対策は必需です。もし、AWSのアカウントID・パスワード・アクセスキーなどの情報が漏れてしまうと、サービスを不正利用され、高額な利用料を請求されてしまう危険性があるためです。
主にこのようなセキュリティー対策の例として、ログインを二段階に設定(二段階認証)、利用制限付きのユーザーを使用(IAMユーザー)、保存機能にアクセス制限を設定(バケットポリシー )さらにGitHubでのソース管理においてもセキュリティー対策などです。このGitHubでのソース管理には、秘密情報を変数に代入して使用(環境変数)、git-secretsを使

元記事を表示

AWS Outposts

#背景
– 「OpenShift, Tanzu Kubernetes Clusterはオンプレでも使えますよ!」と言われた場合、ECS, EKSがオンプレでどうなのか知りたかった。

#AWS Outposts概要
– HWはレンタル
– HWの構築・運用はAWS(ユーザーがやるのはLEDランプ確認と作業員の入館処理)
– 単一のリージョンにひも付く
– 独立したAZとして見える(Outpostsを複数おいて、両方TokyoのMulti-AZとすることもできる)
– ネットワーク接続は2つで、DXでもVPNでもOK

#使える機能
###コンピュート
– EC2
(Fargateがない)

###オーケストレーター
– ECS
– EKS
– EMR

###ストレージ・DB
– EBS
– RDS
– S3

###ネットワーク
– VPC

#類似サービス
###Local Zones
– 普通のAZよりローカルなAZを選択して利用する。
– オンプレにOutpostsのように配置しなくて良い。
– “有線接続”でのクライアントに対する低レイテンシを実現。

###Wavel

元記事を表示

[Nginx+Rails+Unicorn]ドメイン名でアクセスするとWelcome to nginx on Amazon Linux!が表示される

#課題

AWS上でRailsで制作したアプリをNginxとUnicornを使ってデプロイしようと試みていたとき話です。

お名前.comで購入したドメインをroute53でElasticIPに紐付けて、
いざドメイン名でアプリにアクセスしようとすると

Welcome to nginx on Amazon Linux!

このような文章が含まれた画面が表示され、待てど暮らせど一向にアプリは表示されませんでした。

#解決方法

結論
としては、Nginxの設定がうまく行っていませんでした

Nginxの設定ファイルをviで開きます。
作成していない場合はこちらの記事が参考になるかと思います。

[(デプロイ編②)世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで](https://qiita.com/naoki_mochizuki/items/5a1757d222806cbe0cd1)

“`
$ cd /etc/nginx/conf.d
$ vi [アプリ名].conf
“`

“`
# log directory
error_log /var

元記事を表示

OTHERカテゴリの最新記事