ようへいの日々精進XP

よかろうもん

2020 年 01 月 28 日 (火)

アクティビティ (今までの走行 (歩行) 距離)

https://pixe.la/v1/users/inokappa/graphs/fitbit-activity

Fitibit Charge2 のアクティビティから走行 (歩行) 距離を Fitbit Web API で取得して Pixela で草生やしている. 色が濃くなれば濃くなる程強度が高い (歩行, 走行距離が長い) ということで. 実装の詳細はこちら.

ジョギング

  • 引き続き, お休み
  • 徒歩通勤往復
  • 背筋痛は奥さんのサロメチールマッサージ落ち着いてきた感じ
  • 夕方, 鍼治療

ギョーム

  • Aurora のチューニング検証
  • 検証とか実際のメンテでも利用するパラメータグループを更新するツールを Go で書き始めたけど, RDS の API ってパラメータは存在しているけど, 「現在はサポートされていない」系があってフムってなった
  • でも, Example をコピペでだいたいのものが作れるのは嬉しい

docs.aws.amazon.com

夕飯

今日は洋食ということで, ビストロひろみだった. お得意のハンバーグがいつものように美味しかった.

【俺の一行チップス】docker-compose の Extension fields を使って DRY な YAML にする(docker-compose 3.4 以降, docker-compose 2.1 以降編)

やりたいこと

docker-compose.yml を書いていて, 同じ内容を何度も何度も書いていて, 令和の時代にこれはアカンということで Anchor, Alias で少しでも DRY にしたい. DRY とは, アサヒスーパードライではなく, Don't Repeat Yourself のことなので酔っ払わないように.

諸注意

動作確認環境は以下の通り.

$  docker-compose version
docker-compose version 1.24.1, build 4667896b
docker-py version: 3.7.3
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.1.0j  20 Nov 2018

やったこと

これまでの docker-compose.yml

version: '3.4'

services:
  postgresql_server:
    build:
      context: .
      dockerfile: Dockerfile
      args:
        DB_PASSWORD: "posgre"
    container_name: postgresql
    ports:
      - "5432:5432"
    networks:
      my_net:
        ipv4_address: 10.0.101.10

  psql:
    image: postgres:9
    container_name: psql
    networks:
      my_net:
    environment:
      PGAPPNAME: pgbench
      PGHOST: 10.0.101.10
      PGUSER: pgadmin
      PGPASSWORD: posgre
      PGDATABASE: pgbench

  pgbench-prepare:
    image: postgres:9
    container_name: pgbench-prepare
    networks:
      my_net:
    environment:
      PGAPPNAME: pgbench
      PGHOST: 10.0.101.10
      PGUSER: pgadmin
      PGPASSWORD: posgre
      PGDATABASE: pgbench
    command: bash -c "dropdb pgbench ; createdb --owner=pgadmin pgbench && pgbench --initialize --scale=5"
()

environment の値が 2 箇所, 省略している部分を含めると 4 箇所に同じ内容が書かれているのでなんだか長くてダサい. けど, 一応, 構文的には問題ない.

$ docker-compose --file docker-compose.before.yml config --quiet; echo $status
0

ちなみに, docker-compose config という docker-compose.yml の内容をチェックしているコマンドがあったのは知らなかった.

令和の docker-compose.yml

以下のように, docker-compose 3.4 から (docker-compose 2.1 以降も) サポートされている, Extension fields を利用することで, docker-compose.yml のトップレベルである services と同じルートレベルに特殊フィールド (キーの頭に x- を付ける) として書くことが出来る. 尚, docker-compose 3.4 以前も Anchor と Alias を使うことが出来たが, services 内に Anchor を書く必要があった.

# ドキュメントより引用
version: '3.4'
x-logging:
  &default-logging
  options:
    max-size: '12m'
    max-file: '5'
  driver: json-file

services:
  web:
    image: myapp/web:latest
    logging: *default-logging
  db:
    image: mysql:latest
    logging: *default-logging

とのことなので, 先程の docker-compose.yml を書き直してみると以下のような感じ.

version: '3.4'

