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

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

Workload Identity連携で、GCP操作するLambdaをAWS SAMで作成

# はじめに
AWSからGCPの操作がセキュアにできるWorkload Identity連携を、AWS SAMを使って作成したLambdaから行った内容を記事にしました。

# やったこと

## GCP側
以前の記事をそのままやっています。

https://qiita.com/a_b_/items/f30b85be4f44ed1f620c#gcp%E5%81%B4

こちらで作られたファイルをそのまま使います。

## AWS側

### Cloud9

#### 環境
AWS SAMを実行するので、ボリュームは50GB程度あるといいです。
以前記事にした内容と同じ環境でやっています。

https://qiita.com/a_b_/items/6b02e08ecacdd21524c2#%E7%92%B0%E5%A2%83

#### 設定
ローカルでテストを行う際に、Cloud9からGCPにアクセスできるよう、EC2にIAMロールを付けます。
前回の記事と同様です。

https://qiita.com/a_b_/items/102dfa252761eceab528#cloud9

元記事を表示

AWS CLIでアクセスキーを正しく設定してもなぜか権限エラーになる

ググっても事例見あたらず、トラシューでめっちゃ格闘してしまったのでメモ。

# TL;DR

AWS CLIにアクセスキーを設定してもなぜか権限エラーになってしまうときは、awsコマンド実行端末に意図せぬ環境変数がセットされてしまっていることが原因かも?

# 起こったこと

AWS CLIの初期設定では `aws configure` コマンドでアクセスキー等を設定できる。

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-quickstart.html

しかし、正しい権限を付与したIAMユーザーのアクセスキーをちゃんと設定したはずなのに、何度やってもawsコマンド操作が権限エラーになってしまった。

