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

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

LocalStack 環境構築 メモ

## LocalStackとは?

* AWSのサービスを擬似的に利用できるフレームワーク
* 対応AWSサービスは、[公式ページ](https://github.com/localstack/localstack/blob/master/doc/feature_coverage.md)を参照のこと

## AWS CLIインストール・設定

### インストール

* 筆者環境はWindowsのため、[こちら](https://awscli.amazonaws.com/AWSCLIV2.msi)からインストーラーをダウンロードし、実行する。

* インストール結果確認

“`shell
aws –version
aws-cli/2.2.44 Python/3.8.8 Windows/10 exe/AMD64 prompt/off
“`

### 設定

* クレデンシャル設定

“`shell
aws configure –profile localstack
AWS Access Key ID [None]: dummy
AWS Secr

元記事を表示

S3 署名付きURLでファイル共有しようと思ってつまづいた

こんにちは。パエリア王子です。

最近写真や動画を取る機会があって、友人にも共有したかったのですが、容量が多くてLINEでは送れないということがありました。
Google DriveなどのSaaSを使えば簡単に実現可能だと思いますが、せっかくならAWSを利用して共有する方法を考えようと思い、実施しました。

普段はAWSの監視、運用しかやっていないなく、開発経験はほとんどありません。
あまりS3に触る機会もないので、内容はレベルが低いですが、ご容赦ください。
また、筆者はSAPを取得しており、AWSの各種サービスの概要等は知っていますが、触ったことのあるサービスはEC2やRDSくらいなので、持っている知識をできるだけ使ってみようという趣旨のもとサービスを検討、利用しています。

## どうやってファイル共有を実現するか
まずはじめに、どのサービスを使ってファイル共有を実現するかですが、保存先はS3で決まりでしょう。
次にダウンロード(共有)方法ですが、そのままオブジェクトをパブリック公開するのはセキュリティ上、問題があると考えました。
会社の書類を公開するわけではないので、そんなに気に

元記事を表示

EC2 Image builder とは

## 勉強前イメージ

EC2のイメージを作ってくれるやつ?
でもイメージって手で作れるんじゃね???

## 調査

### EC2 Image builder とは

AMIのアップデートを自動的に自動化出来るサービスになります。

今まで取得したAMIを定期的にアップデートして再作成などしないといけません。
また、アカウントを跨いだAMIの共有なども面倒でした。
EC2 Image builder を使うとインスタンスを起動してアップデートすることなく、
自動的にアップデートでき、EC2 Image builder自体は無料で利用することができます(EBSなどの費用はかかります。)

### EC2 Image builder の用語

– ビルドコンポーネント

ソフトウェアのパッケージのダウンロード・インストールなど定義するドキュメントでyaml形式で書かれます。

– レシピ

ソースのイメージとソースイメージに適用して出力イメージに必要な構成を作るコンポーネントを定義するドキュメント

– イメージパイプライン

安全なOSイメージを構成するための自動化構成でレシピからA

元記事を表示

Pulumi でARNを参照したい

Pulumiはプログラマーにとって慣れ親しんだ言語でインフラを構成できるモダンなIAASツールです。

小規模なプロジェクトで1人で何役もやっている人にとって、生産性が高いかもしれません。

イケてると思ったポイントや、ググってもサクッと分からなかった様な話を記事にしていきます。

# 前提条件

* Pulumi及びAWSの[設定](https://www.pulumi.com/docs/get-started/aws/)が完了している

# ARNを参照するコード

## 直でうまく動いたケース例

“`javascript
const sqsPolicyCustomAttachment = new aws.iam.RolePolicyAttachment(
`RolePolicySample`,
{
role: lambdaRole.name,
policyArn: sqsPolicy.arn, // <-----------直接ARNを指定している } ); ``` この場合、poliyArnプロパティに対して直接arnを指定しています。 こ

元記事を表示

AWS Step Functions のステート定義におけるリトライの書き方

## 指数バックオフアルゴリズム  
SFN(Step Functions) は指数バックオフによるリトライが行われます。
(エクスポネンシャルバックオフ)

https://docs.aws.amazon.com/ja_jp/general/latest/gr/api-retries.html

SFNにおける式はこんな感じ
`リトライ時間 = IntervalSeconds * BackoffRate ^ (Attempts-1)`

https://d1.awsstatic.com/webinars/jp/pdf/services/20190522_AWS-Blackbelt_StepFunctions.pdf#page=36

簡単に言うと、ランダム時間でリトライ間隔を決めるアルゴリズムです。

いきなりこんな式を見てもピンと来ないので、エラー時に成功するまでn回リトライするようなケースを考えてみます。

### よくあるリトライ
* `リトライ間隔 = 2秒` (固定)
* `リトライ回数 = n回`

cloudwatch 概念について

## 勉強前イメージ

メトリクスとモニタリングがちょっとややこしくなってきた

## 調査

### cloudwatchの概念について

– Namespaces

cloudWatchメトリクスのコンテナになります。
名前空間のメトリクスは切り離され、
異なるアプリケーションのメトリクスが同じ統計に集約されないようになっています。
メトリクスの作成時に名前空間名を指定する必要があります。

– Metrics

基本的な概念で監視対象の変数で、その変数の値になります。
作成されたリージョンのみに存在しています。
例えばEC2のCPU利用率は提供される1つのメトリクスになります。

– Dimensions

メトリクスを一意に識別する名前と値のペアになります。
1つのメトリクスには最大で10個のディメンションを定義することができます。
メトリクスの検索やフィルタなどに利用できます。

– Resolution

生成されたメトリクスはデフォルトで標準解像度になりますが、
カスタムメトリクスは `標準解像度` と `高解像度` のいずれかで定義することができ、
高分解能のメトリクス

元記事を表示

参考記事まとめ

#はじめに
1つの記事でやりたいことが完結した分かりやすい記事をまとめます。
随時更新。

#AWS
####・[1つのLambdaで、複数のEC2を自動起動・自動停止](https://dev.classmethod.jp/articles/simple-auto-start-stop-for-ec2/)

####・[CloudFrontとLambda@edgeでBasic認証設定](https://qiita.com/r-wakamatsu/items/43fa0f3c4b2e7c9528cf)

####・[API GatewayにLambda(Node.js)でBasic認証](https://dev.classmethod.jp/articles/apigateway-lambda-basicauth/)

####・[CloudWatchでEC2のメモリ・ディスク使用率を監視する](https://engineers.weddingpark.co.jp/aws-cloudwatch-ec2/)

####・[GuardDutyアラートをChatBotでSlack通知]

元記事を表示

初めてのCloudFormation 環境準備からVPC作成まで

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

AWS CloudTechという動画学習サービスに参加し、AWSエンジニアを目指すための備忘録です:fire:

これまでに学習してきた内容は下記になります。

■インフラ基礎
 ・サーバー
 ・ネットワーク
 ・Linux運用
■AWS
 ・VPC
 ・EC2
 ・IAM
 ・RDS
 ・ELB
 ・Cloudwatch
 ・AutoScaling
 ・S3
 ・Route 53
 ・CloudFront

AWS CloudTechはAWSの基本を学ぶことができ、slackのコミュニティも素晴らしく、さらにSAA・SOA・DVA対策コースもある。
環境を用意して下さったくろかわさん(@AwsskillC)に感謝です。

残りの課題がまだありますので、こちらも学習していきます:fire:

■AWS
 ・AWS CLI
 ・Lambda
 ・Docker
 ・Docker-compose
 ・ECS←最近講座に追加されました!

本記事の目標

まずは開発環境を整えることから始めます。
その後、Cloud Formationを使いVPCを構築します

元記事を表示

AWS SSM パラメータストアから必要な機密データをファイルに書き出すスクリプト

AWS SSM パラメータストアから必要な機密データをファイルに書き出すスクリプトです。

ステージング `/stg/hoge`
本番 `/prd/hoge`
のように環境変数を管理している場合を想定しています。

ここでは、env_ssm というファイルに出力しています。

CI ツールとかで環境変数を設定したい時とかに使えます。

“`bash
#!/usr/bin/env bash

set -eu

echo ” > .env_ssm

ssm_parameters_env=”stg” # ここでは stg としていますが、条件分岐で値を変えるように設定するといいですね。

parameters=`aws ssm get-parameters-by-path –path “/$ssm_parameters_env” –with-decryption | jq -r .Parameters`
parameters_length=`echo $parameters | jq length`

declare -A ssm_parameters

for ((i=0; i<

元記事を表示

VPCの豆知識

初めに

AWSに関する知識を身に着けるため
役に立つ用語や知識をに備忘録として残していく。

VPC豆知識

● VPCは大きな箱のような役割をしており、
 その中にルーター・サブネット・EC2などを格納できる。

● VPCのアドレスレンジは下記から選ぶことができる。

10.0.0.0~10.255.255.255
172.16.0.0~172.32.255.255
192.168.0.0~192.168.255.255

※ /16 ~ /28の範囲内で作成でないといけない。※

※ 例えば、10.0.0.0/15といった設定だとエラーが発生するので注意 ※

● IPアドレスには10進数と2進数での表記方法がある。
2進数は0と1であらわすことができ、10進数は普段私たちが使っている表記。

追記

間違った内容や記述があればコメントで教えてくださいね!

この記事が参考になればうれしいです。

元記事を表示

FileMaker開発者に贈る|AWS IoT Core 初級ハンズオン

#この記事を読んで欲しい方
– **全FileMaker開発者**
– クラウド触ったことない
– AWS難しい
– 新しいいこと好き
– etc…

# この記事を読むとどうなるか?
AWSIoTCoreの概要とFileMakerとAWSの連携方法を理解できる
⇨日々楽しく改善できるようになる!

# どうやるか
AWS IoT Core 初級ハンズオン(https://aws-iot-core-for-beginners.workshop.aws/ )
に沿ってIoT実装の基本を理解し、その後FileMakerとの連携方法を学ぶ。

# 実践開始
この記事は
AWS IoT Core 初級ハンズオン(https://aws-iot-core-for-beginners.workshop.aws/ )
をみながら進めていきます。別タブで[こちら](https://aws-iot-core-for-beginners.workshop.aws/)を開いておくことをオススメします。

## AWS IoT Coreのサービス説明
まずはこちら(https://aws-iot

元記事を表示

個人開発で愛用しているNext.jsデプロイ手順 (~5分)

# 概要
個人開発をしようと思ったら、僕が最初にやることはNext.jsをAWSにホストすることです。
その際の手順を記載します。5分程度でインターネット公開することができます。

# 手順
## ① Create Next App

“`sh
npx create-next-app@latest –ts <アプリ名>
“`

## serverless.ymlファイルの作成

“`sh
cd <アプリ名>
touch serverless.yml
open serverless.yml
“`

serverless.ymlに以下の内容を記載します。

“`yml
myNextApplication:
component: “@sls-next/serverless-component”
“`

## serverlessインストール

“`
npm install -D serveless
“`

## デプロイ
以下コマンドを実行してデプロイ (AWS CLIの設定ができていることが前提です)

“`sh
serveless
“`

# まとめ
以上の作業

元記事を表示

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:

元記事を表示

OTHERカテゴリの最新記事