kasei_sanのブログ

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

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 どうやら個人で作っ…

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 …

node.jsのリリースサイクルについてメモ

まとめ 6ヶ月に1度メジャーバージョンがリリースされる 6ヶ月後に、奇数バージョンは放棄される 偶数バージョンはLTS(Long Term Support)。通常、重大なバグが30ヶ月間は修正される 大企業や複雑なシステムはLTSを使うことを推奨 最新機能を使いたい場合、最…

curlは-fオプションをつけないとサーバエラーでも戻り値は0になる

サーバエラーが帰ってきても、curlの戻り値は0 $ curl -Is http://ozuma.sakura.ne.jp/httpstatus/500 HTTP/1.1 500 Internal Server Error Server: nginx Date: Tue, 04 Feb 2020 00:51:35 GMT Content-Type: text/html; charset=utf-8 Connection: keep-al…

dockerfileのARGの使い方おぼえがき

ARGとは build実行時にオプション --build-arg として渡せる可変の値 使いみち 環境毎になにかを変える時に使用する ビルド時に使用する環境変数 entrypoint.sh COPY元 など Dockerfileでの定義方法 ARG hoge="fuga" 解説 上記は、変数 hoge を時環境変数 HO…

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

これの続編 blog.kasei-san.com Amazon Aurora serverless って何? インスタンスの管理が不要な Amazon Aurora 決して、serverless 専用の Aurora ではない サポートしているエンジンは? MySQL 5.6 互換の Amazon Aurora PostgreSQL 10.7+ 互換の Amazon Aur…

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

AWS

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

dockerfileのCMDやENTRYPOINTでの変数展開について

前提 dockerfileの CMD や ENTRYPOINT でコマンドを定義する方法は2通りある exec form(推奨) : JSONの配列で定義する ["echo", "${HOGE}"] 直接コマンドが実行される(変数展開が行われない ) shell form : 文字列で定義する "echo ${HOGE}" /bin/sh -c を介…

CMDとENTRYPOINT違いおぼえがき

きちんと理解したら全然意味が異なるものだった ENTRYPOINTとは docker run 時に実行されるコマンドを定義 例 apacheを起動させるコンテナ(オフィシャルじゃないけど、説明に最適だった) の ENTRYPOINT ENTRYPOINT ["/usr/sbin/apache2"] docker run した場…

herokuのビルドをキャンセルする方法

heroku.yml の設定を間違えたりすると、デプロイ後、以下のエラーが出てタイムアウトするまで待たされて困るので、キャンセル方法を調べた remote: Compressing source files... done. remote: Building source: remote: === Fetching app code remote: remo…

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

aws

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

Varnish4.1 では最初の `Set-Cookie` しか read/write できない

先に結論 Varnish4.1 では最初の Set-Cookie しか read/write できないし、writeすると他の Set-Cookie は消える varnish-modulesのcookieやheaderを使えば、他の Set-Cookie もread/writeできる サンプルコード vcl vcl 4.0; import std; import directors;…

Rubyでインクリメンタルする Quine AA を書いた

デモ 実行するごとにAAの白抜きの数字が増えていきます コード http://github.com/kasei-san/quine/blob/master/incremental/main.rb コードジェネレータ 前回解説したように、Quine AA は、AAを作るコード自身をAAに変換するジェネレータを作って作成します…

Rubyで書く! Quine AA!

こちらの記事を元に自分で作ってみた時の記録です mickey24.hatenablog.com ソースコード eval$s=%w' b="BAhsK2Lgf4 D/D/7/8/9///j/B/9 /8P8H/3/w/wf/f/7/7/ ///+//P/ j/Af5/AOA PAPwAAM CHH3z4wY cffPjBh x98+MGHH /z/wf8/ /P+D/z/g nwMAAAA PAPgBAA8 AAADA…

Rubyで書く! Quineのサンプルと解説

Quine ってなに? クワイン(英: Quine)は、コンピュータプログラムの一種で、自身のソースコードと完全に同じ文字列を出力するプログラムである。 クワイン (プログラミング) - Wikipedia 基本の Ruby Quine eval s="puts'eval s='+s.inspect" 解説 eval s=…

PostgreSQL93でのレプリケーション確認方法

プライマリ側 SELECT * FROM pg_stat_replication psql -x -c "SELECT * FROM pg_stat_replication" -[ RECORD 1 ]----+------------------------------ pid | 2167 usesysid | 42700 usename | repl_user application_name | walreceiver client_addr | 10.…

バックグラウンドジョブおぼえがき

概要 job を用いて複数のコマンドを1つのシェルで平行して実行することができる 普通にコマンドを実行すると始まって、入力を受け付けるのが フォアグラウンドジョブ 入力を受け付けずに、CUIの後ろで実行されるのが バックグラウンドジョブ バックグラウン…

MySQL でテーブルをロックせずに index を貼る方法いろいろ

indexを張った場合の処理の基本的な流れ ALTER TABLE でindexを追加すると、indexを貼り終わるまでテーブルがロックされる 内部的には テーブルをロック→テーブルをコピー→コピーしたテーブルにindexを貼る→元のテーブルと入れ替える→ロック解除 という処理…

InnoDBのバッフアプールとMyISAMのキーバッファについて

概要 InnoDBとMyISAMの違いについて解説 その上で、それぞれのキャッシュの取り扱いと、キャッシュに関する値の最適化について解説 そもそも、InnoDBとMyISAMの違い どちらも ストレージエンジン MySQLは、リクエストから以下のような流れで、データのread/w…

Rubyでは真偽とtrue/falseは別物だよ! というお話

今日は、Rubyの true, false と、真偽は別物だよというお話をします これは何? 会社blogで公開しようとした直前に、上位互換の記事が出てお蔵入りしてしまった可愛そうなblog記事です techracho.bpsinc.jp 供養と自分の学習記録も兼ねて、個人ブログにupいた…

いまさら MacBook Air mid 2011 をサクサクにするためにやった3つのこと

Mac

これはなに やたら重くなった MacBook Air mid 2011 (memory 4GB, strage 250GB) をサクサクにするまでの苦闘の記録です 古いMacBookに発生した、つらみあふれる現象 ログイン画面を開いてからパスワードを入力するまで1分ほど待たされる 起動してからブラウ…