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

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

一時的な障害に強いシステム(アプリケーション)を構築する

## 以下の記事を参照して頂ければと思います

https://note.com/shift_tech/n/n236a7e03c033

**※Qiitaの記事は全て個人的な記載であり、所属する組織団体とは無関係です。**

## 補足
ソースコード全体は以下。

https://github.com/yuta-katayama-23/intro-vuecli/commit/a4f87435f7c34bae23cfa4f9ecfa450a94af371f

元記事を表示

【AWS】大量データ転送について

# データ転送の計算式(そもそも)
これはもう具体例でやった方がわかりやすい。
70TBの大量データを0.5GBのインターネット回線で転送するのにかかる時間を計算する。
それぞれのパラメータをビット数に変換してあげる。

>(1)データ容量をビット単位に変換
615,726,511,554,560bit = 70TBtye ×1024×1024×1024×1024 × 8bit
(2)回線速度をビット単位に変換(=1秒間に転送できるbit数)
500,000,000bit = 0.5Gbps ×1000×1000×1000
(3)転送に掛かる秒数を計算
1231453.02秒 = 615,726,511,554,560bit ÷ 500,000,000bit × 伝送効率
(4)転送速度の変換(bps⇔B/s)
62.50MB/s = 0.5Gbps ÷ 8bit × 伝送効率

伝送効率が100%ならば342時間かかる……!!!!

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com

元記事を表示

【AWS】セキュリティポリシーについて

# セキュリティポリシーの設定について
S3バケットポリシーとIAMポリシーがあるが、ぶっちゃけどっちからでも制御できるのは?という疑問。結論から言うと、クロスアカウントアクセスである場合は両方のポリシーを突破してあげる必要がある。

