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

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

AWS WorkSpaces が使っている IP リスト

AWS WorkSpace が利用している IP レンジが 2020/4/20 から増える(た)。

Starting on April 20, 2020, Amazon WorkSpaces will use an expanded list of Amazon EC2 public IP address ranges for its PCoIP gateway servers.

## Asia Pacific (Tokyo)
18.180.178.0 – 18.180.178.255
18.180.180.0 – 18.180.181.255
54.250.251.0 – 54.250.251.255

## US East (N. Virginia)
3.217.228.0 – 3.217.231.255
52.23.61.0 – 52.23.62.255

## US West (Oregon)
44.234.54.0 – 44.234.55.255
54.244.46.0 – 54.244.47.255

## Asia Pacific (Seoul)
3.34.37.0

元記事を表示

AWS CodeBuild でビルドの成功率が下がったとき

##CodeBuildでビルドするときに、なぜかビルドに成功する確率が低くなりました。

同じコードで成功するときと失敗するときがあり、
失敗する確率が高くなって、時間のロスを感じましたが、

対処法を明記します。

とても簡単です。

CodeBuildのビルドは、同時にいくつでも実行可能なので、
ビルド作業を繰り返して、同時に5個~10個くらいビルドすれば、
どれかのビルドは成功します。

それでオッケーです。

同時にビルドするとこんな感じです。
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531595/b98cc5ee-3285-136f-0a8b-6c7887227775.png)

明確な原因が分かる人いたら教えてください。

元記事を表示

Github ActionsでAWS Lambda用のコマンドをBuildする

AWS Lambda で Python や Node のスクリプトを書いていると、「あー、この Linux コマンド使えたら便利なのに」と思うときが時々あります。

そういうときに、便利なBuild用Dockerコンテナを先日作成しました。

