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

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

EventBridgeのインプットトランスフォーマーを使ってLambdaを使わずに通知メールを見やすくする

# はじめに
EventBridge(旧CloudWatchEvents)のイベント通知をSNSで通知したはいいものの、
もはやなんのメールかわからないなんてことはありませんか?
メールの内容をカスタマイズするために、Lambdaでコードをガリガリかくなんてこともあったりしますよね。
今回は、GuadDutyのイベント通知を例に、EventBridgeのインプットトランスフォーマーという機能を利用し、コード作成不要で通知を見やすくする方法をご紹介します。

# EventBridgeとは?
https://aws.amazon.com/jp/eventbridge/
上記URLより以下の説明が記載されています。簡単にまとめると、様々なソースから、イベントを受け取り、ターゲットとなるアプリケーションやAWSのサービスにデータを配信するサービスです。
>「Amazon EventBridge はサーバーレスイベントバスであり、アプリケーション、統合された Software-as-a-Service (SaaS) アプリケーション、および AWS のサービスから生成されたイベントを使用して、

元記事を表示

RedshiftのCOPYコマンドを試してみた

# 背景・目的
Redshiftのドキュメントの手順に倣い、S3上データをRedshiftへCOPYする。

# 内容
## 概要
### COPYコマンドの特徴
– COPYコマンドに使用できるデータソースは、DynamoDB、S3、EMR、EC2上のファイルを指定することができる。
– COPYコマンドは、新しい入力データをテーブルの既存の行に追加する。
– 単一入力行の最大サイズは4MB

### COPYコマンドの構文
“`
COPY table-name
FROM data-source
authorization;
“`
– table-name
– COPY先のターゲットテーブル名。
– FROM data_source
– ソースデータの場所
– マニフェストファイルを用いることで複数のデータソースを指定できる。
– authorization
– Redshiftクラスタが、AWSリソースにアクセスする。
– IAMロールまたは、アクセスキーとシークレットアクセスキーを指定できる。

## 事前準備
– 以下を参考に、ター

元記事を表示

AWS CloudFormation でミニマムな個人開発環境を構築する

# はじめに
CloudFormationを使用するとインフラ環境をコードとしてテンプレート化できるので、開発環境をサクッと構築することができます。
そこで、キャッチアップがてら、個人開発環境をCloudformationを使用してミニマムな構成で作ってみたいと思います!

今回は構築する環境は↓のような環境。

![スクリーンショット 2022-03-12 20.15.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669969/51cb2ddb-de03-332a-0cba-829b2ef160ca.png)


ざっくり要件はこんな感じに設定しました。
### 【EC2】
– OS : AmzonLinux2
– 踏み台サーバはsshのみ許可
– 踏み台サーバとNatGatewayへのEIPの割り当てはテンプレートファイルに記載し自動で割り当て。

### 【RDS】
– エンジン : MySQL 5.7
– マルチAZ構成
– サブネットグループは手動で設定
– パラメータグループは

元記事を表示

運用が楽なQuickSightダッシュボードを作る_5(データセット自動更新編)

# はじめに

CSV群をQuickSightでダッシュボードにして、その後説明文やEメールレポートを追加してきました。

https://qiita.com/a_b_/items/b9a14658edce4c2ecad8

https://qiita.com/a_b_/items/eda666471b0b3f523318

https://qiita.com/a_b_/items/97795df177bb5bef31b1

https://qiita.com/a_b_/items/7fcbbe177c0978ea5eaa

この環境ですが、CSVを変更したら都度、QuickSightのデータセットの更新を手動で行なう必要があります。そのためには、
1. データセットを閲覧・更新できる権限を持つユーザとして
1. 都度QuickSightに飛んでログインし
1. データセットの画面に遷移して
1. 対象のデータセットを選択し
1. 更新処理を実行する

という手間が発生します。
これらを省くため、”対象のフォルダに変更(ファイルの追加、削除)があったら、自動でデータセット更新処理を実行

元記事を表示

s3 のバケットを全公開にする

AWS の勉強を始めたので、勉強した全てを細かくメモしていくことを決意

# s3 のバケットを全公開にする

## 全公開したい対象のバケットを選択

![s3_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76272/64254da7-a507-a382-47b5-20cf7f46c5a6.png)

## アクセス許可タブをクリック

![s3_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76272/7f25b15a-bc9a-6f59-4589-976cdba1167f.png)

## バケットポリシー を編集

「対象バケット名」に公開したいバケット名を入力する

“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “AddPerm”,
“Effect”: “Allow”,
“Principal”: “*”

元記事を表示