# クロスアカウント??
AWSアカウントは今や1つだけのアカウントだけで運用するものではなく、目的別に(dev/prod用など)運用するものになっている。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2665477/afcba584-d078-0da4-5ad7-37de991cfc6e.png)
画像引用:[IAMでクロスアカウントスイッチロールを設定してみた](https://blog.logical.co.jp/entry/2020/04/09/103000)

# IAMポリシー

“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Eff

元記事を表示

【AWS】Systems Manager AutomationのrunCommandで、RedshiftのUNLOADコマンドが正常終了したにもかかわらずERRORが出る謎を解く

# 問題となったAWSサービス

## Systems Manager AutomationのrunCommand
**Systems Manager Automation**は、Systems Managerで提供されている機能の一つで、EC2やRDS、Redshift、S3などのAWSサービス共通の保守、デプロイ、改善のタスクを簡素化して運用できる。
[AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html)
このAutomationにおいて**runCommand**という、マネージドインスタンス(EC2)でコマンドを実行するアクションを実装できる。
例えば、管理下のEC2サーバ上でシェルスクリプトを実行させるようなタスクである。
これを、エンジニアがSSHして踏み台サーバ経由でいちいち黒い画面を開いてコマンドを叩くことなく完遂できる。
“`yaml
# 公式ドキュメントのサンプルコード

元記事を表示

【AWS】ライフサイクル機能

# ライフサイクル機能とは?
S3に保存されたオブジェクトの「人生」を決めてくれるもの。大学に行って〜結婚して〜みたいな感じで、S3に保管されたオブジェクトの「人生」を決めることができる。具体的には、オブジェクト作成当時は頻繁にアクセスされるが、いずれ低頻度のアクセスになるであろうオブジェクトに関しては「90日後に低頻度アクセスのストレージクラスへ移行する」といった設定が可能。
AWS内でライフサイクル機能を有しているのはS3とAWS BackUpのみ。(EBSにはライフサイクル機能はない)

# S3 Glacier
ほとんど参照されないアーカイブ目的のデータを保存するストレージクラス。
オブジェクト作成当時にこのクラスを選択することはできない。
ライフサイクル機能で設定してあげることによって、初めて利用可能となる。
低頻度のアクセスが想定されているストレージクラスのため、Glacierに保管されているデータにアクセスするには事前にアクセスをリクエストしてあげる必要がある。(そしてアクセスできるようになるまでに数時間かかる)
データの取り出しには標準で3〜5時間もかかる!

# AW

元記事を表示

特定のURIリクエストのみAWS WAFルールを適用させない方法

# はじめに
AWS WAFを導入し、運用していると、誤検知問題にぶつかることがあります。

本来なら問題なく、動作してほしいアクションに対しても、WAFが良かれと思ってブロックしてしまい、想定通りのアクションが行えないことがあります。

そこで、WAFに対して(あらかじめ安全だと確認できている)特定のURI時のリクエストに対してブロックルールを適用しないようにする方法を記載します。

# 手順
今回は、例として`/uploads`のURIのみWAFのルールを適用させたくない場合を想定します。

![スクリーンショット 2022-07-28 18.47.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669969/4ced3e51-a125-900a-6c49-8bc6dd166b8f.png)

## `Regex pattern sets`を作成
AWS WAFのマネジメントコンソールから`Regex pattern sets`を選択し、登録するURIを追加する。

ワイルドカード表記もできる

元記事を表示

UnityでLambdaを介してDynamoDBにアクセスするAPI連携を実装する方法

# 今回実装したこと
Unity ⇆ API gateway ⇆ Lambda ⇆ DynamoDB ⇆ S3
S3上に置いた画像データをおき、そこに至るパスをDynamoDB上にストックし、Unityからの入力をキッカケにAPI gatewayを経由してLambdaを起動して、入力情報に応じてDynamoDBから必要なS3のパスを返す実装を完成しました。
文字だけだと呪文にしか聞こえないので、実際に動いているところを共有します。

UnityでAWSのサービスを使用する場合、余計なSDKやプラグインなどを使用せず、あくまでAWSのサービスのみで完結する方法についてまとめました。
これができれば、フロントサイドは別にUnityじゃなくてもさまざまなサービスを利用することが可能です。

# 注意点
AWSの使用は従量課金制となりますので、ここから先を進んだ場合に使用量が発生する可能性があります。そのため、ここから先に進んで費用が発生しても自己責任でお願いいたします。

# AWS側の設定

## AWSへのログイン
他の記事やgoogleで検索し、AWSのコンソール画面まで進んでください

元記事を表示

[Amplify]ホスティング機能でURLパラメータを利用することが困難

## 概要
Amplifyのホスティング機能でSPAを公開する場合URLパラメータ(クエリストリング・クエリ文字列)を利用することが困難なケースがあるため解説いたします。
2022/7/31現在未解決です。下記issue内でも議論されていますが、Amplifyの設計思想による仕様である可能性があります。そのため今後解消されるかは不明です。

**GitHubのissue**
https://github.com/aws-amplify/amplify-hosting/issues/97

## 解説
Amplifyのホスティング機能を利用してSPAを公開した場合、ルート(/)以外へのリンクはURLパラメータが消されたうえでトップページへのリダイレクトが発生します。一方で、ルートへアクセス後のSPAのHistory APIによるページ遷移ではURLパラメータを利用できます。
そのため、ルート以外ではクエリパラメータを利用することができません。

SPAでは通常のページ遷移と異なり、単一のファイル内で仮想的にページ遷移を行います。そのため一般的にはルート以外(例:/about)へのアクセス

元記事を表示

AWS BackupでVMware Cloud on AWSをバックアップ/リストアしてみた #2 (AWS PrivateLinkを利用)

# 1. はじめに
2021年AWS re:Inventで「[AWS Backup](https://aws.amazon.com/jp/backup/)」がVMware仮想環境に対応したと発表されてからはや半年、またつい先日(2022/06/03)に新しいアップデートがありました。AWS PrivateLinkへの対応です。

私も早速VMware Cloud on AWS環境で試してみたので、前回の記事との比較を中心に備忘録をまとめてみます。

https://aws.amazon.com/jp/about-aws/whats-new/2022/06/aws-backup-adds-privatelink-vmware-workloads/

詳細なセットアップ手順や解説などは前回の記事をご参考ください。今回手順のところは差分だけ簡単にご紹介しようと思います。

https://qiita.com/sanjushi003/items/7d250088875463005dd3

# 2. PrivateLinkを使うとどんなことができるの?前回と何が違うの?

まずはAWS Priv

元記事を表示

簡単にサブスクリプションできるheadless CMSのホームページを作った話 supabase・stripe 技術選定編 3

[前回](https://qiita.com/edegp/items/4e2de4445a41c1147b45)は、Next.jsとホスティングサービスについて話したのですが

今回はサーバーレスサービスの`Supabase`と決済サービスの`Stripe`について選定理由とメリデメについて話したいと思います。

前回までの記事でLGTMがほとんどないので、もうちょっとわかりやすく役に立つような記事を書けるように頑張ります?

※この記事では具体的な使用方法については書いていません

主に感想と使ってみたサービスの評価になります。

## supabaseとは

最近はやりのBaaS(Backend As A Service)で2020年から提供されているサービスです。

https://supabase.com/

`firebase`代替をっ公式が謳っていて、かなり頻繁にアップデートを重ねています。

読み方はスーパーベースだと思ってます。

UIが非常に使いやすく、`AWS`を使ったことがある`AWS`と比べると比較にならないぐらいスッキリしていてわかりやすいです。
ダッシュボー

元記事を表示

AWS日記44 (Amazon EC2 – Rust)

# はじめに
今回は[Amazon EC2](https://aws.amazon.com/jp/ec2/)でのRustのビルドを試します。
EC2のARM64アーキテクチャで[aws-lambda-rust-runtime](https://github.com/awslabs/aws-lambda-rust-runtime)のexampleコードをビルドします。

# 準備
##### EC2インスタンスの準備
![01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/586707/3c13eb25-d31a-84af-8154-d88fc9ad51c5.jpeg)

– 名前を設定します
![02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/586707/28a051f0-5599-c944-5cae-54bbd0e92306.jpeg)

– Amazon マシンイメージを 「Amazon Linux 2 A

元記事を表示

【Amazon S3静的ウェブサイト】なぜバケット名をドメイン名にしないといけないのか?

Amazon S3には、バケットにファイルをアップロードするだけでウェブサイトとして公開できる静的ウェブサイトホスティングという機能があります。Route 53を活用することで、自分で用意したドメインへのアクセスをS3バケットに転送することも可能です。これらは[公式チュートリアル](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/website-hosting-custom-domain-walkthrough.html)に沿ってやればできるのですが、その中に気になる一文があります。

> バケット名はドメイン名と厳密に一致している必要があります

例えば`http://example.com`でウェブサイトを運用したい場合、バケット名も`example.com`にする必要があります。ただバケット名はリージョン内で一意でなければいけないので、すでに他の人がそのバケット名を使っていることだってあり得ます。なぜこんな制約があるのでしょうか?[^1]

# DNSの仕組み

そもそも`http://example.com

元記事を表示

Amazon Lightsailで簡単にLAMP環境を構築しよう①

# Amazon Lightsailとは

AWSの提供する、事前にカスタマイズされたクラウドリソースを使用して、低価格でシンプルなアプリケーションやウェブサイトを構築できるサービスです。

# Amazon Lightsailの特徴

Amazon Lightsailの主なメリットとデメリットは下記の通りです。

### メリット

– クラウドリソースが事前にカスタマイズされており、初心者でも簡単にWebサイトを構築できる
無料で3ヶ月利用可能(2022年8月の記事執筆時点)。

### デメリット

– Amazon EC2等のサービスと比べて、細かい設定や複雑な設定ができない
アクセスの増減に対する柔軟性がない

# 事前準備

– Amazon Lightsailでの

元記事を表示

EC2料金表とEBS性能一覧表(2022/7)

# はじめに

* 東京リージョンのEC2料金ページとEBS最適化を有効にした場合のEBSネットワーク性能を一覧化しています。(2022/7/31時点)
* EBS最適化がサポートされていないインスタンスタイプも含めていますので一部スループットが空欄になっています。
* 実際のIO性能算出には[EBS自体の性能](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/ebs-volume-types.html)も必要ですのでご注意ください
* スループットは128 KiB I/O時の値です

# EC2料金とEBSスループット

|インスタンスタイプ|起動可能AZ|vCPU|メモリ (GiB)|オンデマンドLinux料金(USD/1時間)|オンデマンドWindows料金(USD/1時間))|EBS最適化最大スループット(MB/秒)|EBS最適化ベースラインスループット(MB/秒)|
|:-:|:-:|-:|-:|-:|-:|-:|-:|
|t2.nano|1a, 1c, 1d|1|0.5|0.0076|0.0099||

元記事を表示

EC2でgmailにメール送ってみた

参考
https://www.sambaiz.net/article/313/
https://codeforfun.jp/how-to-send-email-with-postfix-and-gmail/
2つ目のリンクの方法で検証成功した後に1つ目のリンクの方法を検証

1つ目のリンク参照
“`
echo -ne ‘\0めあど\0あぷりぱすわーど’ | base64
#出力結果コピー
openssl s_client -connect smtp.gmail.com:465 -crlf -ign_eof


220 smtp.gmail.com ESMTP u7-20020a170902e80700b0016ed5266a5csm2145168plg.170 – gsmtp
HELO ip-10-0-2-159.ap-northeast-1.compute.internal
250 smtp.gmail.com at your service
AUTH PLAIN さっきの出力されたbase64
235 2.7.0 Accepted
MAIL FROM: <送信先めあど>

元記事を表示

Gauth AuthenticatorでAWSのMFA設定

## はじめに
Gauth AuthenticatorでAWSのMFA設定を実施した時のメモです。
Windows10、ブラウザはChromeを想定。

## 手順
#### GAuth AuthenticatorをChromeにインストール
ChromeウェブストアでGAuth Authenticatorを検索し、インストール。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1259842/df0d9bdc-f490-f265-baef-7d58bfea4aa0.png)

