- 1. Amazon Cognito を利用して、会員登録を行う。
- 2. Amazon Linux 2 に Laravel 環境構築 + デプロイ [とりあえず最速でデプロイしたい人向け]
- 3. Private SubnetのインスタンスにSSH接続
- 4. LambdaからSystems Managerを実行してEC2のバックアップを取得する
- 5. Serverless Framework で 自身のAPIのURLを取得したい
- 6. /etc/fstabについて
- 7. お金がかかりそうなAWSサービスの全リージョン状況把握 boto スクリプト
- 8. となりのAWS
- 9. LOAD DATA FROM S3でファイル分割時の性能検証
- 10. AWS上の Windows で InfoScale を用いてクラスタリングしよう
- 11. [awscli] 全てのIAM Roleの最終使用日時(RoleLastUsed)一覧を取得するワンライナー
- 12. JenkinsからAWS Lambdaをデプロイする
- 13. 是丈は心得おくべし:AWS
- 14. LambdaからLightsail上のコンテナDB(MariaDB)へとアクセスする
- 15. AmazonConnectのチャット機能をテストしてみた
- 16. Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #16 (ビジネスアプリケーション)
- 17. 【AWS】S3で独自ドメインでhttpsホスティング
- 18. CloudFormation超入門
- 19. ElasticBeanstalk Blue-Green Deployment
- 20. IAMの自分なりのまとめ
Amazon Cognito を利用して、会員登録を行う。
## はじめに
ここでは、Amazon Cognito を使用して、メールアドレスとパスワードを登録するためのソースコードを書きます。ただし、既に[ユーザープールを作成し、ユーザープールにアプリを追加ている](https://aws.amazon.com/jp/getting-started/projects/build-serverless-web-app-lambda-apigateway-s3-dynamodb-cognito/module-2/)ものとします。## AWS Amplify ライブラリをインストール
Amazon Cognito を使用するには、[AWS Amplify ライブラリ](https://github.com/aws-amplify/amplify-js)が必要なのでインストールします。“`terminal
$ npm install aws-amplify –save
“`
ちなみに [「Amazon Cognito ID SDK for JavaScript」が「AWS Amplify ライブラリ」 の一部になった](https://
Amazon Linux 2 に Laravel 環境構築 + デプロイ [とりあえず最速でデプロイしたい人向け]
既にインスタンスを作成してssh接続が完了している前提です。
デプロイする場合は、githubにリモートリポジトリが作られている必要があります。
Laravelを動かす環境を構築して各種設定を行い、Laravelを動かすまでの手順を共有します。Apache 2.4
MySQL 8.0.18
PHP 7.3## yumアップデート
“`
$ sudo yum update -y
“`## Apacheのインストール
“`
// インストール
$ sudo yum install httpd
// 起動
$ sudo systemctl start httpd
// 自動起動設定
$ sudo systemctl enable httpd
// 動作確認
$ systemctl status httpd.service
“`## MySQLのインストール
“`
// mysql8.0リポジトリの追加
$ sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.
Private SubnetのインスタンスにSSH接続
# Public SubnetのEC2インスタンスにPrivate Subnetで起動中のEC2インスタンスのキーを転送
自分のPCからPublic Subnetにキーを転送します。社内や学内のネット環境ではできないかもしれません。
UbuntuのAMIを使用してインスタンスを作成しました。– Public Subnetのキーはpublic.pem
– Private Subnetのキーはprivate.pem
– X.X.X.XはEC2インスタンスのパブリックIPです“$ scp -i public.pem private.pem ec2-user@X.X.X.X:./PATH “
# Public SubnetのインスタンスからPrivate Subnetのインスタンスにキーを転送
##自分のPCからPublic SubnetのインスタンスにSSH接続“$ ssh -i public.pem ubuntu@X.X.X.X “
##Private.pemを使ってPrivate SubnetのインスタンスにSSH接続
– XX.XX.XX.XXはPriv
LambdaからSystems Managerを実行してEC2のバックアップを取得する
## はじめに
EC2の定期バックアップを取得をするのに良い方法はないかと思っていたところ、SSMでスナップショットが取得できることを知ったので、Lambdaから実行してみました。
サーバーの作成は省略しますが、Systems Managerを使用するので、SSMエージェントがデフォルトインストールされているWindows Server 2019を使用しています。参考
[Windows インスタンスで SSM エージェント をインストールし設定する](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/sysman-install-ssm-win.html)# やったこと
– Windowsサーバーの作成
– Systems Managerからバックアップ取得
– LambdaからSystems Manager ドキュメントの実行# Windowsサーバーの作成とIAMロール設定
バックアップを取得するため、EC2を1台作成します。
![image.png](https://qiita-im
Serverless Framework で 自身のAPIのURLを取得したい
### はじめに
Serverless FrameworkでAPI Gatewayを利用した際に
死活監視やなんらかの目的で
内部的にAPIを呼び出したい場合があるかと思います。ただ、デプロイされたあとにURLを確認し
Lambdaの環境変数に・・・などはちょっと面倒くさいので
serverless.yml内だけで設定できないかやってみました。### customにてURLを生成
本題部分です、API Gatewayで生成されるURLを文字連結します。
これでAPI GatewayのURLが生成できます。“` yml
custom:
region: ap-northeast-1
stage: ${opt:stage,”default”}
my_url:
{
“Fn::Join”:
[
“”,
[
“https://”,
{ “Ref”: “ApiGatewayRestApi” },
“.execute-api.
/etc/fstabについて
##fstabとは?
###ファイルシステム情報が記載されているところ
もっと詳しく言うとディスクなどマウントした時、このファイルが参照されます。
なので、ディスクをマウントした後、自動起動するような設定をしたいときはfstabの設定をします。##設定するには?
###viコマンドの利用“`
# vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon Jan 28 15:24:25 2019
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk’
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX / xfs defaults 0 0
※数字の部分はXと表示しています
“`
AWSでは上記の
お金がかかりそうなAWSサービスの全リージョン状況把握 boto スクリプト
* credential 設定
* IAM Role の権限必要“`python
#!/usr/bin/env python3import boto3
import json
from bson import json_utilclass get_all_region_resources:
##########
# init
##########
def __init__(self):
self.default_region = “us-east-1”# ec2
ec2_stats = [
“InstanceId”
,”PrivateIpAddress”
,”State.Name”
,”PublicIpAddress”
となりのAWS
# マイグレーション
### となりのCloudEndure
ExciteさんでオンプレからAWSにマイグレ[事例](https://exdev.exblog.jp/30862809/)
ニフティさんでクラウドからAWSマイグレ[事例](https://pages.awscloud.com/rs/112-TZM-766/images/H2-07.pdf)
# マーケティング/モバイル
### となりのPinpoint
ニフティさんのPinpointでユーザーにプッシュ通知[事例](https://blog.web.nifty.com/engineer/3059)
# サーバーレス
### となりのStepFunctions
Fringe81さんでサーバーレスなジョブフロー[事例](https://pages.awscloud.com/rs/112-TZM-766/images/C-3.pdf)
LOAD DATA FROM S3でファイル分割時の性能検証
auroraに大量データを登録しようとしましたが、bulk insertだと思ったように性能が出なかったので、[LOAD DATA FROM S3](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.LoadFromS3.html) を試してみました
セットアップはいつもお世話になっている [Developers.io](https://dev.classmethod.jp/cloud/aws/aurora-mysql-integrate-with-s3/) さんの記事にお世話になりました
引っかかったのは、クラスターパラメーターグループにroleのARNを設定後、DBインスタンスの再起動をしないと反映されないところぐらいでした対象のデータは、100万件で900Mほどのcsvファイルです
| インスタンスタイプ | 1ファイル | 4ファイル | 8ファイル | 16ファイル |
|:—————–|:————-
AWS上の Windows で InfoScale を用いてクラスタリングしよう
# はじめに
InfoScale は、AWS上のWindowsでのクラスタリングを保証しています。ただし、顧客要件によって実装パターンが複数存在します。そして、InfoScaleをAWS上のWindowsに構築する場合は、以下2つのポイントに留意する必要があります。
**1.どのような要件を満たすために、どのような構成のクラスターを構築するか**
**2.オンプレとは異なるInfoScaleの前提条件**
本記事では、上記2つのポイントを中心に、AWS上でクラスタリングが必要になった場合に、要件毎の最適なソリューションと、実装パターン毎の注意点を説明します。
# どのような要件を満たすために、どのような構成のクラスターを構築するか
**同一AZ内で、共有ディスクを用いたクラスター**
もっとも単純なクラスター構成です。クラスタリングされたオンプレのシステムを、そのままAWSに移行する際に用います。同一AZ内ですので、共有ディスク構成をとることができますし、AWSのPrivateIPをクラスターのノード間で切り替える事も可能です。AZの障害を考慮しないActive-Standby型のクラ
[awscli] 全てのIAM Roleの最終使用日時(RoleLastUsed)一覧を取得するワンライナー
# 背景
[アップデート] IAMロールの最終使用日時を確認できるようになりました!
Identify unused IAM roles easily and remove them confidently by using the last used timestamp
https://aws.amazon.com/jp/about-aws/whats-new/2019/11/identify-unused-iam-roles-easily-and-remove-them-confidently-by-using-the-last-used-timestamp/# やったこと
2019.11.22時点では `aws iam list-roles` のレスポンスには `RoleLastUsed` が含まれていなかったため、 全Roleの最終使用日時を取得したい場合には `aws iam
JenkinsからAWS Lambdaをデプロイする
# Jenkinsとは
初心者ですが、私の解釈としては自由度の高いCI/CDツールという位置付けです。
実行したい内容をJobという形で登録しておくことで自動で実行してくれます。
今回初めて触ってみたので、忘れないうちにメモしておきます。#手順
– コンソールから「新規ジョブ作成」を選択します。![スクリーンショット 2019-11-22 11.41.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205918/98c74577-8b2c-b2ab-4737-49fcc347c22b.png)
– そのジョブの中に入り「新規アイテム作成」を選択。
基本的に一番上のフリースタイルでいいと思います。
![スクリーンショット 2019-11-22 11.47.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205918/3afb99f4-5792-f3e4-6973-4354258ac4e4.png)–
是丈は心得おくべし:AWS
深く後悔したことをメモしていく。
# AWSのサービスと関係するコードは、最初の1行からAWS上でユニットテストすべし
ユニットテストは手元で走らせたいのが人情だが、やってはならない。うっかり`moto`を信じた私が馬鹿だった。`moto`は何をしてもまったくエラーを返さない。
# Lambdaでは共有メモリが使えない
そのため`multiprocessing`の`Pool`と`Queue`が使えない。そのため`loky`も使えない。
[Parallel Processing on AWS Lambda with Python using Multiprocessing](https://sysadmins.co.za/parallel-processing-on-aws-lambda-with-python-using-multiprocessing/)
随時追記する予定。
LambdaからLightsail上のコンテナDB(MariaDB)へとアクセスする
初投稿の記事です。
私の環境ではEC2ではなくLightsailを使ってます。そして、その上にdocker-composeにてコンテナのDBを動かしています。この状況でLambdaからコンテナ上のDBへとアクセスする方法を探したのですが、ググった感じ日本語の記事など見つからず。
結論としてはVPCにLambdaを入れ、LightsailもVPC Peeringすれば普通にアクセスできました。分かってる人にしてみると、当たり前なのでわざわざ記事するほどでも無いんでしょうね…。###### 誰向け?
私と同じくAWSを始めたばかりや、初心者向けの内容だと思います。###### 前提
+ Lightsail上にdocker-composeによるDB(MaridaDB)がすでに立っている環境。
+ 恐らくこんな構成だと思います。
![aa.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/537256/1c1d45d2-d921-6459-6f31-7fdc1570d571.png)以下の手順で実施
AmazonConnectのチャット機能をテストしてみた
# はじめに
先日追加されたAmazonConnect のチャットをテストしてみました。
具体的な部分はまだ調査中ですが、動かすことができたので投稿します。# 事前準備
## ルーティングプロファイルの編集
チャットするAgentのルーティングプロファイルで[Chat] にチェック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/339600/152647dd-707e-91cc-237c-40deec1ba262.png)## セキュリティプロファイルの編集
[Agent] の [数字とフロー] > [Chat test mode] > [すべて]にチェック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/339600/f9e5248f-190b-4bb9-99cb-f71f9ade3513.png)# チャットをテストしてみる
①[ダッシュボート] から [チャットをテス
Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #16 (ビジネスアプリケーション)
Amazon Web Services (AWS)のサービスで正式名称や略称はともかく、読み方がわからずに困ることがよくあるのでまとめてみました。
Amazon Web Services (AWS) – Cloud Computing Services
https://aws.amazon.com/まとめルールについては下記を参考ください。
Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #1 (コンピューティング) – Qiita
https://qiita.com/kai_kou/items/a6795dbab7e707b0d1a6間違いや、こんな呼び方あるよーなどありましたらコメントお願いします!
## Business Applications – ビジネスアプリケーション
### Alexa for Business
– 正式名称: Alexa for Business
– https://docs.aws.amazon.com/a4b/?id=docs_gateway
– 読み方: アレクサ フォー ビジネス
【AWS】S3で独自ドメインでhttpsホスティング
## はじめに
S3を使うと手軽に静的ウェブサイトホスティングすることができ、
Route53でCNAMEを指定すれば[独自ドメインでホスティング](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html)することができます。
ただhttps化することはできずChromeでは「保護されていない通信」扱いされてしまいます。
そこでCloudFrontを使ってS3で独自ドメインhttpsホスティングさせたときのメモです。## 前提
独自ドメイン取得済みでACMなどの設定済
## S3バケット作成
1. 任意の名称でS3バケットを作成する
## CloudFront Distributions 作成
1. [CloudFront](https://console.aws.amazon.com/cloudfront/home?region=ap-northeast-1)へアクセス
2. 「Create Distributions」-W
CloudFormation超入門
# What’s CloudFormation?
AWSのクラウドリソースをコードで表現してプロビジョニングできるようにする仕組み。
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/Welcome.html要するに Infrastructure as Code(IaC)。記述形式は JSON or YAML。
似たようなサービスには terraform, cdk などがある。# 利点
– インフラストラクチャをコードとして扱える
– コードとして扱えればメンテナンス性が向上する
– ちょっと頑張ればデプロイを自動化できる# 主なテンプレート解説
超入門なので一部割愛。
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/template-anatomy.html“`yaml
# フォーマットのバージョン(yyyy-mm-dd)を指定する
AWSTemplateFormatVersion:
ElasticBeanstalk Blue-Green Deployment
# はじめに
ElasticBeanstalkでのBlue-Green Deploymentの方法をネットを探してみたものの、まとまったものが見つかりづらかったので、他の方の参考になればと思いあげさせていただきます。# Blue-Green Deployment とは
* アプリケーションの動作を事前確認しつつ、ダウンタイム無しのリリース
* Blue – 本番環境へのデプロイ
* Green – テスト環境へのデプロイつまり、テスト環境で問題がないことを確認して、そのテスト環境と本番環境のURLを交換することによって、ダウンタイム無しのリリースを実現しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308256/dc057006-674c-1a20-845f-a09c684f5be3.png)
# 操作方法
## 前提条件
* アプリケーションが参照するDBは同じ場所を指していること(Blue-Green Deploymentがダウンタイム
IAMの自分なりのまとめ
#AWSにおける、IAM,ロール,ポリシーについて
入社して3週間経ちますが、今後実務でデータベースを扱うにあたり、AWS周りの単語を学ぶ機会が増えたので、忘れないように自分なりにメモしました。おそらく、まだまだ理解が浅いところ多々あると思います。認識の違いなどがありましたら、ご指摘いただけると幸いです。
IAMには、4種類あると教えていただきました。##IAMとは
様々なリソース(EC2,RDS,S3,Lambdaなど)へのアクセスを安全に制御するためのウェブサービス。IAMを使用することによって、許可されたユーザーだけがリソースにアクセスできるように制御する。
(公式ではコンソールするためのサービスと書いていましたが、制御と変換しました。)##なぜIAMを使うのか??
AWSに初めてサインインした時の初期状態だと、rootユーザーで全ての権限を持ってしまっているので、IAMを使うことにより、ユーザーのリソースへのアクセスを安全に制御することができる。##ポリシーとは
ユーザーに対して、どのリソースを、どこまでの操作を許可するのかを、JSON形式で記述したもの。
※JSO