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

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

AWS Batchでスポットインスタンスを使ってハマった話

## 概要
AWS Batchで使用するコンピューティング環境でスポットインスタンスを使用する事ができます。これによってコスト削減が狙えるのですが、配分戦略で`BEST_FIT`を選ぶ際に指定する`スポットフリートロール`でめちゃくちゃハマりました。
具体的にはスポットフリートロールをドキュメントの通りに作成しても、エラーとなってスポットインスタンスリクエストが失敗しました。

`Linux/UNIX: The provided credentials do not have permission to create the service-linked role for EC2 Spot Instances.`

こんな感じです。ドキュメントの通りにロールを作ったのですが、それだと権限が足りないようです。検索して出てくる解決策もバラバラで、ようやく解決したので記録として残しておきます。

## 結論
– ロール作成で選ぶユースケースは [EC2 Spot Fleet Role]です。`arn:aws:iam::aws:policy/service-role/AmazonEC2Spot

元記事を表示

prefix listを作成し2つのAWSアカウントで共有する

## 概要
VPCでprefix listが利用できるようになったと聞いて…!

IPアドレスをまとめられるだけでなく、アカウント間での共有も可能という点に惹かれ
設定を試しました。

[Amazon Virtual Private Cloud (VPC) customers can now use their own Prefix Lists to simplify the configuration of security groups and route tables](https://aws.amazon.com/about-aws/whats-new/2020/06/amazon-virtual-private-cloud-customers-use-prefix-lists-simplify-configuration-security-groups-route-tables/?nc1=h_ls)

## 今回試すこと
– 自宅のIPアドレスを設定したprefix listを作成
– 作成したprefix listを2つのAWSアカウント間で共有する
– EC2のセキュ

元記事を表示

ECRを使ってみる

Amazon ECRを使ってみる。
環境はEC2(AmazonLinux2:t2.micro)。

##リポジトリ作成
マネジメントコンソール → サービス → ECS → レポジトリ で「レポジトリを作成」

レポジトリ名を入力
 名前空間を含めることができるとのことなので
 今回は sandbox/test-pj/web とする。

タグのイミュータビリティ
 有効にすると同じタグを上書きができなくなる。
 業務等でイメージのバージョンを確実に管理したい場合は
 有効にしたほうがよさそう。 

 # タグが上書きできてしまうとイメージの特定するには
 # ハッシュ値が必要になってしまう。

 一方、上書きできないとlatestのようなタグは
 使い勝手が著しく悪くなるのでどっちにするかは用途次第。

イメージスキャンの設定
 有効にするとプッシュ後も自動でイメージスキャンをしてくれる。
 

##AWS CLI のバージョンアップ
バージョンアップしておかないとdockerコマンドの認証まわりでエラーが出る可能性がある。
バージョンアップの仕方は[公式ドキュメント](
http

元記事を表示

EC2 Linux上でinodeが枯渇した際の対処法

# There appears to be insufficient space on your system to finish とエラーがでた!
とある日,会社のサービスが止まっていまい,原因の究明を行ったところ上記のエラーが発生して新規ファイルの作成ができなくなっていた.
そこでディスクのスペースを確認したところ空き容量は問題ないが,inodeが枯渇していることが判明.
ここに,この問題を対処した際の備忘録を残す.

### inode空き容量の確認
`df -i`コマンドでinodeの空き容量を調べる

“`
/dev/xvda1 217227 217227 217227 100% /
“`

確認すると使用率は100%になっている.
これでは新規ファイルの作成ができず,logを書き出したところでサービスが止まってしまう.

### ファイルシステムの確認
`df -T`コマンドでファイルシステムを確認する

“`
/dev/xvda1 ext4   略
“`

今回はext4であった.
ext4ではinodeテーブルのサイズを動的に変更は(多分)で

元記事を表示

AWS Cloud9においてPython用開発環境を整える (pip install & 時刻変更編)

# 目次
1. 概要
2. pip installについて
3. Cloud9上の環境においての時刻変更

# 1. 概要
「[Amazon EC2 インスタンスにAWS Cloud9開発環境を作成する](https://qiita.com/Q-Yeah/items/59af569083f0f4b3c1ef)」において、
Cloud9の環境構築方法について説明したが、より細かいpython環境を整えるための方法を説明する.
今回は、python用moduleを入れる方法 (pip install)と、Cloud9側の時刻環境を変更する方法について説明を行う.

# 2. pip install
pythonを使うとなると、pip installなどで使いたいModuleを入れたくなる.
その方法についてまとめる.

## 2-1. Cloud9環境を作成する
Cloud9環境を作成していない人は、[Amazon EC2 インスタンスにAWS Cloud9開発環境を作成する](https://qiita.com/Q-Yeah/items/59af569083f0f4b3c1ef)を参考

元記事を表示

AWSプロダクト1行まとめ(を取得する)

# tl;dr
* AWSのプロダクトが色々ありすぎて、正直フォローしきれない
* 年に1度くらいQiitaに上がるAWSサービス3行まとめ記事を読むけど、3歩歩いたら忘れてしまう
* Qiitaの記事待ちじゃなくて、その時々で最新の情報をサクッと把握したい

# やり方
* 下記のシェルスクリプトを実行する。

“`bash
curl -s “https://aws.amazon.com/jp/products/” | awk ‘f==1{f=0;gsub(/ {2,}/,””,$0);split($0,s,”“);gsub(/<[^>]*>/,””,s[1]);gsub(/<[^>]*>/,””,s[2]);if(length(s[2])){print ” *”s[1]”: “s[2]}}/lb-content-item/{f=1}/lb-trigger /{gsub(/ {2,}/,””,$0);gsub(/<[^>]*>/,””,$0);sub(/^ /,”* “,$0);print $0}’ | sed -E “s:amp;::g” | sed -E “s:

