kasei_sanのブログ

かせいさんのIT系のおぼえがきです。胡乱の方はnoteとtwitterへ

AWS

RDS Auroraのreaderからのpg_dumpの途中で接続が切れる場合、max_standby_streaming_delay を上げると良いよ

タイトルで言いたいことだいたい言っちゃったんですが、 readerエンドポイントでpg_dump を実行していたら、大きめのテーブルをdumpしている時に接続がちょこちょこ途切れる現象が発生していました。 それで、DBのログを見てみたら以下のエラーがありました …

Amazon Athenaでアクセスログから、特定PATHの分ごとのアクセス数をカウントする方法

以下は、2023/11/18の15:00〜15:10の間の https://example.com:443/hoge への分単位のアクセス数を取るSQL SELECT minute, COUNT(minute) AS count FROM ( SELECT date_trunc('minute', from_iso8601_timestamp(time)) AS minute FROM "alb_access_logs" WHE…

AWSコスト最適化ガイドブック 読書メモ

AWSコスト最適化ガイドブック作者:門畑 顕博,仁戸 潤一郎,柳 嘉起,杉 達也,小野 俊樹,藤本 剛志KADOKAWAAmazon 初学者やAWS詳しくない人が、最適な使い方を学ぶのには良い本でした 逆にある程度くわしい人は、知らないところをつまみ食いすればそれで終わる…

RDS の Aurora の昇格についておぼえがき

RDS Auroraでライターインスタンスが死んだ場合、どういうルールで昇格するんだっけ? ライターインスタンスの内「優先度」が最も低い値のインスタンスから選ばれる(0がデフォルト) 同じ「優先度」の場合、同じサブネット、AZのものが優先される Terraformで…

AWS コスト削減チェックリスト

前提 金銭的なコスト削減のために、運用コストが上昇したら元も子もないので注意!!! 全体 EC2 から、ECS(Fargate)、lambdaへの移行を検討中ならば、Compute Savings Plansを使用する そもそも使っていないインスタンスを停止する EC2 性能が過剰ならば、より…

2021/09/30 から、OpenSSL1.0.x でLet'sEncryptの証明書を使っているところと接続できなくなる問題とEC2での対策方法

現象 $ echo|openssl s_client -connect helloworld.letsencrypt.org:443 -servername helloworld.letsencrypt.org Verify return code: 20 (unable to get local issuer certificate) OpenSSLを使っている、curl やRuby なども影響を受ける 原因 Let'sEncry…

独自ドメインからRoute53でCloudFrontにAレコードを設定したときに、SSL関係のエラーが出た時の対処方法

現象 独自ドメインから、Route53でCloudFrontにAレコードを設定した その後に独自ドメインから、upした画像にアクセスするとSSL関係のエラーが発生する curl -vv https://example.com/E4Tvj0mUUAEWnW8.jpeg * Trying ***.***.***.***... * TCP_NODELAY set *…

EC2インスタンスの再起動と停止/起動のちがい

先に結論 ここに書いてあるとおり docs.aws.amazon.com 再起動: インスタンスは、同じホストコンピュータで保持される 停止/開始: インスタンスは新しいホストコンピュータに移動されます メンテナンスでEC2のハードウェア退役や再起動する場合は、停止/起動…

elasticbeanstalkのプラットフォーム(ruby puma)のバージョンを上げると、nio4r の依存関係でエラーが発生する件

