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

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

スマホにAWS Consoleアプリをインストールして課金状態などを確認する

AWSの課金情報はSlackに飛ばしているものの、こまめに確認することが必要だな、と実感する出来事がありました。
それは別記事で書くことにして・・・。

手持ちのSmartphone(iPhone)にAWS Consoleを入れたので、備忘として記載します。

## インストール〜認証

App Storeを起動して、**aws console**で検索。
出てきました。
**入手**を押してインストールします。
![20201103_IMG_2941.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244560/471456b8-93a6-22d6-f6ea-9231309845a4.png)
インストールが完了したらアプリを起動します。
![20201103_IMG_2942.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244560/5253d21e-2c94-73d1-e23c-d7a10021b9d9.png)

元記事を表示

AWS EC2インスタンスからのS3のバケットとElastiCasheのRedisへ疎通確認をする

# 目的

– 疎通確認方法のメモを記載する。あくまでも方法の一つを紹介するものであり本方法で確認できないもしくは不十分な場合もある。

# 詳細

1. S3疎通確認
1. EC2インスタンスにssh接続して下記コマンドを実行する。当該インスタンスから接続可能なS3バケットの一覧が表示されるので一覧の中に接続先のバケット名があればインスタンスからバケットが見えていることになる。

“`terminal
$ aws s3 ls
“`
1. ElastiCasheのRedis疎通確認
1. EC2インスタンスにssh接続して下記コマンドを実行する。当該インスタンスからElastiChaseのRedisへログインすることができればインスタンスからElastiCasheのRedisに通信ができていることになる。

“`terminal
$ redis-cli -h ElastiCasheのエンドポイント
“`

元記事を表示

AWS は ”銀行” に例えるとわかりやすい説 ②