x-common_environment: &common_environment
  PGAPPNAME: pgbench
  PGHOST: 10.0.101.10
  PGUSER: pgadmin
  PGPASSWORD: posgre
  PGDATABASE: pgbench
x-networks: &common_networks
  networks:
    my_net:

services:
  postgresql_server:
    build:
      context: .
      dockerfile: Dockerfile
      args:
        DB_PASSWORD: "posgre"
    container_name: postgresql
    ports:
      - "5432:5432"
    networks:
      my_net:
        ipv4_address: 10.0.101.10

  psql:
    image: postgres:9
    container_name: psql
    environment: *common_environment
    <<: *common_networks

  pgbench-prepare:
    image: postgres:9
    container_name: pgbench-prepare
    environment: *common_environment
    command: bash -c "dropdb pgbench ; createdb --owner=pgadmin pgbench && pgbench --initialize --scale=5"
    <<: *common_networks
 (略)

こんな感じになった. Anchor, Alias を使えば, 当然, 同じ記述を繰り返し書かなくてすむし, Extension fields でよりスッキリした感じ.

$ docker-compose --file docker-compose.yml config --quiet; echo $status
0

構文チェックも OK.

以上

メモでした.

参考

docs.docker.com

circleci.com

(完)

2020 年 01 月 27 日 (月)

アクティビティ (今までの走行 (歩行) 距離)

https://pixe.la/v1/users/inokappa/graphs/fitbit-activity

Fitibit Charge2 のアクティビティから走行 (歩行) 距離を Fitbit Web API で取得して Pixela で草生やしている. 色が濃くなれば濃くなる程強度が高い (歩行, 走行距離が長い) ということで. 実装の詳細はこちら.

ジョギング

  • お休み
  • 徒歩通勤往復

ギョーム

  • 課題の整理等
  • JavaScript なプロジェクトで git commit をフックして eslint を走らせるようにしてみた
  • PostgreSQL の shared_buffers の検証

shared_buffer を調整することでバッファーキャッシュの使われ方が変わるのを確認出来て勉強になった.

夕飯

最近, 奥さんが夕飯のお品書きを書いてくれるのでテンション上がる. 久しぶりに生姜ご飯で美味しかった.

【俺の一行チップス】PostgreSQL 9.x で localhost 以外からデータベース接続する (ことを Go の testing パッケージで検証する)

やりたいこと

PostgreSQL 9.x において, localhost 以外からデータベース接続を設定についてまとめたのは前回. 今回は, これを検証するにあたって Go の testing パッケージでテストコードを書いて検証したお話を少し.

inokara.hateblo.jp

諸注意

動作確認環境は以下の通り.

# PostgreSQL サーバー側 (Ubuntu 上にパッケージで PostgreSQL をインストール)
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS"

$ /usr/lib/postgresql/9.6/bin/postgres --version
postgres (PostgreSQL) 9.6.16

# psql 側
$ docker-compose exec postgresql_client psql --version
psql (PostgreSQL) 9.6.16

# Go
$ docker-compose exec go_test go version
go version go1.13.6 linux/amd64

やったこと

環境構築とか

環境も docker-compose で用意する前提.

version: '3'

services:
  postgresql_server:
    build:
      context: .
      dockerfile: Dockerfile
      args:
        DB_PASSWORD: "posgre"
    container_name: postgresql-server
    ports:
      - "5432:5432"
    networks:
      my_net:
        ipv4_address: 10.0.101.10

  postgresql_client:
    image: postgres:9
    container_name: postgresql-client
    networks:
      my_net:
        ipv4_address: 10.0.101.11

  go_test:
    build:
      context: tests
      dockerfile: Dockerfile
    container_name: go-test
    environment:
      - DB_HOST=10.0.101.10
      - DB_PASSWORD=posgre
    networks:
      my_net:
        ipv4_address: 10.0.101.5
    command: tail -f /dev/null

networks:
  my_net:
    driver: bridge
    ipam:
     driver: default
     config:
       - subnet: 10.0.101.0/24

docker-compose up -d で全ての環境を起動した直後に, go test した図.

