kasei_sanのブログ

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

2020-01-01から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…

Rails on Docker での PostgreSQL & unicorn が動く開発環境のメモ

自己学習のためにざっくり作ってみた 個人的には、本番はUnicornでも開発環境ではPumaでいいんじゃないかな...って思っている SQLは合わせたほうが良いと思うけど 前準備 experimentalな機能を使うので環境変数を予め設定しておく .envrc export DOCKER_BUIL…

PumaとUnicornの違い

前提 どちらもアプリケーションサーバ(アプリケーションを動作させるためのサーバ) アプリケーションサーバーは送られてきたリクエストに対して、rubyやphpなどを実行して、動的な処理をした結果を静的な要素に変換してwebサーバーに返すためのもの。つまり…

Alpine Linux で欲しいファイルを持っているパッケージを探す方法

Alpine Linux で gem install をした時のエラーメッセージから不足しているファイルを見つけて、それを持っているパッケージを探す方法を記します native extension を持っている gem install を失敗する時、こんなエラーメッセージが出ます 例: gem pg イン…

Alpine Linuxのパッケージ管理システムapkについて理解を深める

APK is 何? apk = Alpine Linux package management Alpine Linuxのパッケージ管理システム パッケージって何? Linuxが採用しているアプリケーションの配布形態。アプリケーションによっては、正常に動作させるためには「ライブラリ」と呼ぶ別のプログラムを…

Dockerfileで apt-get upgrade するのは止めたほうが良いとベストプラクティスに書かれていた

Dockerfile best practices によると... Avoid RUN apt-get upgrade and dist-upgrade, as many of the “essential” packages from the parent images cannot upgrade inside an unprivileged container. If a package contained in the parent image is out…

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

AWS

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

Linux系のパッケージのバージョン番号が古くても、セキュリティフィックスは入っている場合があるというお話

概要 Linux系のパッケージのバージョン番号が古くても、セキュリティフィックスは入っている場合がある 例えば Debianのbuster(バージョン10)に入っている apache2 は 2.4.38 https://packages.debian.org/ja/buster/httpd/apache2 本家の apache2 は 2.4.43…

特定のpidの標準/標準エラー出力を確認する

$ tailf /proc/${pid}/fd/1 $ tailf /proc/${pid}/fd/2 知らなかった...流石linuxは何でもファイルだ...

Nginxのライフサイクルポリシーおぼえがき

はじめに こんなもの見ないで原点にあたるのが良いです www.nginx.com Nginxのバージョニング stable : 安定版 と mainline : 主流版がある 偶数バージョンが stable 奇数バージョンが mainline 毎年4月に、mainline の最新版から分岐する 2020/06 現在は、 …

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…

macでMS公認の無料window10使用版を使う方法と、初期設定のメモ

事前準備 仮想マシンクライアントのVirtualBoxをダウンロードする www.virtualbox.org 無料です MS公式の動作確認用のwindows仮想マシンイメージをダウンロードする https://developer.microsoft.com/en-us/microsoft-edge/tools%E3%81%A1/vms/ 無料です 使…

ruby3.0で「hashをキーワード引数に自動変換する機能」の削除がリスケされた流れを自分なりに理解する記事

なにこれ ruby3.0で「hashをキーワード引数に自動変換する機能」を削除する予定だったけど、延期もしくは中止する と、Matzがrailsのフォーラムでコメントしていたので、その経緯とかを把握するために記事にしました discuss.rubyonrails.org そもそも、hash…

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時間いく…

bash にて、とあるドメインが存在するなら、環境変数にそのドメインを格納する、なければデフォルト値という処理を書いたときのメモ

コード API_URL=https://example.com BRANCH_API_URL=https://hoge.com host ${BRANCH_API_URL#https://} && API_URL=${BRANCH_API_URL} || : ポイント ${BRANCH_API_URL#https://} で、環境変数 BRANCH_API_URLの先頭の https:// を取り除いている host は…