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

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

スマホを使わずにAWSの二段階認証を行う

## 動機

– AWSにログインするにはID・パスワードに認証だけでなく、仮想MFAデバイスなどを用いた多要素認証を行う方がセキュリティ上良いとされています
– 仮想MFAデバイスにはスマホアプリのGoogle AuthenticatorやMS Authenticatorが用いられることが多いのですが、以下のような問題があります
– AWSにログインするたびにスマホが必要になり、PC上のブラウザにOne Time Password(OTP)を手入力する必要がある。
– スマホをなくしたり、壊れたりするとAWSにログインできなくなる

## やりたいこと

– スマホアプリのAuthenticatorは今まで通り使える
– 自分の所有するPCからはスマホなしでAWSにログインできるようにする

## 前提など

– AWSへのログインをテーマにしていますが、他のサービスにも使えます
– Linuxを前提します(他のプラットフォームで同じことができるかは未確認)

## MFAデバイスの設定

– AWSにログインして、画面右上のユーザー名をクリックして、「セキュリ

元記事を表示

SAM CLIを用いたLambda Layer 検証方法メモ

## Lambda Layerとは

* 複数のLambda関数で外部ライブラリやビジネスロジックを共有できる仕組み

* メリット

* ライブラリなどの共通コンテンツをレイヤーとして作成することで、パッケージにライブラリを含める必要がなくなる。

* アップロードされたデプロイアーカイブのサイズを縮小し、デプロイスピードを高速化できる。

## 検証

* DynamoDBアクセス共通処理をLayer化し、SAMで検証用APIを作成する。

### 事前準備

* DynamoDB環境構築

* `docker-compose.yml`

