- 1. Cloudformationでcognitoを作ったときにハマったメモ
- 2. Cognitoのトークンと有効期限について
- 3. AWS GuarDutyでS3バケットへのログ保存について
- 4. Slack の Events API でドはまりした件(message.groups と message.channnels の違い)
- 5. AWS学習 〜EC2(Elastic Compute Cloud)学習メモ〜
- 6. AWS SageMaker Studioに含まれる個別機能を一通り触ってみた
- 7. S3 で SPA をホスティングするとき、アクセスする URL が 404 のときに index.html を返す方法
- 8. aws lambda layers でライブラリをアップロードするときは決まったディレクトリ構成でなければならない
- 9. Route53 & CloudFront & +α を使った wwwドメインから、wwwなしドメインへリダイレクトする構成図(ssl対応)
- 10. 初心者)EC2にlinax作った>teratermで接続>あれ、ユーザIDなんなの>答:ec2-user
- 11. AWS CLI v2とaws-vaultとpecoを使ってプロファイルを選択方式にする
- 12. AWS Organizationsで組織内のアカウントを簡単に消したかった
- 13. AWSの10分間チュートリアルをやってみる 7. Set up the Elastic Beanstalk Command Line Interface
- 14. 複雑なS3BucketPolicyの設計
- 15. Unityで音声合成を再生する (Amazon Polly)
- 16. VPC概要
- 17. [AWS] Elasticsearch Service
- 18. AWS MediaServices の管理・監視
- 19. AWS Organizationsの設定をしたのでまとめました
- 20. 【MongoDB】APIログ取るのに手軽で最高だった件 (+intellijだとさらに手軽)
Cloudformationでcognitoを作ったときにハマったメモ
またくだらないことでハマったのでメモ。
今思えば、普通に頭悪い。## やりたいこと
* Cloudformation使いたい
* ALBにCognito組み合わせたい具体的には
1. ALBを叩きに来たアクセスをCognitoに飛ばしたい
2. Cognitoの認証をパスしたら、ALBの後ろにいるEC2へforwardさせたい##とりあえずyaml書く。
ALBとCognitoの連携は、`ElasticLoadBalancingV2`の`Listener`で指定。“`
(中略)
hogeALBLISTENER:
Type: AWS::ElasticLoadBalancingV2::Listener
Properties:
#Certificates:
# – Certificate
DefaultActions:
– AuthenticateCognitoConfig:
UserPoolArn: “arn:aws:cognito-idp:ap-northea
Cognitoのトークンと有効期限について
# Cognitoから発行されるトークン
Cognitoからは以下3つのトークンが発行されます。## IDトークン(IDToken)
Cognito User Poolsのユーザー属性(例えばメールアドレスなど)を含めたトークンです。
ユーザーに関する情報をすべて取得したい場合に使用します。
`APIGatewayではこのトークンを使用します。`**有効期限**
ユーザーが認証した`3600秒後(1時間後)`に有効期限切れになります。## アクセストークン(AccessToken)
Cognito User Poolsの最低限のユーザー情報を含めたトークンです。**有効期限**
ユーザーが認証した`3600秒後(1時間後)`に有効期限切れになります。## 更新トークン(RefreshToken)
IDトークン、アクセストークンを更新するために利用します。
Cognito User PoolsのクライアントSDKを利用している場合は自動で更新されるようです。**有効期限**
デフォルトではアプリのユーザーがユーザープールにサインインしてから`30日後`に有効期限が
AWS GuarDutyでS3バケットへのログ保存について
覚書です。
1.AWS GuarDutyを有効にする
2.S3バケットへのログ保存のためGuarDuty画面から
[設定]-[結果のエクスポートオプション]でS3バケットを新規に作成し保存をするが
KMSが無いので失敗3.KMSキーをKMS Console画面から作成する
4.GuarDuty画面に戻って再度KMSキー(エイリアスが選択できる)を選択してほぞんするが失敗
5.KMS Console画面に戻って[カスタマー管理型のキー]で対象のエイリアスを選択し
キーポリシーエディタを編集で開く※これを実施しないとずーっとエラー{
“Sid”: “Allow GuardDuty to use the key”,
“Effect”: “Allow”,
“Principal”: {
“Service”: “guardduty.amazonaws.com”
},
“Action”: “kms:GenerateDataKey”,
“Resource”: “*”
Slack の Events API でドはまりした件(message.groups と message.channnels の違い)
# 概要
Slack の Events API をつかった Bot 開発に挑戦しました。ハマった内容をまとめます。
## Bot 仕様
Slack から LINE WORKS へメッセージを転送します。
Slack Bot が登録されているプライベートチャンネルに投稿されたメッセージを
LINE WORKS 側の Bot が受取り、特定のユーザに通知するというものです。システム構成は以下のような感じです。Bot プログラムは AWS Lambda で実装しました。
![Untitled Diagram.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72233/c16d5654-e73a-20b1-2980-3b78a92b5f13.png)
(なぜこんなことをしているか)
社内標準のチャットツールは LINE WORKS なのですが、私の所属する情シスグループでは slack を常用しており、特に社内システムからのアラートの通知先として活用しています。今回、とある社内組織にシステムのアラー
AWS学習 〜EC2(Elastic Compute Cloud)学習メモ〜
##EC2(Elastic Compute Cloud)とは?
AWS上に仮想サーバを作るサービス。AWSに建てるサーバーのOSはWindowsやLinux、機能面ではCPUやメモリ、プロセッサなど要件に合わせて構築できる。(種類が多すぎるので要件をどれだけ搾りこめるのかなど経験や知識が必要になりそう・・・)
EC2はサービス名で自分たちで立てたサーバことを「インスタンス」と呼ぶ。
##EBS(Elastic Block Store)
EC2とセットで使うのが基本らしい・・・。理由がコンソールからEC2の停止ボタンを押下するとデータが消えてしまうため停止させても消去されないようにEBSにデータを保存する
##インスタンスタイプについて
・インスタンスファミリーの数字は世代を表し数字が大きいほど新しい → 用途
・インスタンスサイズ → CPUのスペック・**凡庸タイプ(A、T、M)**
凡庸インスタンスは、バランスの取れたコンピューティング、メモリ、
ネットワークのリソースを提供し、多様なワークロードに使用できる。・**コンピューティング最適化タイプ( C
AWS SageMaker Studioに含まれる個別機能を一通り触ってみた
# 概要
以下を一通り触ってみた。クラスメソッドさんの解説サイトを読みながら、[AWS labs](https://github.com/awslabs/amazon-sagemaker-examples)のサンプルを写経しました。
* [Autopilot](https://dev.classmethod.jp/cloud/aws/try-amazon-sagemaker-autopilot/)
* [Experiments](https://dev.classmethod.jp/cloud/aws/yoshim-amazon-sagemaker-experiments/)
* [Model Monitoring](https://dev.classmethod.jp/cloud/aws/yoshim-amazon-sagemaker-model-monitor/)
* [SageMaker Debugger](https://dev.classmethod.jp/cloud/aws/yoshim-amazon-sagemaker-debugger-example/)※S
S3 で SPA をホスティングするとき、アクセスする URL が 404 のときに index.html を返す方法
# 概要
S3 で SPA をホスティングするときに、404のときにindex.htmlを返してくれないと正常にSPAを動かせません。
Cloud Front であればエラーコード時の返すページを設定できますが、S3のみでホスティングしたときのやり方で少しはまったので共有です。# やり方
エラードキュメントに index.html を設定すればよいだけです。
aws lambda layers でライブラリをアップロードするときは決まったディレクトリ構成でなければならない
# 概要
aws lambda layers でライブラリをアップロードするときは決まったディレクトリ構成でなければいけません。# 解説
例えば、nodejs の場合だと、nodejsディレクトリにnode_modulesディレクトリを入れます。
zipのファイル名は何でもokです。“`
xray-sdk.zip
└ nodejs/node_modules/aws-xray-sdk
“`知らないとはまる可能性があるので共有でした。
当然 nodejs 以外の言語でもディレクトリ構成が決まっているので、下記公式ドキュメントで確認してください。
AWS Lambda レイヤー
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-layers.html
Route53 & CloudFront & +α を使った wwwドメインから、wwwなしドメインへリダイレクトする構成図(ssl対応)
## はじめに
本記事の主な目的は、ssl対応したwwwドメインからwwwなしドメインへリダイレクトするための全体的な構成イメージを提供することです。
ざっと探してみて文章しかなく、全体的な図がないのでイメージしにくかったので作りました。
Frontendのファイル群をS3に配置し、そこに対してルーティングする設定です。
[こちら](https://qiita.com/teco_naka/items/5fb6ba0c14b141d9020c)の図作成、という感じです。### 書くこと
* 全体図
* 個人的にハマったところ一言メモ### 書かないこと
* 各種な設定
* SSL証明書発行手順とか
* DNSホスト設定、ドメイン設定とか## 構成
### 構成イメージ全体図
構成イメージは以下です。[![](http://www.plantuml.com/plantuml/svg/d4xBIWD14BpdApOVa0mOl7WohWyyA68GpvsPsasJsPwbfySbV-_4W1VPYwUYg4VLRJPIAqDSB0Cw5ZJRpzrRv
初心者)EC2にlinax作った>teratermで接続>あれ、ユーザIDなんなの>答:ec2-user
https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-password-login/
AWS CLI v2とaws-vaultとpecoを使ってプロファイルを選択方式にする
AWS CLI v2 が GA になったので導入してついでに aws-vault を組み合わせてプロファイルを実行時に切り替えるようにしてみました。
aws-vault のインストールや設定は [macOSのAWSクレデンシャル管理](https://qiita.com/Ricordanza/items/c8231c05294138370034) で書いたとおりです。
## 環境
– macOS Mojave (10.14.5)
– zsh
– peco
– AWS CLI v2
– aws-vaultこれらを組みわせて default プロファイル利用時は設定済みのプロファイルから選択するようにします。
## インストール
ここでは、zsh、peco、 AWS CLI v2 のインストール方法について記載。### zsh
今回は brew でインストール。“`
$ brew install zsh
“`### peco
これも brew でインストール。“`
$ brew install peco
“`### AWS CLI v2
[公式](ht
AWS Organizationsで組織内のアカウントを簡単に消したかった
# TL;DR
– AWS Organizationsで組織に属しているアカウントは、アカウントにログインして(AssumeRoleではダメ)からアカウントの解約を実行すれば可能。組織から離す必要はない。
– AWS Organizationsで作成したアカウントを組織から外すときは、大量の追加情報が必要。
– ~~組織に属したままアカウントを解約しようとすると「アクセス権限が必要です」というエラーが出る。~~ルートアカウントでログインした後、「アカウント解約」を実行するとアカウントを消すことができた。
– 組織内のアカウントが悪さした時には、アカウントを消すのではなく権限を全て奪うことで対処する方法もある# はじめに
みなさんAWS使ってますか?僕は記事作成時点で1週間ほど業務で使っています。会社で「AWS Organizationsで複数アカウント管理したいから、調査よろしくね」とお願いされまして、あれこれ毎日奮闘しています。ちなみに僕は、AWSにめっちゃ興味ありまくりのAWS実務未経験者です。
色々調査している中で、**組織で管理しているアカウントがもし誰かに乗っ取られ
AWSの10分間チュートリアルをやってみる 7. Set up the Elastic Beanstalk Command Line Interface
こんにちは。トリドリといいます。
新卒で入社した会社でJavaを数年やった後、1年ほど前に転職してからはRailsを中心に使用してアプリケーションの開発をしているしがないエンジニアです。今回、AWSの勉強をするために公式の10分間チュートリアルをやってみることにしたので、備忘のために記事に残していこうと思います。
AWSに関しては、1年ほど前転職活動をしていた時期にEC2とRDSを少し触っていた以外ほとんど触ったことが無い初心者です。
(ただし、このときにアカウントを作ったので、12ヶ月の無料枠は切れていました)[前回](https://qiita.com/toridori111/items/4f2b674f441ca84116db)は、Elastic Beanstalkを使って、「アプリケーションを更新する」というチュートリアルをやりました
今回は、同じElastic BeanstalkをCLIから操作するチュートリアルの第一弾、「Set up the Elastic Beanstalk Command Line Interface」をやっていきます。今回初の英語チュート
複雑なS3BucketPolicyの設計
# 概要
ポリシー厳しめのS3バケットを作成したいときに、S3BucketPolicyを設定すると思います。
今回はS3BucketPolicyを設定時に、`DenyPolicy`かつ`Not〜`を利用すると理解に苦しむほど複雑になるのでまとめました。
また、CloudFormationを利用してBucketPolicyを作成した事例になります。“`yaml:s3_bucket_policy.yml
S3BucketPolicy:
Type: ‘AWS::S3::BucketPolicy’
Properties:
Bucket: ‘Bucket_A’
PolicyDocument:
Version: ‘2012-10-17’
Statement:
– Effect: ‘Deny’
NotAction: ‘Action_B’
NotPrincipal: ‘User_C’
Resource:
Unityで音声合成を再生する (Amazon Polly)
Unityで Alexaっぽい の音声合成を試してみました。
「.Net」 に対応している AWS の音声合成サービス 「Amazon Polly」 を使います。# やりたいこと
1. 入力したテキストの発話
2. ボイスの選択( 男性女性 / 多言語 )下記のサイトで Alexaの音声合成を試せるので、これと同じような仕組みを検討します。
[SSML Editor : VoiceFlow](https://creator.voiceflow.com/ssml)
# Amazon Polly とは
> Amazon Polly は、文章をリアルな音声に変換するサービスです。テキスト読み上げができるアプリケーションを作成できるため、まった
VPC概要
# VPC
– 仮想のネットワーク空間のこと
– AWSアカウント作成をするとデフォルトで1つVPCが作成されているが、通常は使用しない
– IPアドレスの範囲=VPCの範囲
– AZをまたぐことができる。
– リージョンをまたぐことはできない。# サブネット
– 小さなネットワークに分割管理できる
– AZをまたぐことはできない
– 分割単位は/24がオススメ。第3オクテットで数値を切り変えることで管理しやすい。
– 最初の4IPと最後の1PはAWSが内部的に使用する。## サイダー表記
– /8だと第2,第3,第4オクテットが自由に使える。
– /16だと第3,第4オクテットが自由に使える。
– /24だと第4オクテットが自由に使える。
– /32だと特定の1つのIPアドレスを示すことになる## ルートテーブル
– サブネットの通信制御をする。
– Target項目のLocal=VPC内部のこと。この指定があることでVPC内の各インスタンスは通信可能となっている。# インターネットゲートウェイ,EIP,セキュリティグループ,ネットワークACL
## インタ
[AWS] Elasticsearch Service
# 前置き
– これは AWS の Elasticsearch についてまとめた記事
– 公式ドキュメントから重要そうな部分を抜粋してるだけの記事# 機能
– 多数のインスタンスタイプによりスケールさせることが可能
– 最大3PBのストレージ
– コンスとパフォーマンスに優れた UltraWarm ストレージ# 料金
– 選択しているインスタンスタイプの1時間あたり料金
– 可動しているノード数分掛け算された料金
– EBSストレージの累積サイズに応じた料金# ドメイン
– Elasticsearchクラスターと同義
– ドメインは指定した設定、インスタンスタイプ、インスタンス数、およびストレージリソースを含むクラスター## ドメイン管理
### 設定変更
– もろもろの設定変更によりBlue/Greenデプロイが発生する
– [参照](https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/es-managedomains.html#es-m
AWS MediaServices の管理・監視
今更ですが、案件を通して少しずつ MediaServices を理解してきた streampack の Tana です。
## 概要
AWS の MediaServices を使ったライブ配信では、下記のユースケースで使われているかと思います。
– 高速安定転送の `MediaConnect`
– `MediaLive` から他の外部サーバーへの転送
– コンテンツ保護のための `MediaPackage`
– `S3` へアーカイブ登録
– `MediaStore` + `CloudFront` を使った安定配信様々なリソースの組み合わせできる一方、組み合わせが複雑すぎてどのリソースが使われていて、どれと連携しているか把握するのが難しいデメリットがあります。正直コンソール見てもいろんなオプションが多すぎて頭痛薬が必要ですw
今回はその連携がどうなっているか、また配信がうまく行っているかの監視の課題を
解決してくれるであろう、Webベースでの可視化・監視ツールのご紹介です。`Media Services Application Mapper (MSAM)`
https:
AWS Organizationsの設定をしたのでまとめました
# はじめに
仕事でAWS Organizationsの設定をしたのでまとめました# 前提
– サービスコントロールポリシーは登録済み
– IAMの細かい設定は割愛# AWS Organizations設定の流れ
1.アカウントの追加
2.アカウントの整理(OUの作成)
※サービスコントロールポリシーは前任者が設定してくれていたので、こちらの手順にはありません
3.IAMにてロールの設定
4.ロールの切り替え# 設定してみた
## 1.アカウントの追加
[AWS Organizations コンソール](https://console.aws.amazon.com/organizations/)にアクセスして、「アカウントの追加」ボタンをクリックします
【MongoDB】APIログ取るのに手軽で最高だった件 (+intellijだとさらに手軽)
#はじめに
気にはなっていたけど、なかなか触れる機会が無かった。。
そんな、同じクラスのあの子のような存在、それがmongoDBでした。
実際、使ってみると手軽でとても使いやすい。こちらの記事では、簡単にインストールから導入までをまとめてみました。
#MongoDBを使った開発内容
趣味の個人開発でMongoDBを利用しました。
[APIを利用したbitcoin自動売買システム]– bitcoin値取得にCryptWatchAPIを使用
– bitcoin売買にBitflyerAPIを使用
– 開発言語:Node.js
– 開発環境:macOS Catalina
– デプロイ環境: AWS:EC2:ubuntu18.04LTSMongoDBはbitcoin売買時の値段と、その売買判断に使われた値のログを取りたくて使用しました。
#mongoDBとは
誤解を恐れずに極端に言うと、**データをJSON形式でレコードできるデータベースです**
すいません! ここでは、わかりやすさ優先しましたm(_ _)m
(玄人の方々、マサカリ投げないでください。)他にも、