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

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

Amazon SESにてSMTP認証情報を取得するまでの流れ

# はじめに
Amazon SESをメール送信サーバーとして、利用する際のSMTP認証情報の取得方法をまとめました

# 結論
IAMを作成後、シークレットアクセスキーからパスワードを生成すればOKです 

# 前提
– Amazon SESの設定は完了しているものとします
– bashとopensslがインストール済

# 手順
1. SES Homeの「SMTP Settings」を表示します(※1)
2. 「Create My SMTP Credentials」をクリックして、SMTPのIAMを作成します(※2)
3. シークレットアクセスキーからSMTP認証のパスワードを生成します(※3)
4. 1〜3の情報を元に設定すれば、SMTP認証でメールの送信ができます

“`bash
(echo -en “\x02”; echo -n ‘SendRawEmail’ \
| openssl dgst -sha256 -hmac $AWS_SECRET_ACCESS_KEY -binary) \
| openssl enc -base64
“`

# 補足
– ※1 SMTP

元記事を表示

AWS Client VPN をサクッと立てて落とせるようにしておく

# 経緯

社内ネットワークのパブリック IP ベースで接続を許可しているものがあるが、
ビルの点検やオフィス移転などにより、一時的に IP が使えない状況が起きても、VPN 経由で対応をできるようにしておきたいといったケースを想定

ただし、スタンバイ状態にしておくと、接続していなくても
0.15USD x 24h x 31day x 2サブネット(接続先) で 約232USD (約2万5千円) 月額かかるので、
使わないときは停止しておきたい

# 今回前提

– 東京リージョンで利用する前提
– 今回の VPN routing の CIDR は 0.0.0.0/0 で全リクエスト VPN 経由としている
– 本来は IP 許諾が 必要な CIDR だけに絞るほうが帯域による課金も減らせるのでおすすめ
– VPN が起動状態になるまで 10分〜15分まつのは許容
– AD は使わず証明書での認証方式とする

# 要件

– 一時的なので使っていない間は料金がかからないようにしたい
– AWSの知識がそれほどなくても簡単にVPNを使える状態、使えない状態にしたい
– オフィ

元記事を表示

Windowsクライアントでリモートからクライアントにファイル受信をしたいときの対応

#書いてある内容
Windows上のTeratermからリモート側からクライアント側に`scp`でファイルを投げようとしたら`Permission denied(public key)`って言われた時の原因と対策。

#結論
+ コマンドではなくTeraterm自体のSCP機能を使う(Windowsならば)
+ 送信したいファイルの権限や所有者の権限が強い場合にはchmodやchownで変更する

#そもそも、Permission denied(publickey)とは何か
Permission Deniedは何らかの原因でサーバーが接続を拒否してきています。
public key(公開鍵)に問題がある様子。ただ、このエラーの原因はいろいろあるっぽい。

#コマンドではなくTeraterm自体のSCP機能を使用する

|![tera_scp_01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541975/61a9b1ca-07fc-03b8-c1c6-322201c1a3a6.jpeg)|
|:-:|

元記事を表示

DynamoDBテーブル作成コマンドを読み解く【チュートリアル】

# はじめに
DynamoDBについて勉強がてら[チュートリアル](https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/Streams.Lambda.Tutorial.html)をやろうと思い、ただ実行するだけなのも芸がないのでコマンドのオプションがどういう意味なのか調べながらやりました。
その結果、手順の1つ目(テーブル作成)だけになってしまいましたが……。

# テーブル作成コマンド
コマンドはチュートリアルより。

aws dynamodb create-table \
–table-name BarkTable \
–attribute-definitions AttributeName=Username,AttributeType=S AttributeName=Timestamp,AttributeType=S \
–key-schema AttributeName=Username,KeyType=HASH AttributeName=Time

元記事を表示

AWSでEC2(WindowsServer2019)を作成し一般公開するまで方法

AWSの勉強も兼ねて、WindowsServer2019のEC2を立てたいと思います。
その後IISを導入し外部からEC2にアクセスをし、IISのスタート画面が表示されるところまで設定したいと思います。

##1.WindowsServer2019のEC2を作成する
###1-1.AWSマネージメントコンソールにログイン
まずは、AWSマネージメントコンソールにログインします。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60753/68406d15-dae7-eb25-d16d-5e0b6e2828bb.png)

###1-2.EC2インスタンスの作成
サービスメニューからEC2の画面に移動し、下記画面に移動します。
移動後、画面上部にある「インスタンスの作成」ボタンをクリックします。
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60753/691e06c5-2439-f49f-738c-e6

元記事を表示

AWS RDSについてのメモ