“`bash
$ aws s3 ls
An error occurred (InvalidAccessKeyId) when calling the ListBuckets operation: The AWS Access Key Id you provided does not exi

元記事を表示

AWS Lambda Function URLsの使い方

# AWS Lambda Function URLs

## やれること
– Lambda関数に紐づくURLを作成する
– 簡単に関数の前にHTTPSエンドポイントを設定する

## 何が嬉しい?
### Lambda Function URLsが無い時
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2707757/b2c1e1d9-716d-5f13-59ba-502152ada274.png)
今まではこんな感じで、API GatewayやAppSync、ALBをLambdaの前に置いてました。

### Lambda Function URLsがある時
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2707757/bd9b2daf-7a91-0ee8-8422-e80fea096c41.png)
これだけでOK!

## やり方
1. Lambda関数の作成で詳細設定を開く
![im

元記事を表示

AZ別に提供されているEC2インスタンスタイプの一覧を出力するPowerShellスクリプト

EC2インスタンスのインスタンスタンスタイプについて。

インスタンスタイプはリージョン毎に提供されるインスタンスタイプが決定されるものではなく、リージョン単位で決定される要素となります。

このため、2022年6月現在。

下記画像のように、AZ名とAZIDが下記のように関連付けされているAWSアカウントにてm6i.xlarge をみてみると。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1670622/1cf7b0d2-edfc-1068-52d9-57dd4a7f92d6.png)

– ap-northeast-1a が apne1-az4
– ap-northeast-1c が apne1-az1
– ap-northeast-1d が apne1-az2

r6iインスタンスは `ap-northeast-1c(apne1-az1)`では提供されていない事がわかります。

![image.png](https://qiita-image-store.s3.ap-north

元記事を表示

【AWS】CDKでECSサービスディスカバリを設定する方法

# 前提

### CDKとは?
JavaやTypescriptなどのプログラミング言語を使用してAWSのリソースをコードとして定義し、AWS上にデプロイするためのフレームワーク。コードでAWSリソースを管理する感じのもの。個人的には、概念的にはAnsibleに似てると感じた。
### ECSとは?
DockerのコンテナをAWS上で動かすサービス

### サービスディスカバリとは?
ECS間通信に使うサービス。サービスディスカバリを使えば、コンテナにFQDNがついてIPアドレスではなく名前(FQDN)でアクセスできる。実際はFQDNとIPアドレスの対応がRoute53に自動で登録される。
マネジメントコンソールからだと、
– ECS > クラスター > サービスの作成 > ネットワーク構成 > サービスの検出

から設定する。
一般的な他の方法としては、ECSでコンテナをたてるとIPアドレスを付加して他のリソースからアクセスするなどの方法がある。

# 困ったこと
CDKでコードを書こうとして、ecs,サービスディスカバリのドキュメントを読んでいくが、ECSとサービスディスカバリの

元記事を表示

Amazon SageMakerノートブックインスタンスの長時間稼働を自動検知する

# はじめに
ご覧いただきありがとうございます。

[前回](https://qiita.com/gahirosan/items/257116510b133c1a2889)の記事で、EC2インスタンスの長時間稼働を検知して、自動通知を送る検証を行いました。

今回SageMakerノートブックインスタンスの長時間稼働を検知して、自動通知を送るようにします。
前回のようにRunCommandを使った検知はできなかったので、CloudWatchのログを利用した検知方法を検証します。

# 概要
(★)がついているセクションは、手を動かして頂く項目です。

1. 今回の構成(★)
2. SageMakerの環境構築(★)
3. SNSトピック/サブスクリプションの準備(★)
4. Lambda実装(連続稼働の検知)(★)
5. EventBridgeで検知を自動化する(★)
6. 挙動確認(★)
 

事前準備
– AWSアカウント作成
– AdministratorAccessを付与したIAMユーザーの作成

# 1.今回の構成
– Amazon SageMaker
– AWS Lambd

元記事を表示

S3 で WORM を使ったランサムウェア対策をやってみる

# はじめに

世界中の企業や組織が、ランサムウェア攻撃にさらされています。ランサムウェアは、システムやデータに不正にアクセスし、そのデータを暗号化して正規ユーザーのアクセスを遮断するように設計された悪質なコードです。海外の例ですが、海運大手の会社がマルウェア攻撃を受けて、3億ドルほどの損失が被害報告されています。この報告で印象的なのが、ウイルス対策とパッチ管理を行っているのにもかかわらず、こういった被害を受けている点です。次の URL から引用しています。
https://digitalguardian.com/blog/cost-malware-infection-maersk-300-million

AWS 上で動かしているシステムでこういった攻撃を防ぐためにどういった対策が考えられるでしょうか。AWS が公開している e-book 「Securing your AWS Cloud environment from ransomware」が参考になります。
https://aws.amazon.com/jp/blogs/news/securing-aws-cloud-env

元記事を表示

【初めてのポートフォリオ作成】銀行専用人材管理システムを作ってみた

# 目次
| 項番 | ページ内リンク |
|:—-:|:————-|
| 1 | [1. どのような機能を](#1-どのような機能を) |
| 2 | [2. どのような技術を用いて](#2-どのような技術を用いて) |
| 3 | [3. どのような工夫をして](#3-どのような工夫をして) |
| 4 | [4. どのような成果に繋がったのか](#4-どのような成果に繋がったのか) |
| 5 | [5. 機能概要](#5-機能概要) |
| 6 | [6. テーブル定義書](#6-テーブル定義書) |

# システム
**【プロジェクト名】**
BANKBANK 銀行向け人材管理システム
![logo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/455017/89d6725e-552f-2a0e-2bd2-ca166a7a92b5.png)

# 1. どのような機能を
**【機能概要】**
銀行を対象にした人材管理システムです。

銀行業務において発生し得る多様なニーズに

元記事を表示

Amazon Lightsailを使い、WordPressでブログ環境を構築してみた

【はじめに】

Amazon Lightsailを使い、WordPressでブログ環境を構築するまでの流れを紹介します。
実際に、「kyonaka blog」もこの方法でブログ環境を構築しています。
これから、ブログを始めていきたい方はぜひ参考にしてください。

※AWSのアカウントはあらかじめ取得していることを前提に紹介していきます。
※アカウント作成方法は次の公式ページをご覧ください。

AWS アカウント作成の流れ | AWS

【Amazon Lightsailとは?】

使いやすい仮想プライベートサーバ(Virtual Private Server)インスタンス、コンテナ、ストレージ、データベースなどを費用効果の高い月額料金で提供するサービス。
つまり自分で一から環境を用意する必要がなく、すぐに始められる便利なサービスです。
AWS LightsailにLAMP環境を構築する

Exmentを使っているのですが、サーバへの負荷が少々重くなってきたので練習の意味もあり、AWS Lightsailに移行してみることにしました。

今後のためにその手順を載せておきます。

1. AWS LightsailにLAMPのインスタンスを作る
1. StaticIPを設定する
1. privateキーを取得する
1. phpmyadminが使えるようにする
1. FTP接続できるようにする
1. 旧サーバのデータベースダンプファイルを取得して、新サーバに流し込む
1. 旧サーバのファイルを圧縮してLightsailにアップロードする
1. 設定ファイルの修正(今回の場合はexmentの微調整)

# AWS LightsailにLAMPのインスタンスを作る
Lightsailコンソールにログインすれば簡単に作成できます

# StaticIPを設定する
これもLightsailコンソール上で作成できます

# privateキーを取得する
これもLightsailコンソールでダウンロードできます。この後のsshアクセス、sftpアクセスに必要なのでダウンロードしておきます。

元記事を表示

M1 Mac1でAWS SAM CLI ちょっとハマった

#

いいかげんローカルでの開発にも飽きてきたのでしばらく放置していたAWSを活用しようとおもって[公式チュートリアル](https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/serverless-getting-started-hello-world.html)をやってみた。

# 環境
* Macbook Air (M1 2020)
* Docker 20.10.16 (limaにて、[参考](https://qiita.com/nyaao/items/5ca99d28842bb0331d63 ”タイトル”))
* SAM 1.52.0

# ローカルでテスト

ローカルにデプロイするには`sam deploy –guided`ではなく、`sam local start-app`でdockerコンテナが起動する。
公式に従って、`curl http://127.0.0.1:3000/hello`とすると、
“`
{“message”:”Internal serve

元記事を表示

AWS RDSのバックアップ・リカバリを試してみた

# はじめに
今回はRDSのバックアップおよびリカバリについて試してみましたので、手順などを含め整理していきたいと思います。まずは、設定周りを調べてみて印象に残った点を備忘としてまとめます。
※バックアップには手動と自動の2種類方法がありますが今回は自動バックアップについて記載しています。

# メモ
– バックアップウィンドウは自動バックアップのスケジュール設定のこと。例えば、日次22時にバックアップを取得するようなことができるが、RDSの停止時はバックアップが開始されない。

– 自動バックアップは初回はフルバックアップ、次回以降は差分バックアップとなる。各バックアップ(スナップショット)のサイズを確認する方法はなさそう。

– 自動バックアップはデータベースストレージサイズと同じサイズまではバックアップ領域として提供され、コストはかからない。

– MySQLの自動バックアップはInnoDBストレージエンジンのみサポートされている。

– バックアップウィンドウでは「開始時間」、「期間」を設定可能。例えば、開始時間を「9:00」、期間を「30分」で設定した場合は「9:00〜9:3

元記事を表示

同時ライブ配信時に注意すべきMediaStoreの上限(クォータ)について

## はじめに

通常のライブ配信のケースでは特に意識する必要はありませんが、
同時に多数のライブ配信を行う際に注意すべき点をまとめておきます。

これは実際に私が経験した内容で、テスト配信では問題がなかったものの本番配信ではこの事象が起きたので、その様子を振り返りながら、原因や対策を整理していきます。

## 構成図

ライブ配信環境は以下のスタンダードな構成です。

MediaLive(Single Pipeline) -> MediaStore -> CloudFront

少し特殊だったのが、本番では同時に32チャンネルで配信する必要があったため、
これを1セットとして、32チャンネル分を用意していました。

![ScreenShot 2022-06-10 9.31.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/277934/f3e550dd-5ee0-17b1-bd10-908634ade688.png)

## 当時の状況

同時に32チャンネルのライブ配信を行ったところ、
数秒おきに

元記事を表示

EC2にRailsアプリをデプロイするための事前知識 ――パッケージ管理ツールとパッケージ

## はじめに
スクールの課題で、「まずEC2にアプリをデプロイしてみよう。」というものが出された。
調べれば新しいものから古いものまで、いろんな情報が出てくる。
とりあえず見たままコマンドコピペして進めていたけれど、一体今何をやろうとしているのか分からない、エラーがまるで意味不明
という状況になり、挫折。時間はかかるが、ある程度の基礎知識を身に着けながら進めたほうが早そうと判断。
課題も無事終えたので、復習がてら、とり貯めたメモをベースに整理。

## パッケージのインストール時に適当に打ったコマンド
“`
$ sudo yum -y install git make gcc-c++ patch libyaml-devel libffi-devel libicu-devel zlib-devel readline-devel libxml2-devel libxslt-devel ImageMagick ImageMagick-devel openssl-devel
“`

“`
$ curl -sL https://rpm.nodesource.com/setup_16.

