AWS でドメインをいろいろと

ムームードメインで取得したドメインを AWS の Route 53 で管理する。

Hosted Zone の作成

まず、Route 53 でゾーンをつくる。Route 53 のダッシュボードで「Hosted Zones」をクリック。「Create Hosted Zone」をクリックする。

Domain Name
使うドメイン名
Comment
適当なコメント
Type
Public Hosted Zone

と入力し、「Create」をクリック。NS レコードと SOA レコードがつくられる。NS レコードの Value をメモ。

ムームードメインの設定変更

ログインして、左側メニューのドメイン管理→ドメイン操作の中にある「ネームサーバ設定変更」をクリック。変更するドメインの「ネームサーバ設定変更」をクリックする。
「GMOペパボ以外 のネームサーバを使用する」を選択して、表示されたネームサーバ1~4に NS レコードのメモしたネームサーバを入力する。入力後、「ネームサーバ設定変更」をクリック。確認のポップアップで処理を承認する。
ネームサーバの設定を変更しましたが表示されたら完了。

ここまでで、とりあえずベースの設定が完了。あとは必要なレコードを Route 53 に登録していく。

curl コマンド

古い API の動作確認をするので、curl の使い方をメモしておく。

$ curl [opts] [url]

基本はこんな感じ。

オプション

$ curl -X <メソッド>

HTTP のメソッドを指定。デフォルトは GET。POST だとか PUT だとか DELETE だとかを指定する。

$ curl --data-urlencode <データ>

URL エンコードしてデータを送るとき(Content-Type が application/x-www-form-urlencoded のとき)に使う。

他にもあれば追加しよう。

早めにやりたいこと ~ VVV、node.js と npm、postfix と dovecot など

やりたいことが溜まってきた。

Varying Vagrant Vagrants

VVV と呼ばれているもの。WordPress をちゃんといぢれるようにならなければ。

node.js と npm

まだ node.js を使いこなせているとは言えない。node モジュールをつくるとかもきちんとできるように。

postfix と dovecot

複数のドメインを収容するメールサーバを。

とりあえず、忘れないように。そして、自分を追い込む。(笑)

nodist

新しいノート PC の環境を整えているが、node.js をどう設定してよいか調べてみた。

nodist というのが結構使われているという感じだった。Ubuntu とか MacOS なら anyenv でやっていたのだけれど、Windows だけ違うというのが今ひとつだけど、扱いやすく情報が多いのが良い。

ということで、ここからダウンロードして、インストールする(今は v0.8.8 だった)。
デフォルトでは C:\Program Files (x86)\nodist にインストールするようになっていたが、いろいろなバージョンが入るはずなので、C:\nodist に入れる。で、実行すると 7.2.1 が入っているらしい。

> nodist
(x64)
> 7.2.1 (global: v7.2.1)

最初は 7.2.1 が入っているようだ。

>nodist dist

上記で、インストールできるバージョンを一覧表示。目的は Lambda の開発なので、8.10 6.10.3 4.3.2 あたりをインストールしておく。デフォルトは 6.10.3 にしよう。

> nodist + 4.3.2
> nodist + 6.10.3
> nodist + 8.10.0
> nodist 6.10.3

で設定。

あとはいろいろ使って覚えていく。

Windows の PackageManagement

新しいノート PC に諸々のソフトウェアをインストールするのに PackageManagement を使ってみる。

PowerShell で操作するが、「管理者」で立ち上げる必要がある。

Set-ExecutionPolicy RemoteSigned -Scope Process を実行して、ローカルのスクリプトと、リモートなら署名されているスクリプトを実行できるようにする。

Find-PackageProvider でパッケージプロバイダの一覧。Get-PackageProvider で設定済みのパッケージプロバイダ一覧。この操作中に nuget というプロバイダを入れろと言われたので追加した。
Find-Package -Name Firefox すると、そんなのないと言われる。

あと、chocolatey というプロバイダを追加する。Install-PackageProvider ChocolateyGet で追加。chocolatey の方は使わない方が良いようです。途中で、

Choco.exe is required to continue
ChocolateyGet is built on Choco.exe. Do you want ChocolateyGet to install Choco.exe from
‘https://chocolatey.org/install.ps1’ now?
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は “Y”): y

と聞かれたので Y で進めた。
これで Find-Package -Name Firefox でちゃんと情報が出るようになる。

実際にインストールを行う。

> Find-Package -Name “*chrome*” -Provider ChocolateyGet

