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

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

Glueの使い方的な㊶(Workflows/ジョブ間でパラメータを受け渡す)

# Glue Workflows とは

以下のリンクをご参照ください

Glueの使い方的な㊵(Workflowsでジョブフローの可視化)
https://qiita.com/pioho07/items/0cd0ae27b61f5914f78d

# Workflowsを作る

## 内容

以下の記事で書いたクローラーやジョブを使いワークフローを作ります
https://qiita.com/pioho07/items/a24d188d67fe97034b34

クローラー -> ジョブ(PySpark) -> ジョブ(PythonShell)

処理はシンプルで、S3のcsvファイルをクローリングし、parquet変換し、変換後のファイル名をリネームします。これらの処理でワークフローから環境変数を表示し、渡し、その値に変更を加えます。後続の処理でその環境変数を取得し表示します。ジョブ間でのパラメータの受け渡すようなイメージです。

* 1つ目のクローラー:S3のcsvファイルをクローリングしGlue Data Catalogのテーブル(スキーマ)を作る
* 2つ目のジョブ:PySp

元記事を表示

DynamoDBで属性が無いItemをFilterExpressionで抽出する

`attribute_not_exists’ を使い以下のように書くことができます。
この例では属性ageが設定されていないアイテムが抽出されます。

“`typescript
const params: QueryInput = {
// 略
FilterExpression: ‘attribute_not_exists(age)’
};
“`

元記事を表示

Cloud 9 + lambdaでbot作成 ーpart3

#はじめに
本投稿は下記のパート3として、Lambda Functionから
S3オブジェクトへの読み書きを扱います。
・part1 : https://qiita.com/htanaka/items/a13fe6da23c3fcdc172a
・part2 : https://qiita.com/htanaka/items/2e6bdc3f54bdfdf542a9

前提
・Cloud9環境は用意済み(part2)
・Cloud9からLambda Functionを実行する(part2)

#boto3のインストール
LambdaではPython3を使用してコードを書いているため、
S3オブジェクトへの読み書きはAWS SDK(boto3)をして行う。

・boto3のインストール

“`
cd bottest
python -m pip install –target=./ boto3
“`

#S3の準備
今回はS3に置いたファイル(CSV)への書き込みを想定している。
そこで、S3作成のほか下記を用意する。

“`
bucket_name = ‘bottest-20042

元記事を表示

エンタープライズなAWSサーバーレスアプリケーションを構成管理する時の方法と考え方

## 概要
AWSでサーバーレスアーキテクチャでアプリケーションを構築する際、多くの場合はたくさんのLambdaやフルマネージドサービスで構成されることになります。その際にどういったディレクトリ構成でどのようにソースコードを構成してCI/CDを回していけばよいかをこの記事では書いています。