元記事を表示

aws-nukeでつまづいたこと

個人用備忘録

以下のConfigでaws-nukeを実行したが、エラーが発生した。
“`
Your account ID ‘XXXXXXXXXX’ isn’t listed in the config. Aborting.
“`

“`config.yaml
regions:
– “global”

account-blocklist:
– “999999999” # production

resource-types:
# IAMユーザは消したくない
excludes:
– IAMUser
“`

“`bash:実行コマンド
docker run –rm -it -v ./nuke-config.yml:/home/aws-nuke/config.yml -v ~\.aws\:/home/aws-nuke/.aws rebuy/aws-nuke –config /home/aws-nuke/config.yml –profile e1 –no-dry-run
“`

## 結論
config.yamlにaccountsを指定する必要があった。

元記事を表示

AWS Transcribeを使ってMP4ファイルに字幕を付けてみる

# はじめに
動画ファイルに半自動的に字幕をつける方法についてまとめる。

今回、文字起こしには「AWS Transcribe」を使った。12ヶ月限定の無料枠もあり、そうでなくてもそこまでの料金は設定されておらず、手軽に使える。
特に、SRTファイルを出力できるため、字幕作成にはとても有用なサービスとなっている。

https://aws.amazon.com/jp/transcribe/

また、動画に字幕を追加する作業は、ffmpegを使い、ローカル環境で実行する。

