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

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

Amazon EMR の Spark パラメータを簡単に最適化する方法

:::note warn
本記事では Spark アプリケーションのメモリエラーに関するログを表示します。メモリエラーによるトラウマを抱えている方/日々寝れない生活をされている方は注意しながら読み進めてください。
:::

## はじめに

[AWS ブログ](https://aws.amazon.com/jp/blogs/news/) が出した記事「[Amazon EMR で Apache Spark アプリケーションのメモリをうまく管理するためのベストプラクティス](https://aws.amazon.com/jp/blogs/news/best-practices-for-successfully-managing-memory-for-apache-spark-applications-on-amazon-emr/)」で、メモリ不足エラーを回避するための Spark パラメータのチューニング方法を紹介しました。

“`
WARN TaskSetManager: Loss was due to
java.lang.OutOfMemoryError
java.lang.Out

元記事を表示

BigQuery・Glue・S3・QuickSightの連携

今回は、FirebaseAnalyticsからBigQueryにエクスポートしたデータをQuickSight上で、表形式で閲覧したいという要件を実現するための過程を記事にしました。

以前書いた[この記事](https://qiita.com/Dai_Kentaro/items/a95c33381aeb5f0b74ad)の続きみたいな感じです。

なぜ、BigQueryのデータをわざわざQuickSightで見ようとするかというと、BigQuery上のデータとRDSのDBデータをガッチャンこして見たいという要件があり、少し回りくどく見えるような構成になっています。

要件を実現するための構成はこれ以外にも案はあると思いますが、考えた結果、これが最適と考えた末なので、何かいい案をお持ちの方がいれば優しく教えて欲しいです。(ここには出てこない隠れた要件も色々あるので最適な構成を考えるのはかなり難しかったです。)

# BigQuery・Glue・S3の連携について

それぞれのツールについての概要の公式記事は以下です。

– BigQuery: https://cloud.google.c

元記事を表示

AWS Lambda 同時実行数、エイリアス、環境変数とか実際の現場で使える機能を勉強してみる

# 概要

AWS認定試験資格取得に向けて実際にAWSを利用してみるシリーズの投稿です。
今回はAWS Lambdaをちょっとしっかり勉強してみようという中級編です。
気が付いたらLambdaがかなり進化をしていて、久しぶりに本を購入して勉強したのでその内容をまとめた投稿になっています。

私が初めてLambdaを使い始めた時の制限、コールドスタート問題の解決(同時実行数)や、実際の現場で使えるLambdaの切り戻し(エイリアス)、環境ごと異なる設定(環境変数)など、実運用で使える機能がたくさんあったのでその内容を投稿します。

認定試験勉強的にはAWS Lambdaの少しコアな部分を掴める内容になっています。
インフラに依存せずサクッとプログラミングができるLambdaを使ってみたい人、興味がある方は読んでみて下さい。

## 想定読者
* AWSでLambdaを使ってみたい人
* Lambdaの知識をレベルアップしたい人
* Lambdaを実運用で使っている人

## 参考書籍

[AWS Lambda実践ガイド 第2版](https://amzn.to/3E5O6xm “AWS

元記事を表示

ビジュアルリグレッションテストのすすめ

日々いろいろなWebサイトの制作や修正を対応していく中で、修正したページとは関係ない(と思っていた)ページで表示が崩れてしまったことってありませんか?

私はたびたび経験があります。

毎回目視で全ページをチェックすれば防げるのかもしれませんが、それは現実的ではありません。
自動で全ページをチェックしてくれて不具合があれば教えてくれる、そんな便利なツールがあればと何度も思いました。

どうやら現代の技術でそれは作れるみたいです。ビジュアルリグレッションテストというらしいです。

# ビジュアルリグレッションテストとは
ざっくりいうと「見た目の比較」をするテストのことです。
変更前のWebサイトのスクリーンショットを用意しておき、変更後のスクリーンショットを撮り比較することで、どこが変わったか差分を表示し確認することができます。
![名称未設定.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565564/87cd6483-6023-38a1-c733-8e6de7eae06c.gif)

# どうやって使

元記事を表示

AWS公式資料で挑むSCS認定(38)-こんな時どうする(全分野その15)

##### [前回] [AWS公式資料で挑むSCS認定(37)-こんな時どうする(全分野その14)](https://qiita.com/mingchun_zhao/items/861124e3b54d3862c83b)

## はじめに

今回も引き続き、「こんな時どうする」集の作成です。

## 分野1: インシデント対応

– Log4jの脆弱性(CVE-2021-44228、CVE-2021-45046)による攻撃を受けていないか確認したい
– Amazon Inspectorを使用し、EC2インスタンスとAmazon ECR(Amazon Elastic Container Registry)イメージに脆弱性が存在しないか特定
– スキャンは自動化され継続的に実行される、新しい「ソフトウェアパッケージ/インスタンス/CVE(共通脆弱性識別子)公開」などのイベントによって開始される
– AWS Systems Managerによって管理される全てのサポート対象インスタンスにおいて、OSパッケージマネージャーによりインストールされた

元記事を表示

【AWS】CodePipeline未サポートの大阪リージョンにCodePipelineでデプロイする方法

# はじめに

本記事では、CodePipelineがサポートされていない大阪リージョンにCodePipelineを用いてデプロイする方法を紹介します。

* **サマリ**
* **大阪リージョンはCodePipeline未サポート(2022/04/10時点)**
* **クロスリージョンアクションは対象リージョンがCodePipelineをサポートしている必要がある**
* **大阪リージョンにデプロイする場合、CodeBuildを介してデプロイする**

# 大阪リージョンはCodePipeline未サポート

2021年3月に大阪リージョンがフルリージョン化されました。

https://aws.amazon.com/jp/local/osaka-region/

これにより、**国内リージョンのみでDR (Disaster Recovery) サイトの構築が可能**となりました。
海外リージョンの使用が禁止されている、かつ、DRサイトの構築が求められる要件等においては、ありがたい話です。

しかし、フルリージョン化と言っても、すべてのサービスが提供されているわけ

元記事を表示

IoT リアルタイムデータを Lambda タンブリングウィンドウで集計してみた その2 Lambda 編

# はじめに

この記事は、[前回](https://qiita.com/sugimount-a/items/66e5cbbbf678f9960555)の続きです。

IoT Core の準備が出来たので、実際に Kinesis Data Streams と Lambda タンブリングウィンドウを連携してみましょう。

# システム構成

今回の作業範囲を明記した、システム構成図を載せます。画像右側のデータ集計の本体部分です。

![image-20220411000225976.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/0dda90af-3fb6-47a1-c44c-092776c49021.png)

# Lambda タンブリングウィンドウがデータをどのように集計するのか

今回の構成では、30秒おきに Lambda タンブリングウィンドウをつかってデータ集計をしていきます。30秒の間に複数の Lambda Function がリレーのバトンのように `state`

元記事を表示

【Python】ビットコイン自動売買BotをAWS Lambdaで動かす

# 自動売買ロジックの実装
実装の流れとしては
1. BTCの価格取得
1. 移動平均を計算
1. クロスで取引実行

https://github.com/SohMitian/btc_trade

## CryptowatchからBTCFXの価格データを取得
CryptowatchのAPIを叩いて、BTCFXの価格データを引っ張ります。

“`python
def get_price(min, before=0, after=0):
# Cryptowatchのparamはbefore, after, period
# before: int Unix timstamp
# after: int Unix timstamp
# period: array Example: 60,180,108000

price = []
# 何分単位かを設定
params = {“periods” : min }
# ローソク足取得期間が初期値0以外の時の処理
if before != 0:
params[“before”] = bef

元記事を表示

IoT リアルタイムデータを Lambda タンブリングウィンドウで集計してみた その1 IoT Core 準備編

# はじめに

刻々と数が変化する IoT データや、SNS に投稿されたデータなど、リアルタイムなデータを集めて、集計を行うのは一般的に重労働な作業と言われています。従来のシステムでは集計処理は夜間に行うことがありますが、次のような課題があります。

– リアルタイムなデータではデータ量が多いため、夜間のバッチ処理で終わらない
– 1日1回の集計のため、翌日にならないとデータを活用できない

こういった課題を解決するために、AWS ではデータをリアルタイムに処理するための機能があります。すべてを網羅するわけではありませんが、次のような実現方法があります。

– Kinesis Data Streams と Lambda のタンブリングウィンドウ (Tumbling Window)
– Kinesis Data Analytics

今回は、Lambda のタンブリングウィンドウを使った集計機能を紹介していきます。タンブリングウィンドウとは、データストリームを一定時間周期で集計を行うときに使われます。イメージ図を載せます。リアルタイムなデータを5分おきに集計するような使い方を想

元記事を表示

AWSでのSSL化(ELBの設定からRoute53にレコード追加までの流れ)の手順

RedmineでのSSL化の手順を記載します。
SSL化の記事は多数あるのですが、AWSのUIが頻繁に変わる影響で手順通りに進まないのでこれからやる人の役に立てば幸いです。

Route53でドメイン取得→ACMで証明書発行
までは終わったことを前提に話をします。

参考記事
[全部AWSでRedmineをサクッと構築する
](https://qiita.com/hamham/items/791b2e855792033aad63
)
# ELBの設定
ホーム画面→すべてのサービス→EC2→左側サブメニューでロードバランサーを選択

![スクリーンショット 2022-04-09 15.26.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/471165/e3ae3fcc-8493-3ace-2081-61d731916953.png)

ロードバランサーを選択
![スクリーンショット 2022-04-09 15.39.08.png](https://qiita-image-store.s3.ap-nor

元記事を表示

Lambda function URLsをTerraformでお手軽構築する

# はじめに
4/7に突如登場したLambda function URLs。
ついにAPI GatewayやALBを介さずにLambdaが直接HTTPサーバの機能を持ったので、お手軽に利用する幅が拡がることだろう。
今回は、実際どれだけお手軽になったか、どんなことが制約になり得るかを実際に構築しながら考察をしてみたい。

なお、事前知識としては以下を想定している。

– TerraformでLambda Functionを作成した経験がある
– Lambda Permissionsに関する知識が多少ある

Lambda関数の実装にはGolangを使っているが、基本的なことしかやっていないためそれほど重要ではない。

# 構成図
今回は以下の構成で作成をする。

![構成図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111314/0d20ee3b-7998-c96d-05cf-a48660a19370.png)

– ServerとProxyのLambdaそれぞれにfunction URLsを設定する

元記事を表示

【AWS】ALBに同じAZから複数のサブネットをアタッチできないのか?

## 結論
「アタッチ」はできないが、「ルーティング先に指定」はできる。
## 背景
以下の構成でWebアプリケーションを運用していた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/566051/56a4fe64-a2f7-1099-fa91-cb24b88a5d60.png)

サービスが軌道に乗り、アクセス数も増えてきたため、EC2をスケールアウトすることにした。

しばらくすると、サブネットに配置できるEC2が限界を迎えてしまったため、
サブネットを追加することにした。[^1]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/566051/0d17871d-f1ee-67b3-9db6-9e853aaa5ee3.png)

