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

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

【WordPress用】目指せAWS環境構築

#はじめに
自分用のメモ書きの側面もありますがせっかくなので記事にしました。
AWSの無料枠を用いてWordPressでサイトを作るための土台を作っていこうと思います。
せっかくなのでいつの日か冗長化しやすい構成を目指してみます。(Route53は無料じゃないので未使用)
色んなサイトをかいつまんで参考にしていますのでおかしなところがあるかもしれません。

#筆者の経歴

|年 |経歴|
|—|—|
|2019年4月|未経験の新卒としてWEB企業に入社                    会社のサービス全般の基盤を扱う開発部に配属|
|2019年4月~2020年6月|サービス基盤を扱う部署にてポイント系事業の運用保守を担当|
|2020年6月|インフラエンジニアとしてDWHを扱う部署へ異動|
|2020年7月~|DWHチームとして日時月次のデータ連携業務などを主に担当|
|2021年12月|AWS ソリューションアーキテクトアソシエイトを取得|
|2022年2月|現在に至る|

#筆者のスキル
* DWHチームではデータ抽出業務が主なためSQLをよく使用
* AWSアソシエ

元記事を表示

WordPressのインストール及び設定

#はじめに
[前記事](https://qiita.com/Lana141/items/984063cb4016cb596593)
こちらの前の記事で構築した環境を前提にWordPressのインストールと設定を行っていきます。

##Wordpressのダウンロードとインストール
1. 作成した環境のコンソール上で下記コマンドを順番に実行します。

“`
1. WordPressのダウンロード 
sudo wget https://wordpress.org/latest.tar.gz
2. ダウンロードしたファイルの展開 
sudo tar xzvf latest.tar.gz
3. Apacheの指定ディレクトリにファイルを移動
sudo mv wordpress/* /var/www/html/
4. httpdのリスタート
sudo service httpd restart
“`

##DBの作成
Wordpressで使用するためのDBを用意します。

1. EC2から作成したDBへ接続しスキーマを作成。

“`
1. WordPress用のスキーマがないことを確認 

元記事を表示

awsネットワーク 10のこと

まとめノートですが、情報元の価値を担保するために意図的に情報を損なっています。詳しくはAWS のネットワークで知っておくべき10のことの動画を参照してください。

#### ec2インスタンスだけからみえる専用ネッ

元記事を表示

Lambdaの明瞭な出力ログ [Python, Node.js]

#はじめに
Lambdaの出力ログは、CloudWatchLogsで確認しますが、json形式の明瞭なログ出力を書き留めます。

#Python
DynamoDBの数値を取り出す際、データとしてDecimal(数値)として取り出されますが、json.dumpsを実行すると、エラーが起きました。
そのため、Decimalを取り除くロジックをつけています。

`ensure_ascii=False`は、文字化け対策です。

“`python
import json
from decimal import Decimal

# json形式でログを出力するため、Decimalがある場合取り除く
def decimal_to_int(obj):
if isinstance(obj, Decimal):
return int(obj)

def lambda_handler(event, context):

print(“Received event:” + json.dumps(event, default=decimal_to_int, ensure_ascii

元記事を表示

Amazon Kinesis Video Streams API/SDK による開発

## 参考

– [Amazon Kinesis Video Streams 開発者ガイド](https://docs.aws.amazon.com/ja_jp/kinesisvideostreams/latest/dg/what-is-kinesis-video.html)
– [AWS IoT 再入門ブログリレー Amazon Kinesis Video Streams編](https://dev.classmethod.jp/articles/re-introduction-iot-2021-amazon-kinesis-video-streams/)
– [Kinesis Video Streams API and Producer Libraries Support](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/how-it-works-kinesis-video-api-producer-sdk.html)

## API

ストリームに対する配信、閲覧は以下の API を使用して実現されます。

##

元記事を表示

Amazon Kinesis Video Streams から動画を受信して画像処理をおこなう (Python)

GetMediaForFragmentList または GetClip API を使って動画を取得し、画像を抜き出して処理する方法です。

![概要](https://hirose-public.s3-ap-northeast-1.amazonaws.com/qiita/2022/01/31/1918b4ca-6904-4bf1-ac0a-2b79997ee4ae.png)

## 関連

– [Amazon Kinesis Video Streams から動画をリアルタイム受信して画像処理をおこなう (Java)](https://qiita.com/yh1224/items/114aa4017b009befff06)

## HLS から受信して処理 (OpenCV+ffmpeg)

Amazon Kinesis Video Streams から HLS URL を取得し、VideoCapture に指定することで、HLS から受信することができます。

– LIVE(最新映像)/LIVE_REPLAY(指定日時以降の過去映像)/ON_DEMAND(指定区間の過去映像)のいずれかを

元記事を表示

Amazon Kinesis Video Streams から動画画像をリアルタイム受信して画像処理をおこなう (Java)

Kinesis Video Streams の API 呼び出しは [AWS SDK for Java](https://github.com/aws/aws-sdk-java) を、ストリームから MKV を解析するためのライブラリとして別途 [Amazon Kinesis Video Streams Parser Library](https://github.com/aws/amazon-kinesis-video-streams-parser-library) が提供されているので、これらを使って処理する方法です。

![概要](https://hirose-public.s3-ap-northeast-1.amazonaws.com/qiita/2022/01/31/a181e0f1-6b6d-450d-bbce-c9a4726ebdbc.png)

参考) [Amazon Kinesis Video Stream Parser Library](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/parser-

元記事を表示

Node.jsでS3に画像をアップロードする。

#Node.jsで画像アップロードする。

“`typescript:S3に画像アップロードのサンプル
import S3 from ‘aws-sdk/clients/s3’
import fs from ‘fs’

const bucket = new S3({
accessKeyId: process.env.AWS_S3_BUCKET_ID,
secretAccessKey: process.env.AWS_SECRET_KEY,
})

const fileContent = fs.readFileSync(‘./images/lisa.png’)

const param: S3.Types.PutObjectRequest = {
Bucket: ‘bucketName’, // バケット名
Key: ‘lisa.png’, // 保存時の画像名
Body: fileContent,
ACL: ‘public-read’, // アクセスコントロール。パブリックアクセスの許可
}

bucket.up

元記事を表示

Laravel(PHP)でCRUDアプリを作成し、AWSにデプロイする

## Laravelのversionについて
– “8”を使用する

## 構成
– Laravel
– NGINX
– MYSQL

## 機能要件
– ユーザー登録 && ログイン
– ユーザーCRUD
– 記事CRUD
– 他ユーザーのフォロー
– フォローユーザー一覧
– フォロワーユーザー一覧
– 記事へのコメントCRUD
– 投稿記事の検索機能

## 開発環境を構築する
– ymlファイルにDockerの構成を記述
– `build`あとにコンテナ内でLaravel環境を構築
– `composer create-project –prefer-dist laravel/laravel {$APP_NAME}`

### Nginxの設定につまずく
– css, js ファイルが上手く読み込めない → docker-compose.ymlのappのvolumesをbuild後に変更したために、ファイルの読み込みがうまくいかなかった

## DBの要件定義

|Users||
|:-|-:|
|id|UUID|
|name|VARCHAR|
|email|VARCHAR

元記事を表示

eb deploy 時に `Service:AmazonCloudFormation, Message:Template error` が発生

# 概要

デプロイ時にこんなエラーが出る。

“`text
2022-02-02 10:57:08 ERROR Service:AmazonCloudFormation, Message:Template error: every Fn::Join object requires two parameters, (1) a string delimiter and (2) a list of strings to be joined or a function that returns a list of strings (such as Fn::GetAZs) to be joined.
“`

# 原因

自分の場合、ebextensions の commands に以下コメントを入れてしまっていたからだった。

“`bash
#!/bin/bash
:
# convert `{“hoge”: “fuga”}` => `export hoge=’fuga’`
“`

バッククオートが無意味に展開されてしまい、CloudFormation の意図しないエラーが

元記事を表示

AWS SESで大量メールを送る際のbounce対策にはサプレッションリストを使おう

# AWS SESで大量メールを送る際のbounce対策

## 概要
AWS SESを使用して、数千件のメールを送信する処理を使用する際にbounce対策が必要となり、bounceで届いたメールをSESが受け取ったらSQSで通知して…DynamoDBにいれ…
再送信時にDBを見て…的な対応をしようと思っていたらAWSが素晴らしい機能を作っていてくれたのでメモ

### bounceとは

bounceメールとは何らかの理由で送信先に届かなかったメールのことです。
bounceになってしまう理由はいくつかあり、大きく分けて2種類のbounceがあります。

#### ソフトバウンス
– 一時的な問題でメールが送信先に届かない
- 受信側のメールサーバーの容量がいっぱい
- 受信側のメールサーバで障害が起こっている etc…

#### ハードバウンス
– 恒久的な何かしらの問題でメールが届かない
– メールアドレスが無効になっている
– メールアドレスが存在しない etc…

※ AWS SESはハードバウンスのみでソフトバウンスはバウンス率

元記事を表示

Databricksにおけるカスタムモデルのトレーニング、SageMakerエンドポイントへのデプロイメント

Databricks MLflowのモデルサービングは、モデルのテスト目的でクイックにモデルの動作確認するという目的には適していますが、大量の同時アクセスが予期される、モデルで使用するデータをS3から取得するなど複雑な前処理を組み込みたいといった要件があるプロダクション目的でモデルをサービングする際にはSageMakerのエンドポイントなどを使用することをお勧めしています。

特に、機械学習モデルの推論処理の前処理として「`モデルを呼び出す際、IDを指定し推論に用いるデータをS3から取得する`」という要件がある場合、`PyFunc`としてモデルを実装・トレーニングし、モデルをSageMakerのエンドポイントにデプロイするアプローチを取る必要があります。

本ノートブックでは、ワインの品質を予測するモデルを構築しますが、前処理を追加したカスタムモデルをSageMakerのエンドポイントにデプロイし、推論に用いるデータのIDを指定して推論を実行します。

推論に用いるデータは[databricks-datasets](https://qiita.com/taka_yayoi/items/

元記事を表示

【忘備】Terraform基本構文 ~変数とデータ型~

## 変数

HCL2で利用可能な変数は2種類

* locals : ローカル変数。プライベートな変数で外部から変更はできない。
* variables : 外部から変更可能な変数。コマンドライン実行時にオプションやファイル指定で上書きできる。

### locals の定義と参照

「localsブロックで」定義して「${local.【Name】}」で参照

“`
locals {
project = “testylog”
env = “dev”
}

resource {

tags = {
Name = “${local.project}-${local.env}-vpc”
}

output {

}
}
“`

### variablesの定義と参照

「variableブロック」で変数を1つ定義し、「${var.【NAME】}」で参照

“`
variable “project” {
type = str

元記事を表示

EC2インスタンスにSSH接続しようとしたらエラー ssh2 user auth failure publickey status=1004

EC2インスタンスにSSH接続しようとしたら、エラーになった。

`ssh2 user auth failure publickey status=1004`

![ssh2.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/596144/08606f58-22c9-dbfe-7a5c-547dedfb8bed.jpeg)

(ちなみにRLoginを使っている)

### 解決方法

ログインユーザー名を『ec2-user』とする。

![ssh1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/596144/8d1d5982-9d35-788c-8d4f-3c5dafbcebba.jpeg)

元記事を表示

AWS SAA合格体験記

2022.02.02にAWS Certified Solutions Architect Associate(以下SAA)を取得しました。
これから受験する方のため、かつ自分のための整理も兼ねてまとめます。
自分が実際にやった勉強方法と、今思えばこう対策すればよかったと思う勉強方法の二つの観点でまとめます。
# 前提
自分の属性は以下の感じです。

* AWSの実務経験はAPIGateWay,Lambdaに何度かデプロイしたことがある程度
* GCPもCloudComposerを触る程度
* 社内の肩書きはデータサイエンティスト(?)で「インフラはあんまり…」なソフトウェアエンジニア

# 実際にやった方法
### 勉強期間
* 2021.11 → 2022.02(約3ヶ月)
* 1月上旬までは平日業務後に1h/day
* 1月中旬からほぼ休日のみで2,3h/day

### 勉強リソース
1. [AWS公式デジタルトレーニング](https://explore.skillbuilder.aws/learn/course/125/Exam%2520Readiness%253

元記事を表示

メンテナンス画面の表示について考えてみた

メンテナンス画面ってどう出したらいいんだろうと思っていろいろ調べました。

使用頻度は高くないですが、定期的に大規模なリリースをしたりするときにはやっぱり合ったほうがいいなと思います。
またトラブル発生時も対応中であることが伝えられるのでユーザーの不安もある程度解消できますね。

簡単そうに見えて意外といろいろな選択肢があるんだなあと思ったので、調べたことをつらつら書いてゆきます。
弊社はReact, Next.jsベースのWebアプリなのでその場合のパターンが主になります。

## フロントベース(ReactまたはNext.js前提)

### React + CloudFront + S3 + WAF

クラウドフロントにWAFをアタッチする方法です。
WAFからのカスタムエラーレスポンスによってCloudFrontが別のS3バケットからメンテナンスページを取得して返します。

![スクリーンショット 2022-02-02 11.47.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/386799

元記事を表示

RDS(Aurora)のMySQLパラメータグループのとりあえず設定

毎回忘れてしまうのでメモ代わりの記事。
対象はMySQL8.0系のDBパラメータグループ(AuroraだとDBクラスターパラメータグループ)です。

| パラメータ名 | 値 |
|:-|:-|
| time_zone | Asia/Tokyo |
| slow_query_log | 1 |
| long_query_time | お好みの秒数 |
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| skip-character-set-client-handshake | 1 |

照合順序(collation)はお好きな順序で。
こんな感じでしょうか。
他にもあれば教えてください〜

https://aws.amazon.com/jp

元記事を表示

AWS:スイッチロールのメモ

#スイッチロールの概要

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2027974/048c071e-fc12-1f37-0747-a07ad5c2364a.png)

アカウントAのユーザA(IAMユーザ)からアカウントBへのスイッチロールについて

##アカウントB(スイッチ先)での作業
スイッチロール(クロスアカウント)用のロールBを作成する

 1. スイッチ元のアカウントIDを入力
 2. ロールにアタッチするポリシーを決定
 3. ロール名入力(ロールB)

上記手順でロール作成完了、信頼関係の編集が必要な場合は別途実施
作成時の信頼関係は下記のとおり

“`信頼関係の編集
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Principal”: {
“AWS”: “arn:aws:iam::AAAAAAAAAAAAAAAA:root”

元記事を表示

Kinesis Data FirehoseからMongoDB Cloudにデータを流してみる

[Amazon Kinesis Data Firehose が MongoDB Cloud へのデータ配信のサポートを開始](https://aws.amazon.com/jp/about-aws/whats-new/2020/07/amazon-kinesis-data-firehose-supports-data-delivery-mongodb-cloud/) したそうなので試してみましたが、いくつかハマりポイントがあったので書き残します。

## MongoDB Atlas でClusterを作成

MongoDB Atlas、MongoDB Realmという単語が登場しますが、AtlasはDBaaSとしてのMongoDBそのもの、RealmはAtlasを操作するためのインターフェースとなるサービスのようです。
まずはAtlasでCluster, Database, Collectionを作成します。

– [Get Started with Atlas](https://docs.atlas.mongodb.com/getting-started/)

## Mongo

元記事を表示

Amazon Transcribeをちょっとだけ触ってみた

# とらんすくらいぶってみました

音声ファイルをテキストにしてくれるアレです。
ちょっと触りたい衝動にかられたのでマネジメントコンソールで試してみました。

![スクリーンショット 2022-02-02 7.30.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119864/a5d094ee-26cc-a377-82d0-a3614d53d785.png)

## ジョブの作成(実行)

– ダッシュボードより「Transciption jobs」

![スクリーンショット 2022-02-02 7.26.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119864/ba44a03a-c7ea-1e69-82ce-37b818be7893.png)

![スクリーンショット 2022-02-02 7.26.43.png](https://qiita-image-store.s3.ap-northeast-1.

元記事を表示

OTHERカテゴリの最新記事