$ docker-compose exec go_test richgo test -v
START| PostgrePing
PASS | PostgrePing (0.01s)
PASS
PASS | postgresql_test 0.027s

いい感じでパスする.

次に, PostgreSQL の設定をデフォルトの状態に戻す. Dockerfile の以下の箇所をコメントアウトする.

# Enable Remote Access
RUN echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/9.6/main/pg_hba.conf # ここをコメントアウト
RUN echo "listen_addresses='*'" >> /etc/postgresql/9.6/main/postgresql.conf # ここをコメントアウト

コメントアウトすることで, 外部接続に必要な設定を無効化する.

改めて, 環境を作り直してテストを実行.

$ docker-compose build && docker-compose up -d && docker-compose exec go_test richgo test -v
()
START| PostgrePing
FAIL | PostgrePing (0.00s)
     |     postgresql_test.go:41: got error: dial tcp 10.0.101.10:5432: connect: connection refused
FAIL
     | exit status 1
FAIL |  postgresql_test 0.028s

テストが fail する.

テストコード全貌

ということで, 以下のようなテストを書いた.

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/lib/pq"
    "os"
    "testing"
)

const (
    user   = "pgadmin"
    dbname = "postgres"
)

var (
    host     = os.Getenv("DB_HOST")
    password = os.Getenv("DB_PASSWORD")
)

func TestPostgrePing(t *testing.T) {
    db, err := dbConnection()
    if err != nil {
        t.Errorf("got error: %v", err)
    }
    defer db.Close()

    err = db.Ping()
    if err != nil {
        t.Errorf("got error: %v", err)
    }
}

func dbConnection() (*sql.DB, error) {
    connInfo := fmt.Sprintf("host=%s "+
        "port=5432 "+
        "user=%s "+
        "password=%s "+
        "dbname=%s "+
        "sslmode=disable",
        host, user, password, dbname)
    db, err := sql.Open("postgres", connInfo)
    if err != nil {
        return nil, err
    }

    return db, nil
}

Ping を使って, データベースの死活をチェックしている.

作ったもの

github.com

参考

golang.org

godoc.org

github.com

(完)

2020 年 01 月 26 日 (日)

アクティビティ (今までの走行 (歩行) 距離)

https://pixe.la/v1/users/inokappa/graphs/fitbit-activity

Fitibit Charge2 のアクティビティから走行 (歩行) 距離を Fitbit Web API で取得して Pixela で草生やしている. 色が濃くなれば濃くなる程強度が高い (歩行, 走行距離が長い) ということで. 実装の詳細はこちら.

ジョギング

  • 山王公園を軽く歩いたり, 走ったり 30 分くらい
  • 走り始めから背中に突っ張るような激痛, 右足ハムストリングもそうだけど, 満身創痍感がある

ギョーム

  • もちろん, お休み
  • 素の PostgreSQLUbuntu にインストールしたりしつつガチャガチャしてた

大阪国際女子マラソン

最後の一枠をかけたレース. ダイハツ松田瑞生選手の攻めの走りが圧巻だった.

夕飯

  • 佐世保のおじさんからアジ (フライに出来る状態) とアラカブを頂いたので女将が調理
  • アジフライはジューシーだったし, アラカブはこんなにも出汁が出るのか!という感じで美味しゅうございました

【俺の一行チップス】PostgreSQL 9.x で localhost 以外からデータベース接続する

やりたいこと

PostgreSQL 9.x において, localhost 以外からデータベース接続を設定する機会があったので, あらためて手順を整理しておく.

諸注意

動作確認環境は以下の通り.

# PostgreSQL サーバー側 (Ubuntu 上にパッケージで PostgreSQL をインストール)
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS"

$ /usr/lib/postgresql/9.6/bin/postgres --version
postgres (PostgreSQL) 9.6.16

# psql 側
$ docker-compose exec postgresql_client psql --version
psql (PostgreSQL) 9.6.16

やったこと

環境の構築とか

環境は docker-compose で用意する前提.

version: '3'