→ [AWS Lambda で実行できるコマンドを作成する環境を作ってみた](https://qiita.com/qualitia_cdev/items/4aebb1e22be9afab0a16)

今回は、これをgithub actionsにして公開してみたので、その使い方をご紹介します。

https://github.com/marketplace/actions/aws-lambda-build-and-pack

## Buildスクリプトの作成

今回もAWS Lambda上でdigコマンドを動かしてみたいと思います。

### デフォルトのディレクトリ構造

“`
.
|– src
| `– build.sh
|– output
`– .github
`– workflows
`– build.ya

元記事を表示

個人でAWSのアカウントを作成してみた

直近の業務で使ったことがあったので、試しにアカウントを作成してみました!

現場ではすでにIAMユーザまでが用意されている状態でしたので、
今回最初からの設定は初めて触るものでしたのでとても厄介でした。

なお、IAMの設定(のちに出る安全のためにやること全部やるとこ)まで実施しています。
被害出ているようなので念のため。

説明については省略します。
※公式での説明の通り実施したので…

感じたことや、注意する点について述べていこうと思います。

ここでは最初のユーザを作るまでですので、
AWSでお金はかかっておりません。

#事前に用意すべきもの
・スマートフォン(電話番号が割り振られているもの)
・クレジットカード
・複雑なパスワード3つ(できれば紙媒体で)

#アカウントについて

まず初めにここを読みながら登録していきます。
https://aws.amazon.com/jp/register-flow/
※基本全部入力必須と考えてよいです。

##AWS アカウントの作成

「AWS アカウント名」はのちにルートユーザ名で使いますので任意の文字列でよいです。
ここで

元記事を表示

SAML 認証による一時的な認証情報で boto3 を利用する

弊社では全社員が G Suite のアカウントを持っており、AWS マネジメントコンソールにアクセスする際は Google を Identity Provider として SAML 認証してシングルサインオン [^sso] をしている。この場合、STS の Assume Role という仕組み [^assume_role] を使って一時的な認証情報を入手し、フェデレーションユーザとしてマネジメントコンソールにアクセスすることになる。マネジメントコンソールにアクセスするために社員ごとに IAM ユーザを作成する必要がなくなるため、アカウント管理の手間が削減できる。

[^sso]: [G Suite アカウントを用いた AWS へのシングルサインオン | AWS Startup ブログ](https://aws.amazon.com/jp/blogs/startup/techblog-saml-gsuite/)
[^assume_role]: [IAMロール徹底理解 〜 AssumeRoleの正体 | Developers\.IO](https://dev.classmethod.jp/

元記事を表示

AWS初心者の自分でも、RailsアプリをAWS EC2にデプロイ成功できた方法

#はじめに
備忘録も兼ねて、RailsアプリをAWSにデプロイする手順をまとめました。筆者自身、ずっとデプロイをHerokuに頼り切っていたのもあり、そろそろHeroku以外の方法でデプロイをしてみたいなと思い、試みた次第です。
この記事では、非常に解説が丁寧な世界一丁寧なAWS解説シリーズベースにデプロイ作業を進めていき、途中で詰まった箇所をところどころ訂正していきます。概念などの詳しい説明は上記記事を見ていただくのが早いです。

なお、この記事では、コマンドは全てMacでの使用を想定しています。ご了承ください。
また、作業の過程で開発環境(local)でのコマンド操作と、EC2インスタンス内でのコマンド操作(remote)に分かれるので、ターミナルを2ウィンドウ用意しておくと捗るかと思います。

#1.ざっくりとした流れ
この記事では、AWSのRDSを利用せず、EC2インスタンスにDBのシステムそのものをインストールする方式を採用して

元記事を表示

AWS CodeStarを試してみる

# はじめに
あるプロジェクトで初めてLambdaの開発を行った。
Eclipseで開発していたが、AWSと連携するわけでもなく、ローカルでの修正のたびに、AWSにログインして手動で上書きするという流れでやっていた。(非常に非効率的)
CodeStarを活用することで上記が解消されるらしいので試してみる。

本資料は大まかに以下を行っています

– CodeStarでのプロジェクトの作成とローカルでの開発準備
– コードを編集し、アプリケーションの自動ビルド、自動デプロイを実行
– ユニットテストを追加して、自動テストを実行

# 前提
ルートユーザ、「AWSCodeStarFullAccess」管理ポリシーを持つユーザで実施してください。

# プロジェクトの作成
– 「プロジェクトを開始する」を押下
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/545707/bb42d1b2-b834-33fd-0b7f-10572bd3ee69.png)

– CodeStar用のサービスロールを作

元記事を表示

Node.jsのLambdaでPre-Signed URLを発行する

# Pre-Signed URL
S3はアクセス権を設定することで、誰でもファイルにアクセスできるようにしたり、できなくしたりが可能です。
Pre-Singed URLは誰でもファイルにアクセスできなくしているところに一時的にアクセスを許可することができます。
今回はこのPre-SingedをLamndaで発行してみたいと思います。

# S3
バケットを準備して非公開の設定にしておきます。
テスト用に1つ画像ファイルをアップロードしておきましょう。

# Lambda
今回はNode.jsでPre-Singed URLを発行します。
LambdaからS3にアクセスできるようにロールを設定しておきましょう。

## コード
バケット名、ファイルパスは適宜変更して下さい。

“`js:Lambda
const s3 = new AWS.S3()
const params = {
Bucket: ‘<バケット名>‘,
Key: ‘<ファイルパス>‘,
Expires: 100 // 期限(秒)
}

async function getPresignedUrl(){
re

元記事を表示

【AWS】Internal ALBをCFnで作成してみる

CloudFormationでInternal ALBを作成してみたので、備忘録として書いておきます。

# 構築するリソース

## 前提

– EC2は既に構築済み
– 証明書はACMで作成済み
– ALBでTLS終端
– 構築するALBはInternal

## リソース

– Internal ALB
– TargetGroup
– ターゲットはEC2インスタンス
– Listener
– HTTP (HTTPSへのリダイレクト)
– HTTPS
– SecurityGroup

# CFnテンプレート

“`yaml:alb.yml
AWSTemplateFormatVersion: “2010-09-09”
Parameters:
AlbName:
Type: String
VpcId:
Type: AWS::EC2::VPC::Id
TargetGroupName:
Type: String
SubnetId1:
Type: AWS::EC2::Su

元記事を表示

初めてのAWS①~AWSの基本を学ぶ~

##はじめに
 仕事でAWSを利用するということで、一通り基本的なことを勉強しました。1年間プログラミングスクールに通ってはいたものの、基本的なスキルしか学習していないため「クラウド」と聞いただけでやや拒否反応がありました。。
 が、そんなことも言ってられないので、自分なりに分かったことをまとめていきたいと思います。

##AWSとは
 まずはAWSの基本的なことをおさらいしたいと思います。

 AWSとは、大手会社Amazonが提供する「クラウドコンピューティングサービス」です。

 「クラウドコンピューティングシステム」とは、企業が活動する上で必要なサーバやメモリ、データベースなどをインターネット上で提供することで、インターネット上で簡単に仮想的なサーバなどを作ることができます。
 
 これにより、物理的なサーバや記憶媒体を準備する必要がなくなり、どのくらいの容量を確保するのか、初期費用に多額の資金が必要になる、などの不安を解消することができます。

 AWSは、クラウドサービスの中でも「クラウドコンピューティングのリーダーシップ」に位置付けられ、様々な開発環境で利用されているサー

元記事を表示

LambdaのオーソライザーでBASIC認証を追加する【言語不問】

[前回作成したサーバーレスLaravel](https://qiita.com/umihico/items/64fcf159f68ebd866170)ですが、BASIC認証を付与しようとしたら躓きました。
**API Gatewayを経由すると、`WWW-Authenticate`ヘッダーがx-amazn-remapped-www-authenticateに置き換えらます。その結果BASIC認証を求めるポップを表示できず無条件で`401 Unauthorized`エラーだけを表示するWEBになります。**

つまり問題はLambdaではなく、API Gatewayです。ALBでURLを設定すればこの問題はありません。ALB経由のLambdaを使ったサーバーレスLaravelのBASIC認証は通常のLaravelと同じです。[53eda06](https://github.com/umihico/laravel-demo/commit/53eda06)

API Gateway経由でもBASIC認証を導入するには以下のように変更します。

+ 別途新規のLambda関数を作成し、API

元記事を表示

rubyを使ってS3にデータをuploadしてみた

## S3にデータをuploadする
awsのathenaを使う為に、圧縮したファイルを該当のパーティション(フォルダ)にuploadする為のソースを書いてみた

## アップロードしたファイルのチェックについて
ファイルのサイズが5Mを超えると自動的にマルチパートのアップロードになってしまう。
5M以下なら、bucketの中からetagを取得して容易にチェックができるのだが、それ以上になるとbucket.etagでのチェックが出来なくなってしまう。
それでもマルチパートでのチェック方法はあるのだが、上手くいかなかったので、uploadしてバケットに登録されたファイルとuploadする前のファイルを比べてチェックすることにした。
(テストした結果、特に問題はなさそう)

“`
class call

ACCESS_KEY_ID = ‘asdfghjklzxcvbnm’
SECRET_ACCESS_KEY = ‘1234567890qwertyuiop’
REGION = “ap-northeast-1” # tokyo
BUCKET_NAME = “bucket_n

元記事を表示

Amazon Lightsailインスタンス内のMySQLに外部から接続する

AWSのセキュリティグループに頼り切りの人生なので、自分で設定するとなると怖かったです(感想)

# 前提
Lightsailでbitnami社のblueprintを使って構築したワードプレス環境に含まれているMySQLサーバに対して、インターネッツからアクセスしたい。

例えばDataStudioとかRedashとかでクエりたい時がきっとある。

もしくは個人のマシンから接続したいなど。

ちなみに今回はインスタンスは構築済みとします。

# 解決すべき問題と対処法
1. bitnamiイメージで構築されたワードプレス環境のMySQLは、デフォルトではlocalhostからのアクセスしか想定していない
– ローカルホスト以外から接続するためのユーザーを追加する
2. デフォルト状態では、Lightsailインスタンスは3306ポートへの通信を許可していない
– LightsailのGUIでファイアウォール設定を変える
3. LightsailインスタンスのファイアウォールはAWSのVPCセキュリティグループみたいに通信元・通信先を設定できない
– インスタンス

元記事を表示

【AWS】SSMを用いたシステム管理とデータ分析

# はじめに
この記事は、AWS Innovateの`[H-2] システム管理で使えるデータ分析ハンズオン:システム構成情報の収集と可視化`についての記事です。
SSMやQuickSightを利用してサーバレスなシステム管理・分析できる仕組みについてハンズオンを行います。
EC2等を新規で立ち上げる必要があるので、ハンズオン用のアカウントを取得する方がいいかもしれません。

## SSMとは
AWS Systems Managerの略です。

> AWS Systems Manager は、AWS でインフラストラクチャを表示および制御するために使用できる AWS のサービスです。Systems Manager コンソールを使用すると、複数の AWS のサービスのオペレーションデータを表示して、AWS リソース間でオペレーションタスクを自動化することができます。Systems Manager は、マネージドインスタンスをスキャンして、ポリシーの違反が検出された場合にはレポート (または是正策の措置) を行うことで、セキュリティを維持するのに役立ちます。

# ハンズオン開始
## IA

元記事を表示

CloudWatchアラームに定時ダウンタイム設定をいれる

# 1. はじめに
* あるEC2サーバで、毎日早朝に動くバッチのCPU使用率が高く、クリティカル通知で起こされるので、バッチの時間帯だけ CPU使用率クリティカル アラートの通知を止めたかった。
* CloudWatch アラームにダウンタイム機能は提供されていないので、CloudWatch イベントと Lambda で自作する。
* ここでいう「ダウンタイム設定」とは、何時から何時までの間はアラームアクションを無効にして、アラーム状態になっても通知を飛ばさないこと。

# 2. 概要
* この自作ダウンタイム設定では、CloudWatchアラーム名に空白があると動かないので、空白がある場合はあらかじめ空白をなくした名前に変更しておく。
* 例えば、「EC2 base CPU Utilization crit」を「EC2_base_CPU-Utilization_crit」 という感じにする。
* CloudWatch アラームの有効/無効化は、次のアクションを利用する。
* [EnableAlarmActions](https://docs.aws.amazon.com/ja_

元記事を表示

AWSアカウントの認証をGsuiteに統合するために

## はじめに

現在私が勤めている[Sassor](https://sassor.com)では、システムのインフラを主にAWSで構成しています。

プロジェクトを進めるうちに、コスト管理やセキュリティの観点から、プロジェクト毎にAWSアカウントを分けて運用するようになりました。そしてインフラを管理するメンバーがそこまで多くないこともあり、AWSアカウントを作るたびに、利用メンバーのアカウントをIAMユーザとしてそれぞれのAWSアカウントに作成していました。

しかし、気付けばAWSアカウントが2桁近くまで増えてきていたため、人が出入りがあると、アカウントの追加、削除にそれなりの時間がかかるようになっていました。今後のことも考えこの際、ユーザ管理方法を見直すことにしました。

SassorではすべてのメンバーにGsuiteアカウントを用意することになっていたので、GsuiteをIDプロバイダ、AWSをサービスプロバイダとしたSAML認証の仕組みの導入を検討しました。なお、Sassorでは複数のAWSアカウントを AWS Organization を用いた組織アカウントとして管理しており

元記事を表示

【AWS】【boto3】Rate Exceeded を回避する方法

# TL;DR

* Rate Exceededとは、短い期間に大量のAPIコールを行った際に起きるエラー
* 回避する方法はretryを入れること
* いわゆる[exponential backoff](https://docs.aws.amazon.com/ja_jp/general/latest/gr/api-retries.html)を取り入れる
* [client設定時にretryを増やせるみたい](https://dev.classmethod.jp/articles/how-to-change-error-number-retry-boto3-ja/)だが効果ない
* 恐らくだがこのリトライは`botocore.exceptions.ClientError`を対象にしていない
* なのでpython の[retry](https://pypi.org/project/retry/)モジュールを使って`botocore.exceptions.ClientError`をハンドリングする
* [AWSretry](https://pypi.org/pro

元記事を表示

GuardDutyのFindingsをS3にエクスポートしてAthenaでテーブル化するときにトラブった話

## 記事概要
GuardDutyからS3にエクスポートした検知結果をGlue/Athena/QuickSightで分析しようとした。

## 遭遇したエラー

Glueのクローラを作成して実行したところ、下記のようなエラーが発生。

>[e102dd64-92e3-47f5-bd18-8e61c1236d7c] ERROR : Error Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: 9B26CDF2818CD5E0; S3 Extended Request ID: ydaNgMzEk+bSreDMVS6TCT/+dA0bHK6KBKnZwQbNa2J1hW4EN5uMoybHTq9ISd+kxDV1Vz0AzNg=) retrieving file at s3://test-chida/AWSLogs/200356542217/GuardDuty/ap-northeast-1/2020/02/25/ccd7c013-77e8-3bf2-b212

元記事を表示

AWS EC2インスタンスからRDSへの接続方法

### はじめに
AWSのEC2から、RDS内のデータベースに接続したい時の操作方法をまとめる。

### 方法

以下のコマンドをEC2インスタンス内部で打ち込めば良い。

“`:EC2インスタンス内部
[root@ip-10-0-1-173 ~]# mysql -u admin -p -h fishingshares-mysql.cmx2rdekqsyi.ap-northeast-1.rds.amazonaws.com
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2200
Server version: 5.7.22-log Source distribution

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporat

元記事を表示

Docker勉強メモ① DockerインストールからHelloWorld

## はじめに

重い腰をあげて前から興味があったDockerの勉強をはじめました。これはそのメモです。
こちらのサイトを参考にハンズオン形式で始めていきます。

Docker勉強メモ

– [Docker勉強メモ① DockerインストールからHelloWorld](https://qiita.com/zgw426/items/c0687bdfd3c58eaaac33) **←ココ**
– [Docker勉強メモ② Dockerイメージ作ってみる](https://qiita.com/zgw426/items/b480ae298e1f92cf1418)
– [Docker勉強メモ③ Dockerfileを作ってDockerイメージ作成からコンテナ起動までやってみる](https://qiita.com/zgw426/items/bea786da9128af30937f)
– [Docker勉強メモ④ コンテナ間通信](https://qiita.com/zgw426/items/bb42f6bd17707de354b9)
– [Docker勉強メモ⑤ ネットワーク通信](https

元記事を表示

OTHERカテゴリの最新記事