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 は…

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 で Action に失敗した時にslackに通知を投げる方法

先に方法 - name: Slack Notification when build failed if: failure() uses: rtCamp/action-slack-notify@master env: SLACK_CHANNEL: channel-name SLACK_COLOR: '#ff0000' SLACK_TITLE: ':fire::fire::fire: Build error! :fire::fire::fire:' SLACK_MES…

GitHub Actions で削除したブランチ名を取得する方法

課題 GitHub Actionsでは、ブランチ名は環境変数 GITHUB_REF から取ることができるが、ブランチ削除時には GITHUB_REF が refs/heads/master になってしまう なお、GitHub Actions で使用できる環境変数については、こちらを参照 help.github.com 解決方法 $…

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」…

httpのレスポンスの動作確認をしたい時に知ってると便利ないろいろ

httpstat.us httpstat.us http://httpstat.us/${コード} で任意のレスポンスコードを返してくれるサービス こんなかんじ $ curl -I https://httpstat.us/200 HTTP/1.1 200 OK $ curl -I https://httpstat.us/404 HTTP/1.1 404 Not Found どうやら個人で作っ…