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

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

[AWS CDK] コンテナイメージもまとめてデプロイ!?DockerImageAssetの動作確認をしてみた

# AWS CDKとは

AWSリソースをアプリケーションコード (TypeScript / Python / Java / C#) で定義できる,AWS公式のInfrastructre as a Code (IaC)ツールです.

構造化ファイル(YAML / JSON)を使ってリソース定義を行うCloudFormationと比較すると,

– 制御構文や抽象化を使うことで,比較的少ないコード量でリソース定義しやすい
– エディタによるエラーチェック・サジェスチョン・ドキュメント参照がしやすい

等のメリットがあります.
概要・特色を知りたい方は,[Black Belt Online Seminarの資料](https://aws.amazon.com/jp/blogs/news/webinar-bb-aws-cloud-development-kit-cdk-2020/)がオススメです.
また,試してみたい方は,[CDK Workshop](https://cdkworkshop.com/)から入るのがオススメです.

# CDK Docker Image Assetsとは

CD

元記事を表示

Batch server is now Fargated (バッチサーバーをFargate化しました)

I have Fargated the batch server in our product. So this is the translation now I’m planning to give an presentation. (This is a memo

## What’s great about it?
You won’t have to keep a batch server running 24/365.

The relationship between jobs will be limited, so there will be no more job jams.
It’s a big step for our cloud-friendly product.

We estimate that it will save the company **** per year.

## Here is the history of our product batch job

### Ver.5x
The world only had clients and dat

元記事を表示

YAMAHA NVR700W から AWS Transit Gateway経由で IPSec VPN接続してみてみた

#■ 目的
AWS の Transit Gateway(TGW)を使用すれば、複数の VPC および Direct Connect(DX) や IPSec VPNを使用してオンプレミスネットワークを相互接続できます。
ということで、Transit Gateway(TGW)経由で、On-Premises や他Cloudへ接続してみてみたいので、
まずは、Transit Gateway で On-Premises と2つの AWS VPCへ IPSec VPN 接続してみてみます。

#■ 構成
![構成図AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/e51dbb19-8767-75b3-edce-0148b3bb5237.png)
事前にVPCやEC2インスタンスを作成しておきます。
ここでは、Transit GatewayとIPSec VPN接続部分を設定します

#■ Transit Gateway作成

##● Trangit Gateway作成
(1) Trangit G

元記事を表示

Docker×Lambda環境簡単構築

# Docker×Lambda環境簡単構築
## はじめに
AWS Lambda Function を実装するときは docker-lambda を使用すると開発も容易で、デプロイまで簡単にできます。その環境構築手順、実際にデプロイするまでを簡単にご紹介します。

## 前提
以下はすでに準備されている前提となります。
– AWSアカウント
– dockerインストール
– docker-composeインストール

## 構成
最終的に以下のような構成になります。

“`
.
├── deploy.sh
├── docker-compose.yml
├── lambda
│   └── SampleFunction
│   ├── Dockerfile
│   └── index.js
└── opt
├── Dockerfile
└── package.json

“`

## 手順
### 1. AWS Lambda関数作成
詳細手順は[こちら](https://qiita.com/A-Kira/items/293808eb44afcb3672

元記事を表示

EC2でReactをhttpsでnpm startして外部からアクセスする

EC2上でReactアプリをhttpsでホストすることがあったので備忘録です。

AWSならACMとかELBとかRoute53とか使えるわけですが、
ちょこっとテスト的に動かしてみたいだけなのでできるだけ簡単にSSL化したいと思います。

結論から言うと
HTTPS=trueにしたnpm startでlocalhostでhttpsサーバーを立てて、
EC2外部からのアクセスはnginxでlocalhostにリダイレクトします。

# 環境
* EC2 (Amazon Linux 2)
* React
* nginx
* Node.js

# 1. EC2を立てる
EC2立てます。
http, httpsのポートをあけておきます。

# 2. nginxインストール・設定
## インストール
nginxインストールしますが、Amazon Linux 2ではnginxがyumでサポートされていないらしいので
以下のコマンドでインストールします。

“`
$ sudo amazon-linux-extras install nginx1.12
“`

## SSL化設定
SSL化するにあ

元記事を表示

特定のLambdaからのアクションをS3バケットポリシーで拒否したい時

# 概要
S3バケットポリシーで、あるLamdba関数からのアクセスを拒否しようとした際に詰まったところをメモ。

# 設定したいこと
Lambda関数 `function-a` からの、S3バケット `bucket-a` へのReadアクションを拒否する。

ケースとしてあまりないと思うが、今回は、S3へのアクセスが何らかの理由で失敗したという想定をテストしたいためにこの方法を取ることとした。

# 間違ったバケットポリシーの設定
Lambda関数からのアクセスを拒否するということで、以下のように、Conditionに該当のLambda関数をSourceArnとして設定した Deny ルールを書けばいいと考えた。

“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Deny”,
“Principal”: *,
“Action”: [
“s3:ListBucket”,

元記事を表示

【大トラブル|ピンチ 503 エラー】Amazon EC2 Auto Scaling でやってはいけない設定ミス

# 概要

顔面蒼白、大トラブルを起こしてしまいました。
同じようなことを他の方にも起こされないようにメモとして残しておきます。

# 何があったか

1. アラートが大量にでている、サイトに 503 エラーでサイトが開けない!
2. な、何が起きているのか AWS コンソールから EC2 インスタンスを確認

![スクリーンショット 2020-08-21 20.03.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218682/3980ada9-9a6b-808b-5bd8-b4e340b2682d.png)

3. 恐怖!!!! インスタンスが起動しかけて、すぐに終了して、起動しかけて、すぐに終了して、、無限ループ。。。。深呼吸。落ち着こう(キャプチャ見て分かるとおり、スクロールバーが表示されて、隠れるぐらい terminated のインスタンスがいます)
4. まず、急遽接続ができる状態にする最短の対策を考える
5. EC2 Auto Scaling がなぜ、起動しては

元記事を表示

[AWS] [2020/8/18Update] Cloud9がSession Managerに対応しました!

# Cloud9
AWSが提供する、コードを記述、実行、デバッグできるクラウドベースの統合開発環境 (IDE)です。
詳細はこちら。

[AWS Cloud9](https://aws.amazon.com/jp/cloud9/)

そのCloud9ですが、2020/8/18にアップデートがあり、

> Cloud9 は、Cloud9 IDE を使用しているお客様に拡張 VPC サポートの提供を開始します。このリリースでは、イングレスがない (そして、オプションでエグレスがない) プライベートサブネットで Cloud9 環境を作成するためのサポートが追加されています。

[AWS Cloud9 が拡張 VPC サポートをリリース](https://aws.amazon.com/jp/about-aws/whats-new/2020/08/aws-cloud9-releases-enhanced-vpc-support/)

という機能追加が行われました。
つまり、Session ManagerでEC2インスタンスに接続して、そこで開発作業が行えるようになったのです。

# Sessio

元記事を表示

【AWS API Gateway】Lambda関数(DynamoDBデータの取得)実行API作成

##目標
API Gatewayを利用して、Lambda関数(DynamoDB内データを取得する関数、Rubyでの作成とする。)実行API(※)を作成する。

※作成するAPIの詳細要件
・URLのクエリパラメータとしてDynamoDBのプライマリキー情報を指定し、取得するデータを絞り込む。
・クエリパラメータが指定されていない場合、ステータスコード400エラー(Missing required request parametersメッセージ)を返す。
・DynamoDBからクエリパラメータに紐づくデータを取得出来ない場合、ステータスコード400エラー(The user with the specified id cannot be found!メッセージ)を返す。

##API Gatewayとは
API Gatewayを利用することでバックエンドリソースのLamda関数、その他AWSサービス、httpエンドポイントに対するRestfulAPI(※1)やWebSocketAPI(※2)を作成することが可能となります。

API Gatewayに関するより詳細な知識を掲載している記事の

元記事を表示

初心者でもアジャイルにVueとAPIGatewayでチャットアプリを作ってみる

普段はiOSをメインにspring bootやnodejsなど適当に手を出していて **Vue初めての私** でも **アジャイルに(5時間程度?)** VueとAWSのAPIGatewayのWebSocketでチャットアプリ作れましたので手順を残します。

最終的には下記のようなものを作成しました(認証機能をすっとばしましたので公開はしてないです。amplifyを使えばこの認証機能も一瞬でできそうですが。。また投稿者も名前でなく、connectionIdを表示してます :sweat_smile: 人を識別するにはこれでも十分かと。)

![chat.mov-x2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104256/b6c3bed1-a6c5-f805-ab8d-29d5da59e6d2.gif)

# 手順

## バックエンド

[awsの公式のサンプル](https://github.com/aws-samples/simple-websockets-chat-app)をForkし、[

元記事を表示

databricks公式ドキュメントをやってみた~Get EC2 instance information~

#はじめに
公式ドキュメントに沿ってdatabricks on AWSを動かしてみたいと思います。
今回のテーマは
「Get EC2 instance information」です。
その名の通り、databricks上でコードを実行してEC2インスタンスの情報を表示させるという内容です。

#本題
今回行う作業としては、

– 作業ページまでのログイン

– クラスターの作成

– Notebookの作成

– スクリプトの実行

の4ステップです。
早速初めて行きましょう。

###作業ページにログインする
1.以下URLからdatabricksにログインします。
https://accounts.cloud.databricks.com/registration.html#login

2.「Deploy Databricks」を選択し、水色文字になっているURLをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593135/9c8f1a22-6d7d-dc2e

元記事を表示

AWS API GatewayにおけるIP制限

AWS API GatewayにおけるIP制限
============
AWS Security Groupsのように簡単にInbound rules設定ができなかったので備忘録。
ホワイトリストの設定の仕方。
API Gatewayのコンソール上から設定
————
1.Amazon API Gateway > APIs > 該当のAPI > Resource Policy
2.下記ソースを参照。aws:SourceIpに許可したいIPを入れる。複数のIPを同時に設定できる。
3.Save。保存したとたんにAWSが自分の気に入る形にjsonを書き換えることがある。たぶん問題はない。

“`rb
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Principal”: “*”,
“Action”: “execute-api:Invoke”,
“Resource”:

元記事を表示

AWSにデプロイしたら、ログイン機能が使えなかった話

AWSにrailsアプリをデプロイ後に、サインアップしようとしたら、メールが送れない。
We’re sorry, but something went wrong.が表示される。
こんな事象を治す過程を記します。

今回はログイン機能にDeviceを用いて実装しています。

環境
rails 6.0.3.2
ruby ruby 2.6.3p62
AWS amazonlinux
Nginx,unicornを使用

#エラー
log/prodution.logに以下のようなエラーがでていました。

“`config/log/prodution.log
ActionView::Template::Error (Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true):
2:
3:

You can confirm your account email through the link below:

元記事を表示

AWS S3のCloudTrailによるログとS3サーバアクセスログのサンプル

S3へのアクセスのログを取るには、CloudTrailを使う方法とS3サーバアクセスログを使う方法があります。

2つのログの比較は公式ドキュメントにも説明があります。

[Amazon S3 でのログ記録 – Amazon Simple Storage Service](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/logging-with-S3.html)

実際に両方のログを取ってみたのでサンプルを載せておきます。

# CloudTrail S3オブジェクトレベルログ

CloudTrailでのログはJSONをgzで圧縮したものがS3に保存されます。

情報量が多いです。JSONですので項目名が書かれており、わかりやすいです。

S3サーバアクセスログと違って、イベントが発生したらすぐに保存されるようです。

“`json
{
“Records”: [
{
“eventVersion”: “1.07”,
“userIdentity”: {
“type”: “I

元記事を表示

CognitoのAPIを直接叩く@IDプール編

## CognitoのAPIを直接叩く@IDプール編

### GetId(IDトークン有り)

“`http
POST https://cognito-identity.ap-northeast-1.amazonaws.com/ HTTP/1.1
content-type: application/x-amz-json-1.1
x-amz-target: AWSCognitoIdentityService.GetId

{
“IdentityPoolId”: “ap-northeast-1:IdentityPoolId”,
“Logins” : {
“cognito-idp.ap-northeast-1.amazonaws.com/ap-northeast-1_xxxxxxxxx”: “idToken”
}
}
“`

### GetId(IDトークン無し)

“`http
POST https://cognito-identity.ap-northeast-1.amazonaws.com/ HTTP/1.1
content-type:

元記事を表示

AWS Route53でドメインを移管後、名前解決が失敗するようになった

AWSアカウント間でドメインを移管した後、全く同じレコード設定をしても「IPアドレスが見つかりません」になってしまって、 `dig www.example.com` とかやると

“`txt
$ dig www.example.com

; <<>> DiG 9.10.6 <<>> www.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 11843 ︙ ``` `SERVFAIL` って出て、 `dig +trace www.example.com` とか見てみると、どうやら `example.com` のNSレコードは生きてそうなのにサブドメインでコケてるとか… ([参考](https://aws.amazon.com/jp/premiumsupport/knowledge-center/delegated-subdomain-resolve/)) そんなアナタは、WHOISを見てみると良いことがあるかもしれません

元記事を表示

CognitoのAPIを直接叩く@ユーザプール編

## CognitoのAPIを直接叩く@ユーザプール編

### 認証(USER_PASSWORD_AUTH)を許容する必要あり

“`http
POST https://cognito-idp.ap-northeast-1.amazonaws.com/ HTTP/1.1
content-type: application/x-amz-json-1.1
x-amz-target: AWSCognitoIdentityProviderService.InitiateAuth

{
“AuthFlow”: “USER_PASSWORD_AUTH”,
“ClientId”: “ClientId”,
“AuthParameters”: {
“USERNAME”: “username”,
“PASSWORD”: “password”
}
}
“`

### 属性設定・更新

“`http
POST https://cognito-idp.ap-northeast-1.amazonaws.com/ HTTP/1.1
conten

元記事を表示

AWS認定 高度なネットワーキング – 専門知識 に合格したので

# はじめに

AWS認定 高度なネットワーキング – 専門知識 に合格しました。
合格までにやったこと、試験に向けてのポイントなどを書いていきます。
中の人はISP(プロバイダ)出身でBGP等のネットワーク技術の知識は元々持っておりそのあたりの勉強法については記載していません。

# どんな試験なのか

ネットワークに関連した(これがかなり広い)AWSのサービスと一般的なネットワーク技術に関する試験です。
ネット上では「ダイレクトコネクトの試験」等と揶揄されていたりしますが出題割合からそう言われるのも納得だなと思います。
専門知識シリーズ共通ですが、AWSのサービスに限らずネットワーク全般についての知識はもちろん必要です。

# 受験までにやったこと

– AWS専用線アクセス体験ラボ に参加する(無料)
– AWS Direct Connect は殆どの人は触れる機会がありません。ハンズオンで実際に環境を構築できる貴重な場で多くを得ることができました。
– https://aws.amazon.com/jp/dx_labo/

– AWSJ公式ブラックベルトウェビナ

元記事を表示

Amazon ECS Workshop #1 ~Introduction~

# はじめに
インフラ系エンジニア5年目です。
携わった開発の中でECS on Fargateの構成でバッチ系の処理を動かしたことがありますが、新たにオンライン処理をECS on Fargateで動かしてみようと考えており、改めてAWSのWorkshopを通して体系的に理解を深めようと下記のシリーズ建てでまとめていこうと思います。

### ◆投稿予定(適宜変更します)◆
– #1 Introduction  ★本投稿
– #2 コンテナのデプロイ
– #3 コンテナのモニタリング
– #4 コンテナのスケーリング
– #5 コンテナのB/Gリリース

参考ページリンク:https://ecsworkshop.com/

# Introduction
本投稿はまずIntroductionを整理します。
コンテナって何?何がいいの?というビギナーレベルの方向けの情報になっているため、不要な人は読み飛ばし、#2 コンテナのデプロイ編をご覧ください。
中身は下記公式ページの意訳+個人の所感になっています。
https://ecsworkshop.com/introduction/

元記事を表示

AWS CLIコマンド備忘録

よく使うAWS CLIコマンドの備忘録です

# S3

### 指定したキーワードのファイルをS3バケットから削除
“`
$ aws s3 ls s3:// –recursive | grep -v ‘/$’ | awk ‘{print $4}’ | grep | awk {‘print “aws s3 rm s3:///” $1′}| bash
“`

元記事を表示

OTHERカテゴリの最新記事