kasei_sanのブログ

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

AWS

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 …

AWS Systems Manager パラメータストアを使って、ECSのtaskで環境変数を安全に運用する方法

AWS

概要 DBのパスワードとかの機密情報をECSのtask実行時の環境変数に入れたい場合、AWS Systems Manager パラメータストアを使うとかんたん&安全 AWS Systems Manager パラメータストア is 何? AWS Systems Manager パラメータストア は、設定データ管理と機密…

AWS cli で アカウントに紐づいたロールの切り替えをする方法

aws

課題 セキュリティ上の理由等で、普段管理画面上でロールの切り替えを行っているけれど、それをCLI上でやる場合どうするの? 解決方法 ロール切り替え用のprofileを設定して、それを指定してあげれば良い ~/.aws/config [default] output = json region = ap-…

AWS DMS おぼえがき

これはなに? AWS DMSについてざっくり概要を理解したので、忘れないように書いたメモです AWS Database Migration Service(簡単、安全なデータベース移行)|AWS 先にまとめ AWS DMSは、最小のダウンタイムでデーターベースの移行をしてくれるサービス テー…

Amazon Auroraへの移行事例をまとめて知見を抽出してみた

先に知見まとめ 急いでる人はここだけ読めば良いと思う 移行方法 以下の3つの方法のどれかで移行している RDSの場合、Auroraリードレプリカを作成して、同期完了後、昇格 Amazon DMSでAuroraにデータを移行。同期完了後、切替 DMSにはいくつか制限があるので…

Amazon Aurora を知らなかった人が 2018/12 現在の Aurora の最新状況を分かる範囲でまとめた

主にMySQLについて調査 Amazon Aurora って何? MySQL/PostgreSQL 互換のリレーショナル・データベース サポートしているエンジンは? MySQL 5.7 MySQL 5.6 PostgreSQL 9.6 RDSと何が違うの? 高パフォーマンス スケーラブル 低運用コスト(人もお金も) 耐障害性…