“`yaml
version: ‘3’

services:
dynamodb-local:
container_name: dynamodb-local
image: amazon/dynamodb-local:latest
user: root
command: -jar DynamoDBLocal.jar -share

元記事を表示

Cloud9からMicrosoft365の監査ログを取得する

# はじめに
Microsoft365の監査ログですが、保存期間は90日しかなく、S3への長期保存のために手動操作以外から取得できる方法を探していました。

PowerShellを使えばCLIで取得できるため、AWSからの自動取得の前段階として、Cloud9から取得する方法を備忘録として記事にします。

# まとめ

– LinuxだとPowerShellに以下のモジュールのインストールが必要
– ExchangeOnlineManagement
– PSWSMan
– OSはUbuntu
– Amazon Linuxだと、上記モジュールがうまく入らない・・・?
– MS社公式のDockerイメージを使うと、とても楽
– Amazon Linux上でも動く

# やったこと
Cloud9のEC2インスタンスに直接PowerShellを入れる方法と、PowerShellインストール済みのDockerイメージを使う方法の2つを記載します。

## 方法1:EC2に直接インストール

### Cloud9作成

PlatformでUbuntuを選択する点に注意

元記事を表示

円安の今だから読みたいAWS Well-Architected コスト最適化の柱

# 概要

* **今日の日本(2022/6/18時点)において、えげつない円安を更新し続けています。**
* その影響により日本ではAWSをはじめとするドルベース料金のクラウドサービスのコストが増大しているとよく耳にします。
* そんな情勢の中なので、クラウドサービスのコスト削減は必須と言えるのではなかろうか。
* 今回は、awsにおけるコスト削減をする際にぜひ読んでいただきたいベストプラクティス**AWS Well-Architectedのコスト最適化の柱**についてサマライズしていこうと思います。

![円安.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563635/757866a5-600d-4f15-fc01-2b3d25195ba9.png)

# AWS Well-Architected コスト最適化の柱

* AWS Well-Architectedとは、クラウド上でワークロードを設計および実行するための設計原則、アーキテクチャのベストプラクティスについてまとめたものです。

* また

元記事を表示

Exam Readiness AWS Advanced Networking Overview (Japanese)のまとめ

# はじめに
AWS DOPの試験対策で[Exam Readiness AWS Advanced Networking Overview (Japanese)](https://explore.skillbuilder.aws/learn/course/12691/play/49965/advanced-networking-overview-japanese)を視聴したので、内容をまとめます。

モジュール1,2は難しく、何回か戻しながら視聴しましたが、3以降は既存の知識(SAP、DOP)で対応可能と思ったため、記載を簡略化しています。

# アジェンダ
| モジュール | 内容 |
|——|———|
| 1 | [AWSネットワークの設計と実装](#モジュール1:AWSネットワークの設計と実装)|
| 2 | [ハイブリットITネットワークアーキテクチャの設計と実装](#モジュール2:ハイブリットITネットワークアーキテクチャの設計と実装)|
| 3 | [アプリケーションサービスとネットワークの統合](#モジュール3:アプリケーションサ

元記事を表示

Flutter から Lambda を経由し Amazon Pinpoint のPush通知を実装

# はじめに

flutterでpush通知の実装を目的に、Lambdaを経由してAmazon Pinpointでpush通知する構築方法についてまとめます。

1. pinpointに対して、エンドポイントの登録
![スクリーンショット 2022-06-18 18.11.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/988747/71e8257d-fb14-57d5-9e12-a487533a6ca8.png)
1. pinpointに対して、エンドポイントの更新
![スクリーンショット 2022-06-18 18.12.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/988747/19b3b5c0-c6de-df13-dd24-cf500a0b50a6.png)
2. pinpointに対して、セグメントとキャンペーンを作成
![スクリーンショット 2022-06-16 21.21.12.png](htt

元記事を表示

Amazon Inspectorの診断結果から”High”のみ抽出して通知する

# はじめに

ご覧いただきありがとうございます。

Amazon InspectorでEC2の脆弱性診断を行い、評価結果が”High”の対象のみを抽出してSNS通知を送れるようにしてみました。

# 概要

1. Inspector~SNS~Lambda間の連携確認
2. Lambdaの実装
 

# 事前準備

– AWSアカウント作成
– AdministratorAccessを付与したIAMユーザーの作成
– EC2作成/Amazon Inspectorのセットアップ

診断を行うと、AWSマネジメントコンソールから、診断結果をダウンロードできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2697264/84731db8-dcf4-f8e8-4389-965f5b8e7b0c.png)

High,Mediumが混在した38件の結果が表示されました。
それぞれ個別に内容を確認できます。

今回は診断結果が”High”のものをフィルタリングして、Lambdaを経由してEメ

元記事を表示

AWS CodeStar メモ

## AWS Code Starとは?

* 統合されたI/FでAWS CI/CDサービスチェーンを構築、運用できるAWSサービス

* CodeCommit (リポジトリ)からCodeBuild(ビルド)、CodeDeploy(デプロイ)をCodePipelineでシームレスに繋げることができる。

![codestar.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/586535/2053a917-26a4-1294-d3a2-65ad0e46e6ff.png)

## 特徴

* 豊富なプロジェクトテンプレート
* 選択テンプレートからCI/CD環境が自動で構築される
* プロジェクトダッシュボード
* リポジトリやパイプライン、開発ツール(IDE)との連携設定を行う
* パイプラインの自動生成
* Source,Build,Deployがステージとして構築される
* 開発ツールとの連携
* CLI,Eclipse,VSCode,Cloud9,CodeCommitと連携

## 利点

元記事を表示

【日本語訳】Configure AWS Credentials

### GithubActionsにAWSアクセスキーを持たせるのは時代遅れ

GithubActions内のワークフローにベタ書きするのも、変数で持たせるのも、永続的なクレデンシャル情報をGithubに持たせるのも微妙でした…**が**

[aws-actionsにその問題を解決するGithubActions](https://github.com/aws-actions/configure-aws-credentials)が追加されました。(2021/11/23正式リリース)

これによりGithubActionsにAWSアクセスキーを持たせなくてもAWS Credentialsの設定ができるようになりました。

なんて、半年前のものについての内容を**今更ドヤ顔しながら掘り返しても**あまり意味がないので
(やり方については調べればいくらでも出てくる。[ココ](https://dev.classmethod.jp/articles/github-actions-aws-sts-credentials-iamrole/)とか)

意外と見落としがちな公式ドキュメントをざっくりと

元記事を表示

CDKを使って機械学習の開発環境を揃える

## こんな人向けの記事
– AWSを使って機械学習をやりたいけど、一度説明を受けたSageMakerはジョブを作って学習や推論をするにはいいけど、もっと基礎的な機械学習の動きを知ったり、Trial & Errorをするには使いにくいなぁ。
– SageMaker Notebook InstanceでJupyter環境は作れるけど、いやVSCODEを使いたいんだよね。
– 環境をいちいちマネジメントコンソールからぽちぽち作ると、ちょっと環境消したいとか、変更したいというのが大変なので、IaCでやりたいなぁ

っていう人向け。
技術的にはEC2を機械学習用AMI(DeepLearningAMI)で立ち上げて、そこにSSHトンネル接続するということです。

## IaCの選択
今回のIaCにはCDKを利用します。余計な記述をしなくてもAWSのベストプラクティスが盛り込まれているし、シンプルに書けるため。CDKについては[こういうサイト](https://dev.classmethod.jp/articles/cdk-workshop-typescript/)が詳しいので、参考にすべし

元記事を表示

AWS Lambdaを使ってTimeTreeのイベントをGoogleCalenderに同期したい

家庭のカレンダーにTimeTreeを利用していて、予定を共有するのに重宝しているのですが、ロック画面上に予定を表示してくれるGalaxyのAlways On Displayには連携できず、不便だったため連携処理をAWS Lambda上で連携させてみました。

TimeTreeに他のカレンダーを表示することは可能ですが、逆のパターンはCalDAVには対応しておらず、1件づつコピーする方法しかありません。

[他のカレンダー(Google カレンダーなど)をTimeTree上で利用する](https://support.timetreeapp.com/hc/ja/articles/360000629341)

Galaxyに関わらず、TimeTreeを他のカレンダーに連携したい方にも役にたつかもしれないです。

普段Serverless framework + AWS Lambdaを利用しているので、今回もAWS Lambda上で連携してみたいと思います。

記事を書いてみてかなりの長文になってしまったので、実際のソースものせますので合わせて見ていただければと思います。

# Always

元記事を表示

【雑記】アジャイル”っぽい”案件への向き合い方

### 前提
– 書き手はアジャイルについて詳しくなく、”正しいアジャイルとは?”といったこともよくわかっていないです。
– そのため、アジャイル”っぽい”としていますが、そもそもそれはアジャイルではないと言われる可能性もあることを承知した上で書いていますので、ご了承ください。
– ただ嘘を書きたいわけでは全くないので、気になる点があればコメントいただければと思います。

### アジャイル”っぽい”とは?
– 新しい案件へのアサインの相談で、アジャイルっぽい進め方をする案件という話。
– 案件概要で提案書を使って、実装したい機能の概要とおおまかなスケジュールについて説明を受けた。
– 後日、別にいる案件担当者から案件の詳細をMtgで説明を受ける予定。
– ここでQCDのうち、CとDが確定しているアジャイルってどういうことだろう?と疑問が湧く。

※まだ案件詳細を聞いていないので、以下から書き手の推測を含みます。

– まずアジャイル”っぽい”ってなんだろうというところを考えるところから始めてみます。
– アジャイルとはなんぞやという記事はqiita検索をかけるとたく

元記事を表示

AWS Single Sign On (SSO) メモ

## 概要

* AWS Organizationsと連携することで、複数のAWSアカウントへのシングルサインオンを実現するサービス
* シングルサインオン
* 1度のユーザー認証で複数システム(業務アプリやクラウドサービスなど)の利用が可能になる仕組み。
* AWS Organizations
* 複数のAWSアカウントを一元管理できるAWSサービス
* 複数のAWSアカウントをグループ化し、グループごとに共通のポリシーを設定できる
* 複数のAWSアカウントを「組織」として管理する
* 組織内のAWSアカウントは「管理アカウント(マネジメント/マスターアカウント)」と「メンバーアカウント」に分けられる。

## 概念

* アクセス権限セット

* AWS Organizationsのマネジメントアカウントから、ユーザごとのアクセス権限を一括管理する仕組み

## 機能

* **AWS Single Sign On ユーザーポータル**
* AWS SSOでマネジメントコンソールにログインする為に開発者が参

元記事を表示

Amazon ECS デプロイ中のイメージタグバージョン確認方法

* ECSにデプロイ中のコンテナイメージバージョンをわざわざAWSコンソールを開かずに確認したかったため、スクリプトを作成した。メモとして残しておく。

## スクリプト

* check_ecs_image_tag.sh

“`shell
#!/bin/sh

