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

AWS関連のことを調べてみた2022年06月24日
目次

Lambda Layersの設定 Layer設定するだけでrequestsが使えるって

 lambdaで必要なライブラリはzipであげないといけない!けど、
### 皆んながよく使うやつは、Layerってとこに設定すればいいんですって!
さらに、
有志でこんなものが!
https://github.com/keithrozario/Klayers/blob/master/deployments/python3.8/arns/ap-northeast-1.csv
### このARNをLayerに設定するだけ、すてき!

# requestsの設定の仕方
コード の下

コードソース

コードのプロパティ

ランタイム設定

レイヤー
の右「レイヤーの追加」

1. レイヤーソース > 「ARNを指定」を選択
2. ARNを指定のテキストフィールドに
3. ここから入れたいものをさがして、そのarn欄をコピペ
https://github.com/keithrozario/Klayers/blob/master/deployments/python3.8/arns/ap-northeast-1.csv
今回は「requests」の latest の arn
![スクリー

元記事を表示

関連づけられてないEIPをSlack通知 & 削除するLambda

# はじめに
EIPの料金体系についてご存知でしょうか。
以下のケースで、EIPは料金が発生します。

1. 実行中のインスタンスと関連付けられている追加の IP アドレス(= インスタンスは実行中だが2個以上EIPが関連づけられている)
2. 実行中のインスタンスと関連付けられていないEIP
3. 関連付いているEC2が停止している
4. EIPを、1ヶ月に100回以上リマップ

https://aws.amazon.com/jp/ec2/pricing/on-demand/

ちょくちょく個人の検証環境にて2番目の**EC2に関連付いていない(= 使わずに放置されている)EIP**が湧くことがあります。(単純に消し忘れ)

EIPが1つ生き残っていた場合、1ヶ月あたり大体以下の無駄な費用が発生します。
(これを多いととるか少ないととるかはお任せします)

“`
0.005 × 24 × 30 × 135 = 486円

※計算に必要な値
EIPの料金:$0.005/h
1ヶ月:30日とする
1ドル:135円とする
“`

そこで今回紹介するLambdaを使ってこのEIPを一網打

元記事を表示

サーバーレスの静的ウェブアプリケーションの公開について

React で静的ウェブアプリケーションを作成し、静的ウェブコンテナとして作成した Amazon S3 バケットに配備して公開するまでの大きな流れを説明します。

**防御壁:**

* 私が、社内でプログラミングに不慣れな後進へ勉強会で説明するために作成している文書です。内容は、初回の投稿のままではなく、随時更新します。
* 私は、C、Java、.NET、Perl や Python などを主に業務で使用してきたため、最近の ECMAScript は経験が浅いです。私も学びながら、教えながらの文書のため、正確性に欠く部分もありますが、ご容赦ください。
* 私は、AWS については AWS Certified Solutions Architect – Associate レベルの資格を保有しています。Professional ではありません。
* 私は、カタカナ語の語尾にある長音記号を省略しないスタイルです。

# はじまりの React アプリケーション

## React とは

ウェブアプリケーションの UI 構築のための JavaScript ライブラリです。

Me

元記事を表示

AWSバックエンド開発の環境構築

## 初めに

## 目次
– 環境構築
– 使用ソフト
– インストール手順
– SAMのデバッグ環境
– 使用ソフト
– インストール手順
– 最後に
## 環境構築
### 使用ソフト
Visual Studio Code
https://code.visualstudio.com/Download

Node.js
https://nodejs.org/ja/

Aws CLI
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html

SourceTree
https://www.sourcetreeapp.com/

### インストール手順

① AWS CLIの設定
“`
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

元記事を表示

PrivateLink構成のDatabricksでライブラリをインストールする

DatabricksではAWS PrivateLinkを用いて閉域網の構成を組むことができます。セキュリティは向上しますが、クラスターから公衆回線にアクセスできないので、GUI経由でのライブラリのインストールができなくなります。

https://qiita.com/taka_yayoi/items/c6bdbb6452f6a0895961

この場合、ライブラリのインストール方法の選択肢には以下のようなものがあります。

1. インターネット接続可能なネットワークでライブラリをダウンロード、ファイルを閉域網に移動してからインストール(オフラインインストール)
1. 閉域網内にリポジトリサーバーを立てる
1. Proxyサーバで特定のURLのみの通信を許可する(AWSとProxyサーバでネットワークが疎通している必要あり)
1. 必要なライブラリをインストール済みのカスタムランタイムをDockerコンテナに用意しておく

一長一短ありますが、ここでは追加の設定が不要な手順1を説明します。また、ここではPyPIとMavenからのインストールが必要なライブラリ[Glow](https://

元記事を表示

セッションマネージャを使ってECインスタンスへアクセスする

セッションマネージャはAWS Systems Managerというサービスの機能です。
EC2にSystems Managerへのアクセス権限を設定することで使えるようになります。

# EC2へのアクセス権限を設定する
マネジメントコンソールでIAMダッシュボードを表示してください。
左メニューから「ロール」をクリックしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/14202/c839e7dc-caa1-c6bc-d67b-f89b64244468.png)

「ロールを作成」をクリックしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/14202/7d05af76-9aa5-e00e-b12a-37c160a66ada.png)

信頼されたエンティティの種類で、「AWSのサービス」を選択してください。
![image.png](https://qiita-im

元記事を表示

DynamoDBのクリーンとコピー

# はじめに
DynamoDBのクリーンとコピーの仕方について、簡単に説明

# 目次
– テーブルのクリーン
– テーブルのコピー
– 最後に

## TableのCleanUp
### Scan + Delete Item
①すべてのデータをScan
②1件ずつ削除

 結果:遅い、コスト高い

### Drop Table + Create Table
①テーブル削除
②テーブル作成

 結果:早い、テーブルの再設定が面倒

## TableのCopy

### backap+restore
①バックアップ
②リストア

 結果:早い

## Scan + Write Item
①すべてのデータをScan
②1件ずつ追加

 結果:遅い、コスト高い

## DataPipeLine(EMR)でexport+import
①import:DynamoDB→EMR→S3
②export:S3→EMR→DynamoDB

 結果:早い(バックアップ用途では、AWS非推奨)
 
 AWS Data Pipeline を使用して DynamoDB データをエクスポートおよびインポ

元記事を表示

クライアントサーバ方式とP2P (STUN)でファイルの転送速度を比較してみたらP2Pの方が圧倒的に遅かった件

# 初めに
タイトルが全てです。ファイル転送をクライアントサーバ型とP2Pで実装して速度を比較しようとしましたが、良い結果が得られなかったのでその過程をここで供養します。

# 目次
[クライアントサーバ型とP2Pの通信方式について](#クライアントサーバ型とp2pの通信方式について)
[P2Pに立ちはだかる課題「NAT越え」とは](#p2pに立ちはだかる課題nat越えとは)
[NATを越える為の技術](#natを越える為の技術)
[基本P2Pの方が早い](#基本p2pの方が早い)
[仮説](#仮説)
[検証方法](#検証方法)
[結果](#結果)
[考察](#考察)
[まとめ](#まとめ)

# クライアントサーバ型とP2Pの通信方式について
**クライアントサーバ型**
コンピュータをサーバ(サービスを共有する側)とクライアント(サービスを授受する側)に分け、役割を分担して運用する仕組みです。
クライアントはサーバに対してほしいデータをリクエストし、それに対してサーバは要求されたデータを送ります。
P2Pと比較したときに、クライアントサーバ型は中央集権型の構造として語られます。おそ

元記事を表示

【AWS】【CloudFormation】ベストプラクティスのお勉強

# はじめに
AWSのCloudFormationの[ベストプラクティス](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/best-practices.html#cross-stack)のドキュメントを熟読して自分なりにまとめてみました。
業務でCloudFormationを利用する機会が増え、コツコツテンプレートを書いてました。
が!!
一番苦労したのがテンプレート設計でした。。。
サーバレス環境構築を求められていて、SAMかCFNか迷いましたが今回はCFNで作りました。
本記事は私自身の学習した備忘録として投稿しております。

# 1.計画と編成
## ライフサイクルと所有権によるスタックの整理
1. 最初は1つのスタックで作成しても良い。

2. スタック規模が大きくなると面倒で、時間がかかる。

3. **(解決策)共通のライフサイクルと所有権を持つリソースのグループ化の実施**

4. 他のリソースに影響を与えることなくリソース変更可能になる。

* グループ化の参考となる一般

元記事を表示

DyanmoDBのテーブル設計

# はじめに
Dynamoテーブルの設計で、参考になった内容を紹介します。

:::note info
 試験対策:AWS 認定 データベース – 専門知識(AWS Certified Database – Specialty)
:::
# 目次
– DyanmoDBのテーブルのキー設計
– パーティションキー設計
– LSI設計
– GSI設計
– サイズの大きい属性の設計
– その他

# DyanmoDBのテーブルのキー設計
### クエリパターンを洗い出し、適切なLSIやGSI選択
 参考:DynamoDB用のNoSQL 設計
 https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/bp-general-nosql-design.html

### スキャン禁止
 スキャンは大量のシステムリソースを消費する

 参考:テーブルをスキャンする
 https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/develop

元記事を表示

スナップショット とは?EBSとAMIの違いも見てみた

## 勉強前イメージ

EBSのスナップショットとかその時の瞬間を残しておくような感じ?
AWS用語なのかな?
バックアップ?

## 調査

### スナップショット とは

AWS用語ではなく、ITの分野の用語では
ある時点におけるデータやファイルなど全体像を写し取ったものを表します。

バックアップする際に、バックアップ中にファイルの更新がされてしまうと
復元した際のファイルやディレクトリに不整合が起こったりすることがあります。
それを防ぐのがスナップショットで、ある時点でのデータの状態を保持しているので不整合を防ぐことが出来ます。

ただし、スナップショットはバックアップではないのです。
スナップショットは元のデータを丸ごとコピーしているわけではなく、
スナップショットを取った際の瞬間のシステム状態を記録しているので
`元のデータが破損すれば復旧が不可能` になります。
これが、バックアップとの違いになります。

### EBSのスナップショットは?

EBSのスナップショットも同様、EC2のその瞬間の `EBSの中のデータ` を丸ごと保存したものになります。
ただし、スナップ

元記事を表示

Wavelengthを使ってみて分かったこと

# 背景
5Gに対応したAWSの機能である[AWS Wavelength](https://aws.amazon.com/jp/wavelength/)にかねてより注目していたため、デモ開発の中で試しに使ってみた。
Wavelength利用にあたっては以下を参照した。
– [AWS Wavelength の開始方法](https://aws.amazon.com/jp/wavelength/getting-started/)
– [【初心者】AWS Wavelengthを使ってみる](https://qiita.com/mksamba/items/9a45a666ae938053fa72)

利用してみて得られた知見を次の流れで整理する。
– 疎通確認を通じて分かったこと
– 利用してみて分かったWavelengthの制約(2022年4月時点)

なお、Wavelengthの機能概要や利用手順については上記のリンク先等に説明があるのでこの記事では説明を省略することとする。

# 疎通確認を通じて分かったこと
Wavelengthの機能概要を押さえるために、デモ開発の前に簡易的なシステム

元記事を表示

【AWS】ECSタスクをLambdaから環境変数追加して起動する方法【Java】

# 最初に
ECSタスクをLambdaから起動するのに手間取ったため、その手法を書き記しておきます。
使用言語はJavaですが、AWSの構成としてはどの言語でも同じよにして実現可能なようです。

## やりたかったこと
* S3にファイルをアップロードしたことをトリガにしてLambdaを起動する
* LambdaからECSタスクを起動する
* アップロードされたファイルをECSでダウンロードする。(そのために、S3のファイル名などを知る必要がありました)
※ Lambdaだけで処理するのが簡単だけど、ストレージ10Gの制限があるためECSを使用することにしました。
![ECS-Lambda-AWS-picture.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2618997/d9d9b59b-9117-dfb5-9313-509720fe7e34.png)

## わからなかったこと
1. LambdaからECSタスクを起動する方法
1. 環境変数を指定してECSタスクを起動する方法(S3のフ

元記事を表示

Route53ヘルスチェックを使用しリカバリサーバーを用意する方法

# 完成図
プライマリサーバが正常に動作しなくなった時、検知してリカバリサーバにルーティングを変更する構成。

:::note info
リージョンを分けることで冗長化
:::

![Untitled (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1488939/cb1febe6-e097-6a78-5c6e-b7d4d702449a.png)
やってないけど、Route 53 のヘルスチェック先とレコードを変更すれば S3 静的ホスティングとかでもいける、たぶん…

# 必要リソース
– EC2インスタンス x2
– プライマリインスタンス
– セカンダリインスタンス(プライマリとは別のリージョンに作成)

– Route53 ヘルスチェック x2
– プライマリ用
– セカンダリ用

– Route53 レコード x2
– プライマリ用
– セカンダリ用

:::note warn
ホストゾーンの作成は割愛
:::

– CloudWat

元記事を表示

クラウドネイティブハニーポッド(lurker) + Palo Alto VM-Seriesで攻撃通信を解析してみた

# はじめに

諸事情でPalo Alto VM-Series on AWS(以下Palo Alto VM)の動作検証を行なっていました。せっかく動かしているので、FWの後ろにハニーポッド(lurker)を動作させ、どんな通信がAWS上のEC2に飛んでくるのかを観測しました。

## 構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/174361/3188a18c-afcc-08e4-48d7-95c51458d201.png)

### Palo Alto VM
EC2の前段でトラフィックを観測し、脅威として検知できた場合にロギングを行う。
L3/L4のレベルではインターネットからハニーポッド向け通信を全許可しており、セキュリティポリシーで脅威防御の機能を有効化。

### lurker
ハニーポッドとして@m_mizutani さんが作成された[lurker(Github)](https://github.com/m-mizutani/lurker)を利用しました。(ありがとうご

元記事を表示

AWSのコンテナサービス選択法

# 概要

* 2022年6月23日の時点において、**コンテナ化されたアプリケーションをAWSで実行するためにはどのAWSのサービスを使用すればよいのか迷われる方多いのではないでしょうか。**
* そんな方向けに今回は、AWS Container Heroである[Vlad Ionescu](https://twitter.com/iamvlaaaaaaad/)さんのブログで紹介されている[Flowchart: How should I run containers on AWS?](https://www.vladionescu.me/posts/flowchart-how-should-i-run-containers-on-aws-2021/)の翻訳および最新化したAWSのコンテナサービス選択のためのフローチャートについて紹介していきたいと思います。
* 紹介されているフローチャートの選択で古いものがあるのでそこはアップデートしつつまとめていきます。

## AWSのコンテナサービス選択のためのフローチャート

* **下記のフローチャートに従うことでAWSのどのサービスが適して

元記事を表示

【駆け出しの方へ】簡易的な AWS の EC2 設定ができているか比較して確かめる用の CFn 【IaC】

## 目的

元々は社内のメンティーの方に向けて作ろうと考えていましたが、公開してもいいかなと思い投稿します。

AWS をまだあまりちゃんと触ったことがない方用に、EC2 や VPC を設定して、うまく疎通して設定できているかを比較するためのテンプレートを作成しました。

初めて VPC を作成する方はなんで疎通ができていないかわからずにつまづきやすいと思います。(私がそうだったので)
もし、疎通ができているサンプルがあれば、比較することで色々検証に役立つかなと考えたので、使っていただけると嬉しいです。

## レポジトリ

https://github.com/itsuki-n22/simple-nginx

## 使い方

0. AWS CLI を[インストール](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html)
1. `git clone git@github.com:itsuki-n22/simple-nginx.git`
2. `cp params.cf

元記事を表示

カスタムモデルを sagemaker neo コンパイルしようとしてハマった

## 表題の通りコンパイルしようしてハマった以下エラー

“`py: error
ClientError: InputConfiguration: Unable to load provided Keras model. Error: Unknown layer: Functional For further troubleshooting common failures please visit: https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-compilation.html
“`

– 原因は、カスタムモデルのネスト構造をフラット処理しようとした時に、tensorflow のバージョンを違うものにしていたので、エラーが出ていた。
バージョンを統一することで解決。

しかし、わかりづらいエラーの内容にハマった。面倒くさい。。。(笑)

元記事を表示

Amazon QuickSightとは

Amazon QuickSightとは

Amazon QuickSightは、AWSが提供しているビジネスインテリジェンス(BI)サービスで高速かつ簡単に情報を可視化することが可能になる。
Amazon QuickSightでは、S3やRDSなどのAWSサービス上にあるデータや、ローカルのCSVなどを使用して分析を行うことができる。
さらに、機械学習(ML)機能を活用した、異常検出や数値の予測など、より高度な分析を簡単に行うこともできる。

BI(ビジネスインテリジェンス)
ビジネスインテリジェンスとは、ビジネス分析やデータマイニング、データビジュアライゼーション、データツールやインフラストラクチャ、またはベストプラクティスなどを組み合わせて、組織がよりデータに基づいた意思決定を行えるように支援すること。

SPICEとは

QuickSightでは、CSVファイルやTSVファイルなどのデータソースを「SPICE」というデータ領域に取り込むことで分析が可能になる。

SPICEとは
・Super-fast(超高速)
・Parallel(並列)
・I

元記事を表示

非VPC、VPC上のLambdaが リソースに対して実行する・される パターン集

# はじめに
Lambdaを使う上で、VPC内の`public subnet`、`private subnet`にあるLambdaが他のリソースにアクセスするパターンや、他のサービスからLambdaを呼ぶパターンなど、様々なパターンで実現可能かどうかまとめました。

# 非 VPC の Lambda がリソースに対して、アクセスする
![スクリーンショット 2022-06-21 22.39.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/988747/57644825-aec1-e23b-ffe8-0bbeeb0148f1.png)

| Lambda → リソース |アクセス|
|:-:|:-:|
| Lambda → リージョンサービス |○|
| Lambda → public内 リソース | ○ |
| Lambda → private内 リソース | ✗ |

リージョンサービスのリソースに対して、Lambdaを実行することはできます。

Lambdaは、VPC内のサー

元記事を表示

OTHERカテゴリの最新記事