- 1. Lihgtsail上のWordpressで急に負荷が上がった時の対応
- 2. UnityからCognitoUserPool認証を使用してAppSyncに接続する
- 3. AWS SDK Rubyでスタブを行う
- 4. AWSで始めるCI/CD 〜CI/CDの仕組み〜
- 5. AWSで始めるCI/CD 〜Code兄弟達の紹介〜
- 6. AWS Load Balancer Controller v2.3.0 から導入された Optimized SG rules について
- 7. AWS Synthetics Canaryで実際に動くlambdaのArnを調べる
- 8. AWS Security Specialty 認定更新の記録
- 9. Aurora MySQLをbinlogレプリケーションしようとしたらうまくいかなかった話
- 10. AWSでALBを共有するがサブドメインごとに別々のEC2にアクセスしたい
- 11. AmplifyStudioのFigma連携が便利そうなのでコーポレートサイトに使えないか検証する
- 12. Amazon OpenSearch Serviceで空間検索してQGISで可視化してみた
- 13. AWS認定の無料模擬試験を受けてみよう!
- 14. aws cdkでcognitoのユーザープール(NextAuth向け)を作成する
- 15. 未経験からAWS認定試験で5冠くらいを目指す学習日記 (2022/08/02現在2冠)
- 16. AWSを使って広告をブロックするDNSサーバを構築する
- 17. TensorFlow を低コストのサーバレス(AWS SAM)で実行する
- 18. AWS認定データベース – 専門知識を受験した時の話
- 19. [S3] 「バケットを空にする」に必要なポリシー
- 20. Lambda+API Gateway+SlackでNotionにタスクを追加
Lihgtsail上のWordpressで急に負荷が上がった時の対応
AWSサービスの一つLightsailは、EC2以上に簡単に仮想サーバを作って利用できるので便利です。
# 起こった現象
早速、今あるWordPressベースのWebサイトをどんどんこちらに移行を進めています。
WordPressサイトを7,8個Lightsail上に移行させて稼働させたところ、急にCPU使用率が上がってレスポンスが全く返ってこなくなってしまいました。topやpsコマンド、Apacheのerror_logなどを確認しながら原因を調べていたのですが今までにない現象だったのでなかなか原因救命に手こずりました。
結果的に原因はphp-fpmでした。今まで全く触ったことがなかったので設定変更もちょっと怖い分野。。。
以下の記事も参考にさせていただきながら、試しに静的構成にして同時稼働数も抑えたところ無事に安定しました。https://qiita.com/YasumiJP/items/fd36b4a7df08f92d2da4
# 具体的な対応内容
LightsailはBitnamiベースなので参考にした記事とは設定ファイルのある場所が異なります。
具体的には、~/s
UnityからCognitoUserPool認証を使用してAppSyncに接続する
# はじめに
AppSyncで出回っている認証方法はデフォルト設定のAPI-KEYのものが大半だが、そこには罠があり最長1年で有効期限となってしまう。
その対策として自動更新の仕組みを入れる必要があるが、仕組みを入れたことを忘れそうなので認証期限の長いCognito認証の方法を調べてみました。# 基本的なGraphQLへの接続方法
えどさんの記事が非常に参考になります。
以降はこの記事を補完する形で記載します。https://edom18.hateblo.jp/entry/2021/12/11/105140
# Cognito設定
## 初期設定
### デフォルト設定でUserPoolを作成する
* アプリクライアントを作成する
* トークンの期限を設定する(Max10年)
* クライアントシークレットを生成のチェックを外す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1336886/72d9c2c5-2916-07ba-276c-c2e
AWS SDK Rubyでスタブを行う
## はじめに
AWS SDKを使用したコードに対してテストを記述したい場合、AWSのSDKで用意されているClientStubsを使用して、スタブを行うことが可能です。
ドキュメント自体は公式が出しているものがありますが、この例だけではやりたいこと(`Aws::S3::Client`以外のインスタンスを使うケース)が実現できなかったので、今回調べたことについてまとめました。## 環境
– Ruby: 2.7.1
– aws-sdk: 3.1.0
– aws-s3-sdk: 1.114.0## 公式ドキュメントから
https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/ClientStubs.htmlこのドキュメントにあるように`Aws::ClientStubs`というモジュールが、各サービスに対応したClientクラスにincludeされています。
今回はS3を使って、その例を紹介します。
このモジュールに定義されているのは`api_requests`, `stub_data`,`stub_respo
AWSで始めるCI/CD 〜CI/CDの仕組み〜
## はじめに
AWSでCI/CDを実装する時、Code兄弟を使うことが多くあります。
[AWSで始めるCI/CD 〜Code兄弟達の紹介〜](https://qiita.com/hiroaki-u/items/b527264093eeb1e406e2)でも記載していますが、Code兄弟は『CodeCommit』『CodeBuild』『CodeDeploy』『CodePipeline』を指しており僕が勝手にそう呼んでいるだけです笑。
※ちなみにCode兄弟を使用しなくても実装することは可能です。本記事ではAWSのCode兄弟でCI/CDを実装する時の仕組みを見ていきます。
「仕組み」というと少し仰々しいですが、要はサービス間の動きを見て、どのようにCI/CDが実行されているのか理解していこうという趣旨です。
– どのようにCI/CDのトリガーを検知しているのか?
– アーティファクトファイルはどこに保存されているのか?
– そもそもCI/CDとはなんなのか?等もし疑問に思っている方がいらっしゃったら是非呼んでいってください〜!
ちなみに一応本記事は以下の2部構成になっているの
AWSで始めるCI/CD 〜Code兄弟達の紹介〜
## はじめに
みなさんCI/CDのツールって何を使っていますか??
『Jenkins』『Circle CI』『GitLab』その他諸々色々ありますよね。
今回取り上げるのはAWSのサービスを使ったCI/CDです。AWSでCI/CDを構築するにはCode兄弟が必要になります。
ちなみにCode兄弟は以下のサービスをまとめてそのように呼んでいます。
『CodeCommit』『CodeBuild』『CodeDeploy』『CodePipeline』
※ Code兄弟は僕が勝手にそう読んでいるだけで公式ではありません笑今回の記事では、AWSで構築するCI/CDの仕組みや、その時出てくるサービス(Code兄弟)の紹介になります。
長くなってしまったので2つに分けました。
※ハンズオンというよりは、各サービスやAWSでのCI/CDの仕組みを書いた記事になりますので、ご注意ください。– [AWSで始めるCI/CD 〜Code兄弟達の紹介〜(本記事)](https://qiita.com/hiroaki-u/items/b527264093eeb1e406e2)
– [AWSで始めるCI
AWS Load Balancer Controller v2.3.0 から導入された Optimized SG rules について
[AWS Load Balancer Controller](https://github.com/kubernetes-sigs/aws-load-balancer-controller) v2.3.0 から導入された **optimized security group rules** という機能について記載します。
直訳すると、**最適化されたセキュリティグループルール** です。なにコレ?という感じですが、
ALBに独自で作成したセキュリティグループを割り当てた際は、これまではクラスタのセキュリティグループにALBからのインバウンドトラフィックの許可を別で管理する必要がありました。
しかし、この機能の導入によりコントローラが自動で管理してくれるようになります。## TL;DR
結論を先に書くと以下のとおりです。
### 前提
– v2.3.0+
– Kubernetes 1.16+ (v2.3.0時点)
– cert-manager v1.5.3+ (v2.3.0時点)
– 最新バージョンは下記参照
– https://github.com/kuberne
AWS Synthetics Canaryで実際に動くlambdaのArnを調べる
コンソールからだと見つけられないのでAWS CLIから`jq`で調べる。
フィルターは(それほど長いわけではないが) 別ファイルにして実行“`bash
$ aws synthetics describe-canaries | jq -f canary-lambda.txt`
[
{
“Name”: “example-canary”,
“Function”: “arn:aws:lambda:ap-northeast-1:xxxx:function:example-canary-xxxxx:1”,
“Role”: “arn:aws:iam::xxxx:role/example-canary-ExecutionRole”,
“Code”: {
“SourceLocationArn”: “arn:aws:lambda:ap-northeast-1:xxxx:layer:example-canary-xxxx:1”,
“Handler”: “index.handler”
},
“RuntimeVersion”:
AWS Security Specialty 認定更新の記録
# 概要
SCS資格を更新してきました。
やったことと感想を残します。# About me
インフラエンジニア6年目で、AWS環境の設計構築保守などを主に行っています。AWS認定資格は全冠済です。
# About SCS
### AWS Certified Security – Specialty
https://aws.amazon.com/jp/certification/certified-security-specialty/
試験ガイド、サンプル問題を見ればどんな資格なのかがわかります。>第 1 分野: インシデントへの対応 12%
第 2 分野: ログ記録とモニタリング 20%
第 3 分野: インフラストラクチャのセキュリティ 26%
第 4 分野: アイデンティティ管理とアクセス管理 20%
第 5 分野: データ保護 22%といった感じで、保守で行うような基本知識を問われつつ
AWSサービスを使ったセキュリティ設計時の知識が必要です。セキュリティと一言で言っても
– TLS、証明書関連、IaC周りの前提知識
– Configなどを使ったア
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
AmplifyStudioのFigma連携が便利そうなのでコーポレートサイトに使えないか検証する
# 背景
Amplify StudioのGAから大分経ってしまいましたが、そろそろいじってみないとと思いいろいろ眺めていたところ、**コーポレートサイトに使えないのかな**と思い立ちました。
コーポレートサイトの制作って地味に悩みどころ多いですよね。– デザイナーさんがデザインツールで作成したデザインをエンジニアがHTMLに再現する作業が地味に大変だったり
– 動的な要素の有り無しでバックエンド有りか無しか決めないといけないため、意外に静的サイトジェネレーターって選択しにくく、選択したとしても、
– お問い合わせフォームはGoogleForm埋め込みで妥協する とか
– 当初はなくていいって言われてたとしても、結局欲しいと言われる とか
– サイトの更新を誰がしたいのかによってCMSを選択する必要もあるかもしれない とか
– でもなんだかんだ結局数年誰も触らなかったじゃん!とかそれら諸々をAmplify Studioが解決してくれるのではないかと思い、まずは検証をしてみたいと思います。
## Amplify Studio についてはこちら
https://
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をメモしておいてください。
データベー