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

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

DockerでローカルのLambda実行環境を用意する。

# はじめに
ファイルの中身のみ記載します。

## ディレクトリ構造
“`
.
├── docker-compose.yml
├── lambda
├── sample
└── index.js

“`

## docker-compose.ymlの内容

“`yml
version: ‘3’

services:
addData:
container_name: sample-lambda
image: lambci/lambda:nodejs12.x
volumes:
– ./lambda/sample:/var/task
ports:
– 9001:9001
environment:
AWS_DEFAULT_REGION: XXXXXXXX
AWS_ACCOUNT_ID: YYYYYYYY
DOCKER_LAMBDA_WATCH: 1
DOCKER_LAMBDA_STAY_OPEN: 1
command: index.hand

元記事を表示

無料枠でGAEとAESを使ってみる

[Nuxt + Firebase + Elasticsearch 勉強用Qiita まとめ](https://qiita.com/YosukeAramaki/items/35f978e8e330c817514d)で
ローカル環境でFirebaseとElasticsearchをつなぐnodeとElasticsearchを構築できました。

これを本番環境に落とし込むためnodeをGAEに、ElasticsearchをAmazon Elasticsearch Serviceに移行してみました。

GCPとAWSに触るのは初めてだったのでかなり大変でした。

## GAE (Google App Engine)

Projectのセットアップはこちらのサイトを参考にしました
[Google App Engine Node.jsを試してみる。 GAE/Node.js](https://qiita.com/n0bisuke/items/fbea48562441a8314d45)
[App Engine スタンダード環境で Node.js を使用するためのクイックスタート](https://clo

元記事を表示

ArchiveRule Filterの設定値一覧

## はじめに

この記事はAWS re:Inventで発表されたAccess Analyzerに関する記事です。
ArchiveRule Filterの設定値の対応表です。

## 本題

AWS CLIとCloudformationでArchiveRuleを作成するときに、
公式ドキュメントに値一覧が見つからなかったのでまとめました。

Access Analyzerのドキュメント
CLI: https://docs.aws.amazon.com/cli/latest/reference/accessanalyzer/index.html
Cloudformation: https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/AWS_AccessAnalyzer.html

| 日本語(GUI) | 設定値(CLI) |
|:—————–|:——————|
| Googleオーディエンス | condition.accounts.google

元記事を表示

Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #21 (IoT)

Amazon Web Services (AWS)のサービスで正式名称や略称はともかく、読み方がわからずに困ることがよくあるのでまとめてみました。

Amazon Web Services (AWS) – Cloud Computing Services
https://aws.amazon.com/

全サービスを並べたチートシートもあるよ!

Amazon Web Services (AWS)サービスの正式名称・略称・読み方チートシート – Qiita
https://qiita.com/kai_kou/items/cb29d261c8acc49fd22a

まとめルールについては下記を参考ください。

Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #1 (コンピューティング) – Qiita
https://qiita.com/kai_kou/items/a6795dbab7e707b0d1a6

間違いや、こんな呼び方あるよーなどありましたらコメントお願いします!

## Internet of Things (IoT) – I

元記事を表示

CloudWatchのログを、Lambdaで定期的にS3に移動させる

# はじめに
AWSのシステムのログを集めるのには、CloudWatchを使うのが便利です。私は仕事では、EC2インスタンスにCloudWatch Agentをインストールして、各種アプリケーション(NginxとかTomcatとか)のアクセスログやエラーログとかを、CloudWatch Logsに流すようにしています。

しかし、CloudWatch Logsにログを保管するのは料金が結構かかるので、定期的に古いログはS3に移したいです。そこでこの記事で、CloudWatchのログをLambdaを使って定期的にS3に移動させる方法をまとめておきます。

![csl.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283226/6b7f73c3-6473-3221-78fb-bf9c19bd54ba.png)

# 各種設定
## Lambdaの設定
まずは、移動処理をするコードをデプロイするLambdaに適切な権限をつけます。以下のような権限を設定したIAM Roleを、Lambdaに設定します。

`

元記事を表示

Elastic Beanstalk デプロイする時にハマったところ(Rails)