元記事を表示

Amazon EC2 インスタンスにAWS Cloud9開発環境を作成する

# 目次
1. 概要
2. AWS Cloud9を立ち上げる
3. AWS Cloud9でPythonを使ってみる

# 1. 概要
開発環境が欲しいけど、いちいちServerの設定をするのが面倒ですよね。。
そんなあなたに便利なのが、AWS Cloud9です。

Serverの設定なしで、いきなりコードを書き始められます!

参照 : [AWS Cloud9](https://aws.amazon.com/jp/cloud9/)
>AWS Cloud9 は、ブラウザのみでコードを記述、実行、デバッグできるクラウドベースの統合開発環境 (IDE) です。
これには、コードエディタ、デバッガー、ターミナルが含まれています。Cloud9 には、JavaScript、Python、PHP などの一般的なプログラム言語に不可欠なツールがあらかじめパッケージ化されているため、新しいプロジェクトを開始するためにファイルをインストールしたり、開発マシンを設定したりする必要はありません。

Screen Shot 2020-07-09 at 23.18.5</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Python</div>
<div class='tag-cloud-link'>AWS</div>
<div class='tag-cloud-link'>IDE</div>
<div class='tag-cloud-link'>cloud9</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/Q-Yeah/items/59af569083f0f4b3c1ef'>元記事を表示</a></div>
<h3 id=AWS WAF+CloudFront+S3でIPアドレス制限するときはIPv6 Enabledを確認しよう

# 発生した事象

VPNからのみアクセスしたいS3をhttps付きで用意したいと思い、AWS WAF+CloudFront+S3の構成を用意
WAFのWeb ACLのRulesでIPアドレス制限のルールを設定した
が、何故かそのルールに引っかからずIPアドレス制限ができなかった

# 起こっていた理由

– CloudFrontがIPv6 Enabled:true
– PCや家のネットワークがIPv6を利用するようになっている
– IPアドレス制限をIPv4でやる
– VPNはIPv4アドレスのみ払い出されていた

という設定・環境だった

→IPv6でリクエストが飛んでIPv4のIPアドレス制限にひっかからない、という状態になっていた

# 対策

– CloudFrontのIPv6 Enabledを無効化する

以上です
*VPNのIPv6アドレスがあるならそれを設定するべきな気もします

元記事を表示

IAMで副作用なくリージョン縛りをする方法

## やりたいこと
IAMでリージョン縛りをする(特定のリージョンから来たリクエスト以外は弾く)ポリシーを書く方法。
素でやるとCloudFrontやIAM自身のようなグローバルサービスも「東京以外」扱いで弾かれてしまうので、それを回避する必要がある。

## NGパターン
– 以下のようなポリシーを書きたくなるが、これは失敗する(正確には、縛りは利くのだがIAM、CloudFront、Route53といったグローバルサービスも共倒れになる)。グローバルサービスのエンドポイントが北バージニア(us-east-1)に存在することが原因。

“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “DenyAllActionsNotFromTokyo”,
“Effect”: “Deny”,
“Action”: “*”,
“Resource”: “*”,
“Condition”:

元記事を表示

【AWS】 CircleCI/CD 自動デプロイでハマったエラーの解消【Capistrano 】

Railsで作成したポートフォリオをAWS EC2にデプロイし、最終段階でCicleCIによるCD(自動デプロイ)を導入していて、大きくハマった点があった為、備忘録かつ誰かの一助になればと思い、記します(理解が誤っている場合がありますので、修正があれば都度修正します)。

自動デプロイの記事について、先人の記事を見ながら実装を進めていたのですが、ssh keysのインストールはできており、最終段階の「Capistrano deploy」で以下のようなエラーがおき、長らくハマっていました。

スクリーンショット 2020-07-04 18.48.16.png

##Net::SSH::AuthenticationFailed: Authentication failed for user エラー

文面からSSH

元記事を表示

AWS 無料アカウントの作成方法

# 目次
1. 概要
2. AWS 無料対象のサービス
3. AWSアカウント作成

# 1. 概要
AWSには無料利用枠があり、AWS のプラットフォーム、製品、サービスを無料で実際に体験できます。
ここでは、AWSの無料アカウント作成方法を記載します。

# 2. AWS 無料対象のサービス
無料対象には3つの種類があります。

|項目 |無期間無料 |12ヶ月無料 |トライアル |
|:————————:|:—————–:|:——————:|:———————:|
|有効期限 |なし |12ヶ月 |サービス毎に異なる |
|有効期限開始 |なし |AWSアカウント作成日 |トライアルサービス開始

元記事を表示

AWSをゼロから勉強する。vol.0

7/9
これから1日10分でも毎日勉強して
AWSについての理解を深めていく様をメモとして残していきます。
同じ境遇の人は、気軽に声かけてもらえると嬉しいです。
お互いに情報共有しあえたら最高です。

勉強に使う参考書
「Amazon Web Service クラウドサーバ構築ガイド ~コストを削減する導入・実装・運用ノウハウ~」

元記事を表示

AWSコンソールにログインするためのMFA(多要素認証)をAWS CLIで無効化する

MFAデバイスを失ってAWSコンソールにログインできなくなってしまった!そんなとき、AWS CLIが使えて権限さえついていれば自分自身でMFAを無効化できる。

“`
aws iam list-mfa-devices –user-name {ユーザー名}
“`

ここで表示される`SerialNumber`(`arn:aws:iam::***:mfa/***`)を控えておいて、

“`
aws iam deactivate-mfa-device –user-name {ユーザー名} –serial-number {シリアルナンバー}
“`

以上でもうログインできるようになっている。

元記事を表示

AMIとsnapshotによるバックアップと復元

初心者向けの内容です。
AWS初学者の方の一助になれば幸いです。

AMI(Amazon Machine Image)とsnapshotを利用して、
インスタンスのバックアップと復元をする方法をまとめさせていただきます。

# AMIとsnapshotの違い
AMI(あみ)はストレージ部分も含んだバックアップ、snapshotはストレージ部分のみのバックアップ、という差があります。

snapshotは、既に存在しているインスタンスに対しアタッチしすることで使用可能な状態になります。
しかし、AMIは取得したAMIをそのまま起動することでインスタンスとして使用可能な状態へと復元ができます。

そのあたりの違いを確認していければ良いなと思います。

また、AMIもsnapshotも静止点確保が推奨要件のため、可能であればインスタンスを停止したいですね。
どうしてもインスタンスの停止が難しい場合は、データ処理の少ない時間帯を選び、双方のデータ齟齬が少なくなるようにすると良いとのことです。

# AMIでのバックアップと復元
AMIを利用してバックアップを取得し、インスタンスとして使用可能な

元記事を表示

AWS EC2 未経験エンジニアがデプロイするまでにハマり&解決法 MYSQLの設定編➀

参考にさせていただいた記事 
https://qiita.com/naoki_mochizuki/items/f795fe3e661a3349a7ce

###➀MYsqlの設定について
まず当たり前ですがAWSのサーバー内でMYSQLにログインして、作業をしていく必要があります。
この記事でいえば
“`
[naoki|mumu]$ sudo service mysqld start
“`
これを実行して、hogehogeみたいな。
でも実行結果は
“`
Redirecting to /bin/systemctl start mysqld.service
Failed to start mysqld.service: Unit not found.
“`

なにこれ(困惑)

ちなみに正しい場合は
“`
Redirecting to /bin/systemctl start mysqld.service
“`
だけが表示される状態です。
###解決方法
正解は僕の知る限り2パターン
####➀MySQL5.7の導入
####➁Amazon linux 2ではなく、Amazo

元記事を表示

AWS SNSが重複してメッセージを配信してしまう

よくAWSに触れるものです。

AWS SNSでちょっとハマりました。

# 問題
AWS SNSからlambda経由で何故かメッセージの送信に成功しているのに重複してメッセージが送られてきます。

そもそもSNSからlambdaに対して重複して配信しているようでした。

配信再試行ポリシーの“`numRetries“`を0にしても解決しません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/249038/ffa81572-9d55-109b-f790-95539a3420f6.png)

