AWS関連のことを調べてみた2021年10月08日

AWS関連のことを調べてみた2021年10月08日
目次

UnityをGPUインスタンスで動かす時に苦労した人へのメモ

# UnityをGPUインスタンスで動かす時nvidia driverの選択には気をつけろ

可なり稀なケースかもしれないですが、AWSのGPUインスタンスを積んだインスタンスを使ってUnityを動かしたいと思った時に苦労した話と簡単なTipsを備忘録として残します。
cloudXRなどの実現のために困っている方は使えるかもしれないです。
特にNvidia driverをAWSの手順通り入れようとして困った方には役に立つかと思います。
あと調べると意外とAWSのインスタンス上でUnity動かす話は出てこないので、役に立てば幸いです。
## 対象
Unityのことはわかるけどインフラ周りなどAWSはわからんの人

## 結論
windows serverで動かすなら、公式AMIsを使った方がいい。
https://aws.amazon.com/marketplace/pp/prodview-xrrke4dwueqv6
Ubuntuで動かすなら公式AMIsはおすすめできない。
こちらでインスタンスを立てて、UnityをDLするのが現状おすすめ。
どうしてもの方は「NVIDIA ゲームドライ

元記事を表示

Google Cloud の Storage Transfer Serviceを使ってS3→GCSへデータ転送

## これは一体…?