結論としては、[Serverless Enterprise Application Boilerplate For Python](https://github.com/serverless-operations/serverless-enterprise-application-boilerplate-for-python)に実際のソースコードとしてまとめていますので、より詳細はこちらを確認してもらえればと思います。

## 使用しているサービスとツール
本記事ではCI環境としてCircleCIを使っています。GitHub ActionsやCodeBuildでも同じようなことが可能なはずなので、これらは好みで選べば良いでしょう。

また、デプロイツールとしてServerless Framewor

元記事を表示

Calling third-party API on AWS

We wanted to call third-party API on AWS. Since they are third-party API, we should call them one by one and dodge to call multiple time at the same time. Otherwise, we might be blocked by providers.

## SQS + Lambda

SQS + lambda should be easy to implement, but not sure if it fits with our purpose.
Therefore, we studied how SQS + Lambda works.

![architecture.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/326401/c2cfd670-274f-cc0b-773b-2ec24e1d4463.png)

## Configure SQS

Th

元記事を表示

AWS日記③ (DynamoDB)

# はじめに
今回はDynamoDBを利用して簡易な掲示板を作成します。

# 準備
DynamoDBのテーブルを作成します。

[参考資料]
[テーブルの作成](https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/SQLtoNoSQL.CreateTable.html)
[DynamoDBのテーブル作成](https://qiita.com/blackcat5016/items/e41f7fb8b6b7a0c9b90b)

# WEBページ・API作成
GO言語のAWS Lambda関数ハンドラー aws-lambda-go を使用してHTMLやJSONを返す処理を作成します。
また、DynamoDB を使用するため aws-sdk-go を利用します。

[参考資料]
[AWS SDK for Go API Reference](https://docs.aws.amazon.com/sdk-for-go/api/service/dynamodb/)
[あえて aws-sdk-go で dyn

元記事を表示

Amazon WorkSpacesでWindows仮想マシンを作成しOffice 365を導入してみた (その2)

[令和のシンクライアント?Amazon WorkSpacesでWindows仮想マシンを作成しOffice 365を導入してみた](https://qiita.com/yamachan360/items/454c8ad9d2ce6127ba19) の続き?です。インストール後に試したこと、確認してみたこと、ざっくりまとめてみました。

# 仮想マシンのネットワーク周り

まずは Amazon WorkSpaces 上に作成した Windows 仮想マシンのネットワーク周りについて、ざっと見ておきます。ネットワークカードは2つ見えますが、赤枠のカードがインターネットアクセスを提供している模様。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/11396ede-0ae9-5abb-97d1-7df90ab02e25.png)
ちなみに Tracert は以下のような感じで、
![image.png](https://qiita-image-store.s3.ap-northeas

元記事を表示

CodeDeploy + ALBでEC2に1台ずつデプロイする

## はじめに

CodeDeployはALBを使って、複数台あるEC2を順次

1. 振り分け停止
2. デプロイ実施
3. 振り分け再開

する、といったデプロイ方法を取ることが可能です。

これを試してみたところ、想像していたよりもデプロイに時間がかかってしまいました。

また、ターゲットグループの設定を見直すことで処理時間を短縮できるので、その点も含めて記事化しています。

## 1. 構成

– ALB
– EC2インスタンス * 2

ALBのターゲットグループでは、以下の通り2台のEC2インスタンスを登録しています。

target group

この2台がCodeDeployのデプロイ対象です。

## 2. CodeDeployのデプロイグループの設定

ALBを使ったデプロイでのCodeDep

元記事を表示

AWSで発生したイベントを AWS Chatbot + Lambda で Slack に通知する – ①概要と準備

# はじめに

AWSアカウントを作成したその日から、 **AWSアカウント上では様々なイベントが絶え間なく発生** します。これらのイベントを **適切にモニタリング** することで、AWS上の **システムやアプリケーションの健全性** や **可用性** を **追求することが可能**となります。

そこで、2020年4月22日に晴れてGAとなった “AWS Chatbot“ と、**AWS Chatbot** 登場までは主流な実装方法であった“AWS Lambda“ とを組み合わせて、**AWSで発生したイベントをSlackに通知** してみたいと思います。

もちろん、チャットサービスを介して、**AWSで発生したイベントをリアルタイムにモニタリングすることが、全てのケースで正しいとは限りません**。また、そもそも下記でご紹介するイベントが、イベントの特性上、リアルタイムに通知されるべきではない可能性や、ケースによってはSlackというサービス自体が不適な場合もあるかもしれません。あくまで、AWSをモニタリングするための手法の1つとご理解ください。

# アーキテクチ

元記事を表示

【Amazon Rekognition 信頼スコア比較】

# この記事で得られること

Amazon Rekognition における、
1. 検出範囲。
2. 検証画像の推奨事項。
3. 実際の生体認証 (顔認証) による信頼スコア比較。

# 検出範囲

まず、どのような検出が可能なのかを調査した。

> “Amazon Rekognition では、イメージ分析とビデオ分析をアプリケーションに簡単に追加することができ ます。Amazon Rekognition API にイメージやビデオを指定するだけで、このサービスによってモノ、人 物、テキスト、シーン、アクティビティを識別できます。不適切なコンテンツも検出できます。Amazon Rekognition は、高精度な顔分析、顔比較、および顔検索機能も備えています。顔の検出、分析、比較は、 ユーザー検証、カタログ作成、人数計数、公共安全など、多岐にわたって活用できます。”

> (出典「Amazon Rekognition 開発者ガイド」)

イメージ、またはビデオをもとに、生体認証のみならず、物体の識別にも適用可能。
広範囲での活用が期待出来そうだが、検証可能な画像に制約は

元記事を表示

Terraformで、Systems Manager(Session Manager)でアクセスできるようにしたEC2インスタンスを構築する

# TL;DR

* AWS Systems Managerを使って、EC2インスタンスにSSH鍵なしでアクセスできるようにしたい
* そのための環境を、Terraformで構築する
* AWS Systems Managerを利用するためには、EC2に`AmazonSSMManagedInstanceCore`ポリシーを含むIAMインスタンスプロファイルを付与する必要がある

# AWS Systems Manager

AWS Systems Managerとは、AWSインフラリソースの運用の役立つサービスです。

[AWS Systems Manager](https://aws.amazon.com/jp/systems-manager/)

AWS Systems Managerの機能は、こちら。

[Systems Manager の機能](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/features.html)

また、関連するドキュメントやポリシーなどの名前で「SSM」というのが

元記事を表示

AWS FargateにEFSをマウントしてRocket.Chatを移行する

# はじめに
「大人の事情でSlackが使えない」という話をよく聞きます、うちの会社も例外ではなく同じ悩みを抱えており[Rocket.Chat](https://rocket.chat/)を使っています。[前回](https://qiita.com/katuemon/items/d99b802427d682378bd7/)は、AWS EC2にパッケージインストールしていたものをDocker Containersへ移行した。[先日(Apr 8,2020)](https://aws.amazon.com/jp/about-aws/whats-new/2020/04/aws-fargate-launches-platform-version-14/)Fargateのプラットフォームバージョン1.4がリリースされ、コンテナにEFSをマウント出来る(EFSエンドポイントをサポート)様になったので思い切ってFargateに移行してみた。

“`
Fargate タスクが Amazon Elastic File System (EFS) エンドポイントのサポートを開始
プラットフォームバージョン

元記事を表示

実行中のCloudFormationのスタックをマネコンっぽく表示するスクリプト

CloudFormationでいろいろ試行錯誤しているとマネコンからポチポチしてるのがいい加減面倒になってきて、CLIでcreate-stackとかdelete-stackしたくなる。でも結果をいちいちコマンド叩いてJSON読んだりするのも面倒だし、そこだけマネコン見てポチポチリロードボタン叩くのもなぁ、なので、サクッと作成。pythonはこれが30step以内に書けちゃうお手軽さがいいね……。

boto3, tabulateあたりは標準では入っていないので“`pip install“`しておくこと。
boto3については[この辺](https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-linux-python3-boto3/)のサイトも参考に。

“`python
import os
import sys
import time
import boto3
import pprint
from tabulate import tabulate

args = sys.argv

client = boto3.

元記事を表示

クラウド初心者のAWS入門

## 第2回 ネットワーク構築
 今回から本格的に構築を始めていきたいと思います。
 以下構成の構築を最終的な目標として、
 今回は下図の⭐️箇所の「VPC」を構築したいと思います。
 ※VPCはVirtual Private Cloudの略らしいです。
![Untitled Diagram-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/626270/81939058-bad4-cf2e-2765-43934717b761.png)

**1. AWSマネジメントコンソールへのログイン**
 AWSマネジメントコンソールに「rootユーザ」でログインします。
 [AWSマネジメントコンソール] (https://console.aws.amazon.com/)

**2. リージョンの選択**
 最初に、どの地域のデータセンターに構築するかを選択します。
 初回に変更してしまえば、以後変更の必要はなさそうです。  
![スクリーンショット 2020-05-10 18.15.54.png](https

元記事を表示

【Rails】デプロイ後に「We’re sorry, but something went wrong.」のエラーが出る

Railsでアプリを作成し、AWSにデプロイした際に不具合があるとこんなエラー画面が表示されます。
こいつめっちゃ腹立ちますよね。だってどこがおかしいのかすぐに教えてくれないんですよ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608061/601560cd-6af0-02e9-16e8-d74cf9a35d57.png)

#エラー原因の確認方法

しょうがないので自分で何がおかしいのかを確認します。

“`Rails:ターミナル
[ec2-user@ip-~~]$ cd /var/www/(アプリ名)/current/
[ec2-user@ip-~~ current]$ less log/production.log
“`

ログを見ていくと、下記のようなエラー文を発見

*ActionView::Template::Error (The asset “(画像ファイル名)” is not present in the asset pipeline.):*

今回は画

元記事を表示

CodePipelineでSonarQubeの静的解析を自動化するCloudFormationテンプレート

# 前提条件
リポジトリやブランチを切った時にいちいち手動で静的解析&テストパイプラインなんて作ってられないよね!という人向け。
以下の経験があると分かりやすいはず。

– CodePipelineで簡単なパイプラインを作ったことがある
– buildspec.ymlをちょっと書いたことがある
– CloudFormationテンプレートをちょっと書いたことがある
– SonarQubeをなんとなく知ってる([前回](https://qiita.com/neruneruo/items/7b7a408415f26a8c56d4)、[前々回](https://qiita.com/neruneruo/items/5f4d1562cf758f359997)を読んでSonarQubeのサーバが起動できる)

# パイプラインを作るためのIaCとビルド仕様
今回もいきなりCloudFormationテンプレートとbuildspec.ymlから。
buildspec.ymlは本当にビルドするときの名前にしたいので、buildspec_sonar.ymlと別名にしている。別にsonar/buildsp

元記事を表示

GitLab CI で Docker Image をビルドして ECR に push する

元ネタ: [GitLab RunnerとkanikoでDockerイメージをビルドする – GeekFactory](https://int128.hatenablog.com/entry/2019/09/25/204930)

以下のようなジョブを `.gitlab-ci.yml` に記述

“`.gitlab-ci.yml
build_image_with_kaniko:
stage: build
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [“”]
script:
– |
cat > /kaniko/.docker/config.json <

元記事を表示

AWSのELBを死活監視し、アラームをslackに通知する

# 目的
EC2へのパケット転送を行うELBの死活監視を行い、SNS(slack)に通知させて障害対応を早めるため、AWSのサービスで実装しました。

# 概要
全体の構成は以下の通りです。ターゲットグループとしてEC2を1台指定したELB(アプリケーションELB)に対して、CloudWatchで死活監視を行い、ダウンを検知したらlambdaを起動させ、SNS経由でslackに通知させるという内容です。lambdaで指定するslackのURLをKMSで暗号/復号化しています。
![fess2_qiita (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252317/73a5ea11-011f-1420-f5c5-e9f34d225d13.png)

# 手順
概要図のサービスの矢印の順に作成していくイメージです。
1. CloudWatchでの死活監視の実装
2. slackの設定
3. lambda用のKMS作成
4. KMS用のIAMポリシーを作成
5. lambdaからSNSへの通知設定の

元記事を表示

AWS SAA資格取得~RDSのストレージの種類~

AWS SAA WEB問題集で間違えてしまったRDSのストレージの種類についてまとめます。

Amazon RDSのストレージの種類
・汎用SSD
・プロビジョンドIOPS SSD
・マグネティック

これらはパフォーマンス特性と料金が異なるため、データベースのワークロードに応じて、
ストレージのパフォーマンスとコストを調整できる。

3つのストレージの種類について簡略化

####汎用SSD
汎用SSD(gp2とも呼ばれる。)様々なワークロードに対応できるコスト効率の高いストレージ。
これらのボリュームは、レイテンシーは1桁台のミリ秒であり、長時間3000IOPSにバーストできる。
これらのボリュームのベースラインパフォーマンスはボリュームのサイズによって決まる。

※IOPSとは・・・1秒あたりにディスクが処理できるI/Oアクセスの数のこと。

####プロビジョンドIOPS
I/Oレイテンシーおよび、継続するI/Oスループットが必要となる、
**I/O重視のワークロード(主にデータベースワークロード)**の要件を満たすように設計されている。
スループットの増加や低レイテンシーを求

元記事を表示

【AWS】EC2(Amazon Linux 2)の環境にWordPressをインストール

###注記
「Amazon Linux 2」特有の手順は、「PHPをインストール」部分

###Apacheをインストール

“`
yum -y install httpd
“`

###Apacheの起動

“`
systemctl start httpd
“`

###Apacheの自動起動設定

“`
systemctl enable httpd
“`

###PHPをインストール
・「amazon-linux-extras」でインストールできる内容を確認する。

“`
amazon-linux-extras list
“`
・PHP7.3をインストール

“`
amazon-linux-extras install php7.3
“`

###PHPのライブラリをインストール

“`
yum -y install php-mbstring php-gd
“`

###PHPのバージョン確認

“`
rpm -qa | grep php
“`

###Apacheの再起動

“`
systemctl restart httpd
“`

###Mar

元記事を表示

OTHERカテゴリの最新記事