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

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

スケーラビリティのあるブログサービスを構築する

この記事はAWS初学者を導く体系的な動画学習サービス
「CloudTech」の課題カリキュラムで作成しました。
https://kws-cloud-tech.com

## 前回までの環境
前回までのハンズオンでは、以下の図のような冗長構成のブログサービスを作成しました。方法については前回の記事をご覧ください。
https://qiita.com/pd1/items/cf17af9641503e7c1916
![スクリーンショット 2021-10-21 23.34.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1006791/153f7d30-cde0-fc58-77f6-2a89eae460a7.png)

## はじめに
 前回の構成の目的は、冗長化をすることで耐障害性を高め、負荷分散をしていくことになります。しかし、この状態では、キャンペーンなど突然大量の接続があった場合に、準備しておいたEC2以上の対処ができなくなってしまいます。
 そこで今回の目的は、前回の弱点を補う

元記事を表示

Amazon Virtual Private Cloud (VPC) は AWS での IP アドレス管理を簡素化する IP Address Manager (IPAM) を発表

# はじめに

https://aws.amazon.com/jp/about-aws/whats-new/2021/12/amazon-virtual-private-cloud-vpc-announces-ip-address-manager-ipam/

> Amazon VPC IP Address Manager (IPAM) は AWS ワークロードの IP アドレスの計画、追跡、モニタリングを簡単にする新しい機能です。IPAM の自動ワークフローにより、ネットワーク管理者はより効率的に IP アドレスを管理することができます。
>
> VPC IPAM により、ルーティングやセキュリティーのニーズに基づいて **IP アドレスを簡単に整理**し、**IP の割り当てを管理するためのシンプルなビジネスルールを設定することができます。**IPAM を使って、VPC への IP アドレスの割り当てを自動化することにより、保守が困難で時間のかかるスプレッドシートベースのアプリケーションや自社開発の IP プランニングアプリケーションを使用する必要がなくなります。このオートメーシ

元記事を表示

AWS認定11冠達成したので振り返りと個人的ロードマップを考えてみた

# はじめに
今月未取得だった残りのAWS認定試験に合格して、無事に11冠を達成したので振り返りと個人的なロードマップを考えてみました。
この記事がどなたかのご参考になれば幸いです。

# 謝辞
自分が合格できたのは、他の方の合格記や出版された対策本、練習問題をまとめて公開してくださっている方々のおかげだと思っています。
まずはその方々に感謝させていただきます。ありがとうございました。

# 事前情報
* AWS経験は2年と半年程度
* 普段はデータ分析系のサービスを使うことが多い
* 最近は業務でセキュリティ周りのこともやる機会が増えてきた

# 注意
* 本記事に書いてあるのはあくまで個人の意見です。
* 受験される方の性格や所有スキルによってこの勉強法が合わない可能性があります。
* 自分は資格試験を必要なスキルの知識を手っ取り早く体系的に学ぶための手法の1つとして考えています。

# 受験履歴
AWS認定試験は以下の順番で受験していきました。SAAは旧試験で、それ以外は新試験で受験しています。
SAAの後にDASを受験しているのは普段データ分析系のサービスをよく使っていたこ

元記事を表示

AWS Lambdaで環境変数のTZは指定しないほうが良いかもしれない件

##はじめに
Lambdaで現在日時を取得する際は、
リージョン関係なくデフォルトでUTCとなっています。

そのため業務等では扱いやすいようにJSTに変換して運用するかと思いますが、
2022年1月現在、よく見かける方法が2パターン存在します。

本記事はPython3.9を使用していますが、
他の言語に読み替えていただいても内容は問題ありません。

##1.Lambdaの環境変数でタイムゾーンを設定する方法

まずは環境変数なしで取得してみます。

![スクリーンショット 2022-01-28 18.36.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/392337/2f5a7920-6d0c-6973-6e14-63b00bc016e7.png)

