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

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

HrokuのDB再構築

## 下記手順でDB再構築しています。
テスト段階でDBの変更をよくしていたので手順だけ忘れないように残しておきます。

## ① DBのリセット
“`
$ heroku pg:reset DATABASE_URL
“`
コマンドを実行すると
 >
 ↑で画面が止まるのでアプリ名を入れる。

## ② マイグレーション(再構築)
“`
$ heroku run rake db:migrate
“`

## ③ Herokuの再起動
“`
$ heroku restart –app APP_NAME
“`
migrateした後に再起動しないとエラーが出る時があるらしいので下記を実行。[APP_NAME]をアプリ名に変える。

## ④ データseeds
“`
$ heroku run rails db:seed
“`
AWSでデプロイしている場合であれば
rake db:seed RAILS_ENV=production
とQiitaに書いてあったが
AWSとPaiza.cloud共に上記で行けたので今はこれで行ってる。

元記事を表示

EC2からメールを送信する(ポート 25 に対する制限を解除)

# 概要
最近新規で作成したAWSアカウントで起動したEC2からgmailのメアドへメール送信してみたが、メールが届かなかった。
maillogを見ると、google の メールサーバへの接続が Connection timed out になっていた。

メールを送信したEC2のあるSubnetのネットワークACLでは25番ポートのOutboundは許可しているし、SecurityGroupのアウトバウンドルールでも25番ポートは許可している。

調べたら、どうやらこれが原因だとわかった
https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-port-25-throttle/

# 解除申請 1回目
メールを送信したいEC2があるAWSアカウントにサインインした状態で、次の解除申請フォームへアクセスする。
https://console.aws.amazon.com/support/contacts?#/rdns-limits

フォームの文言は英語だ。。
署名付きURLのリージョン指定を間違えたメモ

コマンド実行時に正しいリージョン(エンドポイント)を指定できていなかった結果、
署名付きURL…ちゃんと発行できてるのに…なんや301って…
となって若干はまったのでメモ。

#### 状況
↓のようにデフォルトで東京リージョンが指定されている状態で、us-east-2にあるオブジェクトに対して署名付きURLを発行。(PowerShellからCLIで実行)

“`PowerShell
> aws configure
AWS Access Key ID [********]:
AWS Secret Access Key [********]:
Default region name [ap-northeast-1]:
Default output format [yaml]:
“`

“`PowerShell
> aws s3 presign s3://mybucket/test.csv
https://s3.ap-northeast-1.amazonaws.com/mybucket …
“`

一見問題なさそう。

#### 結果
ダウンロードできない

“`PowerS

元記事を表示

AWS ALB環境下のlaravel-adminにてRequest::ip()が正しく取得出来ずにハマった

PHP7.4系 Laravel5.8 laravel-admin1.8.11の環境において、で正しくクライアントIPが取得出来ず、IP制限やSSL関連挙動が変わってしまった。laravel-admin1.7系では問題無かった為、試行錯誤のメモを残す。

“`php5
Request::ip();
“`

## TrustProxiesが正しく動かない!?

本来、AWS Elastic Load Balancingを使用している場合、
$headersの値はRequest::HEADER_X_FORWARDED_AWS_ELBに設定する必要があると公式ドキュメントに記載あり。
https://readouble.com/laravel/5.8/ja/requests.html

“`php:app/Http/Middleware/TrustProxies.php

元記事を表示

Railsのturbolinksの弊害

`turbolinks`はページ読み込みをしない分ページ遷移を速くするツール。しかし、何かと弊害が生じる原因となっていた。ついに我慢の限界が、さてどうしようか。
ちなみに`turbolinks`は以下の物を指す。

“`erb:application.html.erb
↓の上にあるこれ
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
“`