elasticbeanstalkのプラットフォーム(ruby puma)のバージョンを上げると、こんなエラーが出るようになる /opt/rubies/ruby-2.7.3/lib/ruby/site_ruby/2.7.0/bundler/runtime.rb:302:in `check_for_activated_spec!': You have already activated nio4r 2.5.7…

Amazon Linux2 に MySQL5.7のクライアントを入れる方法

踏み台サーバに手動で入れる必要が出たので個人的なメモ 参考 dev.mysql.com dev.classmethod.jp だいたいここの通りにやればOK 前提1 Amazon Linuxでは、いくつかのパッケージを Extras Library として提供しているが、MySQLは提供していない(mariadbはある…

NATインスタンスとNATゲートウェイの料金比較メモ

AWS

料金の内訳 NATインスタンス インスタンス料金 データ転送料金(インターネットへのデータ転送 詳しくはこちら → https://aws.amazon.com/jp/ec2/pricing/on-demand/#Data_Transfer NATゲートウェイ NAT ゲートウェイの時間単位料金 東京リージョンで 0.062US…

Linuxの時計まわりのおぼえがき

対象OS 設定ファイル周りについては、Amazon Linux AMI や CentOS6系以前のお話 ただし、クロックそのもの話は各Linuxでもだいたいおんなじなはず クロック周りのはなし 時計。Linuxは2種類のクロックをもつ ハードウェアクロック システムクロック ハードウ…

Amazon Linux AMI でのタイムゾーンの変更方法

Amazon Linux AMI でのタイムゾーンの変更方法 先に結論 /etc/localtime だけを変更しても、マシンの再起動やglibcの更新でタイムゾーンがUTCに戻る そうならないために、 /etc/sysconfig/clock の設定も必要 手順 公式ドキュメントを参照 docs.aws.amazon.c…

ローカルでAWS Lambda ランタイムと(ほぼ)同様の環境でserverlessを動作確認する方法

先に結論 --docker オプションを使う serverless invoke local --docker --function hoge 解説 --docker オプションを使うと、AWS lambda が公式に配信しているDocker でシミュレートされた Lambda 環境 ( lambci/lambda ) をつかって、serverlessをローカル…

TLSおぼえがき

TLSってなに? Transport Layer Security(トランスポート・レイヤー・セキュリティ、TLS)は、インターネットなどのコンピュータネットワークにおいてセキュリティを要求される通信を行うためのプロトコルである。主な機能として、通信相手の認証、通信内容…

Terraform でランダムなパスワードを設定する方法

方法 モジュール random_password を使う https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/password ほぼ同じ random_string もある。 random_password は生成結果を標準出力に出さないため、 random_string よりセキュア …

Terraform と Terraform Cloud について理解し直す

久しぶりに使うことになったのでアンラーニングを兼ねてメモ Terraformって何? クラウドインフラに対するinfrastructure as code。クラウドインフラの設定をコード化して、保存/実行できる www.terraform.io infrastructure as codeできると何が良いの? コー…

c5 ユーザはさっさと c5a に乗り換えたほうが良いの?

AWS

先に結論 保留で良いと思う 数台しか使ってないなら乗り換えてもたいして得しない (c5.large なら1台につき 95$/年 ) 何十台もあるなら乗り換えたほうが良いかもだけど、少しだけCPUパワーが下がることを念頭に置く CPUが AMD系に変わることで、処理速度がお…

serverless のバージョンが古いまま、lambda ruby 2.7 を使うと The security token included in the request is invalid エラーが出てハマるので最新版にしよう

というお話です 出てくるエラー ruby 2.7 で serverless invoke を実行すると --aws-profile を設定していても The security token included in the request is invalid が出ます Error raised from handler method { "errorMessage": "The security token i…

AWS WAF Regionalの情報を取りたい場合、使うのは Aws::WAFRegional::Client だよ! というお話

これで2H程度ハマってしまった... 言いたいこと AWS WAFには、グローバル(CDN用)と、Region単位の Regional がある ruby SDKでWAFの情報を取りたい場合、グローバルとRegionalでは使用するclientが異なる グローバルならば、 Aws::WAF::Client Regional なら…

Amazon EventBridge おぼえがき

Amazon EventBridge って何? Amazon EventBridge は、独自のアプリケーション、統合 Software-as-a-Service (SaaS) アプリケーション、および AWS のサービスからのデータを使用して、アプリケーションを簡単に接続することを可能にするサーバーレスイベント…

AWS Fargate のコスト削減アイデアいろいろ

AWS Fargate。便利だけど、EC2と比べるとコストも高いので、コスト削減の方法をいろいろまとめてみた 上から順に効果が高くて、適用コストも低いので、上から実施を検討すると良いです Compute Savings Plans EC2やFargateやlambdaの利用について、1時間いく…

AWS Codebuild で dig とか host コマンドを使う方法

先に方法 buildspec に以下を追加 phases: install: commands: - yum -y install bind-utils 解説 AWS Codebuild で動作させる、Amazon Linux 2 (centOSベース) には、host や dig コマンドがインストールされていない host や dig コマンド は、bind-utils …

Fargate Spot おぼえがき

先にまとめ コンテナが不定期に停止する代わりに 通常価格の70%OFF になるサービス Savings Plansとの併用はできない。らしい (伝聞のためソースなし 雑に始めたければ、Capacity Provider を FARGATE SPOT のみにする Fargete と Fargate Spot を併用したけ…

GitHub Actions から AWS lambda を実行してみる

こちらのつづき blog.kasei-san.com GitHub Actions から AWS lambda を実行するまでの流れ lambdaを作成 lambdaの実行権限を持つIAMユーザを作成 AWS認証の action aws-actions/configure-aws-credentials を GitHub Actions に組み込む 認証に使用する、la…

GitHub Actions はじめの一歩

GitHub Actions とは GitHub の特定のアクションをトリガーにCI/CD的なことを実行できるサービス CircleCI とか AWS Codebuild みたいのを GitHub が提供してくれるようになった help.github.com アクションのつくりかた Githubのリポジトリから「Actions」…

AWS SDK for Ruby で Application Load Balancer にいろいろな Listener を追加する方法おぼえがき

Listenerとは リスナーとは、設定したプロトコルとポートを使用して接続リクエストをチェックするプロセスです。リスナーに対して定義したルールにより、ロードバランサーが登録済みターゲットにリクエストをルーティングする方法が決まります。 Application…

serverless で AWS lambda のログ出力の有効期限を制御する方法

サンプル function hoge_fuga-aaa の出力先ロググループの有効期限を30日にする場合 serverless.yml functions: hoge_fuga-aaa: handler: handler.api_create events: - http: path: api/create method: post resources: Resources: HogeUnderscoreFugaDashA…

lambdaプロキシ統合を使って、API Gatewayからlambdaへ各種パラメータを渡す方法

lambdaプロキシ統合って? API Gatewayが受け取ったパラメータやリクエストヘッダなどの情報をlambdaのevent引数にわたすようにする方法 Lambda プロキシ統合では、クライアントが API リクエストを送信すると、API Gateway は、統合された Lambda 関数に raw…

AWS CodeBuild の buildspec.yml のコマンドで curl の完了前に処理が終了する件とその対策

buildspec.yml(一部) post_build で curl を実行後にその戻り値をチェックする command を実行する 実際のコードでは、API Gatewayを叩いていた version: 0.2 phases: post_build: commands: - curl https://example.com - echo $? 実行結果 すると、 curl …