## サブネットを追加する

ymlテンプレートを更新し、CloudFormationにアップロードすると…

>A load balancer cannot

元記事を表示

Lambdaまとめ

# はじめに

Lambdaについて軽くまとめてみました〜。
個人的メモです

#### Lambdaメリット

(1)保守・運用に手間がかからない
・マネージドサービス。OSなどの保守を必要としない

(2)高負荷に耐えられる
・Lambdaによるプログラムの実行は、必要に応じてスケーリングする。

(3)コスト削減
・Lambdaは実行時間nに対する課金。稼働中はずっとコストが生じるEC2インスタンスでの運用に比べて、コスト削減可能

#### Lambdaの制限

(1)前回の状態を保持しない
・Lambdaは、実行が終わったときに環境が破棄される、ステートレスな実行環境のもとで実行される

(2)最大稼働時間は5分
・ずっと実行しなければならないプログラムを、lambdaで構成することができない

#### イベントドリブン型のプログラミング
Lambdaはイベントの発生によって、実行が開始、イベントになりうるのは、AWSの様々なサービス。例えば「アラームよって一定時間が経過した」「S3にファイルがアップロードされた」など。また API Gatewayと組み合わせると

元記事を表示

AWS Cloud9でPython基礎

2022/4/6(水)に行われたAPNパートナー限定セミナー「Pythonの基礎から学ぶ!サーバーレス開発はじめの一歩」で学んだPython基礎部分の復習。