https://ffmpeg.org/

# 検証環境 (字幕追加作業用)
– MacBook Air (M1, 2020) macOS Monterey 12.4

# 手順
以下の流れで動画に字幕を追加する。

1. Speech-To-Textと字幕ファイルの生成
2. 字幕の修正
3. 動画に字幕を追加

## 1. Speech-To-Textと字幕ファイルの生成
動画 (MP4ファイル) に音声認識をかけて字幕ファイル (SRTファイル) を生成する。今回この文字起こしには前述の通り「AWS Transc

元記事を表示

denoflare で Cloudflare R2 をカスタムドメイン公開する

# Cloudflare R2 とは

公式ブログを読むべし

– [Cloudflare R2ストレージの発表 – 高速で信頼できるオブジェクトストレージ、エグレス料金なし](https://blog.cloudflare.com/ja-jp/introducing-r2-object-storage-ja-jp/)
– [オブジェクトストレージに新たな希望:R2がオープンデータ版に](https://blog.cloudflare.com/ja-jp/r2-open-beta-ja-jp/)

# denoflare とは

> – [skymethod/denoflare: Develop, test, and deploy Cloudflare Workers with Deno.](https://github.com/skymethod/denoflare)
> – [Overview · Denoflare](https://denoflare.dev/)
> – `Develop, test, and deploy Cloudflare Workers with D

元記事を表示

AWS CLI を利用してコスト配分タグをアクティブ化してみた

## 概要

「AWS コスト配分タグの API を発表」が公開されました.

> これまでは、コスト配分タグのアクティブ化と非アクティブ化は、[AWS 請求コンソール](https://aws.amazon.com/jp/aws-cost-management/aws-billing-console/)のコスト配分タグのページから行う必要がありました。今回のサポートにより、ListCostAllocationTags の API を使用して全てのタグを一覧表示し、UpdateCostAllocationTagsStatus の API を使用してコスト配分タグのアクティブ化と非アクティブ化できるようになりました。

コンソールを介さずに使用できるそうです

https://aws.amazon.com/jp/about-aws/whats-new/2022/06/aws-cost-allocation-tag-api/

## 環境

aws-cli/2.7.7 Python/3.9.11 Windows/10 exe/AMD64 prompt/off

※ 新しく追加されたAP

元記事を表示

RDS(MySQL)からS3へのデータエクスポート

# 最終的な目標
AWS RDS(MySQL)のテーブル内のデータを、S3へエクスポートして、Athenaでクエリを投げられるようにしたい!

# 本記事で出来るようになること

AWS RDS(MySQL)のテーブル内のデータをS3へエクスポートする

## EC2サーバーを経由して、S3へエクスポートする方法

例)
ユーザー名:testuser
ホスト名:fugafuga
パスワード:hogehoge
DB:test_db
テーブル名:test_table

## mysqldump

“`shell:mysqldumpでのエクスポート
# tsvでのエクスポート
$ mysqldump -utestuser -hfugafuga -phogehoge –tab=/tmp test_db test_table > ./output/mysqldump_output.tsv

# csvでのエクスポート
$ mysqldump -utestuser -hfugafuga -phogehoge –tab=/tmp –fields-terminated-by=, test

元記事を表示

cloudformationのネスト表示 ってなに?

## 勉強前イメージ

グルーピング的な?
どうやってするかはわからん

## 調査

### まずcloudformationとは

AWS cloudformation はAWSの環境構築を自動化できるサービスです。
YAMLファイルを書いてデプロイすることで、環境を構築することが出来ます。
ネストされたスタックは他のスタックの一部として作成されます。

詳細は [こちら](https://qiita.com/miyuki_samitani/items/9f0ad8cb97403e0276db) になります。

### cloudformationのネスト とは

cloudformationのスタックを以下の図のように複数のスタックを連携させる方法です。
以下の図であれば、main stackは他のVPC,EC2,RDS stackから見たら親スタックになります。

![12022-06-10 cloudformationのネスト表示 とは – diagrams.net.png](https://qiita-image-store.s3.ap-northeast-1.amazon

元記事を表示

OTHERカテゴリの最新記事