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

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

【Data + AI Summit 2022】McAfeeがDatabricks on AWSを大規模に活用する方法

# はじめに
2022/6/27(月)~2022/6/30(木)に開催されたData & AI Summit 2022に関する最新情報をお知らせします。
本記事では、[McAfeeがDatabricks on AWSを大規模に活用する方法](https://dataaisummit.com/session-virtual/?v2477da705118cc74fd14460db021e1784e2eed5a7982c6482ec95cb2e86d259644b8741959f52a49e0e6908b82a9d860=A631D469348D640B7F3695570773A71CA4DD9B8565F014582F31ED522290929FA6EBDF3CFCDF0B9FDBFBFD874E55F5C0)を翻訳してまとめました。

# アジェンダ

Databricks on AWSとはなにか?McAfeeがDatabricks on AWSをどのように運用したか、そのために何をしたか、移行と運用の両方についての話です。

・Databricks on AWSの簡単な概要
・McAf

元記事を表示

EC2 Classic 環境廃止の確認(Macの場合)

EC2 Classic 環境が 2022年8月15日に廃止になるということで確認した時のメモ

Macでやりました

# セットアップ
・Python 割愛
・pip割愛

ちょっとハマったところ
実行したら下記のようなメッセージをいただいた
“`
Traceback (most recent call last):
File “/Users/xxx/Documents/work/ec2-classic-resource-finder/py-Classic-Resource-Finder.py”, line 27, in
import boto3
ModuleNotFoundError: No module named ‘boto3’
“`

こちらを参考にさせていただいてboto3をセットアップ
https://qiita.com/hiroyuki7/items/a2246511a4f24a75f02d

チェックスクリプトはこれ
https://github.com/aws-samples/ec2-classic-resource-finder

元記事を表示

Amazon SageMaker Studioにデフォルトで用意されているコンテナイメージのECRのURIを見つける方法

# はじめに
Amazon SageMaker StudioにはデフォルトでPyTorch、TensorFlowなどを組み込んだコンテナイメージが用意されています[^1]。このコンテナイメージを別の場所(AWS Batch)でも使いたくてECRのURIが書かれているドキュメントを探したのですが、見つからずに苦労した[^2]ので、備忘録として残しておきます。

# ECRのURIの見つけ方
`/opt/.sagemakerinternal/internal-metadata.json`にECRのURIが記載されています。
例えば下記のようにしてこのJSONファイルを開くことで、ECRのURIが分かります。

1. SageMaker Studioを開く
2. File -> New -> Terminal でターミナルを開く。
3. 下記のコマンドを実行する。
“`
cat /opt/.sagemakerinternal/internal-metadata.json
“`

注意点として、将来的には動作が変更になる可能性があります。

# 参考:2022/0

元記事を表示

API Gateway、Lambda(Node.js)、DynamoDB を使ったAPIの作り方

API Gateway、Lambda、DynamoDB を使ったAPIの作り方を備忘録も兼ねて記載します。
プログラム言語にはNode.jsを利用します。

# システム構成
システム構成は以下のようになります。
![AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2348676/d172c951-87f7-ef41-4bb4-cf660f65d99b.png)

# システム概要
今回はサンプルとして、DynamoDBに格納されているイベント情報をPOSTリクエストで取得して、Jsonを出力するAPIを作ります。

# 1. DynamoDBにテーブルを作成
最初にイベント情報を格納するテーブルを作成します。
![dynamodb1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2348676/c813f1e4-6c70-8b35-a53a-57a532ede10a.png)

テーブル名は **event**、

元記事を表示

Amazon ConnectとAmazon Chime SDKを連携してビデオ機能が利用できる問合せシステムを試してみた

# 1.はじめに
コンタクトセンター最適化支援チームのbayashiです。

一般的にコンタクトセンターでは電話音声やテキストチャットを通してお客様と応対することが多いですが、ビデオ機能としてWebカメラ、またはPCの画面共有を活用できればより利便性の高いカスタマーサービスを提供できると思います。
AWSサービスのAmazon Connectでは標準でビデオ機能は提供されていませんが、AWS公式ブログにAmazon Chime SDKと連携してビデオ機能が使えるシステムを紹介されていたので、実際に構築して動かしてみました。

・Video-Call Escalation powered by Amazon Connect and Amazon Chime SDK
https://aws.amazon.com/jp/blogs/business-productivity/video-call-escalation-powered-by-amazon-connect-and-amazon-chime-sdk/
https://github.com/amazon-connect/video-

元記事を表示

AWS CLIを使ってVMWare・Hyper-Vなどの仮想データをAWSのEC2上に移行したい

## 簡易流れ
・移行元の仮想データエクスポート
・AWS S3に仮想データアップロード
・S3からAMIイメージインポート
・AMIからEC2インスタンス起動
・各ネットワークなどの設定をする

## VMImport参考手順

VMWare仮想マシンをVM Importを使用してEC2に移行し、差分を確認してみる。

## S3へのアップロードは160GB以上であればAWS CLIでのアップロード作業が必要
https://qiita.com/seyself/items/43426f57c50021ea55f8

※Web画面からのアップロードと同時にCLIのアップロードなどしていたら失敗する事があった、
1つずつの方が安全かと思われる

## マルチパートアップロード時の問題
ファイルのアップロードが中途半端な状態で終了してしまった場合、中途半端なデータが裏側で残り課金され続ける

[AWS] S3へ巨大なファイルを「マルチパートアップロード」する

## AMIへの複数仮想データファイルインポート方法
### AWS EC2ユーザーガイド

元記事を表示

オンプレミスとEC2 AutoScalingで負荷分散できる構成を検討した

# 概要
負荷が小さい夜間はオンプレミスのみ、負荷が大きい日中はEC2 AutoScalingでインスタンスを増やしハイブリッドに処理を分散させたいという要件があり、構成を検討しました。

## 課題
日中のみAutoScalingを稼働させるのはScheduled scalingで実現できるので、オンプレミスとEC2で負荷分散させる方法を考えました。
httpリクエストを受け付けるシステムのため、前段にはALBを配置します。オンプレミスのサーバーをターゲットにするため、ターゲットグループはIPターゲットにする必要があります。しかしIPターゲットにするとAutoScalingが新しいインスタンスをターゲットグループに自動登録してくれません。

https://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/getting-started-elastic-load-balancing.html
> ターゲットグループは、`instance` のターゲットタイプを指定する必要があります。Auto Scaling グループを使用する場合

元記事を表示

AWS Certified Machine Learning – Specialty(MLS-C01) を取得しました

# はじめに
AWS認定コンプリートを目指すべく、MLS-C01を取得しました。

# AWS Certified Machine Learning – Specialty(MLS-C01) とは
[この辺](https://aws.amazon.com/jp/certification/certified-machine-learning-specialty/)を参照ください。

# 教材
機械学習の経験は全く無く、下記を約2週間かけて取り組みました。

1. 書籍:[ディープラーニングG検定(ジェネラリスト)最強の合格テキスト](https://www.amazon.co.jp/gp/product/481561167X/)
– 最初は書籍無しで取り組むつもりでしたが、下記の問題集を見ても、さっぱり分からないため、購入しました。一般的には[公式テキスト](https://www.amazon.co.jp/%E6%B7%B1%E5%B1%A4%E5%AD%A6%E7%BF%92%E6%95%99%E7%A7%91%E6%9B%B8-%E3%83%87%E3%82%A3%E3%

元記事を表示

【AWS SSO】AzureAD+AWSSSOで、弊社のAWSアカウントにおけるユーザー管理をAzureADに集約しつつ、アクセス権限をアカウント管理者側で管理できるようにしてみた

うぇっしゃっしゃーす。
クラウドアーキテクチャチームの齋藤です。

AWSをご利用の方の中で、マルチアカウント運用されている方ってどれくらいいらっしゃるでしょうか。
アカウント一つならまだしも、いくつもAWSアカウントがあって個別にIAMユーザー発行とかしてると退職者アカウントの削除忘れとかあったり、色々面倒ですよね。

え?わからないって?
ほんじゃぁ、ソースコードのいろんなところに同じような処理をコピペしたせいで、修正加えるときに全部手作業で直さないといけないめんどくささを思い出してください。
めんどいでしょ?
同じような処理は一か所にまとめて使いまわせるほうがメンテナンス楽でしょ?
いやオブジェクト指向的な話したいわけじゃないんですけどね。

そんなわけで、いろんなところで独自に管理してたアカウント情報を一か所にまとめて、管理の手間やリスクを減らしてやろうじゃん。
っていう話です。
別にマルチアカウントじゃなくても、社内のいろんなアカウント管理が必要なものは全部一つのIdPにまとめたいみたいな話もあると思うので、参考になると思います。

それじゃぁいってみよう。

# 概要

元記事を表示

AWS Greengrass + Raspberry Pi Zeroの環境構築

Raspberry Pi Zero WでAWS Greengrassを導入しようとした時のメモです。

## 参考

https://mstevetodd.com/raspberrypi-zero-w

raspberrypi zero wモデルだったので、Java 8 までしか動かないことに注意!
Java 11などを入れようとすると失敗します。

## スペック

“`
$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 11 (bullseye)
Release: 11
Codename: bullseye

uname -a
Linux rpi 5.15.32+ #1538 Thu Mar 31 19:37:58 BST 2022 armv6l GNU/Linux
“`

## OS、Javaのダウンロード

`Raspberry Pi OS 32 bit`をRaspberry Pi Imagerでダウンロードした。

元記事を表示

s3とローカルとの間でファイルの簡易同期

s3上のファイルを頻繁に扱う場合の作業方法について

・s3上のファイルをマウントして直接作業する
 同一ディレクトリ上に一時ファイルなどが生成されるような場合に適さない(一時ファイルの更新が重い)

・ローカルで作業して、定期的にAWS CLIのS3 syncで同期
 単純に更新日時を元に同期するので、複数人で編集の競合が発生した場合に困る。

バージョン管理みたいな多機能は望まないが、スクリプトでシンプルに同期&編集競合を検出したい。

ということでスクリプトを書く。

“`c#

# -*- coding: utf-8 -*-
import boto3, sys, time, os, datetime, json
import pprint

# 前回同期時の「localファイル一覧」「s3上のファイル一覧」を覚えておく。
# s3上とローカル、「更新日時の新しい方」ではなく、「前回から変更があったか?」で判定させる。(更新日時の新旧は信用しない)
# 誤削除が怖いので、「片方にのみ存在するファイル」について、削除に関する処理は行わない(前回の存在有無に関わらず)。片方にのみ存

元記事を表示

せっかくAWS上に作ったk3sクラスタにローカルからアクセスしたいのだが、、、

この間書いた記事で、AWS上にk3sクラスタを作ることができました。
AWSのインスタンスにログインしてからkubectlで操作してもよいのですが、せっかくなのでローカルのWindows端末からもアクセスしたいですよね。でも、どういうわけかてこずってしまいました。

# 1.準備
## 用意したインスタンス
**サーバー用×3**
名前:k3s-a,k3s-b,k3s-c
インスタンスタイプ:t3.large
ストレージ:20G
AMI:Debian 11を指定

**エージェント用×1**
名前:k3s-d
インスタンスタイプ:t2.micro
ストレージ:20G

* 各インスタンスは、同じサブネットに所属するように設定しておきました。
* セキュリティグループも各インスタンス同じものを設定しておきます。このセキュリティグループは、同じセキュリティグループに所属するインスタンスからは無制限にアクセスできるようにしておく必要があります

## ソフトウェアのバージョン
**k3s側**
Debian GNU/Linux 11
k3s version v1.23.8+k3s1 (53f

元記事を表示

FULL KAITENがAWS Athena移行に至った訳と、RustでAWS Athenaにリクエストを投げる際の実装例について

# はじめに

フルカイテンが提供する在庫分析SaaS「FULL KAITEN V3」(以下FULL KAITEN)では、顧客データをETLを介してデータストアに格納しています。日次バッチとして、ETLでのデータ処理→データストアに処理したデータの投入を実行しています。

“`mermaid
flowchart LR
subgraph 日次バッチ
id1(ETL)–>id2(データ投入)
end
id2–>id3[(データストア)]<-->id4(WebAPI)
“`

AWS Athana移行前のFULL KAITENでは、データストアとして、[Elasticsearch](https://www.elastic.co/jp/elasticsearch/)を使用していました。多くの顧客データを扱うようになり、Elasticsearchへのデータ投入後から利用可能な状態になるまでに時間がかかってしまう問題が発生しました。そこで、データストアをS3へのデータ投入後に速やかに利用することができる[AWS Athana](https://aws.amazon.com/jp/a

元記事を表示

AWS Database Migration Service (DMS) でいくつかのテーブルにデータが入らないエラーを解消する方法

# 現象
AWS Database Migration Service (DMS) で複数のテーブルにデータを入れようとすると、いくつかデータが入らないテーブルが出てきます。

# 原因
テーブルにリレーションを張っていると、参照元テーブル→参照先テーブルの順にデータを入れないとデータが入りません。
しかしAWS Database Migration Service (DMS)は順番関係なくデータを入れようとしますので、データが入らないことがあります。

# 対応策
エンドポイントの「追加の接続属性」に

“`
initstmt=SET FOREIGN_KEY_CHECKS=0
“`

を入れておくことで、リレーションのエラーを回避させることができます。

エンドポイント→エンドポイント名を選択→右上の「アクション」ボタンを押し「変更」ボタンを押す→「エンドポイントの変更」画面で

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561175/0a071ca7-4df9-2d16-bc

元記事を表示

AWS NLB-ALB多段構成を組み、更にはパスベースルーティングを確認してみた。

# 概要
このページでは、AWSにおける以下の確認内容を記載します。

①NLB-ALB多段構成を行うことで静的なIPアドレスで、ALBが利用できること(基本的なバランシングが出来ていること)。
②さらに、NLB-ALB多段構成にて、本来ALBがもつパスベースルーティング(パスバランシング)機能が利用できること。

# はじめに
オンプレ設備からDirectConnect(以下、DX)経由で、アドレス帯が異なるAWS上のELBと通信を行うことがあると思います。

そのAWS上で利用されるアドレス帯がオンプレ設備側で許容することが出来ない場合、
NAT(Network Address Translation)を利用することが多くオンプレ側にもアドレス消費を求められるアーキテクチャになると思います。

特にELBがALBを使う場合には、IPが静的にアドレスをアサインすることができないため
ある程度利用されるIPアドレスを想定したアドレスを確保しなくてはいけませんでした。

例)
![pptお絵描きネタ.png](https://qiita-image-store.s3.ap-north

元記事を表示

Ectoのconfigに1行足してAuroraのフェイルオーバーに対応する

MyXQLやPostgrexのドキュメントを読めば書いてあるのですが、結構調査に時間がかかったのでメモ。

MySQLの場合は`disconnect_on_error_codes: [:ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION]`、また、PostgreSQLの場合は`disconnect_on_error_codes: [:read_only_sql_transaction]`を足せばOKです。

MySQLの例

“`elixir
config :my_app, Repo,
database: “ecto_simple”,
username: “user”,
password: “pass”,
hostname: “localhost”,
disconnect_on_error_codes: [:ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION]
“`

### 備考: Auroraのフェイルオーバー問題とは

AWSのAuroraはMultiAZでフェイルオーバーすると、ReaderとW

元記事を表示

【Qiitaでも使える】テキストから図が生成できるMermaidでAWS構成図をつくる

# はじめに

Mermaid記法で記述したテキストからダイアグラムの図が生成できるMermaidでAWS構成図をつくる方法を紹介します。

また、MermaidはGithubやQiitaなどのWebサービスやVSCodeやIntelliJなどのツール、コマンドやWebシステムでも使用できますので、詳細は[[【Qiitaでも使える】テキストから図が生成できるMermaidについてのザックリ解説]](https://qiita.com/b-mente/items/97a4296666faccd53a72) (以下ザックリ解説)をご覧ください。

Mermaidのことはなんとなくわかったけど、AWSの構成図や配置図が描けないか考えていた人にも参考になれば幸いです。

# AWSの構成図をつくる

## ・どんな感じの図ができるのか

AWSの構成図を描くときにはAWS公式から提供されている[[AWS Architecture Icons]](https://aws.amazon.com/jp/architecture/icons/)というAWSのダイアグラムを書く際のアイコンセットを利用す

元記事を表示

Terraform 入門から精通まで(二)

## 概要
今回、Terraformを使って、AWS VPCを構築して、VPCのpublic subnetに外部からアクセスできるec2を起動します。

## システム構成図
![截屏2022-07-07 0.01.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2531066/747d23e8-8bbd-e036-126c-4316b3cda96c.png)

## やること
– VPCを構築
– Internet Gatewayを作成
– Route Tableを作成
– サブネットを作成
– Route Tableにサブネットを関連付け
– port22,443,80を許可Security Groupを作成
– network interfaceを作成
– 作成したnetwork interfaceにElastic IPを関連付け
– EC2を作成して、ec2にApacheをインストールして、起動する

## 前提条件
・MAC
・VS code
・リソースを作成するためのAWSの権限設定をも

元記事を表示

AWS Elastic Disaster Recovery Workshopをやる

# はじめに

この記事は[AWS Elastic Disaster Recovery Workshop](https://catalog.us-east-1.prod.workshops.aws/workshops/080af3a5-623d-4147-934d-c8d17daba346/en-US)をやった際のメモ書きです。
リンク先のWorkshopは英語で書かれています。もし、英語を読むことが大変である方はこの記事をぜひ参考にしてください。
ただし、リンク先の情報を全てこちらに記載しているわけではないため、詳細な情報を得たい方は本家Workshopを実施してみてください。

# Introduction

AWS Elastic Disaster Recovery(DRS)は、OS、データベースやアプリケーションなどのマシンを、低コストなステージングエリアに継続的にレプリケートするサービスです。
災害発生時にDRSに指示することで、レプリケートしていたマシンをリカバリーインスタンスとして、数分で自動的に起動することができます。

以下はDRSの基本的なネットワーク図です。
左手

元記事を表示

AWS Cognitoでワンタイムパスワード(MFA認証)を設定していても自動テスト(Cypress)をする方法

## Cypressとは

cypressはブラウザをクライアントとして、WebアプリケーションのE2Eテスト(End to End Test)を実現するためのテストツールです。テストコードをjavascriptのコードで記述することでテストを自動化することができます。

https://www.cypress.io/

### Cypressと認証

cypressでE2Eテストを行う際の対象Webシステムが認証を必要とする場合、cypress側が認証を通過する必要があります。IDとパスワードのみの認証であれば、テストコード側に認証情報を渡してキーボード入力で認証を通過することが可能です。ただ、最近のアプリケーションではSNS認証や多要素認証など様々な認証方法があります。
cypress公式でもAuth0やAWS Cognitoなど最近よく使われる認証サービスに関するガイドがあり、実装の参考になります。

https://docs.cypress.io/guides/end-to-end-testing/amazon-cognito-authentication

私がやりたかったA

元記事を表示

OTHERカテゴリの最新記事