S3からcsvを取得して表示する。(Node.js)

今回はwebサイトのコンテンツ管理にcsvでやろうと思い、タイトルのサンプルコードをnode.jsで作成しました。

## ・前提
* s3の作成していること(コンソールから)
* s3にcsvをアップロードしていること(コンソールから)
* ローカルでawsのconfigurationが設定されていることの確認。
※参考:https://qiita.com/yuchaman/items/29458107c8ea7f2e0b42

## ・コード
“`
const aws = require(‘aws-sdk’);
const csvToJson = require(‘csvtojson’);

module.exports = {

// get csv from s3

getDataFromS3: async () => {
console.log(“call getDataFromS3”);

const s3Client = new aws.S3({ apiVersion: ‘2006-03-01’ });

元記事を表示

awsのローカルデバッグでの必要になる認証の設定について

最近、会社のPCやら家のデスクトップやらノートやらで実装していて、タイトルについて何回も同じことを調べてのでこの際メモにしました。
aws関連のローカルでの実装(自分はnode.js)の際に、必ず必要になるのがローカルデバイスでの認証情報の設定。

## ・前提
* AWS CLIがインストールされている
* やりたいことができる権限を持ったアカウントを作成済み。(例えば、s3にファイルをアップロードしたければ、s3に対しての操作の権限があるアカウントを作成)
※secretKeyは必要になるので必ずメモしておきましょう。

## ・configurationの確認
まず/user/.aws/にconfigurationのファイルがあるかを確認する。

## ・ファイル自体がない場合(/.awsのディレクトリがない場合も同様):
configurationのファイルがない場合には下記コマンドを実行
“`
aws configure
“`
※上記コマンドを実行するといろいろ聞かれますが、大事なのがaccessKeyとsecretKey。
secretKeyに関しては、アカウントを作

元記事を表示

aws-cdkのL1・L2・L3とは aws-cdk#3

# 概要
[前回の記事](https://qiita.com/KbSota/items/3d38f5e000696a47e38d)でのこの宣言通り
cdkのL1とL2(そしてなんとL3も)について書いていきます。
>もう少し深く(cdkのL1とL2について)書こうと思いましたが
予想より文量が多くなってしまったので次回に回そうと思います。
主にCfnとcdkの関係の話になります。

# 結論
一口にaws-cdkと言ってもその中には3つのレイヤーが存在します。
– L1:ほとんどそのままCfnのテンプレートを記述するもの→**書いたものがそのままリソースとなる**
– L2:設定しなくてもデフォルトで設定を**いい感じ**にしてくれる
– L3:単一のリソースではなくAWSが設定したタスク群を設定できる。

レイヤーが高くなるほど便利になる(コード量や設定箇所)一方、設定の自由度が下がると言ったイメージ。

# 環境
操作する環境は以下の通りです。
“`
% node -v //Node.jsのバージョン
v14.16.0

% tsc -v //TypeScriptのバージョン
V

元記事を表示

リポジトリ管理しているAmplifyアプリの複製

現在、チャーシューを仕込んでいます。
味が染み込むまでに時間がかかりますので、備忘として記載します。

今回、私が行いたい作業としては、「Amplifyアプリを複製すること」です。
類似したアプリケーションを新規作成する際や、旧環境と新環境での同時並行稼働に対応するための1つの解決策として、Amplify(その他リソース含め)をコピー新規できるのではと思った次第です。

### 前提
– 既存のソースコードは、GitLabでリポジトリを管理している
– そのリポジトリ内にAmplifyの設定ファイル等(`amplify`フォルダ内)が格納されている
– Amplifyのホスティング方法としては、「S3 + CloudFront」でamplify-cliを利用して公開
– フロントエンドのフレームワークはreact
– 挙動を確認したかっただけなので、backendは特に追加なし

### 概要
– GitLabの既存プロジェクトAをコピーして、新規プロジェクトBを作成する
– GitLabA –“コピー”–> GitLabB
– **既存プロジェクトAのAm

元記事を表示