# AWSリージョン
AWS_REGION=”YOUR_AWS_REGION”
# AWsアカウント
AWS_ACCOUNT=”YOUR_AWS_ACCOUNT”

# ECS タスクファミリー
TASK_FAMILY_PREFIX_ARRAY=(
“dev-ecs-app”
“stg-ecs-app”
)

#aws configure

for tfp in “${TASK_FAMILY_PREFIX_ARRAY[@]}”
do
currnet_task_version=$(aws ecs list-task-definitions –family-prefix $tfp | jq ‘.taskDefinitionArns[-1]’ | sed -e ‘s/arn:aws:ecs:`${AWS

元記事を表示

awsで実現するsagaパターン(コレオグラフィ編)

# 概要

* マイクロサービスで複数のリソースの結果整合性を利用する方法として、**sagaパターン**というものがあります。

**sagaパターンについては過去記事をご参照ください。**

https://qiita.com/yoshii0110/items/4ae10eb071565cb90b37

* **今回は、sagaパターンにおけるコレオグラフィをAWSで実現するにはという内容で切り込んでいこうと思います。**

## Choreography(コレオグラフィ)とは

* Sagaパターンであるコレオグラフィは、中央集権的な調整(コントローラ)の必要性を避けて、**参加する要素がイベントを交換します。**
* コレオグラフィを使用すると、**他のサービスでローカルトランザクションをトリガーするイベントが各ローカルトランザクションによって発行されます。**
* もう少し簡単に説明すると必要なすべての情報を含んだ最初のイベントを1つのメッセージに保存しておき、最初のトランザクションを完了させます。
* その後、その他のサービスがそのメッセージを非同期的に取得し、それぞれのタ

元記事を表示

AWS Fargateからherokuに移行した話

## はじめに
※ 自分用メモ
awsの無料期間がそろそろ切れそうなので、バックエンドをherokuに移行したお話

## 移行前
#### バックエンド
言語・フレームワーク: Ruby、 Ruby on Rails
インフラ: AWS ECS(Fargate)、ECR、Route53(ドメイン取得はお名前.com)、RDS(Mysql)無料枠があるから、Auroraではない、ALB、ACM、S3、EFS

#### フロントエンド
言語・フレームワーク: React、NextJs
インフラ: バックエンドと同じ

#### ミドルウェア
webサーバー: Nginx
DB: mysql

## 移行後
#### バックエンド
言語・フレームワーク: Ruby、 Ruby on Rails
ミドルウェア: Nginx、mysql
インフラ: heroku、jawsdb、S3

#### フロントエンド
言語・フレームワーク: React、NextJs
インフラ: vercel、Route53(ドメイン取得はお名前.com)、ACM

### バックエンド移行(aws ⇨ hero

元記事を表示

AWS認定 ソリューションアーキテクト プロフェッショナル 試験勉強メモ

# はじめに
– 私がAWSソリューションアーキテクトプロフェッショナル取得のために学習していた時のアウトプットとしてまとめていたメモです
– Udemyの模擬試験問題集を解きながら、正解・不正解と問わず自分が理解できていない・覚えていない箇所をサービス別に整理・まとめていきました
– 同じく試験勉強をされている方のお役に立てれば幸いです

https://www.udemy.com/course/aws-53225/

### 私の勉強方法
– 受験時のAWSの実務経験は1.5年ほどでした。
– 業務多忙によりまとまった勉強時間が確保できなかったので、隙間時間での勉強がメインでした。
– 上記のUdemy問題集を解きつつ、サービスを軸に仕様やユースケースをスマホでSlackに書き溜めていきました。
– サービス軸で整理することにより、単純な問題と解答の暗記ではなく、個々のサービスに対する体系的な理解が深まったと思います。

***
# — EC2 —
## 各インスタンスタイプの特徴
#### T3インスタンス
– ベースラインレベルの CPU パフォーマンス

元記事を表示

[AWS / SAM] build / deploy失敗パターン

# 概要

AWSの`sam`を使っていると、結構わかりにくいエラーメッセージに悩まされることがある。
エラーメッセージが曖昧で、どこに何の問題があるのか特定できないからだ。

そんな場合の対処法のメモ。

# エラーパターン例

## 1. Given input did not match expected format

具体的には、 `sam deploy`した時に次のようなエラーが出る。

`Error: Failed to create changeset for the stack: {your-stack-name}, ex: Waiter ChangeSetCreateComplete failed: Waiter encountered a terminal failure state: For expression “Status” we matched expected path: “FAILED” Status: FAILED. Reason: Given input did not match expected format`

– 原因
`paramet

元記事を表示

【AWS】S3まとめ

# はじめに
こんにちは。rattsl(@rattsl)です。
今回はAWS S3についてハンズオンで色々いじったのでメモとして残します。
間違えて認識している部分があったらご指摘ください。

# S3とは
マネージド型で提供されるの***オブジェクト型ストレージサービス***。
S3はシンプルストレージサービスの略。

– 1GBあたり約2.5円/月
– スケーラブルでデフォルトで冗長化されている
– 転送中、保存時は暗号化が可能

***バケット***という名の保存場所に保存され、バケット名はグローバルで一意である必要がある。

## S3アクセスポイント
S3をアプリケーション上にセットアップした際、どのレイヤーのデータまでアクセスしていいかを管理する。

アプリケーションサーバーのIPアドレスを設定したり、VPCに対して特定のS3バケットへのアクセス制限を設定することでアクセス管理をコントロールすることが可能。

## S3アクセスアナライザー
アクセスポリシーに沿ってアクセスされているかを確認し、不正なアクセスがないか監視する機能。

## ライフサイクル管理
バケット内のオ

元記事を表示

cdkでtypescriptのlambdaをデプロイしてみた

# AWS lambda

## サービスの概要

– サーバレスでイベント駆動型のコンピューティングサービス
– サーバーの管理をする必要がない
– 従量課金

## 料金

まずは利用料金の確認です。
コード実行時間(1ミリ秒単位)で課金されます。
料金は関数に割り当てたメモリ量によって異なります。
メモリ量を増やすとCPUパワーも増加し、結果として処理時間が短くなるので料金が安くなる場合もあります。
割り当てるメモリ量はチューニングが必要となりますね。

詳細な料金は更新ページを参照。

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

### 無料枠

100万件/月リクエストの無料枠があります。また、40万GB-sのコンピューティングタイムが含まれます。
少しさわってみるのには十分すぎますね。

他のリージョンにデータを転送したり、S3と連携させると別途費用がかかるようです。微々たるものですが。

## まずはリソースを作ってみよう

無料枠の確認ができたところで、簡単な関数を作ってみます。

ディレクトリの構成はこんな感じです。
.
├─

元記事を表示

OTHERカテゴリの最新記事