# はじめに
Rails アプリケーションを Elastic Beanstalk を使ってデプロイするときにハマって時間がかかってしまったことを箇条書きにしてみました。
“Elastic Beanstalkはデプロイがすぐできる。”なんて嘘だーと一瞬思いましたが、ポイントさえ押さえておけば、本当に一瞬でデプロイできるようになりますので、ぜひ使ってみてください。

#### 関連リンク
Elastic Beanstalk 関連のリンクを下記に載せておくので、必要であれば参考にしてください。。

* ElasticBeanstalk Blue-Green Deployment
* https://qiita.com/syukan3/items/28eba7462c26409773e6
* AWS ElasticBeanstalk 環境を切り替える方法(EB CLI)
* https://qiita.com/syukan3/items/1a44c879ab44e45ca748

# Elastic Beanstalk
## ハマったところ
* 文字コード(日本語の場合、utf

元記事を表示

AWS Elastic Beanstalk をなんとなく理解する

■概要
https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/Welcome.html
– インフラについて学習することなく、AWS クラウドでアプリケーションをデプロイし、管理。
– 自動的に容量のプロビジョニング、負荷分散、拡張、およびアプリ状態のモニタリングといった処理をする
– Go、Java、.NET、Node.js、PHP、Python、Ruby で開発されたアプリケーションをサポート
– ワークフローは、create app → upload version → launch env → manage app

■create app~ 大体の流れ
https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/GettingStarted.CreateApp.html
https://labo.ysreading.co.jp/2017/01/24/aws-elastic-beanstalk-%E5%88%9D%E3%82%81%E3%81%A6%

元記事を表示

DynamoDBのテーブルデータをNodejsでS3にBackupする

## はじめに

DynamoDBに大量にあるテーブルのデータを一括でS3にバックアップしたい。。みたいな状況があったので、メモとして書いておきます。

ちなみにテーブルが少量であれば、Data Pipelineを使って簡単に出来ます!!
`aws-sdk`ではData Pipelineの細かいオプションは設定出来なかったようなので、nodejsでData Pipelineを操作することはしていません。

## 環境

* Nodejs v11.1.0
* DynamoDB

## 事前準備

バックアップを行うためにS3に専用のバケットを作成しておいてください。
この記事では`backups`というバケットを作成したという例で進めます。

## プロジェクトを作成

適当ですが、`dynamodb-backuper`みたいなディレクトリを作成して進めていきます。

“`sh
$ mkdir dynamodb-backuper

$ cd dynamodb-backuper

$ npm init

$ npm install aws-sdk dynamodb-backup-res

元記事を表示

Amazon EKS のチュートリアルで Kubernetes を理解する #03 メトリクス&ダッシュボード

# はじめに
本記事は、以下の内容の続きになります。

– [Amazon EKS のチュートリアルで Kubernetes を理解する #02 アプリのデプロイ](https://qiita.com/takanorig/items/6b2eced40b309b557d70)

前回、k8sクラスタにアプリケーションをデプロしてみたので、
今回は、クラスタやアプリケーションのモニタリングを行ってみます。

## 前提条件
– k8sのクラスタが作成されており、ワーカーノードが稼働していること。

# Kubernetes Metrics Server の構築

Kubernetesには、メトリクスサーバー(metrics-server)というモノがあり、
これを利用することで、クラスタに登録された各種リソースの情報を簡単に取得できるようになります。

## Kubernetes Metrics Server のデプロイ

ここでは、最新版をダウンロードして、クラスタに登録を行います。

“`
$ cd /Users/$USERNAME/MyWork/amazon-eks

$ DO

元記事を表示

AWS APIGateway/LambdaとJavascriptで簡易問い合わせサイトをつくる

#概要
問い合わせフォーム(javascript) ⇒ APIGateway ⇒ Lambda(Node.js) ⇒ Lambda(Node.js) の流れで簡単な問い合わせサイトを作ります。
contact_form.png
一応レスポンシブにします。
contact_form2.png
バリデーションもあります。
contact_form3.pngAWSでsshコマンドで接続できない場合の対処

AWSでEC2インスタンスを作成した際にキーペアを作成してダウンロードしたかと思います。
※キーペアとは拡張子.pemのことです。

キーペアが存在しているディレクトリにまでcdコマンドを使い移動します。

$ cd downloads
rooter:downloads ユーザー名
私の場合downloadsディレクトリに中にキーペアが存在しています。

ディレクトリまで移動ができましたら下記sshコマンド実行!
$ ssh -i “book.pem” ec2-user@52.218.324.29

![スクリーンショット 2020-01-14 19.24.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543413/857da483-d45c-f85e-a276-3fa47f15aed6.png)

接続できました!

@の後ろは人によるパブリックアドレスが違います。
下記画像でいうところのIPv4パブリックIPと赤枠で囲っている部分です。

![スクリーンショット 2020-01-14 19.

元記事を表示

無駄なEBSスナップショットをLambdaで定期削除する

「不要になったAMIを登録解除したけど、EBSスナップショットは消し忘れちゃって無駄なスナップショットがたくさん残っちゃってる…」ってこと結構あると思います。
こういう明らかに不要なスナップショットは、Lambdaの定期実行などを利用して自動的に削除されるようにしちゃいましょう。

無駄なスナップショットを残しておくと、スナップショットの管理が煩雑になるし、そのスナップショットにも費用がかかるので、消しちゃうに越したことはありません。

まずAMI登録解除時に消し忘れたスナップショットを一括削除するLambdaは以下のようになります。

“`python

import boto3

ec2 = boto3.client(“ec2”)

def lambda_handler(event, context):
#AMIと共に作られたsnapshotを抽出
response = ec2.describe_snapshots(
Filters=[
{
‘Name’: ‘des

元記事を表示

CodebuildでS3に静的ホスティングを自動化

## 概要
– 10分程で設定可能です。
– AWS Codebuildでビルドを行う。
– Amazon S3に静的ホスティングをする。
– GithubをWebhookして、上記を自動化する。

## 登場人物の紹介
### AWS Codebuild
![codebuild.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395817/389b3342-49bc-e0e3-0bde-ba329a6acc63.jpeg)

AWS CodeBuild は、クラウドで動作する完全マネージド型のビルドサービスです。CodeBuild はソースコードをコンパイルし、ユニットテストを実行して、すぐにデプロイできるアーティファクトを生成します。CodeBuild により、独自のビルドサーバーのプロビジョニング、管理、スケーリングが不要になります。Apache Maven、Gradle などの一般的なプログラミング言語とビルドツール用のパッケージ済みのビルド環境を提供します。CodeBuild のビルド環境をカ

元記事を表示

AWS Amplify フレームワークの使い方Part4〜API実践編〜

# はじめに
今回は、AmplifyのAPI設定後、Nuxt.jsのアプリケーション内でどのように利用しているかを中心に書いていきます。

# Nuxt.jsの構成
基本的にDB取得のAPIの呼び出しはstoreのactionでのみ行っています。取得したDBデータをmutationでstateに書込み、必要に応じてgettersから取得する形にしています。

# 準備
`store/index.js`の上部に以下を宣言します。

“`javascript:store/index.js
import { API, graphqlOperation } from ‘aws-amplify’
import * as gqlQueries from ‘../graphql/queries’ // read
import * as gqlMutations from ‘../graphql/mutations’ // create, update, delete
import * as gqlSubscriptions from ‘../graphql/subscriptions’ // 監視

元記事を表示

マストドン構築1日目 on AWS

# 経緯
半年ほど前に AWS & Docker ド素人の状態から
なんとかインスタンスをたてて運用していました。

EC2の上にDockerで本番運用していましたが、だんだん辛くなってきたのでDockerから降ろすことにしました。
その作業ログです。

# 環境 / ツール
macOS Mojavi 10.14.6
AWS

# 参考にしたもの
マストドンGitHub
https://github.com/tootsuite/mastodon
公式ドキュメント
https://docs.joinmastodon.org/admin/prerequisites/

# AWSでEC2インスタンスの作成
環境を合わせるため、以前の構築時に使用したAMIを利用します。
なぜeks用Ubuntuを利用したのかは謎です。半年前の自分に問い詰めたいです。
Ubuntuであれば大丈夫だと思います。
スクリーンショット 2020-01-13 16.55.57.pngCloudfrontにAWS WAFのManagedRuleを適用してみた

#目的
AWS WAFが便利と聞いておりましたが、まだ実運用したことがなかったので環境に適用してみました。
設定完了がゴールです。

#構成図
前回の構成図にWAFを追加した形です。
![Arch3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136929/516bb999-d8cb-19cd-eecd-302e636ae5ea.png)

#手順
AWS WAFの作成のため、WEB ACLsを作成します。

![WAF1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136929/35c19511-7c20-2954-cd89-974cdc2f6f1d.png)
リソース名を入力します。

![WAF3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136929/affa2f92-9bf4-1423-206e-5c7c39f69104

元記事を表示

AWS IAMロール、IAMポリシーについて整理(初心者向け)

# AWSサービスを利用する際に、(AWS)IAMのロールとポリシーについてよく分からなかったので整理しました。

AWS初心がまとめる記事なので、解釈にずれが生じていたり、理解が浅い部分もあると思いますが
ざっくりした理解には役立つかと思います。

ロールやポリシーの整理の前に、まずAWS IAMというサービスについて整理します。

## IAMとは?
「Identity and Access Management」の略称で
「`(AWS)リソースへのアクセスを安全に管理するためのウェブサービスです`。
IAM を使用して、リソースを使用するために認証 (サインイン) され、許可された (アクセス許可を持つ) ユーザーを制御します。」([AWS引用](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/introduction.html))

AWSのサービスはたくさんあって、いろんなサービスを組み合わせたり、いろんなアカウントでサービスを利用するため、IAMを使えば安心してサービスを管理・利用できるようになるわけですね。

元記事を表示

【これからプログラミング&クラウドを始める人向け】AWS Cloud9 を利用して Ruby の開発環境を作ってみる② – AWS Cloud9 の環境構築

# はじめに
この記事は [【これからプログラミング&クラウドを始める人向け】AWS Cloud9 を利用して Ruby の開発環境を作ってみる① – AWSアカウント準備編](https://qiita.com/KCbogard/items/3cd4605f54c27377da38) の続きになります。

# AWS Cloud9 のセットアップ
– 前回作成した IAM ユーザーを利用してコンソールに入り Cloud9 と検索し選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321336/8754dd52-e64f-7d78-9785-8fd8c5d4e796.png)

– AWS Cloud9 のコンソールから「Create environment」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321336/9ebb8153-5406-1514-93fa-9a4ae08

元記事を表示

【これからプログラミング&クラウドを始める人向け】AWS Cloud9 を利用して Ruby の開発環境を作ってみる① – AWSアカウント準備編

# はじめに
## 前置き
プログラミングを勉強しよう!と思ったときに躓くポイントでもある開発環境の構築
今回は AWS を利用してクラウド上に開発環境を作っていく手法を紹介していきます
勉強をスタートしたタイミングで同時にクラウドを触ることでモダンな開発環境も理解していきましょう

## AWS Cloud9 とは
– Cloud9 というブラウザで利用できる IDE (統合開発環境)をAWSが買収
– AWS の各種サービスと連携しやすいサービスとして2017年末にリリース
– クラウド最大手からクラウド上での開発サービスを提供し、開発環境もクラウド上で持つトレンドが出来つつある

## 利用にあたって必要なもの
– AWS 登録のために以下の登録が必要です
– メールアドレス
– クレジットカード(課金が発生しない無料利用も可能)
– ユーザー認証用の電話番号

– ブラウザの設定
– 広告ブロック用のアドオンを導入している場合はオフ

## AWS Cloud9 の利用料金の話
– 課金の仕様
– AWS Cloud9 の利用そ

元記事を表示

AWS ElasticBeanstalk 環境を切り替える方法(EB CLI)

# はじめに
一つのサービスを提供する場合でも、Blue-Green Deploymentをする時は複数の環境を使用することになります。
EB CLIを使って、 ElasticBeanstalk の環境を切り替える方法をすぐに確認できるようにまとめさせていただきました。

#### 関連リンク
関連リンクを下記に載せておくので、必要であれば参考にしてください。。

* ElasticBeanstalk Blue-Green Deployment
* https://qiita.com/syukan3/items/28eba7462c26409773e6
* AWS CLI アカウントを切り替える方法
* https://qiita.com/syukan3/items/d01824e5b8f6ac9c387c

# EB CLI
Elastic Beanstalk コマンドラインインターフェイス(EB CLI)の略。
Elastic Beanstalk をターミナルからコマンドを操作することで、ローカルリポジトリからの環境の作成、更新、およびモニタリングを簡素化すること

元記事を表示

OTHERカテゴリの最新記事