# 1.AWS Cloud9セットアップ
Cloud9を起動。適当に名前を付けて他はすべてデフォルト値でCloud9を起動する。

# 2.Python基礎
Pythonの以下トピックについて学ぶ。

– データ型
– 関数
– モジュール
– 引数とパラメータ
– インプット

## 2-1.データ型
データ型は以下4種。

– 文字列型
– 整数型
– 辞書型
– リスト型

Cloud9の画面下部Terminalでpythonを実行できるので、`python`と打ち込んで対話モードにしておく。
“`
$ python
Python 3.7.10 (default, Jun 3 2021, 00:02:01)
[GCC 7.3.1 20180712 (Red Hat 7.3.1-13)] on linux
Type “help”, “copyright”, “credits” or “license” for more

元記事を表示

AWS SysOps Associate対策

# はじめに

Sysopsの勉強をしていたのでメモを残しておきます。
ほぼ自分用みたいな感じですが、参考になればと思います。

## Lab対策

#### EC2

– キーペア作成
– EIP取得
– EC2作成
– EIPの「Action」から「関連付け」

#### ASG

– [1] 起動テンプレートの作成
– AMIの選択
– インスタンスタイプの選択
– 起動テンプレートではsubnet1つしか設定できない→冗長化できない
– SG
– リソースタグ
– NIC
– [2] ASGの作成
– テンプレートからASG作成
– ASG名前 : XXXX
– 起動テンプレート : XXXX
– インスタンスの購入オプション
– ネットワーク (VPC, Subnet)
– LBの選択→既存
– 既存のLBターゲットグループ
– ヘルスチェック (EC2, ELB)
– グループサイズ(希望する容量、最小キャパシティ、最大キャパシティ)

元記事を表示

AWS Developer Associate を受かったのでメモ公開

# はじめに

先日、「AWS Developer Associate」 を受験して合格しました。
勉強にするにあたり備忘録を書いたので公開します。
個人的メモですのでご参考になればと思います。
随時updateはしていきたいと思います。

過去の記事のリンクも貼っておきます

– [AWS ソリューションアーキテクト 対策](https://qiita.com/tatsuya11bbs/items/ceab7976a1651e342fe8)

# この受験について

– ご存知の方も多いと思いますが、`720/1000`以上で合格となります
– 試験問題は、全部で65問あります
– SAAより開発者向けの試験、サービスの設定とか特徴について深堀されます
– 勉強していて重要となるサービスは、`Cognito / DynamoDB / Lambda` が問われることが多いと思います
– 今回の試験勉強に使用した教材
– [ポケットスタディ AWS認定ディベロッパーアソシエイト](https://www.amazon.co.jp/%E3%83%9D%E3%82%B1%E

元記事を表示

Cloudformation基礎

# はじめに

Cloudformationを触る機会があったので型をメモとして残しておきます。

### まずはこれ

“`yaml
AWSTemplateFormatVersion: 2010-09-09
Description: XXXXX
“`

### VPC

“`yaml
myVPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
EnableDnsSupport: true
Tags:
– Key: Name
Value: vpc
“`

### Subnet

– AZとVPCの指定をする

“`yaml
PublicSubnet:
Type: AWS::EC2::Subnet
Properties:
AvailabilityZone: ap-northeast-1a
VpcId: !Ref myVPC
CidrBlock: 10.0.0

