- 1. Aurora MySQLをbinlogレプリケーションしようとしたらうまくいかなかった話
- 2. AWSでALBを共有するがサブドメインごとに別々のEC2にアクセスしたい
- 3. Amazon OpenSearch Serviceで空間検索してQGISで可視化してみた
- 4. AWS認定の無料模擬試験を受けてみよう!
- 5. aws cdkでcognitoのユーザープール(NextAuth向け)を作成する
- 6. 未経験からAWS認定試験で5冠くらいを目指す学習日記 (2022/08/02現在2冠)
- 7. AWSを使って広告をブロックするDNSサーバを構築する
- 8. TensorFlow を低コストのサーバレス(AWS SAM)で実行する
- 9. AWS認定データベース – 専門知識を受験した時の話
- 10. [S3] 「バケットを空にする」に必要なポリシー
- 11. Lambda+API Gateway+SlackでNotionにタスクを追加
- 12. 【Fargate】localからMysqlClientでRDSに繋げたい?SessionManagerのリモートホストポートフォワードがあるよ【SSM】
- 13. AWS AmplifyでTypeScriptとExpressを使ったLambda関数のRESTful APIを作る方法
- 14. AWSからPrivateLinkでSnowflakeに接続にする
- 15. AWSのオンプレ向けサーバーエージェント一覧
- 16. 【AWS】RDS for PostgreSQLをスナップショットから復元するCloudFormationテンプレート
- 17. S3 MFA Deleteの設定で詰まったところ
- 18. AWS日記45(AWS Lambda – Layer)
- 19. AWS認定資格を全て取得したので、簡単に総括する。
- 20. 【AWS】EC2インスタンスの一覧をCSVで取得する方法
Aurora MySQLをbinlogレプリケーションしようとしたらうまくいかなかった話
# 概要
– 運用中のAurora MySQLをAurora Serverless v2に移行するのにbinlogレプリケーションを試した
– ドキュメントの通りに進めたら取得できると書いてあった情報が表示されない事態になる
– サポートによると設定に問題がなくてもドキュメントにある方法でbinlogデータが取れないケースがあるとのこと
– 2022/07時点での挙動で、今後修正されそう# やりたかったこと
Aurora MySQL 5.7系のクラスターとAurora Serverless v2でバイナリログレプリケーションを実施したかった。
最終的にはAurora Serverless v2だけにしてDB関連のメンテを楽にしたかった。# 実施した内容
以下のドキュメントのステップに沿って実施。https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Replication.html#AuroraMySQL.Replication.MySQL
作業対象がバイナリログレプ
AWSでALBを共有するがサブドメインごとに別々のEC2にアクセスしたい
## やりたいこと
– ALBを共有したい
– サブドメインごとに別々のEC2にアクセスさせたい
– HTTPSでアクセスしたい今回の例では
aaa.ksawada1979.com
bbb.ksawada1979.com
というドメインを使用して設定します。
LinuxのVirtualホストを使って実現することが多いかと思いますが、今回はALBを共有して別々のEC2にアクセスさせます。## 前提条件
– EC2上でApacheが起動済み
– ALBの基本設定は完了済み
– Certificate Manager(ACM)でSSL証明書が発行済みであるものとします。
– *.ksawada1979.comのワイルドカード証明書を発行
– Route53でaaa.ksawada1979.comとbbb.ksawada1979.comのレコードは登録済み## 構成図
非常に簡単な構成図ですが以下のような構成を想定しています。
![ksawada1979_alb.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws
Amazon OpenSearch Serviceで空間検索してQGISで可視化してみた
![img](https://day-journal.com/memo/images/try-092_02.png)
![img](https://day-journal.com/memo/images/try-092_01.png)
### Amazon OpenSearch Serviceで空間検索してQGISで可視化してみました :tada:
詳細として下記について説明します。
– [事前準備](https://qiita.com/dayjournal/items/eb7c2804541929f71c38#%E4%BA%8B%E5%89%8D%E6%BA%96%E5%82%99)
– [ドメイン作成](https://qiita.com/dayjournal/items/eb7c2804541929f71c38#%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E4%BD%9C%E6%88%90)
– [OpenSearch Dashboardsに接続](https://qiita.com/dayjournal/items/eb7c
AWS認定の無料模擬試験を受けてみよう!
# AWS認定試験の無料模擬試験を受けるまで
クラスメソッドさんの記事を参考に、AWS認定試験の無料模擬試験を受けるまでの手順を
自分なりに整理してみました。個人用のメモとして書いてる記事になるので、参考サイトと内容はほとんど変わりません。
その点はご了承ください。では、早速手順を踏んで行ってみましょう!!
## STEP1
AWS Skill Builderでログインする。https://explore.skillbuilder.aws/
アカウントをまだ作成してない人はクラスメソッドさんのこちらの記事を参考にアカウントを作成してくだい。
https://dev.classmethod.jp/articles/aws-skillbuilder/
## STEP2
ログインしたら、検索バーの左側に表示されているフィルターを選択し「Language」を選んだら
「その他オプションを見る」をクリックして、日本語を選択する。![FireShot Capture 002 – 学習ダッシュボード – AWS Skill Builder – explore.sk
aws cdkでcognitoのユーザープール(NextAuth向け)を作成する
# 動機
[以前書いた記事](https://qiita.com/junkor-1011/items/035f41aae0c25bad4483)で、[NextAuth](https://next-auth.js.org/)の検証のためにCognitoのユーザープールを作成していた。が、その時は手動で作成しており、色々と面倒だと感じていた。
そこで、cdkを使ってIaC的に、また、試行錯誤しやすい形で作ろうという動機で調査を行った。
# 前提条件
– 検証環境:
– Ubuntu 22.04LTS(AMD64)
– cdk: version 2.34.2(新しいv2系を使用)
* TypeScriptで記述
– nodejs: v16.16.0
– AWS環境: リージョンはap-northeast-1を使用# 検証
## プロジェクト作成
詳細はAWSの[Developer Guide](https://docs.aws.amazon.com/cdk/v2/guide/hello_world.html)を参照のこと。
Gettin
未経験からAWS認定試験で5冠くらいを目指す学習日記 (2022/08/02現在2冠)
## はじめに
AWS未経験です。会社から受験費の補助の案内がありました。いい会社ですね。やる気が出たので受験します。↓の記事の「11冠RTA」が面白かったので真似してみようとしましたが、無理でした。自分のペースで受験します。この方は凄い。
https://qiita.com/mrpepper/items/64039b828c82e12ad35f
## この記事でわかること
– 未経験からAWS認定試験を受ける際の、(個人的)おすすめ勉強方法
– 各学習コンテンツの難易度や使いやすさ (個人の感想です)## 事前情報とまとめ
– AWS経験は0年。アカウントは作ったことある、くらいです
– 業務で耳にするAWS関連単語と概念は何となく知っていました(EC2、VPC、lambda、Redshift、etc…)
– 2022/08/02時点の取得状況:CLF、DVA
– 2022/08/02時点のおすすめ学習方法:CLFなら[Ping-t](https://ping-t.com/)。そこから先は[koiwaclub](https://aws.koiwaclub.com/)が
AWSを使って広告をブロックするDNSサーバを構築する
本記事では、AWSのEC2を使い、広告をブロックするDNSキャッシュサーバを構築します。
DNSを用いることで、ブラウザだけでなくスマホアプリでも広告をブロックすることができます。
具体的な設定を通して、実際に広告がブロックされている様子を紹介していきます。本記事では広告を対象としていますが、SNSなど特定のサイトをブロックしたい場合も同様の方法で行うことができます。
# DNSを使った広告ブロックについて
広告のブロック方法はいくつかあります。
最もメジャーなのがブラウザの拡張機能として行う広告ブロックですが、この方法ではブラウザ以外では広告をブロックできません。
例えば、スマホのゲームアプリなどの広告はブロックできません。本記事では、ブラウザの拡張機能ではなくDNSキャッシュサーバを使った広告ブロックを行います。
DNSはドメインが送られてきたらIPアドレスを返す仕組みで、そのIPアドレスからWebページを読み込んだりAPI通信を行います。
例えば下記のようにドメインにはそれぞれIPアドレスが振られています。
“`
www.google.com -> 142.251.4
TensorFlow を低コストのサーバレス(AWS SAM)で実行する
## はじめに
以前、 SAM を使って TensorFlow をサーバレスで実行する方法について記事を書きました
ざっくり言うと、超低コストで AI を動かそう、と言うことです
https://qiita.com/RyoWakabayashi/items/0734f7f0a76a5dad3770
しかし、その時から SAM がバージョンアップして、 `sam init` のときの質問などが変わってしまいました
また、最終的に出来上がったコードを GitHub に上げていなかったため、今どうすればいいのか少し迷子になりました
というわけで、改めて TensorFlow を SAM でビルド、デプロイする方法とコードをまとめておきます
実装コードはこちら
https://github.com/RyoWakabayashi/tensorflow-lambda
今回は `sam init` ではなく、このリポジトリーのコードを使ってデプロイする手順を紹介します
Lambda と SAM の解説は過去の自分に任せます
– [Lambda とは](https://qiita
AWS認定データベース – 専門知識を受験した時の話
## この記事の概要
2022/07/31
**AWS認定データベース – 専門知識**
(AWS Certified Database – Specialty (DBS-C01))
を受験したので、その時の記録復習用ノートとして、また後で見返して今後の資格試験受験時の参考にしたり仕事で使いたくなったとき思い出せるようにまとめます。
基本的に仕事で今後活用するかもしれない前提で学習をしています、資格取得だけを目的にする場合もっと効率のいい方法があるかもしれません。## 試験の概要
![スクリーンショット 2022-07-17 23.29.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140013/78182ddc-5d0c-f188-7a60-831fbb825216.png)
**SPECIALTY**カテゴリの試験で、AWSにおけるRDB/NoSQLサービスの違いを理解し、目的に応じた最適なソリューションを選択する知識などが問われます。
この試験では「最適な AWS データベースソ
[S3] 「バケットを空にする」に必要なポリシー
IAMポリシーで“`s3:DeleteObject“`を付与して、「バケットを空にする」を実行すると、結果のエラー列で、各オブジェクトでAccess Deniedが表示される。
結論、“`s3:getBucketVersioning“`も付与する必要がある。※また、バケットの一覧 バケット内オブジェクトの一覧のリスト権限は必要ではないが、あった方が便利なので付与しておく
“`s3:ListAllMyBuckets“` “`s3:ListBucket“`結果的に以下のようなポリシーのJSONとなる
※ListBucket/getBucketVersioningのResource限定してもいいかも
“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: “s3:DeleteObject”,
“Resource”: [
“arn:aw
Lambda+API Gateway+SlackでNotionにタスクを追加
# 今回やったこと
・SlackのスラッシュコマンドでDMからNotionにタスクを追加できる機能を作成した
・ワークスペースにいるほかの人が勝手にタスクを登録できないようにユーザーIDで制限を付けた# Notionとは
Notionとはメモやプロジェクト管理,タスク管理のためのオールインワンワークスペースのこと。
個人利用であれば無料で利用することができる。今回は下の画像のような形式のタスクを追加するものを作成する ~~(プリパラはいいぞ)~~
![task.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269896/e0b90495-6f9a-b04b-41dd-ce6461b086c6.png)# Notion側の設定
[[Notion] いま人気の Notion の API を試してみる](https://zenn.dev/utah/articles/da8239aca15335)
↑このページの流れで設定を行って、シークレットとデータベースIDをメモしておいてください。
データベー
【Fargate】localからMysqlClientでRDSに繋げたい?SessionManagerのリモートホストポートフォワードがあるよ【SSM】
# 背景
開発期間中にPJメンバーから、DBに投入しているSeedデータではとあるテストを実施する際にカバー出来ない部分があって、ローカルからMysqlClientで値を変えながら実施したい旨の話がありました。該当PJではFargate+Auroraで構成されており、また常駐的な踏み台は用意せず、必要な時だけそれ用のmiscコンテナを起動させる方針を取っています。
そんな中、丁度今年の5月下旬にタイトルにある機能がセッションマネージャーにリリースされたこともあり、テンポラリーなmiscコンテナをリモートホストポートフォワードの中継役として実施したところ、既に幾つか記事として見かけますが、便利だと言うことで周辺知識を改めて追いながら書いてます。
# 概要
## ポートフォワードのイメージ
そもそもポートフォワードとはなんぞやという話ですが、下図のように例えば自端末の特定ポート(例:13306)への通信に対して、別のホストやアドレスの特定ポート(例:3306)に自動で転送してくれる仕組みを指します。![スクリーンショット 2022-07-30 18.19.22.png](htt
AWS AmplifyでTypeScriptとExpressを使ったLambda関数のRESTful APIを作る方法
はいさい!ちゅらデータぬオースティンやいびーん!
# 概要
AWS AmplifyのCLIを通して、API GatewayとLambdaを用いたRESTful APIを作る際に、サーバーレスのExpressと、TypeScriptを使う方法を紹介します。## 背景
まず、サーバーレスのExpressをなぜLambdaで使うのかですが、単純に筆者は、Expressに慣れており、Expressならさっさと書けるからです。筆者と同様な作者はいるかと思いますが、いかがでしょうか?その他に、Expressで書くと、Lambdaを脱出する必要があったら、コードを再利用することもできるので、おすすめです。
実際、Expressをサーバーレスで実行するために、オープンソースのプロジェクトがあり、現役で開発が進んでいます。それほど人気な書き方・実装方法だと筆者は捉えています。
https://github.com/vendia/serverless-express
そして、なぜTypeScriptをLambdaに導入するかですが、こちらは、コードの品質を上げるためです。型がないバックエン
AWSからPrivateLinkでSnowflakeに接続にする
## <検証したいこと>
AWSのVPCからPrivateLinkを経由でSnowflakeに接続します。現場業務でAWSのVPCからSnowflakeへ接続するためのPrivateLinkを構築しました。
手順が複雑であったことから復習を兼ねて自分が持っているアカウントで構築してみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1925708/39c2f775-9c76-3270-f3c8-13ea325ffa94.png)## <前提条件>
1.Snowflakeのエディションは、Business Criticalであること。
2.AWS環境には、VPCが作成されていること。
3.AWS CLIをローカル端末にインストールしていること。## <作業手順>
①システム関数「SELECT SYSTEM$AUTHORIZE_PRIVATELINK」でSnowflakeのPrivateLinkを有効化します。
②AWSのVPCにInterface型のVPCエンドポイントを
AWSのオンプレ向けサーバーエージェント一覧
AWSのサービスの中には、エージェントをインストールすることで、オンプレのサーバーとも連携できるものがある。そういったサービスを一覧した。他にもあったかな?
# SystemsManager
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/ssm-agent.htmlサーバーを一括管理するサービス。個別にSSHでログインせずに、コマンドを実行したり(Run Command)、OSアップデートをしたり(Patch Manager)できる。
他のエージェントをインストールすることもできるので、SystemsManagerは最初にインストールしておくのが良さそう。
なお、EC2の新しめAMIでは最初からインストールされているはず。
# CodeDeploy
https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html
デプロイ作業サービス。個別にSSHログイン
【AWS】RDS for PostgreSQLをスナップショットから復元するCloudFormationテンプレート
RDSは利用料が結構かかることが多いです。そのため、使用しない期間はスナップショットだけ残して、あとで復元するという使い方をしていました。
その時に、前の設定をマネジメントコンソールから毎回入力するのは面倒なので、CloudFormationでRDSを復元する方法を学びました。
今回はその中で、RDS for PostgeSQLのスナップショットを復元するCloudFormationを紹介します。# 結論
「コードだけ読めれば大丈夫!」って方のために最初にCloudFormationテンプレートの例を載せます。(YAML形式です。)
各項目については後ほど説明しますので、気になるところがあれば以降も読んでいただけると嬉しいです。:::note info
「Encryption Settings」「Performance Insights Settings」の設定とオートスケーリング設定のための”MaxAllocatedStorage”は必要であれば設定してください。
:::“`yaml:cf-rds-example.yml
AWSTemplateFormatVersio
S3 MFA Deleteの設定で詰まったところ
# MFA Deleteとは
MFA Deleteは、S3バケット内のオブジェクトを誤って削除しないようにするための仕組みです。
厳密に言えば、MFA Deleteを有効にしてもオブジェクト自体の削除はできてしまうのですが、**オブジェクトのバージョンを削除しようとしたときに、MFAコードの入力を求められるようになります**。オブジェクトが消えても、バージョンさえ残っていれば、そのオブジェクトを復元することが可能です。
>バージョニング対応のバケットからオブジェクトを削除すると、Amazon S3 はそのオブジェクトの削除マーカーを作成します。削除マーカーがオブジェクトの最新バージョンになり、実際のオブジェクトが以前のバージョンになります。削除マーカーを使用すると、Amazon S3 はオブジェクトが削除されたかのようにオブジェクトのリクエストに応答します。例えば、オブジェクトの GET リクエストを送信すると、Amazon S3 はエラーを返します。
>
>バージョニング対応のバケットから削除されたオブジェクトは、次のいずれかの方法で取得できます。
>- 以前のバージョンのオブジ
AWS日記45(AWS Lambda – Layer)
# はじめに
今回はAWS Lambdaの[レイヤー](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/gettingstarted-concepts.html#gettingstarted-concepts-layer)を試します。
[Lambda レイヤーの作成と共有](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-layers.html)を参考に、Lambda関数で使用するライブラリを作成します。# 動機
Lambda関数実行時に以下のエラーが発生し、エラー解決のため レイヤーにライブラリを設定しました。
“`bash
/var/task/bootstrap: error while loading shared libraries: libXXXXX.so.1: cannot open shared object file: No such file or directory
“`# ライブラリのzipファイルを作成
“`bas
AWS認定資格を全て取得したので、簡単に総括する。
# この記事について
AWS認定資格をコンプリート(新しいSAPの認定は除く)したので、簡単に総括します!
これからAWS認定資格受ける方、コンプリートを目指す方の参考になれば嬉しいです!あくまで個人的な主観で書いているので、参考までに留めていただければ幸いですm(_ _)m
# 受験記録
| 試験名 | 取得日 | スコア |受験回数 | 学習所要時間(hour)|
| — | :—: | :—: | :—: | :—: |
| AWS Certified Solutions Architect – Associate [SAA] | 2020-11-30 |793 | 1 |約35|
| AWS Certified SysOps Administrator – Associate [SOA] | 2021-02-10 |886| 1 |30|
| AWS Certified Alexa Skill Builder – Specialty [AXS]| 2021-02-21 |769 |1 |14|
| AWS Certified Devel
【AWS】EC2インスタンスの一覧をCSVで取得する方法
# 手順
実行するIAMユーザーのポリシーに`AWS CloudShell`の実行権限がついていることを確認
(権限さえあれば良いので、IAMロールにポリシーをアタッチしてもOK。)今回取得するCSVの内容は、以下の通り。
`ec2-info.csv`というファイル名でダウンロードされます。aws cliのコマンド内容を変えるだけで他の項目も取得できるので、各々の目的に合わせてご自由にカスタマイズをどうぞ。
| Name | インスタンスid | インスタンスタイプ | 起動状態 | 起動日時 |
|:-:|:-:|:-:|:-:|:-:|
| | | | | |以下`aws cli コマンド`の内容をcloud shellにペースト
“`shell:cloud shell
aws ec2 describe-instances \
–query “Reservations[].Instances[].{InstanceId:InstanceId, InstanceType:InstanceType, State:State.Nam