前回の記事は[こちら](https://qiita.com/souhub/items/e7bf33513f60fa4e9e8e)です。①の設定をそのまま引き継いでいます。(オマケはやっていない状況です。)
前回までは Availability Zone A にしかサブネットがなかったので、銀行員も A にしかいませんでした。なので Availability Zone C にも受付と銀行員を追加していきます。
この続きでマルチAZ化していきます。

## WebサーバーのマルチAZ化 (受付窓口と銀行員の数を増やす)
窓口が1つだけではこの銀行員が急に倒れてしまったりした時、お客さんに対応できなくなってしまいます。そこで受付場所をもう一つ増やして、そこにもう一人銀行員を配置することにします。すなわち受付窓口が2つで銀行員が2人いる銀行にします。
また、新しくロードバランサが出てきます。これは受付の状況を常に把握し仕事を2人の受付役の銀行員に振り分ける現場監督のような存在です。
新しく増やすものと銀行に置き換えた時の役割の対応は次の通りです。

| AWS | 銀行 |
|:——-

元記事を表示

そんな請求アラート設定で大丈夫か? 大丈夫だ 問題ない 10万円溶かす

# 事の始まり
今回2回目の高額請求です!
前回はRDSの起動しっぱなしで起きました。
![スクリーンショット 2020-10-30 1.32.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/516091/fd6f187a-338a-5c1c-2d15-827607c95e5f.png)

Billingの設定で請求アラートを設定すれば、よいと学んだので、その設定をしました。

しかし…

SlackやLINE, 電話で事足りる世の中になり、メールを見なくなる毎日。

そして、今回事件が起きました…。
![スクリーンショット 2020-10-30 1.01.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/516091/aabbdd36-5db0-b0e3-48fe-52d335810a0d.png)

たすけてー AWSの偉いひとー。

メール通知だけだと、ダメだと思い知ったので、一番良い請求アラートの

元記事を表示

[UE4] DedicatedServer を Windows と Linux で構築する

Linux で DedicatedServer 建てたいよォ!
ということで、いろいろ試したことをメモしておきます

# この記事は
+ UE4.25 で確認します
+ AWS EC2 を利用します
+ C++ビルド環境が必要です

# Windows環境で動作を確認する
まずはエディタ上で動作することを確認しましょう
![3aa51d51363dc4d28f0666adec0ef373.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41105/e817382f-bcd2-4d83-ba2e-5834b963f51f.png)
[選択ビューポート] x [スタンドアローンゲーム] x [Play Offline] x [Play As Client] x [プレイヤー数]
これらの組み合わせをそれぞれ動作確認するので、結構タイヘン。。

## エディタ外部からの起動
PIEで起動すれば全てのサーバー、クライアントのプロセスをトレースできます
これはこれで便利ですが、CLI1, CLI2, SERV と複

元記事を表示

iOSアプリ開発者がAWS認定ソリューションアーキテクト(SAA-C02)を取得した際の備忘録・AWS小ネタまとめ

## はじめに
今夏のコロナの影響もあって一時だけリモート勤務になり
所属する会社のサポートで[Architecting on AWS](https://aws.amazon.com/jp/training/course-descriptions/architect/)の
オンライントレーニングを受講しました。

せっかくなのでAWS認定ソリューションアーキテクト
(SAA-C02)を取得してみましたという備忘録と
モバイルアプリ開発にも関連したAWSまわりの小ネタをメモまでに。

![aws-certified-solutions-architect-associate (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6691/d266e20b-9ed1-90bc-48a6-2beeb3dee94b.png)

## AWSとの関わりレベル
* 普段はiOSメインで開発
* 担当案件のバックエンドはAWSで各リソースがどんな働きかを広く浅く知ってる程度
* サーバーサイドは大昔にオンプレでインフ

元記事を表示

アレクサスキルを開発したときのリアルタイムメモ

赤外線
http://www.optdevice.jp/ir/

obniz IR LED
https://obniz.com/sdk/parts/InfraredLED/README.md

赤外線リモコンのフォーマット
https://os.mbed.com/users/shintamainjp/notebook/remote_ir_ja/
http://elm-chan.org/docs/ir_format.html

アレクサスキル
https://medium.com/crowdbotics/how-to-build-a-custom-amazon-alexa-skill-step-by-step-my-favorite-chess-player-dcc0edae53fb

オペアンプ
https://akizukidenshi.com/catalog/g/gI-09406/

ad
https://developer.amazon.com/en-US/docs/alexa/custom-skills/understanding-custom-skills.html
smar

元記事を表示

[AWS]SessionManagerを踏み台の代わりに利用する

踏み台サーバの構築、運用はそれなりに面倒ですが、
AWS SystemsManagerの「SessionManager」を利用すると
同様の事が簡単に行えます。踏み台サーバに比べて制限もあるので完全に代替は出来ませんが
多くのケースでは十分では無いかと思います。
Windows,Linuxをサポートしており、とても便利なサービスなのでご紹介です。

## SessionManagerの良い点
* IAMを利用した一元的なアカウント管理、アクセス制御が出来る
* 踏み台サーバの構築が不要。
* パブリックIPアドレスが不要でEC2にアクセスが可能
* インバウンドポートを開く必要が無い、SSHキー管理も不要
* アクセスログ、操作ログの記録監査が容易
* 無料

良い点は色々ありますが個人的には面倒なアクセスログ、操作ログの
記録、監査が簡単に出来る点がとても魅力的だと思います。
個人学習用途では費用のかかるパブリックIPが不要になるところもいいですね。

## SessionManagerの導入
導入は以下の流れになります。詳細は環境によって異なるので公式ドキュメントを参照ください。

元記事を表示

Amplify でサインアップしてきたユーザーを特定のグループに自動で追加するようにする

# はじめに

とあるアプリケーションで、管理者ユーザーと一般ユーザーとで提供する機能を分けたいと思った時に、どう実現するのが良いか調べたら、Cognito ユーザープールのグループ機能を使って権限管理すると良いらしいということだったので、Amplify でその辺を自動構成する方法を調べました。

以下のような運用を考えていました。

1. 一般ユーザーはアプリケーションからサインアップできるようにしたい
2. 管理者ユーザーは数人なので Cognito ユーザープールに直接追加すれば良い

サインアップを利用するのは一般ユーザーなので、サインアップしてきたユーザーは一般ユーザー用のグループに自動で追加するようにします。

# amplify auth add

`amplify auth add` コマンドを実行して、以下のように選択していきます。

グループへの自動追加の構成以外はデフォルト値をそのまま選んでいます。

“`sh
$ amplify auth add
“`

“`
Do you want to use the default authentication an

元記事を表示

AWS S3に保存しているファイル名を取得する(1000件以上)

# やりたいこと
AWS S3のとあるバケットのとあるフォルダ以下に保存しているファイル名を全て知りたい。
このとき、とあるバケットのとあるフォルダ以下にはファイルが1000件以上ある。

**注意点**
list_objectは1000件までしか取得しないので、ファイル情報を取得する処理を工夫する必要がある。

## 方法
https://boto3.amazonaws.com/v1/documentation/api/latest/guide/paginators.html
に記されている通り。

# コード
※awsのコンフィグは設定しておく。
※python3で実行する。

“`python:sample.py
import boto3

MY_REGION = ‘リージョン名’;
MY_BUCKET = ‘バケット名’;

# バケット以下のディレクトリ
TARGET_PATH = ‘tmp/YYYY/MM/DD/’;

client = boto3.client(‘s3’, region_name=MY_REGION)
paginator = client.get_pa

元記事を表示

サーバレス ServerlessFramework・API Gateway・Lambda・DynamoDB・TypeScript・Express ページングありの掲示板をつくった ローカルで試せる

## 成果物
https://serverless.itsumen.com

※アタックしてクラウド死を狙う奴が出てくるからバックエンドは格安のVPSを使っている。

## リポジトリ

https://github.com/yuzuru2/aws_serverless_framework

## ローカル開発環境セットアップ

Javaをインストールしておく

“`bash
$ git clone https://github.com/yuzuru2/aws_serverless_framework.git serverless
$ cd serverless

#フロントエンド起動
$ cd frontend
$ npm i
$ npx sls dynamodb install
$ npm run dev

#バックエンド起動
$ cd backend
$ npm i
$ npm run dev

#初期データを入れたい場合
$ cd backend
$ npm run init
“`
http://localhost:8080 にアクセスする

## 使用ライブラリ周り

元記事を表示

たった1人でEC2&RDSのバックエンドをLambda&DynamoDBに移行した話

先日お仕事でスマホアプリのバックエンドを移行する機会をいただきました。
システムのフルリニューアルは初めての経験だったので色々と学びが多くありました。
せっかくなので知識を共有したいと思います。

# サマリー
## 概要
こんな感じのプロジェクトでした。

– 開発期間 9ヶ月
– 体制 1人開発
– API数 約100
– バッチ数 約10
– その他の移行対象(DBデータ,管理コンソールetc)

## 移行の目的
バックエンドの移行の主な目的は以下でした。

– 内製化によって開発速度を上げる
– 内製化するために社内のスキルセットに合う言語・アーキテクチャにする
– AWSコストの削減

## 移行前後の違い
|| 移行前 | 移行後 |
|—|—|—|
|実行環境|EC2|Lambda & Api Gateway|
|フレームワーク|Rails|なし|
|メインDB|RDS(PostgreSQL)|DynamoDB|
|バッチの仕組み|Rails(SideKiq)|AWS Batch/Lambda|

# 実作業前の準備
## 現状把握
私は移行対象の元のシス

元記事を表示

Amazon SES でプライベートサブネット内からメールを送信する際の注意点(2020年11月時点)

## はじめに

DX 技術本部 の yu-yama です。
ややハマりしたので、同じ楔を踏む人が減ることを祈り、UP します。

## TL;DR
AWS SDKではなく、[SMTP インターフェイス](https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/send-using-smtp-programmatically.html)を使用して送信しましょう。
2020年11月現在、 AWS SDK の Amazon SES API を用いて Amazon SES のメールを送信することはできません。

## Amazon SES が東京リージョンにきました
![sesmail.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/85281b20-8064-72b3-c332-ff38b3f943f2.png)
[Amazon SES 東京リージョン対応のお知らせ \| Amazon Web Services ブログ](https

元記事を表示

Laravel + AWS S3で画像アップロードを行う

# はじめに
現在作成中のアプリケーションにて、画像をアップロードできるようにしようと思います。
そこで今回、Laravel + AWS S3で画像アップロードの処理を実装したので簡単にご紹介します。

# 流れ
やることは大きく分けると2つ(AWS側の設定とLaravel側での設定+実装)

***1.AWS側の設定***

– S3でバケットを作成
– S3の権限を持ったIAMユーザーの作成

***2.Laravel側の設定+実装***

– AWSの認証情報を.envに記載
– S3のパッケージをインストール
– 処理の実装(すでに画像URL保存用のカラム追加済み)

# S3とは?
初めてS3を触る人からしたら、S3ってなんぞやと思いますので軽くまとめます。

> Amazon Simple Storage Service はインターネット用のストレージサービスです。また、ウェブスケールのコンピューティングを開発者が簡単に利用できるよう設計されています。
Amazon S3 のウェブサービスインターフェイスはシンプルで、いつでも、ウェブのどこからでも容量に関係なくデータを格納

元記事を表示

推論をFargateで実行する

正直、Fargateもサービス仕様の変更が著しいため、SageMakerの利用をおすすめします。
(SageMaker専門家は、Fargateに詳しくない可能性があり、ベストのアーキテクチャを描けない可能性がある)
SageMakerではなく、Fargateで推論を実施する場合

<参考>
[初心者向け]言われるままにFargate初めて触ったので、忘れないための記録
https://dev.classmethod.jp/cloud/aws/fargate-my-first-step/

【AWS ECS】タスク実行時のキャパシティープロバイダーを設定する【2019/01】
https://qiita.com/tegnike/items/64f7ba9501144bf6bb17

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/575432/5b64d496-d4e9-39cd-8d5d-af63fbe1eb49.png)

なんでAWSのエラーメッセージはこんなにも意味不明なんだ。

元記事を表示

独自のコンテナを作り、ECRに登録する

SageMakerであらかじめインストールされていないライブラリを使いたい場合、
prophetなど。
ライブラリインストール済みのコンテナを作りたいときがあります。
(既存コンテナで起動時にインストールしてもよい??)

どのようにカスタムコンテナの環境を用意し、ECRに登録すればよいのでしょうか?

1.EC2を作成する
AWSのEC2でインスタンスを作成する手順
https://qiita.com/Quikky/items/2897573a42fd71cfc47f

サブネット
IAMロール
セキュリティグループ
の設定は忘れずに!

2.コンテナイメージを作成する


dockerコマンド実行時の「Got permission denied while trying to connect to the Docker daemon socket」

AmazonECRとEC2を使って手元でビルドしたDockerイメージをAWS上でサクッと動か

元記事を表示

kaggleをAWS/SageMakerで実践する

# Kaggleを一人でやることの苦しみ
自分のプログラムが合っているのか、不安になる。。
CVの組み方すら間違っていたら、指針が全てパー

ソロ金とったことないが、とるなら2-3ヶ月は時間とって集中しないと難しい感覚。
(1ヶ月では無理だった。ソロ銀)

・リサーチの時間が足りない
・実装の時間が足りない
・検証の(以下略)

圧倒的な実装力 + 最短の最善手を選ぶセンス が必要。
(一人だと時間が足りないので、できれば3ヶ月前から参加する)

# 2020/7/1 M5感想
https://www.kaggle.com/c/m5-forecasting-accuracy

・検証を効率的に実施するために、MLパイプラインの整備は重要。
・モデリングはデバッグが難しい(コード的には通るので発見しにくい)ので、
なるべく自分のコードを書かないよう、既存のライブラリを有効活用しながら、進める必要がある。
・スパースな時系列は本質的に予測が難しい(ポアソンlossを利用)
・平均の寄与度が高かった。
・recursive forecastはやめたほうがいい。day to day model

元記事を表示

自前のXGBoostコードをSageMakerコードに変換する

PoCやKaggleで書くコードを、SageMakerで仕組み化する場合にどうコードを変換するのかわかりにくかったので、まとめる。

# 変換前
乳がんの二値分類をXGboostを用いて判別したコード。
[こちら](https://blog.amedama.jp/entry/2019/01/29/235642)のサイトを参考にさせていただいた。

“`py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import xgboost as xgb
import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

“””XGBoost で二値分類するサンプルコード”””
# 乳がんデータセットを読み込む
dataset = datasets.load_breast_cancer()
x, y = dataset.dat

元記事を表示

自前のKerasコードをSageMakerコードに変換する

前回に引き続き、MLPをKerasで構築した場合、SageMaker用にどう変換するのか、記載していく。

Neural Netの場合は、
・変数のスケーリング[0,1]が必要
・欠損値の補完が必要
・カテゴリ変数はone-hot-encodingする
等の前処理が必要になる。

# 自前のKeras

“`py
from keras.layers import Dense, Dropout
from keras.models import Sequential
from sklearn.metrics import log_loss
from sklearn.preprocessing import StandardScaler

# データのスケーリング
scaler = StandardScaler()
tr_x_scale = scaler.fit_transform(tr_x)
va_x_scale = scaler.transform(va_x)
test_x_scale = scaler.transform(test_x)

# ニューラルネットモデルの構築
model

元記事を表示

LightGBMをSageMakerの独自コンテナで実行する

元ネタの通りに実行したところ、いくつかつまずくポイントがあったのでメモ

# 元ネタ
Amazon SageMakerでLightGBMが使えるコンテナイメージを作ってみた
https://dev.classmethod.jp/articles/sagemaker-container-image-lightgbm/

# やりたいこと
[こちらのXGBoost](https://qiita.com/Roe/items/2b760c908c4dadcfe098)のLightGBM版(下記)を、SageMakerで実行する。ビルトインコンテナではLightGBMは対応していないため、カスタムコンテナが必要。

“`py
# SageMaker ノートブックインスタンス上で実行する場合、LightGBMをインストールする必要がある。
!pip install lightgbm
“`
lightgbmをインストールしたら、ノートブックインスタンス上でも以下のコードを動かすことができる。

“`py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

元記事を表示

OTHERカテゴリの最新記事