#### AWSのAdministratorアカウントで対象IAMユーザを選択

「MFAデバイスの割り当て」の「管理」を選択
![{5DB2ECAB-E045-4E79-BEA6-90E21F38D16E}.tmp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1259842/91531845-cace-7981-e26e-25f

元記事を表示

Microsoft365の監査ログを取得するLambda

# はじめに
Microsoft365の監査ログの保存期間がデフォルト90日なので、それを長期間保存するためS3に出力するLambdaを作成しました。

# 参考

https://github.com/nickadam/exo-lambda

# 構成図

構成図は以下の様になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/d856cd57-3909-6efd-7a94-67f958ac718a.png)

– 任意のサービスが、対象のLambdaをInvokeします。
– Step Functionsを想定
– 与える引数は以下
– 監査ログ取得対象開始日時
– 監査ログ取得対象終了日時
– 保存先バケット
– オブジェクトキー名
– Microsoft365への接続に使う情報はSystemsManagerのParameter Storeから取得します。
– 格納先のPar

元記事を表示

【AWS】新卒フロントエンジニアがAWS CLFに1ヶ月で合格した方法

# はじめに
2022年4月、新卒で自社開発企業に入社し、フロントエンドエンジニアとして毎日Vue.jsを書いている新卒エンジニアです。
新卒フロントエンジニアながら、AWS CLF(クラウドプラクティショナー)を1ヶ月で取得することができました。
なので取得までに何をしたのかをまとめてみたいと思います。

