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…

今更CentOS6でRubyを検証するDocker環境がほしい時みる記事

どうしても古いままの環境をいじらざるを得ない時ありますよね... Dockerfile FROM centos:6 RUN \ sed -i -e "s/^mirrorlist=http:\/\/mirrorlist.centos.org/#mirrorlist=http:\/\/mirrorlist.centos.org/g" /etc/yum.repos.d/CentOS-Base.repo &&\ sed -i…

Rails7のフロントエンドの方向性について理解したことをメモ

ざっくりまとめ Rails7は、StimulusとTurboのHotwireを標準のjsとしているが、jsまわりのトレンドとは方向が異なる Railsでリッチなフロントエンドをバリバリやるのは難しく、そのあたりの不満がフロントエンド側から表出している Railsは(最初から)、小さい…

MacOSをスリープした時にgoogleアカウントからログアウトする方法

方法 sleepwatcher という、sleep & wakeup 時に任意のコマンドを実行するアプリを使います また、google アカウントは、 https://accounts.google.com/Logout にアクセスすると、ログアウトできるので、スリープ時に、デフォルトブラウザで、これにアクセス…

Terraform Cloud にある state を mv する方法

流れ state ファイルをローカルに持ってくる backend をローカルに変更 terraform state mv を実行 terraform state push を実行 backend を Terraform Cloud に戻す(この時に、state を overwrite する) state ファイルをローカルに持ってくる terraform st…

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

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

サーバメンテナンスのときには、503(Service Unavailable)を返して、さらに Retry-After ヘッダー をつけておくと安心かも

SEO

まとめ メンテナンスページを出す時には、503(Service Unavailable) を返す Retry-After ヘッダーに復旧日時を入れておくと、復旧後に見に来てくれるようになる Retry-After ヘッダーが無いまま、長期間 503 を返すと、クローラーはサーバが復旧しないと思っ…

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

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

複数バージョンのbundlerがインストールされている時の挙動おぼえがき

概要 複数バージョンのbundlerがインストールされているとき、どれが選択されるのか曖昧だったので実験 注意 公式ドキュメントの記述がみあたらなかったので、バージョンが変わると挙動が変わるかもしれないです 環境 ruby:3.0.1-alpine を使用。defaultで入…

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…

Nginxのデバッグログを取る方法

Nginxの内部転送の設定がうまく行かない時とかにデバッグログは便利なのですが、その設定方法をよく忘れるのでメモ エラーログのログレベルを debug にする error_log /dev/stdout debug; 内部転送を出力するように設定 rewrite_log on; Nginxをデバッグモー…

CORSの理解が不足していたのでメモ

CORSって何? CORS: Cross-Origin Resource Sharing オリジン間リソース共有 オリジンって何? 同じところからのリクエストであるかを判別するための方法 URIの、scheme、host、portが一致していると、それは「同一オリジン」である scheme、host、portとか、U…

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

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

logrotateおぼえがき

RHEL系のお話です 全体設定ファイル /etc/logrotate.conf ローテーションごとの設定ファイルが置かれるディレクトリ /etc/logrotate.d/ dryrun /usr/sbin/logrotate -dv /etc/logrotate.conf 手動実行(root権限で実行すること) /usr/sbin/logrotate -f /etc/…

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

AWS

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

Railsのメンテナンスポリシーおぼえがき

2021/01/12 現在 基本的にはここ見ればOKです guides.rubyonrails.org ポイント Railsはセマンティックバージョニング バグ修正は最新バージョンのみ (2021/01/12 現在、 6.1.Z ) セキュリティFIXは、メジャーシリーズ全てと、1つ前のメジャーの一番最後のマ…

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…

Red Hat系Linuxディストリビューションの歴史とCentOS Streamについて調べた

2020年LCLアドベントカレンダーの10日目です! qiita.com 経緯 2020/12/08 に CentOS から「今後は CentOS Stream に開発リソースを集中し、CentOS 8 のEOLを2021年末とする」という発表がありました news.mynavi.jp twitterなどではいろいろな意見が出ていた…

OpenSSLのリリースストラテジを調べた

OpenSSLの最新バージョンはいくつ? 今サポートされているバージョンはどれ? いつまで? とかわからなかったのでまとめる 先に結論 2020/12/10 現在 最新版: OpenSSL 1.1.1 (LTS) サポートされているバージョン 1.1.1 〜 2023/09/11 1.0.2 サポート切れだが、…

root権限を持たないユーザで 80番ポートを開放しようとすると怒られる理由

Dockerfileをベストプラクティスに沿って作るとそうなりがち docs.docker.com 理由 0〜1023 までのポートは well known port と呼ばれ、開放にroot権限が必要なため そういう場合に8080を選ぶ理由 8080は、非rootユーザがwebサーバを立てる時の使うポートと…

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

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

cookieのSameSite属性 おぼえがき

same 経緯 cookieにはSameSiteという属性があって、これがChrome80からデフォルトの扱いが変わった 正確には変わる予定だったが、コロナの影響で変更は先延ばしにされて、2020/07/14 のChrome84から変更されるようになった。なお、83, 81, 80 にも適時適用さ…

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できると何が良いの? コー…

dockle の警告 `CIS-DI-0008` をどのように処理すべきか考えた

dockle って? コンテナイメージのセキュリティチェックツールです。ビルドしたImageを通すと、セキュリティ的に問題がある部分を指摘してくれます github.com 警告 CIS-DI-0008 って? これですね CIS-DI-0008: Remove setuid and setgid permissions in the …

パイプを使うと最後の処理が成功すると戻り値は0になるので、`pipefail` を使ったほうが事故が少なくなるよというお話

コード例 #!/bin/bash -e exit 1 | echo "a" echo "b" 実行結果 a b -e オプションで、行単位で失敗したら終了するはずなのに、 echo "b" が実行されてしまっている...! 解説 pipeを使う場合、一番右側の処理の戻り値で行の成功/失敗が判定される exit 1 | e…

UnicornとNginxの接続方法は、UNIXドメインソケットとリバースプロキシの2つの方法がある

UNIXドメインソケット 単一マシン上の高効率なプロセス間通信に用いられる機能・インターフェースの一種である UNIXドメインソケット - Wikipedia ファイルシステムを介してプロセス同士の通信を行う仕組み 普通にリバースプロキシするより高速だが、ファイ…

docker-slim で 任意のバージョンの ImageMagickを入れる方法

レガシーなシステムをDocker化するときにたまによくやるのでメモ 多分、Aplineでもおんなじだと思う 方法 コードからmakeする ARG IMAGE_MAGICK_VERSION=${好きなパージョン} RUN wget --quiet https://imagemagick.org/download/releases/ImageMagick-$IMAG…