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

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

【AWS】EC2でssh接続する際のユーザー名の備忘録

#ssh接続できない…
EC2でのssh接続をしようとした所、以下のメッセージが出てログインができなかった。

“`
$ ssh -i ~/hoge/hoge.pem ec2-user@xx.xxx.xxx.xxx
The authenticity of host ‘xx.xxx.xxx.xxx (xx.xxx.xxx.xxx)’ can’t be established.
ECDSA key fingerprint is hoge
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘xx.xxx.xxx.xxx’ (ECDSA) to the list of known hosts.
ec2-user@xx.xxx.xxx.xxx: Permission denied (publickey).
“`
鍵はあっているし、いつもと違うAMIを使用しているからユーザー名が違うのかと思い調べると、ユーザー名はAMI毎に違うようだ。本稿では備忘録としてAMI毎のユ

元記事を表示

AWS Athenaを使ってcsvファイル内のデータを解析してみた

![athena](https://core-tech.jp/wp/wp-content/uploads/2017/04/amazon-athena-cover.png)
こんにちは!
仕事でLambdaを使っているんですが、S3内のCSVの中身をさくっとクエリできちゃうAthenaのことを知ったので興味を持って調べてみました。この記事ではLambdaを使ってS3の中にあるCSVデータをクエリできるところまで持っていきます。実装はTypescriptで行います。

## まずは仕組みをさくっと。
仕組みとしては単純で、AWS Glueに依存した仕組みです。GlueはAWSやJDBC準拠のソースに保存されたデータをクエリできるシステムなのですが、それをするには事前にDataCatalogを作成し、クエリするためのテーブル定義やスキーマ情報などのメタデータを格納しておきます。
Athenaでは、クエリの対象とするデータを格納するS3内のフォルダのパスを指定し、諸設定を行うと自動的にAWS Glueに新しいデータテーブルを生成してくれます。データテーブルのスキーマ情報は基本的にここで手動で書

元記事を表示

[AWS][AmazonLinux]docker-composeでディスク容量不足のエラー分析

##背景
コンテナを起動しようとしたところ怒られた

“`docker:
# docker-compose up
ERROR: failed to register layer: Error processing tar file(exit status 1): write /usr/sbin/mysqld: no space left on device
“`

どうやらデバイスに容量がないらしい

##原因分析
全ファイルシステムの空き容量を見る
dfコマンド・・・パーティションサイズ、空き容量をパーティションごとに表示する

“`bash:
# df -h
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 485220 0 485220 0% /dev
tmpfs 503468 0 503468 0% /dev/shm
tmpfs 503468 704 5027

元記事を表示

[AWS]Amazon linuxでディスク容量を拡張する方法

##大きな流れ
①AWSのEC2 コンソールからボリュームサイズを拡張
②Amazon Linux内のディスク容量(パーティション)を拡張

#①AWSのEC2 コンソールからボリュームサイズを拡張
EC2のインスタンス→ボリューム→アクション→ボリュームの変更
私の場合指定のボリュームサイズを8GB→12Gbにした。

参考
EBS ボリュームの変更をリクエストする
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/requesting-ebs-volume-modifications.html

#②Amazon Linux内のディスク容量(パーティション)を拡張
lsblkコマンドで①の設定が反映されていることを確認

“`bash:
# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0 0 12G 0 disk
┗xvda1  202:1 0 8G 0 part
“`


xvda・・・デバイス名

元記事を表示

全Lambdaからコードをzipダウンロードしてきて、zipのままキーワード検索する

# これはなに?
全Lambdaからコードをzipダウンロードしてきて、zipのまま検索しました。

– ① 全Lambdaからコードをダウンロード
– ② zipのまま検索(zipgrep使用)

の2つの手順で行います。

## 利用ケース
リポジトリ管理していない直書Lambdaなどが大量に存在するカオスな検証アカウントで特定キーワードを含むLambdaがないか調査するときに使用。
カオスなアカウントが出来上がらないようにするのがいいとは思うのですが、古の闇に手を突っ込む機会に恵まれました。

# ① 全Lambdaからコードをダウンロード

**nemani/download_all_lambda_functions.sh**
https://gist.github.com/nemani/defdde356b6678352bcd4af69b7fe529

これを使います。

## 前提条件
・wgetが必要
・cliのアウトプットをtextにしておく
・bashつかわないとだめかも
・中でaws clilつかっているのでプロファイルなどは設定しておく

## 使用中
・”

元記事を表示

route53 最新版 レコード作成画面

現在ポートフォリオ等のために 初めてRoute53を
触る人用の設定案内です。

あまり2020年10月現在の最新バージョンの
レコード作成画面を載せている人がいなくて とまどったので
誰かのために載せておきます。

##レコード作成画面

これは単純にシンプルルーティングでいいと思います。

![246d994571f2690802c0d45cce166745.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682942/dd23dd07-e35f-53a4-ce10-390a9125a5b8.png)

次に シンプルなレコードを作成 の画面

レコード名は お名前.com 等でドメインをとっている人は空白でいいと思います。

![fb0e53e6e793b794bad53cb0eaa83153.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682942/2f3589d1-160e-7

元記事を表示

スイッチロール先S3バケットポリシーの設定

AWSアカウント【1】のログインから、AWSアカウント【2】へスイッチロール後、AWSアカウント【2】のS3バケットへアクセスしたい場合の、S3バケットポリシーの記述方法

> **AWSアカウント【1】ログイン**
> ↓
> スイッチロール
> ↓
> **AWSアカウント【2】目的のS3バケット**

## IAMロールIDを取得

スイッチロール先であるAWSアカウント【2】の認証情報で、AWSコマンドを実行

“`shell:AWSコマンド
$ aws iam get-role –role-name 【スイッチするロール名】
“`

“`json:実行結果例
{
“Role”: {
“AssumeRolePolicyDocument”: {
“Version”: “2012-10-17”,
“Statement”: [
{
“Action”: “sts:AssumeRole”,
“Eff

元記事を表示

AWSマネジメントコンソールにショートカットキーが欲しい!よし作ろう!

# 概要
AWSマネジメントコンソールで、S3を開いて、EC2開いて、VPC開いて、IAM開いて、次またEC2開いて、、、、
マウスの移動が煩わしい!!ショートカットキーが欲しい!!!!という切なる思いで作りました。

# 3行まとめ
– Chrome拡張機能の「ScriptAutoRunner」を使ってます。
– 左Ctrl + m を押すと、左上の「サービス」をクリックするという挙動です。
– ただそれだけです。

# 手順
1. Chrome拡張を入れる
[ScriptAutoRunner](https://chrome.google.com/webstore/detail/scriptautorunner/gpgjofmpmjjopcogjgdldidobhmjmdbm?hl=ja-jp)をChromeにインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41763/42ad2578-5861-1796-e30b-97b87be1456c.png)

2. Chr

元記事を表示

RDSにORM使ったけどモヤモヤが止まらないのでぜんぶ吐き出す!!!

 転職活動で**バックエンドも出来るぜ!アピール**としてポートフェリオぽいの作った方が良いかもね・・?という事で、こんなリポジトリ作ってたわけなんですけど、コード書いてて気づいた事つらつらと書きます。

 何時もの奔放な個人開発じゃなく、気づき、ハマりのQiitaらしいアウトプットってことで。ちゃんと調べて書けーって怒られそうな気もするけどw

## ORMの仕様とか親切で大惨事になるかも・・?

 今回Goの代表的なORMである**gorm**を使いましたが、**Delete**投げる時に消す情報を先に取得しないまま、動かすと**テーブル内のレコードすべてが消える**のが仕様らしいんです!

“`
jsonData.Id = Ids
DBMS.F

元記事を表示

【0からAWSに挑戦】AmazonRDSとELBを導入する

# 背景
未経験から自社開発系企業の就職を目指します。良質なポートフォリオ作成のためAWSを勉強することにしました。

現状の知識レベルとしては、Ruby on railsを使って簡単なアプリケーション開発、gitを使ったバージョン管理、herokuを使ってデプロイできるレベルです。自分の忘備録かつ、同じくらいのレベルでこれからAWSに挑戦してみようと思っている方に向けて少しでも役に立てればと思います。

# 最終目標
既存のEC2・VPCのみで動いているアプリケーションをRDS(mysql)とELBを使って動かすこと。

↓↓↓↓関連記事はこちら↓↓↓↓
[EC2とVPCを使ってRailsアプリをAWSにデプロイする part1](https://qiita.com/shu1124/items/4a0337f3d9fa9227a705)
[EC2とVPCを使ってRailsアプリをAWSにデプロイする part2](https://qiita.com/shu1124/items/d8d4feafcd689e40d316)
[EC2とVPCを使ってRailsアプリをAWSにデプロイする 

元記事を表示

俺でもわかるALB Listener Rule HTTP Header:X-Forwarded-For判定

俺です。

特定IP(proxyなど)だけTarget-Bという次期リリースのBackend向けたい。
安全にリリースするために事前チェックしたい。というニーズがあるとおもいます。

GETメインなウェッブサービスにおいてCDNを使うのはマナーかつ呼吸ってばっちゃが言ってましたが
以下のような構成のウェッブサービスがあったとき、

User App-> CDN(CF) -> ALB -> Target

ALB Listener RuleのIP判定ではCDNなどを挟んでいると判定に使えないので、[ドキュメント](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#rule-condition-types) にもある通り http-headerを使えば世界平和という話です

実際に試すときはこんなかんじで、X-Fowarded-Forに特定IPが含まれている場合.
というルールを作ればよいです。

“`
[
{
“Field”:

元記事を表示

AWS 全リージョンの (ほぼ)全リソースをリストアップするシェルスクリプト

各リージョンの各サービスを個別に確認しなくても、全てのリソースをリストアップすることができます。

[AWSアカウント解約時](https://aws.amazon.com/jp/premiumsupport/knowledge-center/close-aws-account/?nc1=h_ls)に、不要なアクティブリソースが残っていないかの確認にも役立つかもしれません。

> AWS アカウントを解約したときに、アクティブなリソースがすべて自動的に終了されるとは限りません。アカウントを解約する前に、アクティブなリソースがあるかどうかを確認し、それらを終了することがベストプラクティスです。

 
# スクリプト
“`shell:get-resources.sh
for region in `aws ec2 describe-regions –query ‘Regions[].RegionName’ –region us-west-1 –output text`
do
echo “region = ${region}”
aws resourcegroupsta

元記事を表示

ffmpeg-aws-lambda-layerでffmpegやffprobeを使う

# ffmpeg-aws-lambda-layerでffmpegやffprobeを使う

## はじめに
動画のフォーマットやサイズ変更、サムネイルの生成に便利な ffmpegの実行環境を AWS Lambda関数とレイヤーをつかって構築する手順を記載します。
ここでは、[ffmpeg-aws-lambda-layer](https://github.com/serverlesspub/ffmpeg-aws-lambda-layer)を使用します。Lambda関数とは別にffmpegやffprobeを含む[AWS Lambda レイヤー](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-layers.html)を作成することで、これらのコマンドがLambda関数実行環境の /opt 以下に呼び出されます。デプロイパッケージにコマンド実行用のバイナリを含めることなくライブラリのように呼び出すことができます。

[Amazon Elastic Transcoder](https://aws.amazon.co

元記事を表示

IPアドレスやEC2のアドレスではサイトに入れるのに、独自ドメインでは「応答時間が長すぎます。」となってしまう現象の解決。

###環境
Mac
EC2
ELB
Route53
ACM(https化)
Amazon Linux2
unicorn
Nginx
Capistrano

# 突然独自ドメインのサイトに入れなくなった!
##発端
今まで普通に表示できていた開発中のhttps://<独自ドメイン>のサイトが突然表示されなくなり、応答時間が長すぎます。という画面で止まってしまう。
##確認
まず原因がサーバーなのか、ドメインなのか、ブラウザなのかなど特定する必要があります。

①→サーバー(EC2)が起動しているか確認
AWS EC2のインスタンスに記載されているパブリック IPv4 アドレスパブリック IPv4 DNSで表示できるか試したところここでは表示されるので、サーバーやブラウザの問題ではなく、ドメインの通し方だけが問題だとわかる。

②→ターミナルで、% dig ○○.com(←独自ドメイン) あるいは % dig ns ○○.comを入れてANSERが返るか確認すると、ANSERが返ってきているので、ドメイン発行元は問題な

元記事を表示

CognitoのAccessTokenを取得

# 背景
Cognitoでは、AccessToken、IDToken、RefreshTokenを取得できる。ここでサーバ側でAccessTokenの中身を使用してセッション管理に利用することができないか?

# 実装

### Cognito User Poolでユーザを作成する。
作成画面については別途サーバで構築した管理画面で実施
(APIGateway+Lambdaと S3に設置したViewでもOK:サーバレスで作成すると恐らく月額数円)

### UserPoolでランクの属性を追加
![スクリーンショット 2020-02-03 17.54.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/79473/6cd55f5e-e080-f7c2-76f2-04665747306b.png)

### 認証が行われると3つのトークンが払い出される。今回はIDトークンを使用してセッション管理を行う。

|トークン名 |内容 |
|—|—|
|IDトークン |name,emailなど認証され

元記事を表示

AWS CodeCommitをCloud9で使用する

AWS Cloud9からCodeCommitを使用する手順を紹介します。
CodeCommitはsshではなくhttps接続を使用します。https接続だと、当然ですが公開鍵の生成、登録が必要ありませんので、設定はその分容易です。
前提条件としてIAMユーザーに「AWSCodeCommitFullAccess」が割り当てられているものとします。

##1. CodeCommit上でリポジトリの作成
・「リポジトリを作成」からリモートリポジトリを作成
・リポジトリ名を指定して「作成」
![rp1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260594/54b0205e-3384-316e-ee47-fd79b37fadeb.png)
これでAWS CodeCommit上にリポジトリが作成されました。

##2. Git認証情報の作成
・IAM ダッシュボード→ユーザー→該当ユーザーを選択
・認証情報タブの「AWS CodeCommit の HTTPS Git 認証情報」で「認証情報を生成」
 ![rp

元記事を表示

AWS WAFを導入してみた

## はじめに
WAFを構成する要素として、「Web ACLs」「Rules」「Associated AWS resources」があります。これはIAMの考え方と似ていて、

* Web ACLs = IAM Group
* Rules = IAM Policy
* Associated AWS resources = IAM User

というイメージを持つとわかりやすいでしょう。
つまり「Web ACLs」という箱を作り、そこにアクセスの可否を制御する「Rules」を設定し、そこに対象となるAWSリソース(ALB or CloudFront)を紐付けることになります。

## 作成
それでは実際に作っていきます。
### Web ACLsの作成&リソースの関連付け(Describe web ACL and associate it to AWS resources)

1. AWSのコンソールから、「WAF&Shield」を選択
1. 左サイドバーの「Web ACLs」を選択 > 「Create WebACL」を選択

#### Web ACL details
まずはルールやリソ

元記事を表示

取得したドメインをRoute53にて管理する方法

## はじめに

取得したDomainをRoute53で管理する方法を記載します。
補足としてRoute53について簡単に説明。

Route53は権威DNSです。
権威DNSって何?という方はググるともっと分かりやすい情報がでてくるかもしれませんが簡単に言うと、
保持しているドメインの名前解決をしてくれるDNSのことです。
そのため保持していないドメイン以外の名前解決は行ってくれないので、その場合にはキャッシュDNSを別に用意する必要があります。

## Domainの取得とRoute53への登録

どこでもいいんですが、ほとんど検証利用しかしないので1年以上使うことが私はないのでFreenomを使います。
Freenomとは、無料(1年間)でドメインを取得できる海外のサービスですので、検証利用などで有効活用できます。
Freenomeで勿論ドメイン管理することはできるのですが、あえてRoute53に管理させたいと思います。

1) [Freenom](https://www.freenom.com/ja/index.html)にアクセスし、アカウントを作成します。
2) アカウント

元記事を表示

cliでs3を操作してみる(mac)

cliでs3を操作(バケットの作成やアップロード、ダウンロードなど)できるように設定をしていくつか実行してみます。

#s3とは
s3とはamazon web serviceが提供してくれるオンラインストレージである。
dropboxに似ているものです。

#前提
* Homebrewをインストールしていること → [こちらを参考にしました](https://qiita.com/zaburo/items/29fe23c1ceb6056109fd)
* awsのアカウントを作成していること

#まず、awscliをインストールする

$ brew install awscli

を実行することでcliからawsを操作できるようになります。

#次に、awsに接続する

$ aws configure
AWS Access Key ID [None]: ‘アクセスキー’
AWS Secret Access Key [None]: ‘シークレットキー’
Default region name [None]: ‘設定したregion(東京だと”ap-n

元記事を表示

DNSの仕組みとAWSのRoute53について簡単にまとめた

AWSのRoute53を触った時に、DNSについて改めてしっかり学びなおしたのでそのメモ。

参考にした記事は以下
https://wa3.i-3-i.info/word1288.html
## DNSの構成要素

まずDNSサーバーは複数ある。
– フルサービスリゾルバ(DNSキャッシュサーバ)
– 権威サーバ

フルサービスリゾルバは、PCが問い合わせするサーバ。
なんとしてでもIPアドレスに関する情報を解決してくれるサーバである。
問い合わせた情報の結果はキャッシュで持ち、無駄な問い合わせを少なくするようにしてる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182163/43ddaa41-b494-dcac-9dd6-d469e1ea4981.png)

権威サーバは、フルサービスリゾルバがアクセスする先のサーバ。
問い合わせに対する動作は以下の3つ
1. 自分の管理している情報にドメイン名とIPアドレスの対応が書いてあればそれを教えてあげる
2. 自分では管理していないけど

元記事を表示

OTHERカテゴリの最新記事