# 解決
lambdaで処理を終える際にresponseメッセージで成功ステータスを送る必要がありました。
(以下はpythonですが、他の言語も同様)

~~~python
##lambda関数内

def main()

return {
‘statusCode’: 200
}
~~~

以上で重複配信がなくなります。

元記事を表示

AWSのCentOS8公式イメージ

# 公式イメージ

CentOS 8でEC2インスタンスを作成しようと、AWS MarketplaceからCentOS 8で検索すると、ずらずらっといくつかAMIが表示されるものの、公式イメージが出てきませんでした。

まだ、公式イメージは提供されてへんのかいな…と途方に暮れかけていたところ以下のページを発見。

https://wiki.centos.org/Cloud/AWS

AMIの画面からインスタンスを作成したいリージョンのAMI IDを入力して検索すると出てきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527863/0db6b1ea-6300-9b07-1c1b-2e094dc4d3dc.png)

例えば東京リージョンであれば、ap-northeast1なので、「ami-089a156ea4f52a0a3」で検索

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/5

元記事を表示

Redash で google login を有効にする方法。権限変更のためのmanage.pyが動かない時の代替案

# これは何
自分で`AWS`で提供されているAMIを使ってインストールした場合、google loginはデフォルトで無効になっていた。
最初はRedash独自の認証機構を使っていたが以下の問題があった。

