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

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

【駆け出しの方へ】簡易的な 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内のサー

元記事を表示

CloudFormationを使ってAWS Batchを(ほぼ)全部AWS CLIで構築してみるハンズオン!

## 初めに

みなさんAWS Batchは活用していますか?

AWS Batchはキューに登録したジョブを非同期で処理してくれるAWSのサービスになります。

軽量タスクをサーバーレスで行いたい場合はLambdaなどが第一の選択肢になってきますが、**Lambdaは実行時間が15分**という制限があるため、大容量データをいくつも処理したい時にLambdaは利用できません。
そんな時に活躍するのがAWS Batchになります。

DockerイメージをAWSのECRというサービスにプッシュしておけば、そのコンテナがそのままAWS Batchで利用することができます。

イメージとしてはSQSとFargateが統合されたサービスで、AWS Batch内部でキューとコンピューティングリソースがどちらも含まれていますので他のサービスと連携することなく利用できます。

LambdaとAWS Batchの細かい比較についてはこちらが参考になりました。
[AWSでバッチ処理を実装する際の選択肢とサービス比較](https://zenn.dev/faycute/articles/fb310e3cc

元記事を表示

DVA参考リンク(AWS Certified Developer – Associate)

https://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/reference-appspec-file-validate.html
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/invocation-retries.html
https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/WorkingWithItems.html#WorkingWithItems.ConditionalUpdate
https://aws.amazon.com/jp/premiumsupport/knowledge-center/cognito-user-pools-identity-pools/
https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html
ht

元記事を表示

Glue Jobを実行すると `LAUNCH ERROR | No FileSystem for scheme “S3″Please refer logs for details.`というエラーが発生する。

# TL;DR
Glue JobのAdvanced properties内のScript pathの指定で`s3://`が大文字になっていないか確認する。大文字になっている場合は小文字にする。

# 事象
CDKで作成したGlue Jobを実行したところ`LAUNCH ERROR | No FileSystem for scheme “S3″Please refer logs for details.`というエラーが発生してジョブの実行ができなかった。
マネジメントコンソール(AWS Glue Studio)上では正しくスクリプトが表示されるが実行するとエラーになる。

# 原因
Script Pathの指定で`S3://`と大文字で記述していた。

# 解決方法
Script Pathの指定で`s3://`は小文字で記述する。
というか`s3://`の指定はいつでも小文字。

元記事を表示

DRF+Nuxt+MySQLのローカル・ECS環境構築

DRF+Nuxt+MySQLな環境を作るための備忘録
作業ログ的な感じなので説明省いてますので質問がある方はコメントください。

## 本記事のポイント
1. ローカルでDRF(Django REST framework) + Nuxt + MySQLの環境構築
1. Docker Compose for ECSでDRF(Django REST framework) + Nuxt + RDSの環境構築
1. ECSのコンテナにSSHできるようにする。ECS Exec
1. ALBを使ってHTTPSアクセスできるようにする。

Docker Compose for ECSは構築してしまえば、1コマンドでECSを起動できるのでオススメ
ただしSSH接続やALBを含めた構築はAWS周りの知識、特にCloudFormationが必要なので結構大変です。。。
Qiitaやネット上にほとんど情報がないので自分と他のエンジニアのために記録を残す。グッドラック
※ DRFやNuxtのインストールやセットアップは省く

## ローカル対応

### 各種コンテナ用のDockerファイル作成

####

元記事を表示

aarch64 アーキテクチャに対応した Amazon Linux2 向け Zabbix Agent 6.0の RPM パッケージをビルドする

# はじめに
みなさん、Zabbixでサーバ監視していますか?
昨今様々なサーバー監視ツールが普及していますが、私は Zabbix を使ってサーバ監視をしていることが多いです。

今回は aarch64 アーキテクチャ向けの Amazon Linux2 向けの Zabbix Agent 6.0 の RPM パッケージをビルドするための方法を調べましたので共有します。

## 作成しようとした理由
そもそも、Amazon Linux2 に対応した Zabbix Agent は正式に利用できないといわれているものの、x86_64 アーキテクチャであれば、Red Hat Enterprise Linux(以下、RHEL) 7 の x86_64 アーキテクチャ版を利用することで動作させることができました。

昨今、aarch64 アーキテクチャに対応した OS AMI も公開されており、x86_64 向けの EC2 と比較すると利用料金も安価に済ませることができます。
しかし、aarch64 アーキテクチャ向けの RHEL 向け Zabbix Agent は Zabbix 開発元では提供されて

元記事を表示

AWS glue でのポート開放不備エラー

glue で crawler を使ったときに、JDBC 接続にしたところ、以下のエラーとなった。

“`
ERROR : At least one security group must open all ingress ports.To limit traffic, the source security group in your inbound rule can be restricted to the same security group
“`
どうやら、自分自身(のセキュリティグループ)を対象として、すべてのポートを開放する必要があるらしい。

RDS に接続しているセキュリティグループのインバウンドが、Web tier からの PostgreSQL が使用するポートしか許可しないというポリシーだけだったので、自分自身のすべてを許可するレコードを追加したら、接続できるようになり、エラーも出力されず、データベースの各テーブルのスキーマを glue で取得できるようになった。

(参考)
自己参照ルールを追加して、AWS Glue コンポーネントが通信できるようにします。具

元記事を表示

EC2 Inf1インスタンスを使ってみた

## はじめに

低コストで高性能な推論が可能なEC2 Inf1インスタンスを使ってみました。
これまでElastic Inferenceは利用したことがあるので、Elastic Inferenceと比較してみました。

### Inf1インスタンスとは

AWSのページでは以下のように紹介されています。
> 同等の現行世代の GPU ベースの Amazon EC2 インスタンスと比較して、スループットが最大 2.3 倍高く、推論あたりのコストが最大 70% 低くなっています。Inf1 インスタンスは機械学習推論アプリケーションをサポートするため、1 から構築されました。同社は、AWS が設計開発した高機能の機械学習推論チップである AWS Inferentia チップを最大 16 個搭載しています。

また、多くのAmazonサービスでもInf1インスタンスが利用されています。

## 今回実施すること

* Inf1インスタンスを用いて、ECS上に推論サーバを構築する
* Inf1インスタンスとElastic Inferenceを比較する

## 利用するモデル

モデルとして、物

元記事を表示

amazon S3についてアウトプット

# 勉強前の知識
S3っていうファイルを保存しておく場所。
写真とか文書とかを入れておいて、HPで公開したりすることが出来る。

# S3の概要
S3(Simple Storage Service):データを安全に、無制限に保存できるオブジェクトストレージサービスのこと。
ストレージ作成時、EBSのようにデータサイズを考える必要はなし。

**S3の特徴も以下が挙げられる。**

**・柔軟なストレージ機能**
⇒自動で容量を追加してくれる

**・高耐久/高可用**
⇒すべてのオブジェクトに対して99.999999999% (9 x 11)の耐久性を実現でき、99.99% のオブジェクトの可用性を提供するよう設計されている。

**・低コストによる運用が可能**
⇒保存されている容量とリクエスト数、データの転送料金など使用した分だけ料金が追加されていく。
 一定時間たったら削除するなどの設定もできるので、低コストでランニングできる。

**・静的ファイルの配信**
⇒保存したオブジェクトをHPで公開することが出来る

# オブジェクトを暗号化する方法
S3のオブジェクトは4つの方法で

元記事を表示

Chaliceを使って爆速でAPIサーバを構築するやつをやってみた

# 概要
* AWS純正のフレームワークであるChaliceを利用して、爆速でAPIサーバを構築しようという話です
* 探せばいくらでも記事が出てくるのですが、情報が散見してるのでまとめてみた

# Chaliceとは?
* サーバーレスアプリケーションのためのフレームワーク
* サーバレス環境が簡単に構築できるよ
* コンソールぽちぽちする必要もないし、ymlファイルを書いたりする必要もない

# 前提
* ~/.aws/config と~/.aws/credential の設定を行なっていること
* pythonが使える環境であること(3.9系で動かしています)
* APIサーバに限らず、他のAWSサービスと連携してもっと色々なこともできるようなのですが、今回は割愛します

# 手順
## 基本
**①chaliceをインストール**
“`
$ pip install chalice
“`

**②プロジェクト作成**
“`
$ chalice new-project helloworld
“`

こんな感じのディレクトリ構成のフォルダが出来上がると思います
“`
.

元記事を表示

AWS CDKでEC2をデプロイする

# はじめに
本記事はAWS環境にてAWS CDKでEC2をデプロイするための方法について記載しています。

AWS CDKについては以前書いた[5分で理解するAWS CDK](https://qiita.com/Brutus/items/6c8d9bfaab7af53d154a)を参照。

## CDKのデプロイ(EC2)
ウォークスルーとして[Amazon EC2 でウェブアプリケーションをデプロイする](https://aws.amazon.com/jp/getting-started/guides/deploy-webapp-ec2/)を参考にしながら、コード[^1]を一部変更してデプロイします。使用する言語はTypeScriptです。

[^1]: 出典:[Amazon EC2 でウェブアプリケーションをデプロイする](https://aws.amazon.com/jp/getting-started/guides/deploy-webapp-ec2/module-one/)

### 準備作業
作業ディレクトリで以下のコマンドを実行し、新しいTypeScript用のCDKプ

元記事を表示

CloudTrail のログを Athena で検索

CloudTrail でログを取得する設定を施す。
CloudTrail の「Event history (イベント履歴)」 をを選択して、「Athena テーブルを作成」 をクリック。CloudTrail のログを保存しているバケットを選択する。
Athena に行く。
上記により作成されたテーブル名(cloudtrail_logs_aws_cloudtrail_logs_xxxx のようになっているはず)を選択する。「テーブルをプレビュー」をクリックすると、10件表示される。SQL を適切に変更すれば、自分の知りたい情報を得ることができる。

(一例)
イベント名の数
“`
SELECT COUNT(DISTINCT eventname) FROM “default”.”cloudtrail_logs_aws_cloudtrail_logs_xxxx” AS “Number of eventnames”;
“`
イメージ作成
“`
SELECT * FROM “default”.”cloudtrail_logs_aws_cloudtrail_logs_xxxx” WHERE

元記事を表示

Snyk で稼働中の Kubernetes ワークロードをテストする

## はじめに
この記事は、Qiita エンジニアフェスタ 2022 [**「Snykを使って開発者セキュリティに関する記事を投稿しよう!」**](https://qiita.com/official-events/786b978e4a1a28fad312) の参加記事です。

https://qiita.com/official-events/786b978e4a1a28fad312

Snyk の Kubernetes Integration を Amazon EKS 環境で試してわかったことなどをまとめます。

今回は以下の構成で検証しています。

* Amazon EKS: Kubernetes 1.22
* Snyk controller: 1.92.2

:::note info
Kubernetes Integration は Business plan または Enterprise plan で利用できます。Business plan は 14 日間の Free trial を利用することもできます。
:::

## Kubernetes Integration と S

元記事を表示

cloud9でsamを利用しapiを作成する

## 手順
### codecommitにてレポジトリを作成する
作成方法は後日

### cloud9を作成する
作成方法は後日

### コマンドライン操作
“`
$ sam init
“`
この時作成されるファイルの紹介
**app.py**: lambdaの中身を記述するためのもの
**template.yaml**: cloudformtionの中身となるもの
**requirements.text**: importするライブラリを記入するもの

“`
$ sam build –use-container
“`
“`
$ sam deploy -g
“`
同じコンテナをビルドし直す場合は-gオプションは不要

### API GATEWAYからAPIを叩く
1. API GATEWAYのメニューバーからステージをクリック
1. URLの呼び出しをクリック
1. URLの末尾にパスを加える(template.yamlの後半の以下のコードのpath:を参照)
“`
Events:
HelloWorld:
Type:

元記事を表示

Git BashでAWS CLI使用時、MFA認証のプロンプトが表示されない

## 事象
Git BashにてAWS CLI使用時にMFA認証が起動した際、打ったコマンドが処理中のまま止まってしまう。
もしくは、Bashアプリ自体がフリーズしてしまう。(エラーとかは出ない)

【発生例】
スイッチロール先アカウントのリソースをCLIでごにょごにょしたいとき。

## 解決方法
下記サイトを参考にした。
[GitBash not prompting for MFA in AWS CLI](https://kerneltalks.com/tips-tricks/gitbash-not-prompting-for-mfa-in-aws-cli/)

【手順】
1. git bashアプリファイルの保存先を開く
2. 「Git Bash」ファイルを右クリック
3. 「プロパティ」押下
4. 「ショートカット」タブ押下
5. 「リンク先」を下記のように変更する

“`
変更前
“C:\Program Files\Git\git-bash.exe” –cd-to-home

変更後
“C:\Program Files\Git\bin\bash.exe” –cd-to-

元記事を表示

M1 macでAWS session managerを使っていてunknown error number 86というエラーが出たら

## TLDR
– xcodeをインストール、または最新にアップデートしましょう。

## 概要
AWS SSOを使ってEC2にsshしていたのですが突然 `ssh_exchange_identification: Connection closed by remote host`というエラーが出て接続できなくなってしまいました。

一見`ssh`コマンドでエラーが出ていたのでssh関連かな?と`~/.ssh/config` やpermission周りを疑っていたのですが `session-manager-plugin` コマンドを入力すると `exec: Failed to execute process ‘/usr/local/sessionmanagerplugin/bin/session-manager-plugin’, unknown error number 86` というエラーが出るようになっていることに気づきました。

少しネットで調べてみるとsession-manager-pluginのissueに

>After running the following co

元記事を表示

AmazonHttpClientにて、プロキシが自動で設定されてしまうことにハマった

## 背景
ある日、DynamoDBをローカルで動かすようなプログラムをいつものように実行したら、プロキシ関係のエラーではまった。
結局は単純だったが、かなり時間かけてしまったので、ほかに自分みたいな人間が生まれないように、記録。

## 起きたこと

JavaプログラムからAWS SDkを使用して、Awsのサービスにアクセスしようとした。
これまでは、問題なくアクセスできていたが、サービスにアクセスできない事態が発生。

スタックトレースには、以下のエラーが発生。
“`console
com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException: null (Service: AmazonDynamoDBv2; Status Code: 502; Error Code: null; Request ID: null; Proxy: proxy.*****)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(Amaz

元記事を表示

OTHERカテゴリの最新記事