元記事を表示

【自分用メモ】AWS認定ソリューションアーキテクト-プロフェッショナル試験対策メモ

# はじめに
本記事は、AWS-SAP試験の対策をしている上で覚えておくべきだと感じたことを
メモとして残しておくものです。
主に問題演習中に連続して間違えたものを記載しています。
# IAM
– IAMロールによる権限委任に必要な3要素
1. 被委任側のAWSアカウントID
2. ロールに紐づける外部ID(External ID)
3. 被委任側がAWSリソースを操作するためのアクセス権

# AWS Directory Service
* Managed Microsoft AD
* AWS上に独自のADサービスを構築するマネージドサービス
* オンプレ側ADと信頼関係を結ぶことができる
* Simple AD
* AWS側でADサービスを使用できるマネージドサービス
* オンプレ側ADと繋がることはできない
* AD Connector
* オンプレ側のADと連携する際に使用するサービス

# AWS Organizations
* 一括請求と同様の請求情報の統合を自動的に使用できるようになる

# CloudTrail
* 特定

元記事を表示

ec2のリストを取得する

# はじめに
ec2のリストを取得します。lambdaで取得したリストをs3に出力します。
# 内容

## s3バケットの準備
ファイルを作成するためのs3バケットを作成します。“`my-resource-list“`としました。

## lambda関数の設定
lambda関数に下記のポリシーをアタッチします。
* “`AmazonEC2ReadOnlyAccess“` ec2を参照するため
* “`my-resource-list“`バケットへの“`s3:PutObject“` ファイルを出力するため

また、タイムアウト時間をデフォルトの3秒から10秒にしました。これは“`ec2.describe_instances“`の実行時間が3秒を超えたためです。

## lambda関数を作る
pythonでboto3を利用してec2情報を取得します。関数“`ec2.describe_instances()“`で取得したdictから必要な情報をcsvにして保管するようにしました。

“`python:
import json
import boto3

BUC

元記事を表示

AWS公式資料で挑むSCS認定(37)-こんな時どうする(全分野その14)

##### [前回] [AWS公式資料で挑むSCS認定(36)-こんな時どうする(全分野その13)](https://qiita.com/mingchun_zhao/items/20432e4fd0062bb1405b)

## はじめに

今回も引き続き、「こんな時どうする」集の作成です。

## 分野1: インシデント対応

– 複数AWSアカウントで、普段使用しないリージョンへの不正アクセスが報告された
– AWS OrganizationsのSCP(Service Control Policy)で、管理下のAWSアカウントの特定リージョンへのアクセスを拒否するよう制限をかける
– SCPは、アカウントに対し最低限の禁止ルールをガードレールとして設定する、事前に適用範囲を絞って十分に検証が必要
– ※ IAMアクセス制御を用いて、使わないリージョンのAWSサービスを使えない状態に設定可能だが、
– それぞれのリージョンにおけるIAMリソース制限を設定するのは、手間がかかり設定漏れが発生する可能性あり
– SC

元記事を表示

OTHERカテゴリの最新記事