- 1. Amplify × AppSyncでSubscriptionをフィルタリングする
- 2. 血圧管理システムをWeb化しました
- 3. TerraformでHTTPS静的サイト(Route53 + ACM + S3 + CloudFront + Lambda@EdgeによるBasic認証)を作ってみた
- 4. ビジネスマッチングアプリを作成しました!【Laravel vue.js Docker AWS Circle CI】
- 5. SSM・CloudWatch Agentの自動更新とエラー発生時のメール配信
- 6. Amazon CloudWatch
- 7. 地理的近接性ルーティングってなんだろ?
- 8. AWSでControl Towerを使わずにマルチアカウントを実装してみた(②Organizations編)
- 9. 既存LaravelプロジェクトをAWS EC2で動かす
- 10. THE文系の俺が機械学習コース無職転生 ~PART6 AWSに関して学ぼう~
- 11. Amazon RDS
- 12. iTerm2でAWSのMFAトークンを自動で入力する
- 13. AWS認定デベロッパーアソシエイト(DVA)に合格するまでの振り返り
- 14. AWS Lambdaのマルチアカウントデプロイ
- 15. Cognito の Hosted UI 用にカスタムドメインを登録しようとした場合に手間取ったこと
- 16. AWS Autoscaling
- 17. cloudtrail と config の違い
- 18. Amazon Linux1でcertbot [certbot-autoは非推奨になりました]
- 19. pgAdminを使って本番環境DBと同じDBをAWS上に作成
- 20. AWS Fault Injection Simulator のSystemsManagerの実験を試してみた
Amplify × AppSyncでSubscriptionをフィルタリングする
## 概要
リアルタイムデータの反映のためにsubscriptionを利用しています。@modelでsubscriptionを自動生成していましたが、自動生成ではフィルタリングができず、関係のないデータが一時的に表示されてしまう問題がありました。そこで、subscriptionを手動で作成し、引数でフィルタリングするようにしました。
## 実装
### スキーマ
これまでは@modelでsubscriptionを自動生成していました。
“`
type Task
@model(subscriptions: { level: public })
{
id: ID!
name: String!
detail: String
}
“`
↓生成“`
export const onCreateTask = /* GraphQL */ `
subscription OnCreateTask {
onCreateTask {
id
name
detail
}
}
`;export const onU
血圧管理システムをWeb化しました
血圧管理システムをWebシステム、MariaDBでの移行に成功いたしました。
次の課題は
①AWSのクラウド基盤にシステムを移行
②1週間の平均血圧のデータ取得機能の追加
以上2点のうち②からやっていこうと考えています。
TerraformでHTTPS静的サイト(Route53 + ACM + S3 + CloudFront + Lambda@EdgeによるBasic認証)を作ってみた
# 概要
Terraformでvueなどで作られた静的サイトを独自ドメインでHTTPS配信するためのインフラを構築していきます。
サンプルソースをリポジトリにまとめてみたのでこれを参考に紹介していきます。## サンプルリポジトリ
サンプルとなるソースをリポジトリにまとめてみたのでこれを参考に紹介していきます。
[GitHub](https://github.com/grasswake/terraform_aws_static_site “GitHub”)
※本記事の内容と基本的に一緒ですが、一気に作るのでなくRoute53とACM、CloudFrontの3ディレクトリに分けてます。
その為remote stateを使用した構成になっています。因みにaccess_keyなどの扱いが雑ですので使ってみる場合は使いやすい形に直してください。# 前提
– 独自ドメインでのアクセスを行うために、お名前.comなどでドメインを購入してください。この記事ではお名前.comで`example.com`というドメインを購入していると想定でいます
– アクセスURLは`example.com`にな
ビジネスマッチングアプリを作成しました!【Laravel vue.js Docker AWS Circle CI】
##はじめに
100日でビジネスマッチングアプリを作成しました!## アプリ概要
### お酒✖️仕事✖️フランクをテーマとしたビジネスマッチングアプリです。
###タイトル名: glass house
URL: [http://glass-house-online.com/](http://glass-house-online.com/) (pc推奨)
Github: [https://github.com/masahiro96848/glass_house](https://github.com/masahiro96848/glass_house)![画面収録 2021-03-26 14.02.57.mov.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/736238/ed0f1299-df7b-143c-22c7-28b63ef00b77.gif)
**異業種(異職種)の方々と交流する機会を作りたいと思い、このアプリを作成しました。**
**金曜日の仕事終わりやお休みの日の夜にzoo
SSM・CloudWatch Agentの自動更新とエラー発生時のメール配信
クマ松です。
皆さん、AWS Systems Managerはお使いでしょうか。
AWS Systems ManagerはAWS環境のEC2やオンプレのサーバを効率よく運用することが出来るサービスです。
サーバ構成のインベントリをコンソールから確認したり、決められた時間にパッチを適用したり等、よくある定型作業の自動化を実現してくれます。今回はこのSystems Managerの機能の1つである「State Manager」を用いて、EC2にインストールしたSystems Manager AgentとCloudWatch Agentを定期的にアップデートしてくれる構成を作ろうと思います。
![アラートメール配信アーキテクト.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307047/78dd37f5-0a5d-52cf-22d3-09e12469605f.jpeg)
#前提知識
##State Managerについて
###Black Beltの説明
AWSのBlack Beltの文言を借りる
Amazon CloudWatch
#CloudWatch
AWSリソース、アプリケーション、オンプレミスのモニタリングサービス#CloudWatch Metrics
CloudWatchに発行されたメトリクスを収集、統計取得**(1) メトリクス**
・ColoudWatchに発行された時系列のデータポイントセット
・名前を持つ
・メトリクスは作成されたリージョンにのみ存在**(2) 名前空間**
・CloudWatchメトリクスのコンテナ
・異なる名前空間のメトリクスは相互に切り離される**(3) ディメンション**
・メトリクスを一意に識別する名前**(4) メトリクスデータの作成**
・基本は1分、カスタムメトリクスの高解像度利用で最短1秒
・EC2では基本モニタリングで5分、詳細モニタリングで1分ごとにメトリクス作成
・**メトリクスデータの使用期間**
1分未満:3時間
1分:15分
5分:63日
1時間:15ヶ月**(5) CloudWatchカスタムメトリクス**
・標準メトリクス以外の独自のメトリクスも監視可能**(6) 統合CloudWatchエージェント**
・メ
地理的近接性ルーティングってなんだろ?
AWSのRoute 53のルーティング方法の1つに、**地理的近接性ルーティング**という方法があります。似たような方法に**位置情報ルーティング**という方法もあり、違いがよく分からないのですが、ネットにはあまり分かりやすい記事がなかったので自分なりにシンプルな解釈をしてみました。
# ドキュメント
まずはドキュメントからポイントを抜粋してみます。
[ルーティングポリシーの選択 – Amazon Route 53](https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/routing-policy.html)## 地理的近接性ルーティングポリシー
– ユーザーとリソースの地理的場所に基づいてリソースのトラフィックをルーティング
– 必要に応じてトラフィックをある場所のリソースから別の場所のリソースに移動する場合に使用
– 必要に応じて特定のリソースにルーティングするトラフィックの量をバイアスという値を指定して変更
– バイアスは、リソースにルーティングされるトラフィックのルーティング元である地理的リージ
AWSでControl Towerを使わずにマルチアカウントを実装してみた(②Organizations編)
# はじめに
前回記載した「[AWSでControl Towerを使わずにマルチアカウントを実装してみた(①概要編)](https://qiita.com/hiro-tech/items/b9f88efe542ac534637e)」の続きとなります。まずはOrganizationを有効化しないことには何も始まらないので、その手順を書いていきます。# 全体構成
概要図はこんな感じです。今回はOU作成とメンバーアカウント追加までを記載します。主にマネジメント(管理)アカウントでログインしての作業となります。
![構成図v2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234157/e1c1a75e-a2bf-422a-d9c1-26f16bf4f321.png)# 対応手順
以下、対応手順を記載します。Organizationsコンソールは現時点では画面デザインが新しいものと古いものの両方を使えますが、今回は新しい方を使っていきます。## Organizations有効化
まずは管理アカ
既存LaravelプロジェクトをAWS EC2で動かす
個人的勉強としてAWSを触ってみたかったので、既存のLaravelプロジェクトをEC2で動かす試みをやりました。
S3は画像保存で何度か触ったことがあったのですが、サーバー構築は初めてです。## 前提条件
・既存のプロジェクトはgithubにpush済み## 構築内容
VPCの中にパブリックサブネットを作成、その中にEC2インスタンスを作成し、Laravelプロジェクトを動かす。
(Laravelプロジェクトはgit cloneで引っ張ってくる)
データベースに関しては、プライベートサブネットを作成し、EC2からアクセスできるようにする。(MySQLを使用)## 想定インフラ構想図
![スクリーンショット 2021-03-25 23.29.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/255267/1ba099a2-7814-4dce-151a-7b0030367271.png)## 用語の説明
出てくる単語一個一個不明のため、簡単ですが調べました。### VPC
Virtua
THE文系の俺が機械学習コース無職転生 ~PART6 AWSに関して学ぼう~
# きっかけは以下に!
本日はこちらに途中から参加させていただきました!
全くもってわからない領域でしたので、今日少しスクールで少し動かすところまでは触っておいてよかったです!
![スクリーンショット 2021-03-26 20.54.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1031281/d74b2853-3925-f623-fab5-ced5849291b1.png)参考になることが少しでも皆さんにあればと思いますので、是非ご一読下さい!
(こういうレベルでQiitaに書いていいのかわからないので、もしダメだったらすぐ削除します!)# 読者対象者
AWSって何?おいしいの?
便利なの?といった方々にオススメかなと思います。
**目次見て、読みたいところに飛ぶのがいいと思います!**
それではどうぞ(*^^*)ニヤリ
![スクリーンショット 2021-03-26 20.54.51.png](https://qiita-image-store.s3.ap-northeas
Amazon RDS
#RDSとは?
**・フルマネージドなリレーショナルデータベース
・高速、安定したパフォーマンス
・低コスト、従量課金**##①シンプルな構築
選択するだけで高度な機能を実装
##②高い可用性
**(1)マルチAZデプロイメント**
**(2)同期レプリケーション**
マスターへの変更の後にスレーブを変更し確定してから応答すること
**(3)自動フェイルオーバー**
マスターへの書き込みが止まり、IPアドレスの付け替えによってスレーブがマスターに昇格
**フェイルオーバーの発生タイミング**
・インスタンスやハードウェア障害
・バッチ適用などのメンテナンス時間
##③パフォーマンスの向上
**(1) リードレプリカ**
・レプリカのデータベースで読み取り処理を行う
・リードレプリカは5台まで増設できる
・マルチAZ、クロスリージョンにも対応している
・インスタンスタイプやストレージをマスターと異なるものにできる
・MySQL、MarinaDB、PostgreSQL、Auroraに対応**(2) スケールアップ**
ストレージサイズは拡張できるが縮小はできない##④バックア
iTerm2でAWSのMFAトークンを自動で入力する
# これは何?
iTerm2のTriggers機能を使って、AWS CLIなどのMFA(多要素認証)トークンを自動で入力する方法の紹介です。
# はじめに
AWS CLIを使ったオペレーションや、AWS SDKを使用するアプリケーションを開発する際、組織のポリシーによってはMFA(多要素認証)のトークンの入力が必須であることも少なくないかと思います。
セキュリティはもちろん重要ですが、開発中に何度も入力するのはさすがに億劫なのでMFAトークンを自動で入力する仕組みを考えてみました。
# 必要なもの
– macOS
– [iTerm2](https://iterm2.com)
– [OATH Toolkit](https://www.nongnu.org/oath-toolkit/)
– `brew install oath-toolkit` でインストールできます# 設定手順
## 1. AWSのコンソールで仮想MFAデバイスを使用する設定を行う
既にAWSで仮想MFAデバイスの設定をしていて秘密鍵(シークレット設定キー)がわかる場合はこの手順は必要ありませ
AWS認定デベロッパーアソシエイト(DVA)に合格するまでの振り返り
# はじめに
2021年2月にAWS実務経験無しで、AWS認定デベロッパーアソシエイトに合格することができました。これまでのCLF・SAAを含むAWS認定資格関連の学習内容について、振り返りの記録を残しておこうと思います。
AWS認定資格の合格体験記系の記事は何番煎じになるか分からないほど多くありますが、自分の記事がこれから受験する方の一人にでも参考になれば幸いです。※ CLF:AWS認定クラウドプラクティショナー
※ SAA:AWS認定ソリューションアーキテクトアソシエイト# AWS認定試験の受験動機
– AWSに実務で携わる機会はなかったが、社内でクラウド学習を推奨していた
– AWSがどんなものなのか技術的興味があり、一通り触れてみたいと思った
– Web系エンジニアの転職を検討しており、インフラ系知識を押さえておきたかった# 資格取得記録
CLF ⇒ SAA ⇒ DVAの順に資格は取得しました。各資格の取得記録を表にまとめます。| 資格 | 取得年月 | 学習期間(時間) | 点数 |
|:-|:-|:-|:-|
| CLF | 2019年7月 | 10日
AWS Lambdaのマルチアカウントデプロイ
クマ松です。
「テスト用/本番用とで環境毎にAWSアカウントを分けてはいるけれども、利用しているLambdaは同じ」
という場合、テストしたLambdaをコピペして本番環境にデプロイをしたくはないですよね。ですので、**テスト環境のCodeCommitへのマージイベント**をトリガーに**本番環境にLambdaをデプロイする**構成のCodePipelineを作りました。
ほぼ全てCloudFormationで実現していますので、お手元のAWSアカウントで試してみてください。## 想定する環境
– テスト環境用AWSアカウントが1つ
– 本番環境用AWSアカウントが複数
– テスト環境と本番環境とで同じLambdaを使っている## 実現したいこと
– テスト環境のLambdaを本番環境にもデプロイしたい
– テスト環境のマージイベントをトリガーに、本番環境のCodePipelineを起動したい## ブログ
設計方針やCloudFormationのテンプレートはブログに掲載しています。
[Lambdaのマルチアカウントデプロイ 設計編](https://cloud
Cognito の Hosted UI 用にカスタムドメインを登録しようとした場合に手間取ったこと
# やりたいことと問題点
今回は FQDN: `test.auth.example.com` を Cognito の独自ドメインとして設定したい。
今回は `example.com` が Route 53 で使えるようになっており、`*.auth.example.com` の証明書が Certificate Manager (us-east-1) で有効になっている状態で作業を開始した。
Management Console で独自ドメインを設定しようとしたが、`Custom domain is not a valid subdomain` というエラーで設定ができない。 このエラーメッセージで検索すると以下のような記事が引っかかった。
https://qiita.com/afukuma/items/4074fda7fa158eb387a3
ということで、ここでは「ルートドメインにAレコードを登録する必要がある」ということで、`example.com` にAレコードを登録して再実施した。 しかし、問題は解決しなかった。
# 原因と解決策
今回登録する FQDN は `te
AWS Autoscaling
#Auto Scalingとは
希望する量と現在起動している台数(EC2インスタンスなど)の差を監視し、合致するようにリソース(EC2インスタンスなど)を増減する。増減には3つのパターンがある
**①そのまま維持
②スケールアウト(希望する量>現在起動中の台数)
③スケールイン(希望する量<現在起動中の台数)**![スクリーンショット 2021-03-26 14.12.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1096361/e8806689-334e-5b2a-de54-9138643b8550.png)
#使用方法
**「サイズ維持」**
希望する台数は固定、台数減ると検知して減った分だけ台数追加する。
例)希望する台数が4台の場合、障害により1台減るとその差を検知して1台追加する。![スクリーンショット 2021-03-26 14.21.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0
cloudtrail と config の違い
## 勉強前イメージ
どっちも監査とかで使われるとかそんなイメージ
## 調査
### AWS CloudTrail とは
AWSサービスを記録し、いつ・だれが・何をしたのか を残すサービスで
AWSアカウントで発生したAPIコールの記録を行っています。
イベント履歴と証跡情報の2種類の項目のリソースの追跡を行うことができます詳細は [こちら](https://qiita.com/miyuki_samitani/items/d2b3164fc99ee29a1ccd) をご確認ください
### AWS Config とは
AWSリソースの設定がモニタリングされ、構成情報の記録や監視を行ったりしてくれます。
リソースがガイドラインに沿っているかの確認や
リソースの変更をモニタリングして、変更があれば通知を行うなどしてくれます。詳細は [こちら](https://qiita.com/miyuki_samitani/items/a19023d5e974c562a3bd) をご確認ください
### 違い
ざっくり簡単にいうと以下
– CloudTrail : `ユーザ
Amazon Linux1でcertbot [certbot-autoは非推奨になりました]
## certbot-autoは非推奨になりました。
“`
$ sudo ./certbot-auto certonly –debug -n -m [MyEmail] –agree-tos –standalone -d [host.mydomain] –keep-until-expiringSkipping bootstrap because certbot-auto is deprecated on this system.
Your system is not supported by certbot-auto anymore.
Certbot cannot be installed.
Please visit https://certbot.eff.org/ to check for other alternatives.
“`oh…証明書取得できない
[It is only certbot-auto that we deprecated.](https://community.letsencrypt.org/t/certbot-auto-no-lon
pgAdminを使って本番環境DBと同じDBをAWS上に作成
# はじめに
すでに AWS 上で動いている本番環境 DB からデータを引っ張ってきてアプリ上で表示させたい。ただ本番環境を汚してトラブルになるのは怖いので、別で EC2 インスタンスをたててそこに PostgreSQL をインストールし、本番環境 DB のコピーを作成する。
# EC2 インスタンスに PostgreSQL をインストール
EC2 インスタンスの端末で以下コマンドを実行し、PostgreSQL をインストール。
“`
$ sudo apt -y update
$ sudo apt -y install postgresql postgresql-contrib
“`インストールすると、/etc/postgresql/12/main/postgresql.conf が作成されるので、クライアントから接続ができるように listen_addresses (59行目あたり)を以下のように変更する。
“`
#listen_addresses = ‘localhost’ # デフォルトで書かれている設定
listen_addresses = ‘*’
AWS Fault Injection Simulator のSystemsManagerの実験を試してみた
# 概要
AWSからカオスエンジニアリングサービス「AWS Fault Injection Simulator」の中の
SystemsManagerを利用した実験を実施してみたいと思います。## ざっくり、AWS FISについてのおさらい
https://aws.amazon.com/jp/fis/
### 利用可能リージョン
大阪と中国の2つのリージョンを除く全てで利用可能です。
### 料金
使用したアクション分ごと
### 実験可能なサービスとアクション
https://docs.aws.amazon.com/ja_jp/fis/latest/userguide/fis-actions-reference.html
| サービス | アクション |
| :— | :— |
| EC2 | 起動<