services:
  postgresql_server:
    image: ubuntu:latest
    container_name: postgresql-server
    ports:
      - "5432:5432"
    networks:
      my_net:
        ipv4_address: 10.0.101.10
    command: tail -f /dev/null

  postgresql_client:
    image: postgres:9
    container_name: postgresql-client
    networks:
      my_net:
        ipv4_address: 10.0.101.11

networks:
  my_net:
    driver: bridge
    ipam:
     driver: default
     config:
       - subnet: 10.0.101.0/24

docker-compose up -d で起動した後, postgrsql-serverdocker exec でアクセスして以下のコマンドを流した. とりあえず, 流したコマンドをダイジェストで.

# Install dependency package
sudo apt-get update && apt-get install gnupg gnupg2 wget sudo net-tools -y
# Add repository
echo 'deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main' >> /etc/apt/sources.list.d/pgdg.list
# Import the repository signing key
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
apt-get update
apt-get install postgresql-9.6 -y
service postgresql status
service postgresql start

PostgreSQL が起動したら, pgadmin というユーザーを作成する図.

# sudo su - postgres
$ createuser --pwprompt --interactive pgadmin
Enter password for new role:
Enter it again:
Shall the new role be a superuser? (y/n) y

インストール直後の状態

以下のように localhost からか, UNIX ドメインソケットからのみ接続を受け付ける設定になっている.

# sudo su - postgres
$ netstat -an| grep 5432
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN
unix  2      [ ACC ]     STREAM     LISTENING     134429   /var/run/postgresql/.s.PGSQL.5432

listen_addresses の変更

デフォルトでは, listen_addresses というパラメータは以下のようにコメントアウトされている.

#listen_addresses = 'localhost'         # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all

このパラメータについて, コメントに書かれているように値を * に変更する.

listen_addresses = '*'

listen_addresses について, ドキュメントより引用.

クライアントアプリケーションからの接続をサーバが監視する TCP/IP アドレスを指定します。 この値は、ホスト名をコンマで区切ったリスト、そして/もしくは、数値によるIPアドレスです。 *という特別なエントリは利用可能な全てのIPインタフェースに対応します。

pg_hba.conf ファイル

pg_hba.conf の hba とは Host Based Authentication の略でホストベース認証の設定ファイル. 今回は以下のように追記した.

$ diff -u pg_hba.conf.bk pg_hba.conf
--- pg_hba.conf.bk      2020-01-26 09:06:43.328190906 +0900
+++ pg_hba.conf 2020-01-26 09:50:43.414152960 +0900
@@ -90,6 +90,7 @@
 local   all             all                                     peer
 # IPv4 local connections:
 host    all             all             127.0.0.1/32            md5
+host    all             all             10.0.101.0/24            md5
 # IPv6 local connections:
 host    all             all             ::1/128                 md5
 # Allow replication connections from localhost, by a user with the
  • hostTCP/IP を使用した接続に対応
  • all は全てのデータベースに適用
  • 次の all は全てのユーザーに適用
  • 10.0.101.0/24 はクライアントのアドレス範囲
  • md5 はクライアントに対して認証時に二重 MD5 ハッシュ化パスワードを要求

pg_hba.conf の書式については, ドキュメントより引用.

pg_hba.confファイルの一般的な書式は、1行につき1つのレコードというレコードの集合です。 空行はコメント用の#文字以降の文字と同じく無視されます。 レコードは行をまたいで続けることはできません。 レコードはスペースもしくはタブ、もしくはその両方で区切られた、複数のフィールドで構成されています。 フィールドには、フィールド値が二重引用符付きの場合空白文字を含むことができます。 データベース、ユーザもしくはアドレスフィールド内のキーワード(例:allまたはreplication)の一つを引用するとその特別な意味が失われ、その名称のデータベース、ユーザもしくはホストと一致するようになります。

プロセスの再起動

$ sudo service postgresql restart
 * Restarting PostgreSQL 9.6 database server

接続確認

Docker が起動している macOS 側から以下のように接続してみる.

$ docker-compose exec postgresql_client psql -U pgadmin -h 10.0.101.10 -d postgres
Password for user pgadmin:
psql (9.6.16)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.