? 雑に使う Nextflowワークフロー言語    (´・ω・`)

この記事は初心者がNextflowに触れた中で感じたポイントをまとめています。
主に自分が読み返す目的で作成していますが、Nextflowを新たに始める方には参考になるかも知れません。(どちらかというと、既存のフローを使いたい人より、自分でNextflowスクリプトを書きたい人向けの記事です。)

## Nextflowとは

* ワークフロー言語の一つ。
* GroovyのDSL。Groovyは、Javaプラットフォーム上で動く言語。Rubyの強い影響を受けている。
* Githubトレンドでみると、GroovyはGradleとNextflowで使われている。Gradleはビルド自動化ツールなので、Nextflowと似ている。Groovy言語はこういうのが得意みたい。
* スペインの[Paolo Di Tommaso](https://github.com/pditommaso)さんらが中心になって開発している。
* nf-coreという公式のワークフローはEUの人が強く参加。全体にヨーロッパ色が強い。
* クラウド環境に詳しくない人でも簡単にAWSを駆使できる。

元記事を表示

AWSで利用できるNFSマネージドサービス

# はじめに
AWSには色々なストレージサービスがありますが、今回はNFSで利用できるマネージドサービスについて私見を述べたいと思います。
# 特徴
1. EFS
99.999999999 % (イレブンナイン) の耐久性と最大 99.99 % (フォーナイン) の可用性で設計(スタンダードの場合)されたフルマネージドなNFSサービス。分散システムのバックエンドには向くけど1サーバからの高速アクセスとかには向かない。書き込みが遅い(MAX 7,000iops)。**対応NFS verは4,4.1のみ**。**idmapに対応してない**。容量をほぼ気にする必要がない(大抵の場合OSが認識できるサイズまで書ける)。シングルゾーンなら結構安いので使えるならEFSを最初に検討すべき。

2. FSx for NetApp ONTAP
NetAppをAWS上で動かすマネージドサービス。前からEC2上で動くCVOとかはあったけど、これは完全にマネージドサービス。パフォーマンスティア(SSD)とキャパシティティア(S3?非公開)という考え方があり、SSDは最低1,024GBアサインする必要がある。

元記事を表示

TerraformでCodepipelineの検出オプションを変更する

TerraformでCodePipelineを構築していて、ソースステージの「ソースコードの変更時にパイプラインを開始する」を「無効」にする方法がわからなかったので調べた結果を書きます

![detect_changes.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1219565/0e874e03-d81d-108a-1e4e-6a89ca57ae15.png)

## 結論
* “DetectChanges = “false” “ でできました

## 確認までの流れ
– [公式サイトのCodepipeline](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/codepipeline)の定義を見るが明記されていない
– さらにAWSの[CodePipeline pipeline structure reference](https://docs.aws.amazon.com/codepip

元記事を表示

AWS CDK(v2)でECRイメージスキャンの結果をchatbot経由でslackに通知させる

## 背景
CDKはCloudFormationやTerraformと違って○○を作るとしたらという情報が少なく、最初の学習ハードルが気持ち高いので、積極的にCDK関連を書くことで誰かの役に立てればいいなあと。

今回はECRにContainerimageがpushされたらイメージスキャンが走り、その結果をChatbotを経由してSlackに通知させる動きを作っていきます。

## イメージ図
スクリーンショット 2022-03-12 15.15.54.png (41.0 kB)

## 2種類のスキャン
AWS re:Invent 2021でInspectorが[リニューアル](https://aws.amazon.com/jp/blogs/news/improved-automated-vulne

元記事を表示

VMware Cloud on AWSを利用したL2延伸

# はじめに
[VMware Cloud on AWS](https://www.vmware.com/jp/products/vmc-on-aws.html)(以下VMC)というサービスをご存じでしょうか。VMCはAWS基盤を使いVMware社がサービスしているvSphere基盤です。AWSをVMware仮想基盤として利用できます。今までオンプレでvSphereを利用してきたユーザにとっては使いやすく、理解しやすい基盤と言えるでしょう。今回は、VMCについて私見を述べたいと思います。

# 利用料
VMCは実は結構高いです(笑)
価格は[ここ](https://cloud.vmware.com/jp/vmc-aws/pricing)で知ることができます。例えば、i3というタイプを東京リージョンに建てようと思うと1台あたり9.816382USD / hour(2022/3/5時点の価格)掛かりす。i3タイプのスペックは Intel Xeon E5-2686 v4 (Broadwell) 36core(72 thread)、512 GiBメモリ、15.2TB の NVMe 対応 SSD

元記事を表示

Amazon DynamoDB 料金計算時のメモ

料金計算に登場する機能ごとの確認。

色々調べたが、ここのページに分かりやすく、まとまっていた。

https://aws.amazon.com/jp/dynamodb/pricing/

# テーブル単位のリソース
## [DynamoDB on-demand capacity](https://docs.aws.amazon.com/ja_jp/ja_jp/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html)
オンデマンドモード。いわゆる都度課金。

* リクエストの予測が難しい
* いつデータができるか不明
* 実験プロジェクト

## [DynamoDB provisioned capacity](https://docs.aws.amazon.com/ja_jp/ja_jp/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html)
プロビジョニングモード。計画型。

* 予測可能性が高い

元記事を表示

aws-cdkの凄さとL1・L2の違い aws-cdk#2

# 概要
巷で話題の(私だけ?)aws-cdkですが
「実際何がすごいの?」という疑問に自分ならこう答える!
というものを書いていこうかなと。
~~派生してaws-cdkのL1とL2の違いについても少しだけ書きます。~~
↑次回書きます。。
[書きました](https://qiita.com/KbSota/items/be3b4063deea52815d50)

# 結論
aws-cdkは
①普段利用しているプログラミング言語を使って
②少ないコード量で
③Cfnを利用することができる
からすごい!!

これについて少しずつみていきます。

# 環境
操作する環境は以下の通りです。
“`
% node -v //Node.jsのバージョン
v14.16.0

% tsc -v //TypeScriptのバージョン
Version 4.5.5

% cdk –version //aws-cdkのバージョン
1.142.0
“`

# 本題の前に
早速本題に入っていく前にAWS SDKとCloudFormation(Cfn)について触れます。
[以前の投稿](https://qiit

元記事を表示

aws-cdk的Hello World ~cdk環境構築~ aws-cdk#1

# はじめに
AWS環境をaws-cdkを使って構築するようになったので
そのキャッチアップも兼ねて共有していこうと思います。

こちらの記事を参考に進めていく中で、自分なりに気づいたところを書いていきます。
https://dev.classmethod.jp/author/tanaka-keisuke/

### AWS-CDKとは
AWS環境の構築を使い慣れたプログラミング言語で記述してしまおう!!という試みです。
IaCの一種ですね

>TypeScriptで書いたソース
>↓
>`cdk deploy`を実行
>↓
>CloudFormationのテンプレートに自動で変換
>↓
>CloudFormationのAPIからそのままデプロイ

やることは**コードを書く+`cdk deploy`を実行**だけ!!
これだけでAWSのコンソールぽちぽちから解放されるのです!!
まあ、コードを書くのがしんどいのですが。。

##### -参考- AWS-SDK
似たようなツールにAWS-SDKがあります。
名前も似ている上に、これもプログラミング言語でAWSを操作できるというからやや

元記事を表示

[簡易]ローカルイメージをECRにpushする手順

#### 手順

– ECRリポジトリの作成
– ECRレジストリの設定(拡張スキャンなど)
拡張スキャンの「連続スキャン」は、ECRへのプッシュ時の初期スキャンと、関連する新しいCVEが公開され たときの自動再スキャンが含まれる

– ECRアクセス用のIAMユーザー(プログラムアクセス)作成
– `aws cli –profile xxxx`でprofile作成
– ECRレジストリに対してDockerクライアントを認証する
“`sh
aws ecr get-login-password –region region | docker login –username AWS –password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
“`
– ECRレジストリに保持する用にイメージにタグをつける
“`sh
docker tag image_id aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:tag
“`
– ECRにpush
“`s

元記事を表示

Elastic IP

# 調べる前のイメージ
伸縮自在なIPアドレス。
直訳したがどんなものかイメージがつかない。。。
# Elastic IP
静的な IPv4 アドレス。
通常EC2インスタンスを停止すると、それまで使用していたIPアドレスは保持できなくなるが、Elastic IPはEC2インスタンスが停止しても変更されない。
利用時は無料だが、停止中の場合は、時間単位で料金が発生する。
# (補足) パブリックIPとの違い
ECインスタンスが停止した場合、IPアドレスが変更される。無料。
# 調べた後のイメージ
調べた後だと、直訳のイメージがつきやすくなった。というか言葉の意味のままだなと思った。

元記事を表示

AmplifyのIAMでauth-roleとunauth-roleってなに?

## なぜこのような記事を書こうと思ったのか

Amplifyって便利ですよね。いつものように、さぁローカルで開発したものをGithubにプッシュしてAmplifyでビルドしよっ! と軽い気持ちでgit pushすると以下のようなエラーが…

“`
2022-03-10T12:01:33.847Z [INFO]: UPDATE_FAILED UpdateRolesWithIDPFunction AWS::Lambda::Function Thu Mar 10 2022 12:01:29 GMT+0000 (Coordinated Universal Time) Template error: IAM role amplify-hogehoge-prod-12155-authRole-idp doesn’t exist
2022-03-10T12:01:33.933Z [INFO]:
2022-03-10T12:01:33.934Z [INFO]: UPDATE_ROLLBACK_IN_PROGRESS amplify-hogehoge-prod-12155-apihogehog

元記事を表示

OTHERカテゴリの最新記事