Name Version Source Summary
—- ——- —— ——-
GoogleChrome 66.0.3359.18100 https://www.c…
chromium 66.0.3359.181 https://www.c…
google-chrome-x64 47.0.2526.81 https://www.c…
adblockpluschrome 1.12.4 https://www.c…
selenium-chrome-driver 2.38 https://www.c…
<SNIP!>
secureshell-chrome 0.8.43 https://www.c…
google-play-music-chrome 1.390.0 https://www.c…
windows-defender-browser-pr… 1.62 https://www.c…
chrome-remote-desktop-host 1.0 https://www.c…
dropbox-for-gmail-chrome 1.1.6 https://www.c…

たくさん出てきたが、GoogleChrome を入れてみる。

> Install-Package -Name GoogleChrome -Provider ChocolateyGet

パッケージは、信頼済みとマークされていないパッケージ ソースから取得されています。
‘https://www.chocolatey.org’ からソフトウェアをアンインストールしますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は “N”): y

Are you sure you want to perform this action?
Installing package ‘GoogleChrome’. By Installing you accept licenses for the package(s). The package possibly needs to
run ‘chocolateyInstall.ps1’.
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は “Y”): y

Name Version Source Summary
—- ——- —— ——-
GoogleChrome v66.0.3359.18100 https://www.c…

完了。スタートメニューにも追加されている。大丈夫みたいだ。

入れたものリスト

  • GoogleChrome
  • jdk8
  • 7zip.install
  • git.install
  • skype
  • adobereader
  • firefox
  • XnViewMP.install

AWS Cloudfront のキャッシュ生存期間を変更する

AWS Cloudfront のキャッシュの生存期間を変更する。

CloudFront Distributions から Distribution をクリックして、開いた画面で Behaviors タブを選択。Create Behavior をクリックして開いた画面で設定を作成する。

この画面の、Path Pattern と Object Caching と Minimum TTL、Maximum TLL、Default TTL を設定する。

Path Pattern は「hoge/*」の場合、s3 object の key が「hoge/」で始まるものに対しての設定になる。例えば「hoge/fuga/image.png」など。

Object Caching を Customize にして Minimum TTL・Maximum TLL・Default TTL を設定する。300 と入力すると 300 秒で 5 分。

注意点としては、Behavior の並び順。上から評価されて、最初にかかったものが適用されるようである。

AWS Simple Email Service でメールを受信してみる

AWS のドキュメント(Receiving Email with Amazon SES)を読みながら Simple Email Service (SES) でのメール受信を試してみた。

ドキュメントを自分のドメインに置き換えて進めていくが、Step 3: Set up a Receipt Rule の中で、キャプションが「Create a Receipt Rule」とあったが、実際は「Create Rule」という違いがあった。catchall みたいなことをするということが書かれていたので、画面が違うのかとちょっと迷った。

とりあえず、catchall と適当なアドレスを設定して試してみたが、ちゃんと S3 に保存された。

準備 OK!

Let’s Encrypt を使う

Let’s Encrypt で証明書を入手した。手順等を諸々。

まず、ACME という仕組みでサーバとやり取りして証明書を入手する(らしい)ので、その準備。certbot が特定のディレクトリにファイルを格納して、サーバ側はそのファイルを取得する。OK なら certbot に証明書を送ってくるので、それを保存する、というのが流れ(らしい)。

複数のドメインを格納するので、Let’s Encrypt 用の設定ファイルをつくっておく。

root で指定しているのがサーバがアクセスしてくるパス。
サイトの設定ファイル(sites-avalable の中のファイル)も編集。

letsencrypt.conf を include している。他のドメインも同様に設定してやって、

$ sudo apt install certbot
$ sudo certbot certonly --webroot -w /path/to/letsencrypt -d develop.hoge.com -d fuga.com -d www.fuga.com

これで証明書が取得される。以下のような出力があるはず。

IMPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/develop.hoge.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/develop.hoge.com/privkey.pem
Your cert will expire on 2018-08-19. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
“certbot renew”
– 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.
– If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

https の設定は、サイトの設定ファイルに。

必要そうな部分はこんなものでしょうか。TLS を受け付けないようにしている(つもり)。

あとは crontab で自動で更新させる。週 1 回確認。root の crontab に書いた(つもり)。

ちなみに sudo /usr/bin/certbot renew --dry-run で更新はせずに動作チェックできる。

参考:コマンド解説

nginx + php-fpm 上で WordPress のパーマリンクを使う

WordPress の設定が多分終わった。

Ubuntu 18.04 上で、nginx, php7.2-fpm, mysql-server はパッケージをそのまま使っている。

try_files が 2 回あるだとかいろいろ言われたので「include snippets/fastcgi-php.conf;」の行をコメントアウトして、中身をこちらに移植した。多分動いている。