ちなみにAWSの経験は「AWS Jumpstart for NewGrads」という新卒向けのAWS研修にて3日間アーキテクチャを構築したくらいです。
そのためエンジニアなら誰でもサクッと合格できるレベルの資格かと思います。

# なぜAWS CLFを取得しようと思ったのか
– インフラやバックエンドの仕事をしているわけではないが、個人開発では少しインフラやバックエンドを少し経験したり、もともとAWSに興味があり、改めて体系的に学習しようと思ったため
– 今後のキャリアの選択肢を広げるため
– **会社から報奨金が出るため**

やっぱ報奨金が出るだけで一気にやる気は高まりますよね。(笑)
また、直近のキャリアではあまりAWSに触れることは少ないかもしれないですが、AWSの知識があ

元記事を表示

Route 53 Resolver DNS Firewall とは

## 勉強前イメージ

Route 53 Resolver って昨日やったやつじゃなかったっけ?

## 調査

### Route 53 Resolver DNS Firewall とは

VPCから [Route 53 Resolver](https://qiita.com/miyuki_samitani/items/59e9c9ff432a750d728e) に対するアウトバウンドのDNSのクエリを見て
特定のドメイン名に対するクエリをブロックすることができます。
VPCから悪意のあるドメインに対するDNSのクエリをブロックして、信頼できるDNDのクエリのみ許可するfirewallになります。
[DNSトンネリング](https://qiita.com/miyuki_samitani/items/dd5d81cf539467578fd2) の対策になります。

### Route 53 Resolver DNS Firewallで防ぐもの

[Route 53 Resolver](https://qiita.com/miyuki_samitani/items/59e9c9ff43

元記事を表示

AWS Lambda でLine bot を作成する

Line bot を作成し、自動でメッセージを送受信する方法を解説します。

## LINE Developersコンソールからチャネルを作成

下記手順を参考にLINE Developersコンソールからチャネルを作成します。
[LINE Developersコンソールでチャネルを作成する](https://developers.line.biz/ja/docs/messaging-api/getting-started/#using-console)

– [LINE Developersコンソール](https://developers.line.biz/console/)へログイン
– `Messaging API`のチャンネルを作成
![image](https://user-images.githubusercontent.com/38905609/181906073-e2371056-01c9-4329-abf1-5e3334fdc3f0.png)

## Webhook用のLambda関数を作成する

?これより先は下記記事の内容を前提とします
[REST AP

元記事を表示

OTHERカテゴリの最新記事