GCのStorage Transfer Serviceを使ってS3→GCSへデータ転送し、送信後はデータを送信元(S3)から削除する、までをやってみました。
メモとして残します。
なお、今回VPC service controlsは使っていません。
[GC公式の手順](https://cloud.google.com/architecture/transferring-data-from-amazon-s3-to-cloud-storage-using-vpc-service-controls-and-storage-transfer-service)では、これを使用する方法が載っており、おそらくこの方がセキュアなんだろうと思いますが、デフォルトでHTTPS使っているし、大丈夫だろうということでやってみました。
VPC service controlsを使うと得られるメリットは、今のところ以下だと考えています。

・承認を受けたネットワーク以外は機密データに[アクセスできない](https://cloud.google.com/vpc-service-contr

元記事を表示

AWSサービスを利用した機械学習モデルのデプロイメント

– [English Version (英語版)](https://qiita.com/ps_ap/items/4f4228f45847f91af8f6)

機械学習モデルをGPUデバイスや組み込み機器などに実装することは、とても良い方法の一つです。
しかし、その一方で、非常にコストがかかります。

そこで、NVIDIA Jetson Nano Developer Kit B01を使って、物体検出モデル(Pytorch)と認識モデル(Tensorflow-Keras)を実行し、コスト削減を図りました。

しかし、Jetson nanoに展開するために最適化されたモデルを使用しても、メモリを多く消費するようで、同じデバイス上で両方のモデルを実行することは非常に困難でした。そこで、1つのモデルをAWSのクラウドシステムを利用して展開することにしました。

Jetson Nano上の検出モデルとAWS Cloud Services(AWS)上の認識モデルにより、システム全体の性能と速度を向上させることができました。

次の図は、組み込み機器とAWSへのモデル展開について説明しています:
![

元記事を表示

Deploying machine learning models using AWS services

– [日本語版 (Japanese Version)](https://qiita.com/ps_ap/items/f37d6b7788b2cb5807aa)

Implementing machine learning models on GPU devices, embedded devices, etc. is the best option. But on the other hand, it is very costly. The following figure explained about the models deployment on embedded device and AWS:
![benchmark-report.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1167939/2e3acfc2-1224-71ea-fadc-1c087725df1c.png)

Therefore, I used [NVIDIA Jetson Nano Developer Kit B01](

元記事を表示

S3/CloudFrontで静的サイトホスティングしてみた。

##経緯

転職活動をするにあたって、実績をまとめたポートフォリオサイトを作成することにした。
一番簡単な方法はGitHub Pagesを使ってリポジトリを登録して一発でサイトホスティングしてしまう方法だと思うが、これだと過去のポートフォリオや画像を掲載するとサイトの動作が遅くなるという欠点がある。
私の場合はReactのSPAを掲載したかったため、動作が重くなる事態は避けたかった。
その時に実際行った手順を備忘録として残しておきたい。

##システム構成図
![my-portfolio-site2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280830/4bca09bc-2f56-40b5-c441-db967d0b59bd.png)

・S3とは?
AWSが提供するストレージサービス。静的サイトホスティングの機能も有しており、今回はこれを利用する。

・CloudFroutとは?
CDNサービス。あらかじめディストリビューションを登録しておくことでコンテンツを高速で配信する。

##メリット

元記事を表示

【備忘録】DockerイメージをAWS ECRにpushする

#### 概要
1年くらい前に試したAWS ECRにdockerイメージをpushする手順のまとめ。備忘録。

#### 1. ECRリポジトリの作成

“`shell
aws ecr create-repository –repository-name ${REPOSITORY_NAME} –region ${AWS_REGION}
“`

#### 2.ログイン
`–password-stdin`には上記で作成したリポジトリのURLを指定する。`Login Succeeded`が帰ってくれば成功。

“`shell
aws ecr get-login-password | docker login –username AWS –password-stdin https://.dkr.ecr..amazonaws.com
“`

#### ビルドする
Dockerfileが存在するディレクトリで実行する。
`{レジストリID}.dkr.ecr.{リージョン}.amazonaws.com/{リポジトリ名}:{タグ名}

元記事を表示

AWS 覚えておきたい基本単語

#はじめに
AWSに出てくる基本単語を備忘録を兼ねてまとめます。
ざっくりイメージで記載している箇所も多々あるので、その点はご容赦ください。
当方初学者故、誤りがあればコメントでご教授いただけると幸いです。

## VPC (Virtual Private Cloud)
AWS上に仮想ネットワークを作成できるサービスのこと。
AWSの敷地にないに自分の領土を広げるイメージ。
VPC内にアプリに必要なサーバーやサブネットなどを配置する。

## サブネット
VPCを細かく区切ったネットワーク、そのグループのこと。
VPC内で役割が異なるパーツを外部接続、内部接続など、接続先ごとにサブネットというグループに分類する。
サブネットは複数のAZに接続する。

## インターネットゲートウェイ
VPCから外部に出るときに通る出入り口のこと。VPCにアタッチして設定する。

## ルートテーブル
サブネットごとに作成できる、通信に関するルールブック。

## セキュリティグループ
サブネットごとに作成できる、セキュリティに関するルールブック。
ホワイトリスト方式でルールを記載する。(記載されたルー

元記事を表示

Athenaの特定のSQLクエリ構文のクエリ結果が変更になるよう(2021/12/1以降)

# 概要
* 2021年12月1日以降、Athenaの特定のSQLクエリ構文のクエリ結果が変更になるようです。
* 今回は、その該当するクエリ構文がどのようなものかをまとめました。

# 該当するクエリ構文
**1: CHAR 型カラムと文字列リテラルの比較の評価が容易になります。文字列リテラルにはパディングは必要ありません。**

データ型 CHAR (5) の col5 という名前の列があり、列 col5 の値 ‘abcd ‘ (末尾のスペースに注意) の行が含まれている。

**現在の仕様:** クエリで結果を一致させるには、まったく同じ文字列リテラルを使用する必要があった。

“`
SELECT 1 FROM t WHERE col5 = ‘abcd ‘; (末尾にスペースが必要)
“`

**新しい仕様:** 条件と一致するためにクエリの末尾にスペースを入れる必要がなくなった。

“`
SELECT 1 FROM t WHERE col5 = ‘abcd’;
“`

**ちなみに、上記のクエリは両方とも一致し、現在の動作は引き続き有効な模様。**

**2:

元記事を表示

terraformで構成管理しつつaws lambdaをデプロイする

DMMデータインフラ部に所属している[yuua](https://qiita.com/yuua0216)です
terraformで作成しlambdaをデプロイする際にterraformにlambda関数を含めるとchangeがでたり、扱いづらく
悩むときがあるのでその際の手順的な備忘録です

今回のlambdaはlambda containerではありません

## 初回の手順

1.terraformで基本的なlambdaの事前の情報を作成する(配置先など)
2.lambda関数をzip化しs3バケットに配置する

## 継続的なデプロイの手順

基本的にgithub actionsなどのCI/CDを使います

1.github actionsでlambda function / lambda layerをバケットに配置
2.github actionsでupdate functionの実行

## 下準備

lambdaを配置するようのs3 keyなどをterraformで作成します

“`s3.tf
// bucket作成
resource “aws_s3_bucket” “l

元記事を表示

cloudwatchの詳細モニタリングについて

## 勉強前イメージ

1分間隔で見れるとか正直それくらいしか覚えてないし違いがわからん

## 調査

### cloudwatchの詳細モニタリングとは

EC2のモニタリングタイプで、
`基本モニタリング` と `詳細モニタリング` があります。

– 基本モニタリング
– 費用 : 無料
– データの取得間隔 : 5分

– 詳細モニタリング
– 費用 : 有償
– データの取得間隔 : 1分(10個までは無料利用枠)

### 詳細モニタリング有効化の方法

詳細モニタリングはEC2インスタンス1台ごとに有効化を行います

– EC2へ移動

EC2へ移動します

![1インスタンス _ EC2 Management Console – Google Chrome 2021-10-07 18.11.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/21587591-e479-0943-8fe4-41e672db60fc.png)

– 有効化

アクション > モニタ

元記事を表示

amplify add analyticsを使用した際、us-west-2にpinpointが設置されてしまうとき

## 前提
バックエンドをAWSを利用してiOS開発をしています。
新たなアプリにプッシュ通知を実装する必要があり、元々amplifyを使用していたためAmazon pinpointを利用することになりました。

初めてのプッシュ通知、初めてのpinpointで山あり谷ありでしたが、なんとか実装に成功。
その山の中でも特にわけわからなかったのが**pinpointがオレゴンにpushされる**という事象です。
amplifyはap-northeast-1(東京リージョン)に設置しているので、amplify CLIを利用して作成したapi、authなどは東京リージョンに設置されます。
しかし、analyticsだけは何故かus-west-2(オレゴン)に設置されてしまいました。
これを解決しようと思ったのですが、なかなか記事が引っ掛からなかったので、ここに備忘録として残しておきます。

## 原因
`amplify add analytics` をした後に作成されるcloudformation-templete.jsonが原因。
このファイルの中でどのリージョンにpushさせるか決めてい

元記事を表示

S3 オリジンへの直接アクセス制限と、インデックスドキュメント機能をCloudFrontFunctionsで共存させる方法

S3+CloudFrontの構成で静的Webサイトを構築した場合、サブフォルダまたはサブディレクトリからデフォルトのルートオブジェクトを返さないという問題に対し、Lambda@Edge(L@E)で解決するという記事をよく見かけますが、CloudFrontFunctions(CF2)でも実現することができました。

CF2はL@Eより手前で、シンプルな処理をより高速に、素早く、安価に実行できるサービスです。

今回のように `URLにファイル名や拡張子を含まないリクエストにindex.htmlを追加するだけ` といった単純なユースケースではより最適な方法かと思います。

# やってみた

### コードを拾ってくる
コードサンプルがAWS公式のCloudfrontデベロッパーガイドに載っているので以下のページからコピーします

[index.html を追加してファイル名を含まない URL をリクエストする](https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/example-function-

元記事を表示

デプロイに使用したAWSのサービスとインフラ知識のまとめ

ポートフォリオのデプロイに使用したAWSのサービスとその周辺のインフラ知識についてまとめました。

サービス一覧、

– VPC
– RDS
– EC2
– Route53
– IAM
– S3
– ACM
– ALB

# VPC

### VPCとは?
– Virtual Private Cloudの略で、AWS上に仮想ネットワークを作成できるサービス。
– AWSの広いネットワークの土地の中で自分だけの空間を作成できる。

### リージョン
– AWSの各サービスが提供されている地域のこと。
– AWSのサービスを使う場合まずリージョンを設定し、リージョン毎にサーバーを作っていく。

### アベイラビリティゾーン
– 独立したデータセンターのこと。
– どのリージョンにも複数存在している。理由は災害が起きて1つのアベイラビリティゾーンが止まっても他のアベイラビリティゾーンを使えるから。

### サブネット
– ネットワークを分割して作った小さなネットワークのこと。
– サブネット内で1つをインターネットからアクセス可能なWebサーバー、もう1つをアクセスできないDBサーバー

元記事を表示

ハンズオン6 キャッシュサーバーを配置する

この記事を書いている私について

インフラ系PMO歴半年でAWSクラウドプラクティショナーを取ったばかりの私が
AWS CloudTechという動画学習サービスに参加し、AWSエンジニアを目指すための備忘録です:fire:

構築→記事作成→指摘反映の中で間違いがあったら業務でも発生するので、これからも気を引き締めて行きたいと思います。

本記事の目標

前回の「HTTPS通信でアクセス可能にする」に引き続き、
今回はCloudFrontを使いキャッシュサーバーを設置します。

https://qiita.com/zetzetn/items/ba6205ec7cd15aaee45a

前回の記事ではHTTPS通信でブログサイトにアクセスして閲覧できる状態でした。
本記事ではCloudFrontを配置してHTTPS通信でブログサイトにアクセスして閲覧できるようにしていきます。

###CloudFrontとは
データを効率良く配信できるキャッシュサーバーをフルマネージドで利用できるAWSのサービスです。
EC2のデータをCloudFrontにコピーしているようなイメージです。
ユー

元記事を表示

AWS CLI による Lambda Layer のアップデートについて

CodeBuildを使ってLambdaに対して自動デプロイしていたのだが、Layer部分で急にエラーが出るようになったので調べてみた。

## TL;DR

– CodeBuild だけでなく、コンソールからの AWS CLI でも起きる
– update-function-configuration を利用しなければ影響はない
– Lambda関数の説明に「aws:states:opt-out」を追加すれば、取り敢えずは今まで通り動く
– 2021/12/1 以降は上記説明を付けても無理そうなので、検討必要

## Error Log

“`
An error occurred (ResourceConflictException) when calling the UpdateFunctionConfiguration operation: The operation cannot be performed at this time. An update is in progress for resource: [ARN]
“`

## ResourceConflictExc

元記事を表示

AWSデプロイ時のプリコンパイルでつまづいた話

https://qiita.com/naoki_mochizuki/items/5a1757d222806cbe0cd1

こちらの記事を参考にAWSのデプロイを進めていると、最後の最後であるプリコンパイルで詰まる

“`
rake assets:precompile RAILS_ENV=production
“`

を実行すると長文のエラー
よくみてみると

“`
error /var/www/rails/myapp/node_modules/node-sass: Command failed.
“`

node-sass周りに問題がある?

https://qiita.com/kensuke_kumaki/items/54e749e623cdaedce472

こちらの記事を参考に解決。

“`
node -v
v16.1.0
“`

nodeのバージョンが非推奨だったようで記事の方法を試すと解決。

元記事を表示

ハンズオン5 HTTPS通信でアクセス可能にする

この記事を書いている私について

インフラ系PMO歴半年でAWSクラウドプラクティショナーを取ったばかりの私が
AWS CloudTechという動画学習サービスに参加し、AWSエンジニアを目指すための備忘録です:fire:

構築→記事作成→指摘反映の中で間違いがあったら業務でも発生するので、これからも気を引き締めて行きたいと思います。

本記事の目標

前回の「独自ドメインの設定/障害時にSORRYページへ通信を流す」に引き続き、
今回はAWS Certificate ManagerをセキュアなHTTPSで通信できるように設定を変更していきます。

https://qiita.com/zetzetn/items/2bdeb8817c6c456ba4f7

前回の記事ではブログサービスにアクセスするのにHTTPで通信をしており、
このままではセキュリティに問題があります。

本記事ではAWS Certificate Managerで証明書を発行してELBにアタッチすることでHTTPS通信を可能にし、
ELBのセキュリティグループでHTTPS通信を許可する設定の追加なども行なってい

元記事を表示

Layer付きのAWS Lambda functionをServerlessFrameworkでローカル実行するとLayerが参照できない

# 概要

タイトルの通り、Layerを用いて一部ライブラリを共通化しているAWS Lambda functionを、serverlessでローカル実行しようとした時につまずいたので備忘録として残しておく。

# 経緯

最近、趣味でAWS Lambda上で動かすpythonプログラムを作成していて、デプロイが楽になるとのことなのでserverlessを導入していた。
その際、functionを複数作成しており、一部ライブラリはLayerを用いて共通化していた。

作成したプログラムの構成は以下。

“`
プロジェクトルートディレクトリ
├─function1
│ └─src
│ └─handler.py
├─function2
│ └─src
│ └─handler.py
├─layer
│ ├─layer1
│ │ └─layer1のpythonライブラリ・ソース群
│ └─layer2
│ └─layer2のpythonライブラリ・ソース群
└─serverless.yml
“`

また、serverless.ymlの記述内容は以下。
(本

元記事を表示

AWS StepFunctionsで、クロスアカウント でAWS Lambdaを呼び出す

### TL;DR

– Resourceキーの値をLambdaのARNから、`arn:aws:states::: Lambda:invoke` に変更する
– Parametersキーを追加して、呼び出したいクロスアカウント 先のLambdaのARNを指定する
– クロスアカウント先のLambdaには、呼び出し元のAWSアカウントからの呼び出しを許可する必要がある

### 事前準備

1. AWSアカウントを2つ用意する(アカウントA, アカウントB)
2. アカウントBに対して、以下のようなLambdaを用意する

“`js
exports.handler = async (event, context) => {

const response = {
body: JSON.stringify({
foo: ‘Hello, world’,
bar: ‘Goodbye, world’,
})
};

return response;
};
“`

## 手順

### ス

元記事を表示

AWS、EC2でrailsアプリをssl化する!【2021最新版】

まずは参考URLを先に貼り付けておきます。これらを参考にすればうまいことssl化が出来ます!

https://qiita.com/Yuki_Nagaoka/items/1f0b814e52e603613556

https://qiita.com/Yuki_Nagaoka/items/55ed1610cfc1f59398b1

https://dev.classmethod.jp/articles/alb-redirects/

はっきり申し上げます。僕ssl化するだけなのに6時間以上悪戦苦闘しました。
と言うのも、AWSのロードバランサー、ターゲットグループの設定が既存の記事とやることは一緒でも、異なる仕様に変わってしまっているからでした。
なので複数の記事を参考にしてまとめたものをアウトプットしていきます!

# 前提条件
すでに(http://ドメイン名)でデプロイ済み

# ssl化の手順の確認
* ACMの設定
* TGの設定
* ELBの設定
* セキュリティグループの設定
* Route53の設定
* リダイレクト処理

# ACMの設定
AWSではELB(後で設定しま

元記事を表示

OTHERカテゴリの最新記事