postgres=#

やったー, 接続出来た!

参考

www.postgresql.jp

www.postgresql.jp

(完)

2020 年 01 月 25 日 (土)

アクティビティ (今までの走行 (歩行) 距離)

https://pixe.la/v1/users/inokappa/graphs/fitbit-activity

Fitibit Charge2 のアクティビティから走行 (歩行) 距離を Fitbit Web API で取得して Pixela で草生やしている. 色が濃くなれば濃くなる程強度が高い (歩行, 走行距離が長い) ということで. 実装の詳細はこちら.

ジョギング

  • 博多 -> 薬院 -> 大濠公園 x 2 周 -> 天神 -> 山王公園 17Km 85min
  • 懸垂 x 8

別大前の一踏ん張り... と言っても今更言っても遅いかな. まあ, 当初はゆっくり走ろうと思ったけど, 刺激をいれたくて頑張った. 明日からは, 軽いジョッグで疲れを抜いていきたい.

右足は相変わらず. 痛みはおさまってきているけど鈍痛は続く.

ギョーム

  • お休み
  • 今週のギョームについて色々とブログにまとめられればなあって考えていたけど無理だった

夕飯

  • 杏仁荘で中華のコース
  • 庶民らしく安いコースにしたけどお腹いっぱいになって大満足

【俺の一行チップス】 Nginx で固定レスポンスを返す (ことを Go の testing パッケージで検証する)

やりたいこと

前回, Nginx で特定のパスにおいて固定のレスポンス (ステータスコード, ボディ) を返す為の設定についてメモったけど, 今回は, これを検証するにあたって Go の testing パッケージでテストコードを書いて検証したお話を少し.

inokara.hateblo.jp

諸注意

動作確認環境は以下の通り.

$ nginx -V
nginx version: nginx/1.15.10
built by gcc 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)
built with OpenSSL 1.1.0j  20 Nov 2018
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.15.10/debian/debuild-base/nginx-1.15.10=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'

$ go version
go version go1.13.6 linux/amd64

やったこと

Nginx の設定

前回の記事を参考にして, こんな感じで設定を書いて /etc/nginx/conf.d/ 以下におくようにした.