“`python
from datetime import datetime

def lambda_handler(event, context):

current_at = datetime.now().strftime(‘%Y-%

元記事を表示

AWS IoT Coreに証明書を使わずユーザー名/パスワード認証で接続する

AWSのIoT Coreに接続するためには、証明書が必須と思っていましたが、カスタム認証を使うと、ユーザー名とパスワードで認証ができます。

証明書を使った認証は、IoT Coreが自動でやってくれますが、ユーザー名とパスワードによる認証の場合は、認証用のLambdaを作成して認証を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1180441/616cd98d-052f-48e1-3502-978d313630e1.png)
※図は公式ドキュメントからの引用です。

MQTT接続で行う場合には以下の制約があります。

* 接続ポートはMQTTSの8883ではなく443である必要がある
* ALPN拡張に`MQTT`の値を指定する必要がある

https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/custom-auth.html

> オーソライザーを呼び出すには、MQTT とカスタム認証を使用して AWS I

元記事を表示

SER_PASSWORD_AUTH vs USER_SRP_AUTH

## はじめに
cognito の ユーザープール認証について調べたのでメモしておきます。

## ユーザープール認証フローの選択

##### ADMIN_USER_PASSWORD_AUTH
バックエンドからの認証で使用する。

##### CUSTOM_AUTH
チャレンジと、レスポンスの確認が 3 つの AWS Lambda トリガーを通じて制御される。
(TODO)

##### USER_PASSWORD_AUTH
ユーザー名(メールアドレス)とパスワードをベースとした認証方式。

##### USER_SRP_AUTH
SRPフローはネットワーク経由でパスワードを送信しないため USER_PASSWORD_AUTH よりもセキュア。
USER_PASSWORD_AUTH を使用するよりは USER_SRP_AUTH を選択したい。

SRP(Secure Remote Password)については以下の記事がシンプルでした。

https://zenn.dev/link/comments/00ce34735b6407

# 本題 USER_PASSWORD_AUTH v

元記事を表示

DynamoDB Localを用いたTTL 動作確認方法 メモ

DynamoDBのTTL機能をローカルで動作確認したため、メモしておく。

## TTLとは

* Time To Liveの略
* DynamoDBの各データを自動で削除する機能
* レコード毎にデータの有効期限を指定し、その有効期限を過ぎたデータが自動削除される

## 準備

### DynamoDB Local + DynamoDB Admin準備

* `docker-compose.yml`

“`yaml
version: ‘3’

services:
dynamodb-local:
container_name: dynamodb-local
image: amazon/dynamodb-local:latest
user: root
command: -jar DynamoDBLocal.jar -sharedDb -dbPath /data
volumes:
– dynamodb-data:/data
ports:
– 8000:80

元記事を表示

CloudFront Functionsで画像のリクエストをWebPに書き換える

# CloudFront Functions

同じS3ディレクトリに `.jpg.webp`や`.png.webp`などの拡張子のWebPがある前提で

Viewer Requestに対して以下の関数を設定

“`javascript
function handler(event) {
var request = event.request;
var uri = request.uri;
var ua = request.headers[“user-agent”].value
if ( ua.match(/Version\/13\./) || ua.match(/Version\/12\./) || ua.match(/Version\/11\./) || ua.match(/Version\/10\./)){
return request
}
else if (uri.match(/\/images\//) && (uri.match(/\.(jpe?g|png)$/)) ) {

元記事を表示

Amplify CLIで作ったGraphQL APIクエリするテンプレ + Authenticator コンポーネントのまとめ

## 何をするか
Amplify CLIで以下を作成する。

– Cognitoで認証されたユーザーだけがクエリを実行できるGraphQL API
– React.jsのコード
– Authenticatorコンポーネントによる認証
– Cognitoで認証されてAPIへクエリする (認証とUIのテンプレなのでクエリ内容は固定、しかも結果もコンソールに表示するのみ)
– 認証状態が変わるとボタンの表示非表示が変わる
– material-ui入れる (今回のコードではボタンしか使っていないため、@aws-amplify/ui-reactだけでもいい)

Amplifyのドキュメントは必要情報自体はあるけれど、情報が散在しているためシンプルな構成をガガッと試したい時に結構時間かかる。今回一番苦労したのはAuthenticatorコンポーネントが何者なのかというところ(複数のバージョンがあり紛らわしい)。

ログイン前の画面
![スクリーンショット 2022-01-23 22.30.19.png](https://qiita-image-store.s3.a

元記事を表示

auroraでエンドポイント関連で3つのことを実験

###実験①
#####データベースに設定したものとは別VPCでかつデータベースが配置されていないAZのEC2でauroraにアクセス可能か

データベース情報:
VPC:VPC1
データベースのインスタンスがあるAZ:AZ-1a、AZ-1c
パブリックアクセス:あり

EC2情報:
VPC:VPC2
EC2を配置したサブネット:AZ-1dのパブリックサブネット
クライアント:mysql-community-client.x86_64  8.0.27-1.el7

“`txt:成功
$ mysql -h (データベースのエンドポイント) -P 3306 -u admin -p –enable-local-infile
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 40
Server version: 5.7.12 MySQL Community Server (GPL)

Copyright (c) 2000, 2021,

元記事を表示

IncidentManagerを試してみる

# はじめに
2021/5にIncidentManagerなるサービスがAWSから発表されていました。

https://aws.amazon.com/jp/about-aws/whats-new/2021/05/introducing-incident-manager-aws-systems-manager/