## log

基本的にデフォルトで出力されるのはエラーログだけ。
スロークエリや一般ログを出力したいのであれば要設定変更
デフォルトではlogのアウトプットはテーブル。ダウンロードしたければlog_output=fileにする
インスタンス停止中はログは全てのログ(error,slow,多分generalも)が見れない

### エラーログ
[公式](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.MySQL.html)

まずmysql-error.logに書き込まれる。
5分間隔でmysql-error-running.logにflushされる。mysql-error.logは空になる。
mysql-error-running.logは1時間毎にローテートされる。
その後24時間経過にその時間のmysql-error-running.logは上書きされる。
ログは24時間でなくなってしまうため、それ以上保管したい場合は、awscliなどで定期的にダウンロードす

元記事を表示

Systems Manager メンテナンスウィンドウでハマりかけたところ

# メンテナンスウィンドウからのターゲットグループ引き渡し
SSMドキュメントでは入力パラメータ―`InstanceID`を指定するものがよくありますが、
メンテナンスウィンドウでは何もしないと空扱いになり動きません。
メンテナンスウィンドウのターゲットで指定したインスタンスは、
入力パラメータ―に`{{ TARGET_ID }}`を指定することではじめて引き渡されます。

https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/mw-cli-register-tasks-parameters.html

# 必要なIAM権限が多い
consoleから手で実行する場合と異なり、メンテナンスウィンドウはAWS上で自動的に実行されます
そのため思ったより権限が必要です。

AWS公式のSSMドキュメントを実行するときですら、公式手順に加えて適切なポリシーをつける必要があります。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/

元記事を表示

EKSクラスタの切り替えをもう少し楽にする方法

# 概要

小ネタです。
EKSのクラスタ切り替えが多すぎてkubectxを打つのすら面倒になったため、pecoることにしました。

#やったこと

### 手順1
kubectxとpecoをインストールします。
macをお使いの方はbrewでインストール可能です。

“`bash
brew install peco
brew install kubectx
“`

### 手順2
以下のコマンドを実行し、bashrcにaliasを登録します。

“`bash

echo “alias kc=’kubectx | peco | xargs kubectx'” >> ~/.bashrc
source ~/.bashrc
“`

これで設定した `kc` コマンドを実行する事で対話的に作業したいEKSクラスタを選択することが可能になります。

# さいごに

最近はnamespaceの切り替えも面倒になったので、kubensもpecoりました。

“`bash

echo “alias kn=’kubens | peco | xargs kubens'” >> ~/.bash

元記事を表示

EKSの管理者権限の管理方法について

# はじめに

EKS作成者以外のの管理者にEKSの操作権限を付与するためには[こちらのページ](https://aws.amazon.com/jp/premiumsupport/knowledge-center/amazon-eks-cluster-access/)にある通りに実施すれば良いのですが、どのように管理するか、という話が別にあります。一管理手法としての例を紹介しますので参考になれば幸いです。

# 前提知識
 EKSクラスターの構築初期状態では、適切な権限を持つIAMロール、ユーザーであっても、クラスターの作成者以外はEKSの操作(eksctl、kubectlなど)が行うことができません。これはEKSクラスターのロールベースアクセス制御 (RBAC) 設定によって対象のIAMが承認されていないことによって発生します。
 操作するためには、以下のようなaws-authのConfigMapを編集するためのマニフェストファイルを用意する必要があり、これを適用することで記載されたIAMがRBACによって承認され、操作が可能になります。

“`yaml

apiVersion:

元記事を表示

Goでslackに通知するバッチを作った【新Webhook】

## はじめに