####【ページ内リンク】
[0.環境](#0環境)
[1.背景](#1背景)
[2.flash.nowが作動しない・・・!?](#2flashnowが作動しない)
[3.turbolinksを残すか、それとも・・・](#3turbolinksを残すかそれとも)
[4.結論](#4結論)

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

#1.背景
この記事を書く前に、既に2つ(3つ?)弊害が起きていた

元記事を表示

S3 select とは

## 勉強前イメージ

s3のデータをselect出来るっぽい名前してる。
でもそれだったらAthenaとの違いは?

## 調査

### s3 select とは

S3バケット内に保存したオブジェクトに対し
SQL文を用いてデータの一部分を取り出すことができるサービスです。

### 使い方

– 事前準備

s3バケットに以下のCSVファイルをアップロードしておきます。

“`text:test.csv
“Name”, “Birthday”, “Score”
“Sato”, “02/03”, 24
“Suzuki”, “05/12”, 29
“Takahashi”, “10/06”, 14
“tanaka”, “5/2”, 19
“`

– S3 Select に進む

s3バケットからselectしたいファイルを選んで、
アクション > S3 Selectを使用したクエリ に進みます

![1S3 Management Console – Google Chrome 2021-03-16 2.png](https://qiita-image-store.s3.ap-nor

元記事を表示

Mac故障に備えた重要ファイルのバックアップ

# 経緯
Macのバックアップをとっていない状態で急に修理に出すことになってしまって焦ったので今後のためにメモ。
# TimeMachineの利用
可能ならTime Machineを利用するのが良い。Time Machineなら、設定ファイルから引き継げるので完全な形で復元できる。
https://support.apple.com/ja-jp/HT201250

難点は容量が多いとバックアップに時間がかかったり、普段からスナップショットで差分更新しているとネットワークに負荷かかったりするのでそこは容量・時間・緊急度と相談する必要がある。

# 重要ファイルだけ移行
ローカルの環境を一度綺麗にしたかったことと、それなりに容量があったため今回はこちらだけ外付けHDDに保存。

* .aws配下
* config
* credentials
* キーペア(.aws配下ではないが関連として記載)

* .sshの配下
* id_rsa.pub(公開鍵)
* id_rsa(秘密鍵)
* config(ホスト情報記載)
* known_ho

元記事を表示

ウェブIDフェデレーションってなんだろ?

# ウェブIDフェデレーションってなんだろ?
AWSのIAMとかCognitoとか勉強してると出てくるウェブIDフェデレーションという言葉がありますが、正直さっぱりです。
ということで、今回は何のことだかすらわからないウェブIDフェデレーションについて調べてみようと思います!

## まずそのままググってみた
AWSの記事ばかり出てきたので、おそらくAWS独自の用語かと思いますが、IAMのドキュメントがトップに出てきたのでとりあえず読んでみましょう!
>ウェブ ID フェデレーションを使用すると、カスタムサインインコードを作成したり独自のユーザー ID を管理したりする必要はありません。その代わりに、アプリのユーザーは、よく知られている外部 ID プロバイダー (IdP) (例: Login with Amazon、Facebook、Google などの OpenID Connect (OIDC) 互換の IdP) を使用してサインインすることができます。認証トークンを受け取ったら、そのトークンを AWS アカウントのリソースを使用するためのアクセス許可を持つ IAM ロールにマッピン

元記事を表示

Greengrass(V1)のOTAアップデート前後にシェルスクリプトを実行する

#はじめに
前回Greengrass CoreのOTAアップデートを実施した際に以下の問題がありました。

* Lambdaが実行できなくなる
* グループのデプロイが出来なくなる

上記の問題はGreengrassを再起動することで解消しました。
参考:[Greengrass(V1)のOTAアップデートを実施する](https://qiita.com/kt-yt/items/b4ceaca58757c5bab225)

そこで、今回は(本質的な解決ではないものの)OTAアップデート後にGreengrassを再起動できるようにしました。
OTAアップデートの前後でシェルスクリプトを実施する機能があるので、これを設定してみます。

公式ドキュメントの以下を参考にしています。
参考:[init システムとの統合](https://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/core-ota-update.html#integration-with-init)
#1 設定の変更
実行前後にシェルスクリプトを実行できるようcon

元記事を表示

【AWS】用語を整理しながら学ぶAWS – part5 Cloud Formation-1

# はじめに

この記事では AWS Cloud Tech を通して Cloud Formation を学習して実践していく記事です。
主な内容としては実践したときのメモを中心に書きます。(忘れやすいことなど)
誤りなどがあれば書き直していく予定です。

AWS CloudTech

## ? 本題の前にそもそも IaC とは

Infrastructure as a Code の略
要はプログラムの実行環境などをソースコードのようなモノで管理できる仕組み、概念

考え方としてはルータの設定やスイッチの設定をコンフィギュレーションという形で管理することに近い。
ただし、今回扱う IaC はルータやスイッチなどのコンフィギュレーションではなく
より抽象化されたクラウドのインフラストラクチャーをコードという形で表現することと定義します。

## 実は番外編で

ちょっと前の記事
「[【AWS】用語を整理しながら学ぶ AWS – 番外編-EC2 上に Rails6 環境を構築(一部 Terraform 利用)](https://qiita.com/ymd65536

元記事を表示

Greengrass(V1)の自動起動設定&コアデバイスの接続情報をLambdaで取得

#はじめに
Jetson nanoにGreengrassをインストールしていますが、毎回電源を入れる度にGreengrassを起動するのが手間でした。
そこで、公式ドキュメントに自動起動の設定方法が記載されている通りに設定をしました。

また、今回はあわせてJetson nanoにssh接続するためのIPアドレスを返すLambdaをJetson nanoにデプロイしました。
結論から言うと、こちらは結果的に不要な作業だったのですが、なぜ不要だったか含めて書き残しておきます。
#1 Greengrassの自動起動設定
公式ドキュメントにある通り、systemdを利用したGreengrasの自動起動設定を行います。
参考:[Init システムを設定して Greengrass デーモンを開始する](https://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/gg-core.html#start-on-boot)
##1-1 ユニットの設定ファイル作成
最初にsystemdでGreengrassを扱えるようにユニットファイルを作

元記事を表示

RStudioサーバー(WSL2)からAWS上のDBに接続

# はじめに

Shiny を用いたウェブアプリを作成しており、AWS 上にある DB からデータを引っ張って可視化するため、DB との接続を試してみた。WSL2 (Ubuntu 20.04) 上の RStudioサーバー から AWS 上にある PostgreSQL に接続する。

# ODBC ドライバのインストール

[Setting up ODBC Drivers](https://db.rstudio.com/best-practices/drivers/) にしたがって、端末で以下コマンドを実行。今回は PostgreSQL であったが、その他 DB の場合はそれに合わせた DB ドライバをインストールする。(いつか使うかもと全ドライバを入れようとしたが、MySQL ドライバのみ入らなかった。2021年3月17日時点では、Ubuntu 20.04 に対応した MySQL ドライバはないらしい。)

“`
# Install the unixODBC library
$ sudo apt-get install unixodbc unixodbc-dev –install

元記事を表示

Nuxt.js (View) + Chalice (API) + AWS によって SSG サイトを生成するテンプレート

# はじめに

ウェブアプリケーションを稼働させる場合、サーバーにWeb アプリケーション (nginx, httpd など)を入れたり、言語によって異なるサーバー用アプリケーション (Tomcat, gunicorn など)を入れたりする方法が従来行われてきた。 一方、クラウドのSaaS を活用することで、サーバーなしでウェブアプリケーションを稼働させることも可能になってきている。
Nuxt.js では、開発後にページを (`yarn generate` などで) 静的ファイルに変換し、これをウェブサーバーに配置することでウェブサイトを提供することができる。 これを SSG (Static Site Generation) などと呼ぶ。 これに API を組み合わせることで、より柔軟なウェブサイトを構築することが可能になる。
ここでは、以下の技術を組み合わせて AWS 上に SSG ウェブサイトを構築するためのテンプレートを作成したので、この説明を行う。

– Nuxt.js (v2.15.3): SSG による UI の作成に利用
– Chalice (Python 3.8): A

元記事を表示

AWS Lightsail でサクッとWordPress環境構築(3) 〜お問い合わせフォーム編〜

### はじめに
こちらの記事の続きになります。
[AWS Lightsail でサクッとWordPress環境構築(2) 〜独自ドメイン 編〜](https://qiita.com/fgem28/items/be51fcc95d6503e1102e)

Amazon SES を使用したEメールの送信を出来るようにします。
ホームページのお問い合わせフォームで送信ボタンを押すと、SESの送信メールサーバーを使ってメール送信、自分のメールアドレスに問い合わせ内容が来る、という流れです。

SESの送信用メールサーバーSMTPを使いますが、SESには、Eメールを受信するためのPOPサーバーやIMAPサーバーは含まれていません。つまり、Microsoft Outlook などのEメールクライアントを使用してEメールを受信することはできないので、ご注意ください。

つまり、普通に使うメールアドレスとしては使いにくいということです。
メールを受信することは一応できます。ただ受信したメールをS3に保存して、ダウンロードしてファイル形式を変えてメールを読む、などと非常に面倒です。
私はこれを知らずに

元記事を表示

AWS Elemental MediaConnect が SRT に対応したよ!

AWS Elemental MediaConnect でいつの間にか SRT (Secure Reliable Transport)をサポートするようになってました。

# SRT とは?

Secure Reliable Transport は Haivision 社によって独自に開発された、オープンソースの技術で、UDP プロトコルを利用しつつ TCP と同様の信頼性の高い伝送を実現しています。
低遅延を維持しながら、パケットロスやエラー回復、訂正機能を持つ動画伝送用のプロトコルです。

要は、Zixi や RIST (Reliable Internet Stream Transport) といった、QoS を考慮した動画伝送用プロトコルのひとつです。

【出典】
https://en.wikipedia.org/wiki/Secure_Reliable_Transport

SRT Video Streaming Protocol (Secure Reliable Transport)

AWS Elemental MediaConnect ではこれまで下記プロト

元記事を表示

CloudWatch Syntheticsによる内部ネットワークのURL死活監視

# はじめに

アプリケーションのエンドポイントやURLの監視をCloudWatch Syntheticsで行うことができるそうです。

CloudWatch Syntheticsとは何ぞやについて以下の公式ブログを参照して下さい。
https://aws.amazon.com/jp/blogs/aws/new-use-cloudwatch-synthetics-to-monitor-sites-api-endpoints-web-workflows-and-more/

外部と通信できないクローズドな環境における、CloudWatch Syntheticsでの監視方法について様々な記事を漁ってみたのですが、あまり無いようだったので備忘録として残してみます。

# システム構成図

以下のよう構成で実現したいと思います。
今回は飽くまで動作検証という立ち位置です。

代替テキストSymbolノードを30分でAWS上に立ち上げる

## 目的

まずは、Symbolメインネットローンチおめでとうございます!
ローンチはスタートでこれからが全てなので、頑張って記事を書いていこうと思います。

今回は、ノードの構築部分をスピンオフということで・・・

https://qiita.com/keiyow/items/c200c6a8288f8d728b1a

セキュリティ設定とか、dockerの設定とか、symbol-bootstrapの設定をとにかく省きたいので、新規に立ち上げる際にできる限り自動化してみた。
できる限り安全に作るということでAWSを使用。
もちろん使用は `自己責任` で。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/135107/e653af8a-d828-15b6-a16c-53e011020c77.png)

## まずはAWSアカウント、なければ作成する。(〜10分)

ここに書いてるとおりにアカウントを作るだけで問題なし。
アカウントは2FAすることを推奨

https://aws.

元記事を表示

【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でメールの登録を行った際に、ユーザー名、パスワードの情報をダウンロードしているか

元記事を表示

OTHERカテゴリの最新記事