server {
    listen 80;
    server_name localhost;
    server_tokens off;

    location /healthcheck {
        access_log off;
    }

    location ~ ^/(foo/*|bar/*|baz/*)/ {
        default_type text/plan;
        return 400 'Bad Request!!!';
    }
}

上記の場合, /foo/xxxxx/bar/xxxxx 等にアクセスした場合, レスポンスコード 400Bad Request!!! というボディを返す! (はず)

Go コードによるテスト

以下にプッシュしております.

github.com

コアとなる部分は以下の箇所.

func runTests(urls []string, t *testing.T) {
    for _, url := range urls {
        t.Run("URL: "+url, func(t *testing.T) {
            // Build Request
            req, _ := http.NewRequest("GET", url, nil)
            // Execute Request
            res, err := executeRequest(req)
            if err != nil {
                t.Fatalf("http.Get: %v", err)
            }
            defer res.Body.Close()

            // Display Test Result
            testResults(res, t)
        })
    }
}

func executeRequest(req *http.Request) (*http.Response, error) {
(略)
}

http.NewRequest でリクエスト型のオブジェクトを生成して, 自分で作った executeRequest 関数に投げています. 例えば, リクエストヘッダに何かヘッダ情報を追加したい場合には, 以下のように書きます.

req.Header.Set("Content-Type", "application/json")

また, 本記事では詳しく触れませんが, リダイレクトの動作検証を行いたい場合, 自分はリダイレクト先まで転送されるかよりも, ステータスコード301 または 302 が返却されるか, Location ヘッダにリダイレクト先の URL が設定されているかを検証したかったので以下のように書きました.

func executeRequest(req *http.Request) (*http.Response, error) {
    client := new(http.Client)
    // Disable redirect following
    client.CheckRedirect = func(req *http.Request, via []*http.Request) error {
        return http.ErrUseLastResponse
    }

(略)

func testRedirectsResults(res *http.Response, target string, t *testing.T) {
    // ステータスコードが 301 で返却されることを確認
    if res.StatusCode != 301 {
        t.Errorf("got %d, want %d", res.StatusCode, 301)
    }

    // レスポンスヘッダの Location に指定した target が定義されていることを確認 
    if res.Header.Get("Location") != target {
        t.Errorf("got %s, want %s", res.Header.Get("Location"), target)
    }
}

上記のように リダイレクトに追従しないコードを書いているのがミソです.

話はだいぶん脱線してしまったけど, 検証を CircleCI で回した結果は下図の通り.

f:id:inokara:20200125092007p:plain

いい感じ.

以上

Go の testing パッケージで Nginx 設定を検証してみた. testing パッケージをはじめ, http パッケージについてもかなり奥深いけど, Bash で動作確認コードを書く感覚で書くことが出来たのので満足. ちゃんとテストコードを書くと以後の変更等も安心して大胆な変更にも対応出来るので良い!

参考

golang.org

qiita.com

(完)

2020 年 01 月 24 日 (金)

アクティビティ (今までの走行 (歩行) 距離)

https://pixe.la/v1/users/inokappa/graphs/fitbit-activity

Fitibit Charge2 のアクティビティから走行 (歩行) 距離を Fitbit Web API で取得して Pixela で草生やしている. 色が濃くなれば濃くなる程強度が高い (歩行, 走行距離が長い) ということで. 実装の詳細はこちら.

ジョギング

  • 山王公園 10Km 50min
  • 懸垂 x 8
  • 往復徒歩通勤
  • (腕立て x 50 + (腹筋 x 50 + 腹筋 x 50)) x 2

ホントに一所懸命走っているのになぜかペースが遅い... 5min/km を切るのがやっとという... 大丈夫かな. 右足については, 林田くんさんに相談したら, 無理は禁物 (出場自体も見直すこともありなのでは) とのこと. ひとまず, 今は出来ること (ストレッチ等) で様子を見る.

ギョーム

  • ウィークリーレポート書いたり
  • 昨日改修した社内システムのテストを書いたり情報の整理をしたり
  • ECS Task Definition に SSM パラメータストアの Secure String 利用するように改修 (Terraform を)
  • 思ったようにキャッシュが効いていない CloudFront がいたので試行錯誤した (結局, あきらめた
  • ECS Optimize AMI の自動更新を実装する為の下調べ
  • PostgreSQL を外部からアクセスする為の調査, 対応 (デフォルトだとローカルホストからの接続のみを受け付ける

夕飯

  • 居酒屋ひろみ
  • 昨晩の手羽先コラーゲンスープに玉子麺を入れてラーメンがとても美味しかった

2020 年 01 月 23 日 (木)

アクティビティ (今までの走行 (歩行) 距離)

https://pixe.la/v1/users/inokappa/graphs/fitbit-activity

Fitibit Charge2 のアクティビティから走行 (歩行) 距離を Fitbit Web API で取得して Pixela で草生やしている. 色が濃くなれば濃くなる程強度が高い (歩行, 走行距離が長い) ということで. 実装の詳細はこちら.

ジョギング

  • 山王公園 10Km 50min
  • 懸垂 x 8
  • 往復徒歩通勤

一所懸命走っているのになぜかペースが遅い... 5min/km を切るのがやっとという... 大丈夫かな. 足は一進一退. やっぱり重いしなんだかなって感じ.

ギョーム

  • ECS Optimized AMI 更新, インフラを AutoScaling に寄せていくことで自動化の礎が出来たと思うので熱が冷めないうちに自動化を進めたいので設計等
  • WordPress コンテナのデグレを発見したので, ECR に push する前に goss でテストを噛ますようにした
  • goss が macOS で動かないのがショックだった
  • 社内システム利用しているサーバーから利用する画像リサイズサーバーを書き始めて帰宅後完成させてリリースした

夕飯

  • 手羽先のコラーゲンスープ (自家製コラーゲンたっぷり鶏手羽スープ) がめちゃくちゃ美味しかった