* 社内のRedashユーザが退職したケースに対応が面倒。毎回忘れずにユーザ削除をしないといけない
* 多要素認証がない

Redash は google login を使えるので、導入して上記問題を解決したい。

Redash とは?というのは、他にもたくさん情報があるので割愛します。https://redash.io/
よく`Re:dash`と表記されているのでそれが正式名称なのかな?と思いましたが、公式サイトだと`Redash`の表記になっていたのでこの記事ではその表記に合わせます。

# google login を入れた時に考えられる問題点

社内ドメインのアドレスのユーザだったら誰でもログインできる?

* google login を有効にして、許可するドメインをかくと、そのドメインをもつメールアドレスのユーザが誰でもログインしてRedashを使ってQueryを書

元記事を表示

【AWS】Wordpress「返答が正しいJSONレスポンスではありません」の対処法

#現象
Amazon LinuxインスタンスでWordpressをたてた。その際パーマリンクを基本→投稿名に変更して記事を投稿しようとするも、「返答が正しいJSONレスポンスではありません」とエラーが出て投稿できない&トップページ以外が表示できなくなってしまった。
スクリーンショット 2020-07-09 10.48.58.png

[wordpress返答が正しいJSONレスポンスではありません](https://tuku-tano.com/index.php/2019/12/11/wordpress/apache2permanentlink/)
上記記事でapache設定が原因とわかった。

“`
sudo vi /etc/apache2/apache2.conf
“`

記事の通り上記コマンドで設定フ

元記事を表示

AWS SESでテストメールを送信すると「Email address is not verified」になる

AWS SESを使い、Domainの登録を済ませいざテストメールを自分のgmailアドレスにでも送ろうかと思ったらタイトルのエラーが出た。

## 原因
SESは最初の時点ではSandboxモードになっており、送信先が制限されていることが原因だった!
Sandboxモードの時点では「送信元(From)」と「送信先(To)」は同じである必要がある、あるいは「EmailAdress」タブにて登録済みであるアドレスにしか送れない。

![20191119125820.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55603/585bf3a4-0732-fa5a-06c5-3ae9d68aa48a.png)

上のとおり、FromとToを揃えたらエラーなく送信できた。

## 解決策
それは良いとしてSandboxを解除して、普通に使用したい場合。
左側のメニューより、「Sending Statistics」の画面に行くと「Reaquest a Sending License Limit In

元記事を表示

OTHERカテゴリの最新記事