インシデント管理のサービスということで、触ってみた所感を書いてみようと思います。
(SSMのサービスの一種のようです。)

## サービス概要

AWS上で運用しているサービスのインシデントを管理できるサービスです。

CloudWatch AlarmまたはEventBridgeイベントでアラートを上げることにより、IncidentManager上にインシデントとして起票できるようです。

インシデントが起票されたら、IncidentManagerは事前に設定しておいた「対応プラン」に基づいてアクションを実行します。ここで通知を行ったり、SSM RunBookを実行してリカバリアクションを行ったりします。

また、[OpsCenter][link-1]と統合されており、Ops

元記事を表示

Apache AirflowのマネージドワークフローによるAWS Databricksのワークロードのオーケストレーション

[How to Orchestrate Databricks Workloads on AWS With Managed Workflows for Apache Airflow \- The Databricks Blog](https://databricks.com/blog/2022/01/27/orchestrating-databricks-workloads-on-aws-with-managed-workflows-for-apache-airflow.html)の翻訳です。

:::note warn
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
:::

本書では、Databricksの強力なjobs APIとAmazonマネージドApache Airflow(MWAA)をどのように活用するのか、有効非巡回グラフ(DAG)をモニタリングするためにどのようにCloudWatchとDatabricksベースのタスクを連携させるのかを説明します。さらに、DAGのパフォーマンスメトリクスに基づくアラートの作成方法も説明し

元記事を表示

AWS Security Hubに関して

## はじめに
現在の携わってるプロジェクトでSecurity Hubを利用しているのですが、

– そもそもSecurity Hubってどういうシステムなの?
– メリットは?
– 料金は?

など基本的な部分が気になったので、自分の学習のためにまとめました。

# 目次
– [1. Security Hubとは](#1-securityhubとは)
– [2. Security Hubはなぜ必要なのか](#2-securityhubはなぜ必要なのか)
– [3.料金](#3-料金)

#1. SecurityHubとは

>AWS Security Hub は、お客様の AWS リソースに対して、自動化された継続的なセキュリティのベストプラクティスのチェックを行うクラウドセキュリティ体制管理サービスです。Security Hub は、さまざまな AWS のサービスやパートナー製品からのセキュリティアラート (= 検出結果) を標準化されたフォーマットで集約し、より簡単にアクションを講じることができます。Security Hub は、AWS Config ルールによる自動化されたセキ

元記事を表示

Assume Roleについて(クロスアカウントアクセスの実現)

#はじめに
2022年1月より、自社開発企業にSREエンジニアとしてジョインいたしました。
初月はObservabilityの向上に関連したタスクをいくつか行っています。
そのなかで、AWSのAssumeRoleまわりで混乱したので備忘録として残しておきたいと思います。

#AssumeRoleとは
簡単に言うと、STS(Security Token Service)に対して行われるAPIアクションのことです。
最初、名前にRoleとついているだけにIAMロールの種類かと思ってしまいました。ややこしい。。。
このAPIアクションが行われることにより、既存のIAMロールを引き受ける(Assume)ことができます。

#IAM Roleの構成情報
IAM Roleを引き受けることができると書きましたが、そもそもIAM Roleを構成している情報は何でしょうか。
それは以下3つとなります。

・RoleName
・Path
・AssumeRolePolicyDocument

RoleNameはその名の通りロールの名前です。パスはロールを種類ごとにまとめたいときにディレクトリ管理できるもので

元記事を表示

AWS MLS合格記(2022/1/28投稿)

# はじめに
この度AWS認定のMLSを受験してきましたので、勉強した内容と受験した感想を書いておきます。
これから受験される方の参考になれば幸いです。

今回でAWS認定は11冠を達成しました。

* [2019-07-04 AWS Certified Cloud Practitioner](https://qiita.com/handy-dd18/items/c2b62ad58206e47f1345)
* [2019-07-24 AWS Certified Solutions Architect – Associate](https://qiita.com/handy-dd18/items/96a9f374a64663b10e24)
* 2021-02-25 AWS Certified Data Analytics – Specialty (DAS)
* [2021-07-23 AWS Certified Developer – Associate (DVA)](https://qiita.com/handy-dd18/items/33ba3e6cfa100903912c)
* [

元記事を表示

CircleCIにてAssumeRoleを用いたECR、ECSのデプロイ方法

## はじめに

私は業務でAWS上にAPIサーバを作成しています。
そして、そのAPIサーバのソースコードはGuthubで管理しており、CircleCIと連携してGithubにプッシュすると自動的にAWS上のECSへデプロイされます。
昨今ではよくみる構成かもしれません。特段珍しいものでもないでしょう。

その中でセキュリティ向上のために AWS の Assume Role 機能を使うようになりました。

AssumeRole の対応方法を調べましたが、ネット上では情報が足りない(日本語の中では「Assume Role 機能を試してみました!」で止まっているような情報が多い。今回の要件を満たすような記事は私には見つけられなかった)ので、備忘録として残しておきます。

## 注意事項
この記事は以下の点に注意して参照してください。

* 記事の内容は2022年1月に作成したものです。その後に CircleCI 提供の orbs にアップデートが入り、このような回りくどいことしなくても大丈夫になっている可能性もあります。
* CircleCI 提供の orbs の処理内容に依存しています

元記事を表示

【AWS】RDS自動停止設定を行ってみた

## 【AWS】RDS自動停止設定を行ってみた

### はじめに
インフラ環境の運用を行っているマエザトです。
こちらの記事はAWSで管理している社内環境でのお話となります。

AWSサービスは起動していると課金される仕組みが多く、
EC2(サーバー)は必要な際に起動停止を行って費用を抑えておりましたが、
RDS(DB)に関しては使用していない時に停止を行っても7日後には
自動起動してしまうという仕様※となっており、困っていました。
ネット記事を参考にRDSの自動停止設定を行ってみることにしました。

※RDSの停止と自動起動について
https://aws.amazon.com/jp/about-aws/whats-new/2017/06/amazon-rds-supports-stopping-and-starting-of-database-instances/

### 環境
■操作環境
OS:Windows 10 Pro(64bit)

■使用プラットフォーム
Amazon AWS

■使用サービス
IAM
CloudWatch Events
Lambda

###

元記事を表示

未経験でもAWS認定全11資格を10ヶ月で取得できたので学習方法をまとめました

# はじめに
僕がAWS認定資格を学習している時にこんな疑問・不安がありました。

* 未経験者でも合格できるの?
* 各認定資格はどのくらい難しいの?
* 11個も試験があるけど、どの順番で勉強していけば良いの?
* 何を勉強すれば良いの?
* そもそも資格を取得する意味ってあるの?

上記不安・疑問に対して、未経験でAWS認定資格を11個取得できた僕だからこそお伝えできる内容があるかと思い、記事にまとめる事にしました。

現時点(2022年1月23日)でAWS認定資格は全11個あり、全て取得することができたので学習方法など、皆様の学習の一助にしていただけますと幸いです。

#目次

– [1. AWS認定に関して](#1-aws認定に関して)
– [2. おすすめ受験順](#2-おすすめ受験順)
– [3. 学習方法](#3-学習方法)
– [4. 試験当日に向けて](#4-試験当日に向けて)
– [5. おわりに](#5-おわりに)

## 読書対象の方

* AWS認定を学習している、しようと思ってる方
* AWS認定、全11資格取得を狙っている方
* 各資格の学習方法がわから

元記事を表示

AWSの公式動画がおすすめ

## 概要

全然知らなかったのですが、AWSって公式動画が充実してるんですね。
個人的には感動するレベルで有用だったのですが、動画の再生回数を見るとそこまで多くない印象(3000~1.5万くらい)だったので、周知のため記事にしてみました。

[AWS クラウドサービス活用資料集トップ](https://aws.amazon.com/jp/aws-jp-introduction/)
[AWS 初心者向けハンズオン](https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-hands-on/)
[AWS サービス別資料(AWS Black Belt Online Seminarなど)](https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-service-cut/)

## AWS 初心者向けハンズオン

>AWS 初心者向けに「AWS Hands-on for Beginners」と題し、初めて AWS を利用する方や、初めて対象のサービスを触る方向けに

元記事を表示

AWS SESを使いたてでメールが届かない時に確認したいこと

# サンドボックスが原因かもしれません。

# “サンドボックス” is 何

>**サンドボックス**は、通常、システム障害やソフトウェアの脆弱性の拡散を軽減するために、実行中のプログラムを分離するためのセキュリティメカニズムです。

高度に制御された環境を提供するという意味で、サンドボックスは[仮想化](https://en.wikipedia.org/wiki/Virtualization)の具体例と見なすことができます。

https://en.wikipedia.org/wiki/Sandbox_(computer_security)

# SESにおいてはどういうことだってばよ?

SESにおけるサンドボックスは、メール送受信の不正利用や悪用などを防ぐため、新規に作成されたアカウントに一定の制限が設けらた状態で提供されるSESの利用環境です。

**制限内容(2022.1.27現在)**

– Eメールの送信先が検証済みEメールアドレス・ドメイン、メールボックスシミュレーターに限定される
– 最大で24時間あたり200メッセージ
– 最大で1秒あたり1メッセージ

元記事を表示

OTHERカテゴリの最新記事