前回の[AWSの利用料金をChatworkに通知してくれるバッチをGoで作った](https://qiita.com/maika_kamada/items/17ac04a6b8b3c56c4b18)では、取得してきたコストをChatworkに通知するバッチを作りましたが、slackにも飛ばしたくなったので、slackバージョンを作ってみました!

そして、今回はLambdaとCloudWatch EventsをServerless Frameworkで作成してみました!

また、Webhookの旧方式から変わったところもご紹介します。

## 構成図
![CostExplorer-slack.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/546572/e07c4c71-3ad7-282e-7fd1-a5225eead20e.png)

当記事では、以下の部分にフォーカスしています。

+ Serverless Frameworkを使って作成したCloudWatch Events、La

元記事を表示

AWS SageMaker Autopilotで実行時に渡す設定

# 前提
AWSのSageMakerが新しくなり、Autopilotというサービスができました。
いわゆるAutoMLで、GCPの「AutoML Tables」やAzureの「Automated machine Learning」とほぼ同じ機能なのですが、ちょっとめんどくさいところとして、多少コードを書く必要があります。
※GUIからも実行できますが、細かい設定ができません

そこで、ここでは設定できるパラメータをまとめておきたいと思います。

# 準備
なお、AutopilotはBoto3で実行しますので、事前に動作できるようにしておく必要があります。

“`
pip install boto3
“`

またpythonから呼び出すときは、以下のようにします。

“`python
import sagemaker
import boto3
from sagemaker import get_execution_role

region = boto3.Session().region_name

session = sagemaker.Session()
bucket = se

元記事を表示

ぼくのかんがえたさいきょうのTerraformによるAWS(検証)環境構築手順

※ タイトルは釣り気味です

# 目的
Spring Boot + GradleのWebアプリケーションをなるはやで検証環境に公開したい。
AWSマネジメントコンソールを操作するのはめんどくさい、という人向けです。

作成する環境のインフラ構成図は以下の通りです。
![terraform-aws-Page-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205862/92efc574-c333-de4e-5ac5-100394f990e3.png)

# 前提
– 基本的に東京リージョンでの作業
– AWSで新規IAMユーザー作成および権限付与できるアカウントを保持している
– 上記アカウントでプログラム(AWS CLI)からアクセスできる
– Terraformを触ったことがある

# 環境情報
– OS: `Mac OS 10.15.1 (Catalina)`
– Homebrew: `2.1.16`
– AWS CLI: `aws-cli/1.16.260 Python/3.7.5 Darwin

元記事を表示

AWS CloudWatchからSlackへ通知する

EC2インスタンスのCPU使用率が決められた値以上になったらAWS CloudWatchからSlackへ通知を行う。
その設定をしたときの覚書。

## 手順

1. SNSの設定
2. CloudWatchの設定
3. Incoming WebHooksの設定
4. KMSの設定
5. Lambdaの設定
6. IAMロール作成

以下特に記述がないものはデフォルト設定。

## 1. SNS設定

### トピック作成

Amazon SNS -> トピック -> トピックの作成

| 項目 | 設定 |
|—|—|
| 名前 | cloudwatch-alarm |
| 表示名 | CloudWatch アラーム |

-> トピックの作成

### サブスクリプション作成

トピック -> 作成したトピックを選択 -> サブスクリプションの作成

| 項目 | 設定 |
|—|—|
| プロトコル | Eメール |
| エンドポイント | <通知したいメールアドレス> |

-> サブスクリプションの作成

確認メールの Confirm subscription

元記事を表示

AWS SAAを取得した

今後、流行るかもしれないLambdaとDynamoDBを知りたくて、勉強をした。
今年の1月下旬にAWS 認定ソリューションアーキテクト – アソシエイトを1回受験した。 (初めは受験する気はなかった。おまけくらい。)
スコアは836で合格した。
合格に必要なスコアは720になる。 (スコア範囲100 ~ 1000)

[試験申込みサイト](https://www.aws.training/Certification)
PSIかピアソンVUE、地域、日時を選択する。
受験料は15,000円 + 税

#利用した参考書・Webページ
– [AWS認資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト](https://www.amazon.co.jp/AWS%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-AWS%E8%AA%8D%E5%AE%9A-%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%

元記事を表示

AWS EC2にサーバーを立てる〜iPadだけで構築

2019年12月にiPadを購入したので、プログラミングにも活用できないかなと思ってためしました。
ほぼ無料でサーバーを立てて遊べます。
物理サーバーじゃないから、ミスったり戻せなくなったら、インスタンスを破棄しちゃえばいいしね。

### 準備するもの
– Terminalアプリ オススメは[Blink Shell](https://apps.apple.com/jp/app/blink-shell-mosh-ssh-client/id1156707581?l=en)
[ここがわかりやすくまとめてます](https://xckb.hatenablog.com/entry/2017/06/18/121745)
– iPad
– AWSアカウント

### 暗号鍵の作成
Blink Shellを開きます
下記コマンドを入力

“`
暗号鍵のキーペアを作成
blink> ssh-keygen -t rsa -b 4096 -m PEM -f xxxxxxxx.pem -C ‘’
“`

“`
公開鍵の表示

cat xxxxxxxx.pem.pub
“`

![7DAD12

元記事を表示

PHP/Laravel で作成したプロジェクトをAWSにデプロイ

前提

・ローカルで開発したプロジェクトをすでにgithubにプッシュ済み
・EC2にSSH接続できている事

PHP7.2のインストール

““`
$sudo yum install -y \
php72 php72-devel php72-fpm php72-gd php72-mbstring \
php72-mysqlnd php72-pdo \
php72-xml php72-json

インストール済みを確認
$sudo yum list installed | grep php72
““

Mysqlのインストールと動作の確認

“`
インストール
$sudo yum -y install mysql56-server mysql56-devel mysql56

スタート
$sudo service mysqld start

動いているか確認(runnning)になっていればOKです。
$sudo service mysqld status
mysqld (pid ) is running…
`

元記事を表示

AWSでYOLOv3を動かすv2

#目的
AWS上でYOLOを動かす。

#使用したもの
[YOLO] https://github.com/ptxyasu/keras-yolo3
[AWS] EC2 https://aws.amazon.com/jp/ec2/

#流れ
1.AWSに環境構築
2.AWSに必要なデータ設置
3.yolo実行

##AWS EC2について
今回は無料枠であったAmazon Linux2を使用した。

##解決策
まず、普段開発を行っている環境でYOLO実行。
ここで、CPUのみで動かすように変更した。
freeコマンドを使用して、実行中のCPUの使用率を確認。
すると、2G程度あればいけそうだった。
→ インスタンスタイプは余裕を持って、t2.mediumに決定。

**その後、tensorflow, keras等を入れて検出プログラムを実行すると
無事に検出が行えた!**

##今後の予定
PHPを通じて検出プログラムを実行し、結果をスマートフォン等から確認できるようにする。

元記事を表示

CloudformationでEC2を作った話

# はじめに
CloudformationでEC2の構築+ユーザデータでM/W導入を自動化しようと思いました。
結論から言うとユーザデータ関連のテンプレートフォーマットエラーが解消できず、ただ単にCloudformationでEC2を作るだけの平凡な結果に終わってしまいました。

それでもCLoudformationについて多少勉強になったのでまとめます。
(今後解決策が見つかったら更新します)

# やろうとしたこと
– EC2インスタンスを作成
– テンプレートを修正せずに最新バージョンのAmazon Linux 2のAMIで起動させる
– ユーザデータでterraformをインストール【失敗】

# terraform導入
まずはユーザデータ作成のためEC2上で普通に導入しました。
特に理由はありませんが、何となくrootのプロファイルにPATHを追加する手順も入れました。

$ sudo yum install wget unzip
$ wget https://releases.hashicorp.com/terraform/0.12.20/terraform

元記事を表示

【AWS】実質1ヶ月でデベロッパーアソシエイト試験に合格できたので忘れないうちに備忘録

実質1ヶ月勉強して、AWSデベロッパーアソシエイト試験(以下、DVA)を受験し、なんとか合格できました。
備忘録を兼ねて、やったことや振り返りなどを以下にまとめます。

## 受験の動機
クラウドに興味があり、まずはAWSから、と思ったのと、AWSを用いた開発に必要な機能概要を一通り押さえておきたいと思ったため。
あとは、会社の勉強会の最終ゴールだったということもあり。
## 業務経験と勉強期間
– AWS業務経験:なし
– 勉強期間:実質約1ヶ月

レガシーな案件への参画ばかりでAWSの業務経験はゼロ。
昨年、会社の月1勉強会に参加し、なんとなく主要な製品や特長を把握できたかな、というレベル。
受験直前1ヶ月は平日2~3時間、休日4,5時間勉強にあてました。

## やったこと
### 1. 情報収集(1日)
まずはAWS公式サイトで試験範囲の確認を行い(試験範囲は[コチラ](https://d1.awsstatic.com/training-and-certification/docs-dev-associate/AWS%20Certified%20Developer%20-%20

元記事を表示

AWS Dynamodb 調べてみた

キーワードをメモしてみました。

## Dynamodbとは
Nosqlのデータベース。AWSのフルマネージドサービス
Nosqlの範囲は、キーバリュー型・ドキュメント型・カラム型

## テーブル構造>アイテム
パーティションキー
ソートキー(オプション)
アトリビュート
※パーティションキー、またはパーティションキー+ソートキーで一意となる。
※パーティションキーによって、データどこのパーティションに登録されるかが決まる。

##レプリケーションは3つ。クロスリージョン

##DynamoDB Transactions
BachGetItemなどで、複数itemの操作をした時の動きを決めることができる。
一つでもエラーであれば、ロールバックするのかどうか。

##ローカルセカンダリインデックス
パーティションキーは変更できないが、
ソートキーの代わり、第二のソートキーとして検索に使用できる。
※テーブルをもう1つ作るようなイメージ(非同期なのでレイテンシーに影響なし)

##グローバルセカンダリインデックス
これは上記と異なり、パーティションキーの代わり
※テーブルをもう1つ作るよ

元記事を表示

OTHERカテゴリの最新記事