うえださんがとおりますよ

つれづれに書くよ

AWSだって壊れる

ASCII.jp:「AWSだって壊れる」を前提に考えた可用性向上策、リコー事例講演 (1/2)|事例に厚みが増したAWS Summit 2017レポート

クラウドプラットフォームにサービスを構築すると、もし障害が起きてもAmazonさんやGoogleさんで障害なったら仕方あらへんなぁって言い訳しちゃいたいけれども

この徹底力はすごい。。

css3 チュートリアル

Webデザイナーやデベロッパーの大きな手助けになるCSS3チュートリアル集「10 Pure CSS3 Tutorials And Examples」 | DesignDevelop

あとでやりたい

MySQL/MariaDBのバックアップ

何度も調べてるのでめも

データベース内のすべてのテーブル

$ mysqldump -h host_name -u user_name -p database_name > dumpfile.sql

localhostなら-hオプションは多分いらない

テーブルを指定する場合

mysqldump -h host_name -u user_name -p database_name table1 table2 table3 > dumpfile.sql

圧縮もするなら

$ mysqldump -h host_name -u user_name -p database_name > dumpfile.sql | bzip2 -c > dumpfile.sql.bz2
$ mysqldump -h host_name -u user_name -p database_name > dumpfile.sql | gzip > dumpfile.sql.gz

文字化け時は文字コードの設定をためしてみる

mysqldump --default-character-set=utf8 -u user_name -p database_name > dump.sql

データベースの復元

$ mysql -h host_name -u user_name -p database_name < dumpfile.sql

Googleとキューピーの連携: AI 検査装置

Google Cloud Platform Japan 公式ブログ: キユーピー株式会社の導入事例:キユーピー+ブレインパッドの取り組みで次世代の AI 検査装置を実現!

なんとなくだけど、最近Googleと民間(と書いてから、Googleがネット界のパブリック的な存在となっていることに気づいた)との距離感が近い気がする

AIによる決算速報記事の自動執筆

ASCII.jp:1日1000本の記事を書いた日経の“AI記者”、その基盤にAWS|事例に厚みが増したAWS Summit 2017レポート

この記事の何がすごいかって、社内若手エンジニアたちの雑談から生まれたところ。

特別な研究部門をもっていない会社の、一般的な開発をしているシステムエンジニアだって、実はこれだけのポテンシャルを往々にして秘めてることがある。

業務外のことも自由にやらせる時間を積極的に作ることは、会社の可能性を高めることに繋がりうる。

Googleフォトにアーカイブ機能

Googleフォトにもアーカイブ機能が追加 | juggly.cn

Googleさんにしてはありそうでなかった機能。

結構これ便利だと思う。

Let's Encrypt + nginx + Ubuntu

めも。殴り書き。

Let’s Encrypt

https://letsencrypt.org/

環境

  • Ubuntu 16.04 LTS
  • nginx 1.10.0

一応確認

  • サーバーに対してドメインが振られDNSでの名前解決ができている
  • 80番ポートにアクセスできる

certbotの導入

$ cd /usr/local/bin
$ sudo git clone https://github.com/certbot/certbot
$ cd certbot
$ sudo ./certbot-auto certonly --standalone -t
  • 依存するライブラリを自動でインストールするか途中訊かれるので、yと入力。
  • メールアドレスの入力
  • (A)gree

あとはよくわからないこと聞かれる

Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal.

とりあえずyにした

次に認証させたいドメインの入力

Please enter in your domain name(s) (comma and/or space separated)  (Enter 'c'
to cancel):example.com

cronでの自動更新設定

Let’s Encrypt の証明書の有効期限は3ヶ月のみなので、自動更新できるようにする

下記をnginxの設定ファイルに追記

server {
... 
    location /.well-known/acme-challenge/ { allow all; }
    location / { return 301 https://$host$request_uri; }
...

下記コマンドで証明書の更新ができるか確認

$ sudo ./certbot-auto renew
Saving debug log to /var/log/letsencrypt/letsencrypt.log

-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/example.com.conf
-------------------------------------------------------------------------------
Cert not yet due for renewal

The following certs are not due for renewal yet:
  /etc/letsencrypt/live/example.com/fullchain.pem (skipped)
No renewals were attempted.

認証鍵入れたての場合、上記のように更新はスキップされる(有効期限が一ヶ月未満だと更新されるよう)

この表示が確認できたら、cronに証明書を更新してnginxの設定を再読込する設定を書き込む

$ sudo crontab -e
# 毎月1日の午前3時に更新
0 3 1 * * /usr/local/bin/certbot/certbot-auto renew && /bin/systemctl reload nginx

nginxの設定

以下最低限

server {
    listen 443 ssl;
    ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
}

nginx再起動

$ sudo service nginx restart