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

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

LakeFormation Tips

案件でLakeFormationを使うようになりましたので、LakeFormation関連のTipsを紹介していきたいと思います。
随時更新予定です。

# 1. 別リージョンのバケットにテーブルデータを保存しているテーブルはLakeFormationで権限制御できない

例えば、GlueのデータカタログやLakeFormationは東京リージョンを利用しているが、一部のテーブルのデータはオレゴンリージョンのバケットに
保存されている場合、この一部のテーブルに対してLakeFormationで権限制御することができません。
これはLakeFormationと別リージョンのバケットはDataLakeLocationsに登録できないためだと思われます。
LakeFormationでテーブルの権限等を管理する場合、テーブルデータが存在するS3パスをDataLakeLocationsに登録する必要があります。
ただ、別リージョンのバケットはDataLakeとして登録できないため、別リージョンのバケットにデータを持つテーブルはLakeFormationの管轄外となってしまい、その恩恵を受けれら

元記事を表示

【ブログ枠】JAWS-UGコンテナ支部 #16〜EKS on Fargateローンチ記念!EKS祭りだワッショイ#1

#はじめに
2020年1月23日に開催された[JAWS-UGコンテナ支部 #16〜EKS on Fargateローンチ記念!EKS祭りだワッショイ](https://jawsug-container.connpass.com/event/160835/)のブログ枠になります。

当日使用されたハッシュタグは**[#jawsug_ct](https://twitter.com/search?q=jawsug_ct&src=recent_search_click&f=live)**と**[#jawsug](https://twitter.com/search?q=%23jawsug&src=typed_query&f=live)**です。Twitterで検索すれば開催当時の空気感が見れると思います。また、話題に上がった補足資料的なURLが貼られたりしているのでさらっと眺めておくことをお勧めします。

メインセッションまでを#1、書く余力があったらLT部分を#2で書ければと思ってます…

#セッション情報まとめ

|タイトル|登壇者情報|
|:–|:–|:–|
| [今こそ振り返るEK

元記事を表示

JAWS-UGコンテナ支部 #16に参加しました【備忘】

# はじめに
[1/23のJAWS-UGコンテナ支部#16](https://jawsug-container.connpass.com/event/160835/)に行ってきたので、その時に知らなかったり知っていたけど曖昧だったことをまとめようと思います。

ただ自分がコンテナ知らな過ぎるせいで、ほとんど用語集兼資料リンク集になっています。

どうでも良いですが、「kubectl」は人によって読み方が違うようです。
今回のイベントでは「きゅーぶしーてぃーえる」と読む人が多かったですが、今日(1/24)に参加したOpenshiftのハンズオンでは「きゅーびーこんとろーる」と言っていました。わけがわからないよ(QB違い)

# kubetnetesの設計思想
[当日の発表資料](https://speakerdeck.com/inductor/understanding-eks-and-its-ecosystem-from-oss-perspective?slide=10)より抜粋

– 宣言的に構成管理
– コントローラを中心とした高い拡張性
– コンテナを基とした軽量、柔軟、高速なス

元記事を表示

AWS WorkspacesのAmazon Linux2からWindowsサーバにRDPするためのremminaインストール手順

AWS WorkspacesにはWindows10だけでなく、Amazon Linux2が用意されていてコストもお得です。
そんなAmazon Linux2からWindowsサーバを管理するためにRDPを利用できる状態にセットアップする手順です。

作成時に選択したバンドルなどは以下。

* Value with Amazon Linux 2 (Standardとの差は性能だけの認識)
* Language 日本語

# 手順
とても簡単で、remmina という定番ツールをインストールするだけでした。

Terminalを開いて

“`bash
# rootになってしまい(ちょっと乱暴かも)
sudo su –

# epelを最初に入れる
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm{
rpm -ivh epel-release-latest-7.noarch.rpm

# remminaのインストール
yum install remmina
“`

あとは、左下の [アプ

元記事を表示

【AWS/Lambda】lambdaに固定IPをつける/VPCに所属させる

「困ったら大体lambda(とS3)」「lambda イズ 仙道」、AWSの基本ですね()
ただ彼は基本的に固定IPを持ちません。仙道同様、気まぐれです。
今回はそんな彼に**固定IPを付与する方法**をまとめます。
また、結果として**VPC&サブネットへ所属させる方法**にもなります。
# どんな時に役立つか
例えば

– 申請式で特定IPからのアクセスしか認められないサービスとの連携
– インスタンス内で動くIP制限付きサイトの死活監視
– プライベートサブネット内のインスタンスと通信

※インスタンスそのものの監視はcloudwatchでどうぞ
# 構成図
以下の形です。
![lambdaから外へ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488789/4b7a4f6f-eaf0-a254-287c-d4c18e82e4a6.png)
# 手順
手順的には大まかに以下の形です。
1. lambdaをVPC内のプライベートサブネットに設置
2. lambdaのロールにvpc、eniに関する権限

元記事を表示

AWSアカウント作り直してみた

## はじめに
– これからawsの勉強をする予定です。
– 2年前くらいに、[railsチュートリアル](https://railstutorial.jp/chapters/beginning?version=5.1)をしました。その際に、一度AWSのアカウントを登録したのですが、途中で挫折して、ずっと放置されてたままになっていました….
– 今回、AWSアカウントを作り直そうか迷っていましたが、作り直すと“無料枠がリセットされる“ことが判明したので、作り直そうと思います!!(メールアドレスは変える必要があるみたいです)
– [解約したAWSアカウントを再開したら無料利用枠がリセットされた件](https://hrhs37.hatenablog.com/entry/aws_free_tier_reset)

## 目次
1. awsのアカウントを削除
2. awsのアカウントを再登録
3. 初期設定

## 1.awsのアカウントを削除
### rootアカウントでログイン
1. サインインの画面でrootアカウントに紐づくメールアドレスを入力します。

元記事を表示

インフラエンジニア、自由人として現状aws cloud9が最強だと思う理由

# メリット
– どのパソコンを使っても初期設定はいらない
– 回線の問題は4Gになってほぼ払しょくされた
– テザリングやwifiがあればどこでもPCはスペックに左右されずに作業ができる
– aws IAMで認証できて認証がセキュア
– 指定時間後に操作がない場合、インスタンスの自動シャットダウンができる(費用の圧縮になる)
– PCを買い替える頻度によってはトータルコストもそんなに高くない

# デメリット
– PCを5年とか買い替えない方はトータルコストが割高
– 回線速度と電波の問題には少なからず意識しないといけない
– IDEとしての機能は不十分(検索機能が遅いなどInteliJ利用者から見すると少し不便かも)

元記事を表示

Jest実行時にserverless.ymlの環境変数を読み込む

[jest-environment-serverless](https://github.com/fireeye/jest-environment-serverless) を利用して`serverless.yml`から環境変数を読み込みます。
(`.env`を読み込む以外の方法を試してみたかった)

## 手順

### パッケージのインストール

必要なパッケージをインストールします。

“`.bash
$ npm install serverless jest jest-environment-serverless
“`

### プロジェクトの作成

“`.bash
$ npx serverless create –template aws-nodejs
“`

### 設定

`serverless.yml`に読み込む環境変数の名称と値を記述します。

“`serverless.yml
service: sample

provider:
name: aws
runtime: nodejs12.x

functions:
hello:
handl

元記事を表示

YAMAHA vRXをDatadogのSNMPで監視しちゃおう

そもそもSNMPを活用した監視についてあまり記事がなかったので備忘録として。

##経緯
YAMAHA vRXの検証環境に触れる機会があったので、運用の観点から利用方法だけでなく監視ができないかを調査。
ネットワーク機器ではお馴染みのSNMPの機能を用いて、vRXが出力する値を監視する手段の考察

##必要なもの
– datadog-agentを稼働させるためのvRXに通信可能な別インスタンス
– vRX用MIBファイル
– MIBファイルをpython化するための作業環境(一度きり)
– 気合い

##諸々の概要
###Datadogについて
説明する気はありませんので、気になる方は以下なりインターネッツでお調べください。
https://www.datadoghq.com/ja/
このDatadogのエージェントがもつ標準のsnmp監視インテグレーションを利用します。
https://docs.datadoghq.com/ja/integrations/snmp/
###DatadogのSNMPインテグレーションについて
非常に難解。
というのも、そもそもSNMPをそこまで詳しく知

元記事を表示

Elastic Beanstalk 指定時間だけインスタンスタイプを上げる

#改善
12:00~13:00のみ負荷のかかるElastic Beanstalkの環境がある。
インスタンスタイプの調整で費用を抑える。
PMから指示がなくてもインフラはそうする。

#lambda_function.lambda_handler

“`python:python3.8
import json
import boto3
from datetime import datetime

def lambda_handler(event, context):
envName = str(event[‘env-name’])

instanceType = ”
currHour = datetime.now().hour + 9

if currHour > 24:
currHour = currHour – 24

print(currHour)

if(currHour == 11): #11時代に上げる
instanceType = ‘c5.xlarge’
elif

元記事を表示

EC2 AutoScalingを使ったGraceful Shutdownを考える

# はじめに
筆者がEC2 AutoScalingを含むAWS環境の運用を行う中で理解した内容を書き起こしています。
EC2のシャットダウンについて、AWSのサービスから各種ソフトウェアまで横断的に説明された記事があまり見つからなかったので、この記事が誰かの助けになればと思います。

# 前提知識
## EC2 AutoScalingとは?
EC2 AutoScalingはEC2のスケールイン/スケールアウトを担うサービスです。
設定したスケジュールベースのスケーリングや各種条件を踏まえた動的なスケーリングなど様々なタイプのスケーリングに対応しています。

また、**LifeCycleHook**と呼ばれるEC2 AutoScalingの機能を利用してスケールイン/スケールアウト時の前処理をキックすることも可能です。
実装例はこの記事に記載しますが、LifeCycleHookに関する説明は下記のリンク先に記載されています。
https://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/lifecycle-hooks.html

元記事を表示

AWS Athenaで、WAFのcountログが絞り込めなくて苦戦した件

##はじめに
– WAFでBLOCK設定するために、BLOCKしてほしくないアクセスを絞り込むためCOUNT設定
– WAFのログを、S3にJsonで保存
– COUNTになったアクセスを調査するために、ログに対して、Athenaでaction=’COUNT’ なクエリを書いたら、結果が0件
– COUNTが無いってことはBLOCKをONにできるーと思ってたら、actionにCOUNTは出てこない模様
– しかし、nonterminatingmatchingrulesカラムから取得できるとのことで、設定
– 取得はできるようになったが、Mysqlのノリだけでは理解が甘く、WHERE文が通らなかったことの解決

##結論

“` sql:取得
SELECT
timestamp,
FROM_UNIXTIME(timestamp / 1000) as unixtime_to_timestamp,
nonterminatingmatchingrules,
FROM
“default”.”waflog2020″
CROSS JOIN
UNNEST(nonterminatin

元記事を表示

THIS BEHAVIOR MAY CHANGE IN A FUTURE VERSION OF CAPISTRANO. Please join the conversation here if this affects you. https://github.com/capistrano/capistrano/issues/1686のエラー解決例

#1.エラーの様子

まず、自動デプロイを設定し、実行コマンドを行いました。すると下記のようになりました。

“`ruby
Neverland:chat-space-kai kontatomoya$ bundle exec cap production deploy
#自動deployのコマンドを打ちました
#ここまでまでエラーなし(省略)

00:51 unicorn:start
unicorn is running…
unicorn restarting…
01 kill -s USR2 `cat /var/www/chat-space-kai/shared/tmp/pids/unicorn.pid`
✔ 01 ec2-user@13.112.68.204 0.609s
Skipping task `unicorn:restart’.
Capistrano tasks may only be invoked once. Since task `unicorn:restart’ was previously invoked, i

元記事を表示

実践Terraformを読んでハマったこと

[実践Terraform AWSにおけるシステム設計とベストプラクティス](https://nextpublishing.jp/book/10983.html)のコードを写経してみました。

感想は[こちら](https://qiita.com/1021ky@github/items/c9ac37fcda40ea8f03c6)
学びになったことは[こちら](https://qiita.com/1021ky@github/items/a1998c88e2a79f08fd28)

今回はやってみてハマったことについてです。

## 変数と文字列を混同する

Terraformにも型はあるため、そのようなミスはplan実行時に検出してもらえます。ただ、型さえ合えばplanは正常終了するため、
文字列の受け渡しについてはapplyの実行をしてはじめてエラーが発生して間違いがわかることちょこちょことありました。
以下はvpcのidを変数`aws_vpc.example.id`で参照しようとしたけど、クォートでくくってしまったために変数名の文字列が渡されてエラーになったときです。

“`bash

元記事を表示

Lambda Node.js8.10から10.xへの バージョンアップに伴うImageMagickの対応

# はじめに
今回、LambdaランタイムNode.js8.10のサポート終了に伴い、Node.js10.xへアップデートを行いました。
結構詰まった部分などが合ったので、その備忘録として残します。

## LambdaランタイムNode.js8.10のサポート終了について

以下、AWS公式より
スクリーンショット 2020-01-24 14.17.37.png
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/runtime-support-policy.html

2020/2/3を持ってLambdaのランタイムNode.js8.10の更新が終了します。
これに伴い、Node.js8.10で実装しているLambdaのランタイムを10.xにバージョンアップをしま

元記事を表示

【AWS】~/.ssh/configを使って、簡単にssh接続する

# 概要
AWSのサーバーにssh接続する際は、ご自身のディレクトリの配下に隠しファイル「.ssh」を作成し、その中にAWSの設定を書いておくと、毎回以下のようなものを書かなくて済みます。

“`bash:Terminal
ssh -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com
“`

# .sshディレクトリの作成と下準備
“`bash:Terminal
# 作業したいディレクトリかどうかを確認してください
[~@~ your_dir]$ pwd

# ディレクトリを作成します
[~@~ your_dir]$ mkdir .ssh

# cd .ssh と同義。「!$」は、直前行った引数を指すので、今回は「.ssh」を指す
[~@~ .ssh]$ cd !$

# aws.key, configファイルを作成します
[~@~ .ssh]$ touch aws.key && touch config
“`

# aws.keyとconfigファイルの作成と設定

①ディレクトリ

元記事を表示

Amazon S3 へ Amazon RDS のスナップショットをエクスポートできるようになったので、 AWS CLI で実行してみました。

以下の記事で発表があったとおり、Amazon S3 へ Amazon RDS のスナップショットをエクスポートできるようになりました。

★Announcing Amazon Relational Database Service (RDS) Snapshot Export to S3
https://aws.amazon.com/jp/about-aws/whats-new/2020/01/announcing-amazon-relational-database-service-snapshot-export-to-s3/

>You can analyze the exported data with other AWS services such as Amazon Athena, Amazon EMR, and Amazon SageMaker.
>
>エクスポートされたデータは、Amazon Athena、Amazon EMR、Amazon SageMakerなどの他のAWSサービスで分析できます。

ということは、例えば、分析用に ReadReplica を別途起動すると

元記事を表示

EC2で立ち上げたWordPressで.htaccessを使えるようにする方法

# はじめに
EC2にて「WordPress Certified by Bitnami and Automattic」のAMIを使用して、WordPressを立ち上げた際、.htaccessが効かなかったので、対処法の備忘録を残します

# 結果
httpd-app.confの11行目を「AllowOverride All」に変更すればOKです

# 変更手順
1. httpd-app.confをオープンする。見慣れない場所にあるので注意

“`bash

$ sudo vi /opt/bitnami/apps/wordpress/conf/httpd-app.conf




Options +MultiViews +FollowSymLinks
AllowOverride None


“`

2. AllowOverride Allに書き換え、保存

“`bash



元記事を表示

AWSのストレージにフラッシュコピー的な機能があるか聞かれた時の回答

# はじめに
以前、オンプレ(IBM)からクラウドへの移行を検討しているお客様との打ち合わせに参加した際、「AWSにもフラッシュコピー(ディスクのスナップショット)ってあるんだっけ?」と聞かれて、EBSのスナップショットがあるのは知っていたものの、それがフラッシュコピーと同じくオンラインで取れるかどうかが曖昧だったことを今になって急に思い出したので、備忘録がてら調べました。

# 結論としてはありました
[EBSのスナップショット](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/EBSSnapshots.html)

[よくある質問(EBSのFAQ)](https://aws.amazon.com/jp/ebs/faqs/)

>Q: スナップショットをとるために、ボリュームをアンマウントする必要がありますか?
>いいえ。スナップショットはボリュームがアタッチされ使用中の状態でもリアルタイムで実行できます。ただし、スナップショットは、お客様の Amazon EBS ボリュームに対して記述されたデータのみを捕捉します。

元記事を表示

【クラウド初心者向け】留守番電話4(録音した留守番電話を聴く)

# 概要
– Amazon Connectには留守番電話機能は無いため個別に作成する。
– 基本の考え方等は『[[Amazon Connect]営業時間外に着信したビジネスチャンスを失わないように留守番電話機能をつけてみた](https://dev.classmethod.jp/cloud/aws/amazon-connect-voice-mail-from-kinesis-video-stream/)』をもとにしています。
– S3でWebサイトをホスティングします。そこに留守番電話を聴くためのHTMLを配置します。
– Cognito(コグニート)を利用してkinesis Video StreamsデータをWAVに変換したデータが保存されているバケットへアクセス権を付与します。
– セキュリティには配慮していませんので、留守番電話を聴く画面にCoginito(コグニート)のキーを貼り付けて全世界に公開しています。

## 使用ユーザー
– IAMユーザー

## 手順

### Cognito(コグニート)による権限設定

1. AWSにサインインします。
1. アカウ

元記事を表示

OTHERカテゴリの最新記事