Docker Desktopのガイドを触る (2:How do I run a container?)

 本記事は、Windows11にインストールしたコンテナ型仮想化環境プラットフォーム「Docker Desktop」のガイド『How do I run a container? 』を確認したメモです。
 Docker Desktopのインストールはこちらの記事で、『What is a container?』のガイドの確認はこちらの記事で実施しています。

 DockerはDockerfileというコンテナイメージの設計図を用いてコンテナイメージを作成できます。Dockerfileには作成元とするイメージの指定やファイルの配置、インストールするソフトなどの情報を記載します。これによって同じ構成のコンテナイメージを複数作成したり、他のDockerエンジン上でも作成することが容易になります。このように、インフラの構成をコード化することをInfrastructure as Code(IaC)といいます。

 今回のガイド『How do I run a container』ではあらかじめ用意されたDockerfileからDockerイメージを作成し、Dockerコンテナを実行するまでを試します。なおDockerfileはGitHubからダウンロードするため、Gitを予めインストールする必要があります。Gitのインストールはこちらの記事を参考にしていただければと幸いです。


◆ ガイド2:How do I run a container? (2023年7月時点)

1.
Docker Desktopの左メニュー「Lerning Center」を選択し、「How do I run a container?」をクリックします。

2.
右側に「Dockerfileとサンプルアプリケーションを利用してDockerイメージを作成することを行いましょう」といったような内容が表示されます。
「Next」ボタンをクリックし、次のステップを見てみましょう。

3.
GitHubからリポジトリを複製します。Gitコマンドが利用できる必要がありますので、Gitをインストールしていない場合はこちらの記事を参考にインストールしてもらえればと思います。
一度、GitHubのURLを確認してみましょう。

4.
GitHubのURLを開くと以下の画像のようになっています。Dockerfileやその他のファイルが存在しています。

5.
表示されている ”git clone” コマンドを「Copy」ボタンでコピーします。

6.
コピーした ”git clone” コマンドを実行し、リポジトリを複製します。
 git clone https://github.com/docker/welcome-to-docker
 ( git clone [複製したいリポジトリ] )

7.
カレントディレクトリ以下に「welcome-to-docker」フォルダができました。

8.
「welcome-to-docker」フォルダ内を参照すると、GitHub上のファイルが複製されていることがわかります。Dockerfileをテキストエディタで開いてみます。

9.
こちらがDockerfileの中身となります。ファイルコピーや必要なソフトウェアのインストール処理を定義していることが見て取れますね。

10.
「Next」ボタンをクリックし、次のステップを見てみましょう。

11.
「DockerfileをIDE(統合開発環境:Visual StudioやEclipseなど)で開いてみましょう。またDockerfileは必要に応じて自分で作成します」といったことが書いてあります。
今回はGitHubから複製したサンプルを利用します。中身としては先程テキストエディタで開いた通りです。そのまま「Next」ボタンをクリックし、次のステップを見てみましょう。

12.
「プロジェクトフォルダでCLI経由で ”docker build” コマンドによりイメージをビルドできる」といったことが書いてあります。
表示されている ”docker build” コマンドを「Copy」ボタンでコピーします。

13.
複製した「welcome-to-docker」フォルダ(リポジトリ)に移動し、コピーした ”docker build” コマンドを実行します。
 docker build -t welcome-to-docker .
 ( docker build -t [作成したイメージの名前] [ビルドコンテキスト(Dockerfileに付随する一連のファイル)のパス] )

14.
DockerfileからDockerイメージがビルドされるまでしばらく待ちます。

15.
ビルドが完了したら、Docker Desktopの画面に戻ります。

16.
「Next」ボタンをクリックし、次のステップを見てみましょう。

17.
「ビルドが完了すると、Imagesメニューにイメージが追加されます。実行アイコンをクリックすることでコンテナを実行できます。オプション設定でポート番号を指定してください。」といったことが書いてあります。

18.
Imagesメニューを開き、今回作成したDockerイメージ「welcome-to-docker」の実行アイコンをクリックします。

19.
「Optional settings」を展開します。

20.
ポート番号を指定します。項番17の説明にて8089番が良いといったことが書いてあったので、「8089」を指定し、「Run」ボタンをクリックします。

21.
Containersメニューに移動し、新たにコンテナが起動します。
右側のガイドにて「Next」ボタンをクリックし、次のステップを見てみましょう。

22.
コンテナが起動したので、フォワーディングされたポートのリンクをクリックしてコンテナが実際に稼働しているか見てみましょう。

23.
以下の画面が出れば成功です。

24.
右側のガイドにて「Next」ボタンをクリックし、次のステップを見てみましょう。

25.
次のガイドとして、「Run Docker Hub images」を勧められますので、次回実施しようと思います。
今日はここまでとします、お疲れさまでした。


◆ 参考文献

【Docker】Dockerfileとは|書き方・コマンド一覧・イメージ作成手順を徹底解説 (di-acc2.com)
Infrastructure as Code(IaC)とは?インフラをコー…|Udemy メディア (benesse.co.jp)
docker build | Docker ドキュメント (matsuand.github.io)
【docker】ビルドコンテキスト(build context)とは? – 自由気ままに書いちゃおう (guri2o1667.work)

Docker Desktopのガイドを触る (1:What is a container?)

 本記事は、Windows11にインストールしたコンテナ型仮想化環境プラットフォーム「Docker Desktop」のガイド『What is a container?』を確認したメモです。
 Docker Desktopのインストールはこちらの記事で実施しています。

 Dockerはコンテナ型仮想化環境プラットフォームです。Dockerコンテナにアクセスする際は、Dockerコンテナが動作するホストマシンの特定ポートとDockerコンテナの特定ポートを紐づける(ポートフォワーディング)ことで、ホストマシンのポートを通してDockerコンテナにアクセスを行います。


◆ ガイド1:What is a container? (2023年7月時点)

1.
Docker Desktopをインストール直後に起動するとこのような画面になり、「What is a container?」「How do I run a container?」「Run Docker Hub images」「Publish your image」の4つのガイドが表示されます。
このガイドは左メニューの「Lerning Center」を選択しても表示されます。
今回は「What is a container?」を選択します。

2.
右側にガイド表示スペースが出てきます。ガイドが表示されるまで少々待ちます。

3.
右側にガイドが表示されました。最初のステップとして「welcomeコンテナを立ち上げたのでまずは見てみましょう。」といったような内容が書かれています。

4.
既に前項の画面キャプチャでも出ていますが、左側のContainersメニューをクリックすると、Docker Desktop上で稼働するコンテナの一覧が表示されます。一覧の中にガイドによって作成されたwelcomeコンテナも存在します。

5.
右側のガイドにて「Next」ボタンをクリックし、次のステップを見てみましょう。

6.
ポート列の「8088:80」をクリックし、シンプルなWebアプリケーションが動作していることを確認しましょう、といった内容が書かれています。
「8088:80」をクリックします。

7.
シンプルなWebアプリケーションが表示されました。URLバーには「localhost:8088」となっています。ホストマシンの8088番ポートにアクセスすることで、これに紐づけられたコンテナの80番ポートにアクセスをしてWebアプリケーションが表示される、といった流れです。

8.
右側のガイドにて「Next」ボタンをクリックし、次のステップを見てみましょう。

9.
Docker Desktop上でコンテナを選択し、コンテナ内のディレクトリ・ファイルを参照することができるようです。
コンテナ一覧のwelcomeコンテナをクリックします。

10.
「Files」タブを選択することで、コンテナ内のディレクトリ・ファイル一覧が参照できます。
右側のガイドにて「Next」ボタンをクリックし、次のステップを見てみましょう。

11.
コンテナは停止アイコンを押すまで動き続けるようです。
画面上部のwelcomeコンテナの停止アイコンをクリックします。

12.
コンテナが停止したら(前項の画面で停止アイコンが灰色になり、実行アイコンが有効になります)、先程の「localhost:8088」にアクセスしてみましょう。停止していることがわかるかと思います。

13.
右側のガイドにて「Next」ボタンをクリックします。

14.
次のガイドとして、「How do I run a container?」を勧められますので、次回実施しようと思います。
今日はここまでとします、お疲れさまでした。


◆ 参考文献

[Docker]Dockerのポート番号とIPアドレスについて | コラム | 東京・千代田区にあるリピート率90%以上の完全独立系ITシステム会社の株式会社ディスタント・ビュー (distant-view.co.jp)

Windows11にDocker Desktop をインストールする

 本記事は、Windows11にコンテナ型仮想化環境プラットフォームであるDocker Desktopをインストールした手順のメモです。

 仮想化とはハードウェアリソース(CPU、メモリ、ディスク等)をソフトウェアで統合・分割し、リソースを有効的に使う技術です。例えばCPU8コア、メモリ32GB、ハードディスク256GBの物理マシンを、CPU4コア、メモリ16GB、ハードディスク128GBに分割した2台の仮想マシンとして使う、などです(実際には物理マシンや仮想化ソフトウェアを管理するOSのリソースを考慮する必要があるかと思います)。

 仮想化には「ハイパーバイザー型」「ホスト型」「コンテナ型」といった種類が存在します。

 「ハイパーバイザー型」は、ハードウェアの上にハイパーバイザーという仮想化基盤が存在し、その上にゲストOS・アプリを合わせた仮想マシンが存在する、というものです。そのうちの1台はハイパーバイザーおよび他の仮想マシンを管理するためのマシンとなります。代表的なハイパーバイザー型仮想化基盤のソフトウェアとしては、WindowsServerに搭載される『Hyper-V』があります。

 「ホスト型」はまずハードウェアの上にホストOSが存在し、ホストOSにインストールされたホスト型仮想化基盤が存在します。その上にゲストOS・アプリを合わせた仮想マシンが存在する、というものです。代表的なホスト型仮想化基盤のソフトウェアとしてはOracleの『VirtualBox』があります。

 「コンテナ型」はまずハードウェアの上にホストOSが存在し、ホストOSにインストールされたコンテナ型仮想化基盤(コンテナエンジン)が存在します、その上にコンテナOS・アプリを合わせたコンテナが存在する、というものです。代表的なコンテナ型仮想化基盤のソフトウェアとして、今回インストールする『Docker』が存在します。

 コンテナ型のメリットは今後DockerDesktopのチュートリアルも記事にしていくので、そこで追々取り上げたいと思いますが、1つのメリットとしてはコンテナOSはホストOSとカーネル機能を共有するため、コンテナOSはカーネルが不要となりリソースを節約できる、作成・起動が早くなるというメリットがあるかと思います。

※ 以上、素人解釈なので間違いあればコメントでご指摘いただけますと幸いです。


◆ Docker Desktopインストール手順 (2023年6月時点)

1.
Dockerの公式サイト(https://www.docker.com/)にアクセスし、「Download Docker Desktop」をクリックします。

2.
インストール用のexeファイルがダウンロードされるので、実行します。

3.
Docker Desktopのインストーラーが起動します。最初に必要なファイルの確認が行われるので、しばらく待ちます。

4.
デスクトップにショートカットを作成したい場合はチェックを入れ、「OK」ボタンをクリックします。

5.
ファイルの展開が行われますので、しばらく待ちます。

6.
インストールが完了しました。「Close and log out」をクリックします。

7.
No.4でチェックを入れていると、以下のショートカットがデスクトップに作成されます。こちらをダブルクリックしてDocker Desktopを起動します。

8.
Docker Desktopのサービスアグリーメントが表示されます。「Accept」ボタンをクリックします。

9.
職種とDockerの利用理由を聞かれますので、それぞれ選択して「Continue」ボタンをクリックします。

10.
以下の画面が出れば起動成功です。お疲れさまでした。


◆ 参考文献

Dockerとは?コンテナ仮想化技術のメリット|Fresopiya

Windows11にGitをインストールする

 本記事は、Windows11に分散型バージョン管理システムであるGitをインストールした手順のメモです。

 バージョン管理システムは、プログラムのソースコードを含むファイルの変更履歴を記録・追跡するシステムです。変更履歴をリポジトリという入れ物で管理し、コミットにより変更履歴を記録します。またブランチという変更履歴を分岐させる機能によって、プログラムの複数の変更を並行して履歴管理ができます。ブランチによって並行して行われた変更は、マージによって一つにまとめることができます。

 リポジトリには集中型と分散型があり、1つのリポジトリに各利用者がアクセスして利用するシステムを集中型、1つの集約用リポジトリからコピーしたリポジトリを主に利用するシステムを分散型といいます。集中型バージョン管理システムは例えばApache Subversionがあり、分散型バージョン管理システムは例えば今回インストールするGitがあります。


※ 以上、素人解釈なので間違いあればコメントでご指摘いただけますと幸いです。


◆ Gitインストール手順 (2023年6月時点)

以下のサイトがインストール中の各選択肢が詳細に説明されていて、非常に参考になります。むしろ正直こちらのサイトを見て頂ければ良いくらいです。
 https://www.curict.com/item/60/60bfe0e.html

インストールまでに行う設定が多いですが、頑張りましょう。

※ 本手順は2023年6月時点のものです。

1.
Gitの公式サイト(https://git-scm.com/)にアクセスし、右下の「Download for Windows」をクリックします。

2.
「64-bit Git for Windows Setup.」リンクをクリックします。

3.
インストール用のexeファイルがダウンロードされるので起動します。

4.
インストーラーが立ち上がり、ライセンスの説明が表示されます。
「Next」ボタンをクリックします。

5.
インストール先を選択します。デフォルトでは ”C:\Program Files\Git” になりますが、そのままで特に問題ないかと思います。
「Next」をクリックします。

6.
インストールするコンポーネントの選択画面となります。デスクトップにアイコンを作成する、日次でのアップデート確認を行うなどはデフォルトではチェックが外れています。今回はそのままデフォルトの状態で「Next」をクリックします。

7.
スタートメニューに表示される際の表示先のフォルダーを指定します。デフォルトではGitフォルダが作成され、その中に格納されます。株のチェックを入れることでフォルダを作成しないこともできるようです。
今回はデフォルトのまま「Next」をクリックします。

8.
テキストエディターの起動を伴うコマンドを実行した際に実行するテキストエディターを指定する画面となります。デフォルトではVimが起動するようになっているようです。
今回はそのまま「Next」をクリックします。

9.
デフォルトのブランチ名を指定します。デフォルトの「Let Git decide」では『master』がデフォルトブランチ名になりますが、変更することも可能のようです。
ここではデフォルトのまま「Next」をクリックします。

10.
環境変数PATHに追加するフォルダを指定します。デフォルトでは「Git from the command line and also from 3rd-party software」が指定されており、最低限コマンドプロンプトやPowrShellでGitコマンドを利用したい場合はこちらが良いようです。

「Use Git from Git Bash only」ではGit BashというアプリケーションでしかGitコマンドを使えず、反対に一番下の「Use Git and optional Unix tools from the Command Prompt」ではいくつか異なる意味で同じコマンド名を持つという重複が発生してしまうようです。

ここではデフォルトのまま「Next」をクリックします。

11.
リポジトリに接続する際に利用するOpenSSHをGitとともにインストールするか、すでにインストールしている場合にそれを使うかを選択します。すでにインストールしているものを使用する場合は、環境変数PATHにパスを追加しておく必要があるようです。
ここでは新たにインストールするために「Use bundled OpenSSH」を選択して「Next」をクリックします。

12.
リポジトリにHTTPSで接続する際のルート証明書を、OpenSSLのものを利用するかWindowsの証明書ストアを利用するかを選択します。独自の証明書を発行、Windows証明書ストアに登録して管理しているような環境で下を選択するようですね。
ここではOpenSSLのものを利用する「Use the OpenSSL library」を選択して「Next」をクリックします。

13.
改行コードを変換するかどうかの選択を行います。CRLFはWindowsで、LFはUNIX系で使われる改行コードで、これをどのように統一するかを選択します。選択肢の上から順に以下のような設定です。
 ① チェックアウト時に ”CRLF改行” 、コミット時に ”LF改行” にそれぞれ統一変換
 ② チェックアウト時はそのまま、コミット時に ”LF改行” にそれぞれ変換
 ③ チェックアウト時、コミット時それぞれ変換しない

ここでは①相当の「Checkout Windows-style, commit Unix-style line endings」を選択して「Next」をクリックします。

14.
Git Bashのターミナルについて、MinTTYというターミナルを使用するかWindowsデフォルトのターミナルを使用するかを選択します。
ここもよくわからないのでデフォルトの「Use MinTTY (the default terminal of MSYS2)」を選択しました。「Next」をクリックします。

15.
”git pull” コマンドを実行した際の挙動を選択します。
私はGit初心者で意味を分かっていないのでとりあえずデフォルトを選びました。意味は追々…。rebaseの意味は以下が参考になりそうです。
 知っていたら実務で最強! git pullとgit pull –rebaseの違い – Qiita

選択後、「Next」をクリックします。

16.
資格情報マネージャーをインストールするかどうかを選択します。リモートリポジトリに接続する際の認証を省けるようです。
インストールするために「Git Credential Manager」を選択して、「Next」をクリックします。

17.
追加オプションの設定有無を確認します。デフォルトでは上の「Enable file system caching」という、Git関連のファイルをキャッシュして動作を高速にするオプションにのみチェックが入っています。下のオプションはシンボリックリンクを利用する場合にチェックを入れるようです。
ここではデフォルトのまま「Next」をクリックします。

18.
実験機能のオプションを利用するかどうかの画面となります。
とりあえず実験機能は入れないまま、「Install」をクリックします。

19.
インストール完了まで待ちます。

20.
インストールが完了したら以下の画面となります。「Finish」をクリックします。

21.
完了画面で「View Release Notes」にチェックを入れていると、Webブラウザが立ち上がり以下のような画面が表示されます。

22.
正常にインストールがされたかを確認します。コマンドプロンプトを開き、以下のバージョン確認コマンドを実行します。バージョンが返されれば成功です。お疲れさまでした。

git -v


◆ 参考文献

WindowsにGitをインストールする手順(2023年07月更新) (curict.com)
知っていたら実務で最強! git pullとgit pull –rebaseの違い – Qiita

Amazon WorkMailの設定

 本記事では、AWS WorkMailという企業向けのEメール・カレンダーのマネージドサービスを利用し、AWS Route53で新規に取得したドメインでメール送受信を行うまでの設定を解説します。
 企業向けのサービスですが個人でも利用可能で、1ユーザ当たり50GBのメールボックスが付いて月額4USDとのことで使いやすいと思います。ユーザはAWS管理コンソールから作成することもできますが、Active DirectoryやAWS Simple ADと連携してユーザを取り込むこともできるようです。
 注意点としては利用できるリージョンに制限があります。利用可能なリージョンは2023年3月現在で「北バージニア」「オレゴン」「アイルランド」の3つとなります。

 また、AWS Lightsailで利用しているドメインではAWS WorkMail設定ができなかったので、今回の記事ではまた新たにAWS Route53でドメイン取得しています。AWS Route53でのドメイン取得はこちらの記事を参考にしていただければと思います。


◆ Amazon WorkMail設定手順 (2023年3月時点)

1.
AWSマネジメントコンソールにアクセスします。リージョンをAmazon WorkMailを利用可能なリージョン(2023年3月現在で「北バージニア」「オレゴン」「アイルランド」のいずれか)を選択してから、Amazon WorkMailサービスを検索してクリックします。

2.
「Create organization」をクリックします。

3.
今回は新規にドメインを取得して設定を行うので、「New Route 53 domain」を選択します。選択をすると画面下部にメッセージが表示されるので、メッセージ中の「Amazon Route 53 console」リンクをクリックします。

4.
Route53のダッシュボードで新規にドメインを取得します。ドメイン取得に関する操作はこちらの記事をご参照ください。今回は .netドメイン を取得しています。

5.
Route53でドメインを取得しました。

6.
本記事手順No.3の画面まで戻ります。こちらの画面で「Existing Route 53 domain」を選択し、『Route 53 hosted zone』にて今回取得したドメインをプルダウンで選択します。

7.
画面を下にスクロールし、『Alias』欄に任意の名前を入力します。追加設定の確認のため、『Advanced settings』をクリックしてみます。

8.
 User directoryについて、ユーザーをWorkMailで管理するか、既存のActive Directoryと連携するかを選択できるようです。ここでは「Create Amazon WorkMail directory」を選択します。
 また暗号化キーについて、Amazonのマネージドキーを利用するか、ユーザーで用意したキーを利用するかを選択できるようです。ここでは「Use Amazon WorkMail managed key」を選択します。
 その後「Create organization」をクリックします。

9.
作成したOrganizationのエイリアス名をクリックします。

10.
画面上部に表示されたメッセージ中の「Manage domains」ボタンをクリックします。

11.
今回取得したドメイン名のリンクをクリックします。

12.
『Improved security』欄にて2つのTXTレコードのStatusが「Missing」となっています。画面上部の「Update all in Route 53」をクリックします。

13.
画面上部に緑色のメッセージが表示されたら更新ボタンをクリックします。その後、『Improved security』欄にて2つのTXTレコードのStatusが「Missing」から「Verified」に更新されていることを確認します。
画面を下にスクロールし、『Improved email delivery』欄のメッセージ中の「Amazon SES」リンクをクリックします。

14.
Amazon SESの画面に遷移するので、画面を下にスクロールします。

15.
『カスタム MAIL FROM ドメイン』欄の「編集」ボタンをクリックします。

16.
「カスタム MAIL FROM ドメインの使用」にチェックを入れ、『MAIL FROM ドメイン』に任意の値を入力します。ここでは”kageroulab.net”に対して”mail.kageroulab.net”というサブドメインを指定しています。また『MX障害時の動作』を選択します。ここでは「デフォルトの MAIL FROM ドメインの使用」を選択しました。設定後、「変更の保存」ボタンをクリックします。

17.
画面上部に「正常に編集されました」という内容のメッセージが表示されることを確認し、画面を下にスクロールします。

18.
『DNSレコードの発行』欄にMXレコードとTXTレコードが表示されています。これをRoute53に追加するため、レコード内容をCSVファイルとして保存します。「.csvレコードセットのダウンロード」リンクをクリックします。

19.
Route53の管理画面に移動します。左メニューで『ホストゾーン』を選択し、ホストゾーン名で今回送信元とするドメイン名をクリックします。

20.
「レコードを作成」ボタンをクリックします。

21.
本手順No.18で確認したレコードを追加していきます。まずは”mail.kageroulab.net”に対するMXレコードを追加します。TTLやルーティングポリシーはデフォルト地としています。編集したら「別のレコードを追加」ボタンをクリックします。

22.
続いて本手順No.18で確認した”mail.kageroulab.net”のTXTレコードを追加します。こちらもTTLとルーティングポリシーはデフォルトです。必要な値を入力したら「レコードを作成」ボタンをクリックします。

23.
レコードが正常に作成された旨のメッセージが表示されることを確認します。

24.
Amazon SESの管理画面に遷移します。左メニューで『検証済みID』を選択し、今回送信元ドメインとして取得した独自ドメイン名のリンクをクリックします。

25.
画面を下にスクロールし、MAIL FROM 設定が「成功」であることを確認します。

26.
Amazon WorkMailの管理画面に移動します。No.13の画面では『Improved email delivery』の文字が赤色でしたが、緑色に変わっていることを確認します。

27.
左メニューで『Users』をクリックし、「Create user」ボタンをクリックします。

28.
『User name』『Display name』を入力します。対象ユーザーが利用するメールアドレスを『Email address』欄に設定します。『Password』を入力し、「Create user」ボタンをクリックします。

29.
ユーザーの作成が成功した旨のメッセージが表示されることを確認します。

30.
『Organization』メニューに移動し、画面下部の『User login』のAmazon WorkMail web applicationのURLをクリックします。

31.
ユーザー名(メールアドレスではありません)とパスワードを入力して「サインイン」をクリックします。

32.
受信メールは『Inbox』に入ってきます。他のメールアドレスから今回設定したメールアドレスに対してメールを送信してみましょう。

33.
メール送信は『New item』>『New email』をクリックします。

34.
送信先メールアドレス、Subject、本文を入力し、「Send」をクリックして正常に送信されれば成功です。お疲れさまでした。

AWS LightsailでWordPress起動 (4:WordPressでSSL対応の設定)

 本手順では、AWS Lightsailで動作しているWordPressにて、SSLに対応するための設定を行う手順です。SSL証明書の設定は、Lightsail用CDNと合わせてこちらの記事で設定していますが、WordPress側でSSL通信に対応しないと、たとえばWordPressの管理者ログイン画面が以下のような画面となってしまいます。

SSL通信においても画面を正常に表示させるために、WordPressの設定ファイルにてSSL通信に対応する設定を行います。こちらのサイト様の手順に則っています。


◆ LightsailのWordPressでSSL対応設定 (2023年2月時点)

1.
AWS Lightsail管理コンソールにアクセスします。Lightsailインスタンスのターミナルアイコンをクリックします。

2.
ターミナルが開きます。以下のコマンドを実行し、カレントディレクトリをWordPressの設定ファイルがあるディレクトリに移動します。

cd /bitnami/wordpress/

3.
続いて以下のコマンドを実行し、所有グループへWordPressの設定ファイル (wp-config.php) に対する書き込み権限を与えます。

chmod g+w wp-config.php

4.
No.3の手順で書き込み権限が与えられたことを確認するには、以下コマンドを実行します。

ls -l wp-config.php

実行結果の最初にて、「-rw-rw—-」となっていればよいです。最初の「-」はファイルを表し、2~4文字目がファイル所有者、5~7文字目がファイル所有グループ、8~10文字目がその他グループが持つ権限を表します。「r」が読み取り、「w」が書き込み、ここにはありませんが「x」が実行を表します。そのためこの場合は、ファイル所有者とファイル所有グループに読み取りと書き込みの権限があることになります。

5.
それでは設定ファイルに対して、SSL設定の追記・変更を行います。ファイル内容の編集のため下記コマンドを入力し、Vimテキストエディタで設定ファイルをを開きます。

vim /bitnami/wordpress/wp-config.php

6.
まずは赤枠内の部分を探します。Vimテキストエディタでは [/] を押すことで検索モードに入ることができます。「/{検索したい文字列}」で対象個所を見つけたら [i] を押してインサートモードに入ります。『http』となっている部分を『https』に変更したら、 [esc] キーを押してインサートモードを抜けます。

7.
続いて、以下赤枠部分を追記します。追記には [i] を押してインサートモードに入ります。追記が完了したら [esc] キーを押してインサートモードを抜け、「:wq」と入力して [Enter] キーを押すことで変更を保存してVimテキストエディタを終了します。

8.
設定ファイルを変更したら、設定読み込みのためにWordPressの入り口となるWebサーバの再起動を、以下のコマンドで行います。

sudo /opt/bitnami/ctlscript.sh restart apache

実行結果に「Restarted apache」と出たら、WordPressを開きなおしてみてください。本記事冒頭のような画面ではなく正常にWordPressが表示されたら成功です。お疲れさまでした。


◆ 参考文献

Lightsail WordPressを常時SSL(https)にする方法 | たこぼ〜log (takoboolog.com)
【 chmod 】 ファイルやディレクトリのアクセス権を変更する | 日経クロステック(xTECH) (nikkei.com)
Linuxの権限確認と変更(chmod)(超初心者向け) – Qiita
【初心者必見】最強エディタVimの使い方/コマンド30種まとめ | 侍エンジニアブログ (sejuku.net)

AWS LightsailでWordPress起動 (3:Lightsail用CDN設定、SSL設定、Route53設定変更)

 本記事は、WordPressが設定されたLightsailにContent Delivery Network(CDN)を設定し、そこにSSL証明書を追加、Route53によるドメイン名の名前解決先をCDNに変更します。

 今まで行った内容は以下の通りです。
LightsailでWordPressの起動からIPアドレスでのアクセス
Route53で新規.comドメインの取得
Route53で取得した.comドメインをLightsailに割り当て

 SSLを設定するにはApplication Load BalancerやAWS CloudFrontが必要になりますが、今回はLightsail用CDNを利用します。Lightsail用CDNはCloudFrontと異なりAWS WAFを有効化できないようなので、AWS WAFによるセキュリティ対策を行いたい場合はCloudFrontを設定いただければと思います(そのうちやりたい)。

※ 設定実施から記事化まで時間を空けてしまったので手順がうろ覚えの部分がございます。ご了承ください。


◆ Lightsail用CDN・SSL設定 (2023年2月時点)

1.
AWS Lightsail用管理コンソールを開きます。AWSマネジメントコンソールから「Lightsail」サービスを選択すると本ページにアクセスできます。
「Networking」をクリックし、「Create distribution」をクリックします。

2.
CDNの配信元となるオリジナルの選択を、「Choose an origin」プルダウンをクリックして選択します。

3.
WordPressの設定されたLightsailインスタンスを選択すると、WordPress向けのキャッシュ配信設定があるようで、これを有効化するのに「Yes, apply」をクリックします。

4.
Lightsailインスタンスを選択します。Lightsailインスタンスに固定IPアドレスを割り当てていた場合は、こちらもoriginの一覧に表示されます。

5.
No.3にてWordPress向けのキャッシュ配信を「Yes, apply」としたので、こちらで「Best for WordPress」になっているようです。

6.
CDNサービスのプランを選択します。月当たりのデータ転送量の上限に応じた金額となっており、超過すると別途追加料金が発生します。ここでは50GB/月(初年度無料、次年度以降 $2.50 USD/月)を選択します。

7.
CDNサービスの管理コンソール上での名前を入力し、「Create distribution」をクリックします。

8.
作成したLightsail用CDNに対してSSLの設定を行います。作成したLightsail用CDNのページにて「Custom domains」をクリックします。

9.
画面を下にスクロールし、「I understand, continue」をクリックします。

10.
「Create certificate」をクリックします。

11.
作成するSSL証明書のLightsail管理コンソール上での名前を入力し、「Continue」をクリックします。

12.
Route53で予め取得したドメインを入力します。ここでは「kageroulab.com」となります。またwww付きの「www.kageroulab.com」も追加し、「Create certificate」をクリックします。

13.
「Continue」をクリックします。

14.
「Attach certificate(1 available)」をクリックします。その下にて、作成したSSL証明書を選択し、「Attach」をクリックします。

15.
「I understand」をクリックします。

16.
AWS Lightsail管理コンソールのトップから「Domains & DNS」をクリックし、今回編集するDNS zoneの名前リンクをクリックします。

17.
「Assignments」をクリックします。
以前の記事で行った、ドメイン名にWordPressのLightsailインスタンスに割り当てた固定IPアドレスが紐づいているので、これを削除します。その後「+ Add assignment」をクリックします。

18.
ドメイン名について取得したドメイン(サブドメインを含まない)を選択し、リソースの指定で作成したLightsail用CDNを選択し、「Save」をクリックします。

19.
Domain assignmentsの一覧に、設定したメインのドメインと作成したLightsail用CDNが紐づいた行が表示されることを確認します。

20.
画面を下にスクロールし、「+ Add assignment」をクリックして、サブドメインを選択、「www.{取得したドメイン}」を指定してLightsail用CDNを紐づけに指定し、「Assign」をクリックします。

21.
メインのドメインとLightsail用CDNの紐づけの下に、「www.{ドメイン名}」とLightsail用CDNの紐づけの行が追加されたことを確認します。

22.
AWS Lightsail管理コンソールのトップに戻り、「Networking」をクリックします。作成したLightsail用CDNの名前リンクをクリックします。

23.
「Custom domains」をクリックします。

24.
画面を下にスクロールし、作成したSSL証明書の「Validation details」を開きます。メインドメインと「www.{ドメイン名}」のそれぞれについて、『Name』『Value』をコピーし、メモ帳にペーストしておきます。後ほどの手順でCNAMEレコードの登録に利用します。

25.
AWS Lightsail管理コンソールのトップに戻り、「Domains & DNS」をクリックします。DNS zonesの、今回設定したドメイン名リンクをクリックします。

26.
「DNS records」をクリックし、「+ Add record」をクリックします。

27.
追加するレコードに「CNAME record」を選択し、No.24で確認したメインドメインの『Name』『Value』の組み合わせをレコードとして登録します。各テキストボックスに入力後、「Save」をクリックします。

28.
No.27と同様に、「www.{ドメイン名}」についての『Name』『Value』をCNAMEレコードとして登録します。

29.
最終的に、メインドメインと「www.{ドメイン名}」それぞれに対するAレコードが1つずつと、CNAMEレコードが1つずつの計4レコードが登録されたことを確認します。

これでAWS Lightsail管理コンソール上の設定は完了です、お疲れさまでした。
ただしWordPress側でSSL通信に対応するための設定が別途必要となりますので、そちらは次回の記事で解説いたします。

AWS LightsailでWordPress起動 (2:Route53で取得したドメインをLightsailに割り当て)

 本記事は、WordPressが設定されたLightsailに対して、Route53で新規に取得した.comドメインを割り当てて、ドメイン名でWordPressにアクセスすることを行います。

 WordPressが設定されたLightsailの構築はこちらの記事で行っています。こちらの記事ではWordPressへのアクセスは、Lightsailに割り当てられた動的IPアドレスで行っています。

 また、Route53での.comドメインの新規取得はこちらの記事で行っています。この記事で構築したLightsailに固定IPアドレスを割り当て、取得した.comドメインについてLightsailの固定IPアドレスを対応させることで、Lightsail上のWordPressにドメイン名でアクセスができます。

※ 設定実施から記事化まで時間を空けてしまったので手順がうろ覚えの部分がございます。ご了承ください。


◆ AWS Lightsailへのドメイン割り当て手順 (2023年2月時点)

1.
AWS Lightsail用管理コンソールを開きます。AWSマネジメントコンソールから「Lightsail」サービスを選択すると本ページにアクセスできます。
「Domains & DNS」をクリックします。

2.
画面を下にスクロール、Domain configuration内のDomain sourceについて「Use a domain that is registered with Amazon Route 53」を選択します。
Route53で取得したドメインが表示されますので、利用したいドメインを選択して最下部の「Create DNS zone」をクリックします。

3.
画面が切り替わり、選択したドメインでのDNS zoneが作成されます。「Go to domain」ボタンをクリックします。

4.
DNSの設定が行われます。

5.
『Assignments』タブを開き、「+ Add assignment」をクリックします。
Select a domain nameにてメインのドメイン名を利用するのか、特定のサブドメインを利用するのか、すべてのサブドメインを利用するのかを選択します。ここではメインドメイン(kageroulab.com)を選択します。
Select a resourceにてドメインを対応させるリソースを選択します。ここではすでに立てていたWordPress設定済みのLightsailインスタンスを選択します。
Select the addressにて「Attach static IP」のリンクをクリックします。

6.
固定IPアドレスをAWS Lightsailコンソール上で管理する上での名前を入力し、「Create and attach」を入力します。

7.
固定IPアドレスの作成が完了したら「Continue」ボタンをクリック後、元の画面で「Assign」をクリックします。

8.
Assignmentの一覧に選択したドメイン及び対応する固定IPアドレス、Lightsailインスタンスが表示されたことを確認します。

9.
『DNS records』タブを開き、A RECORDS欄に選択したドメインと対応する固定IPアドレスが表示されることを確認します。

10.
AWS Lightsail管理コンソールのHome画面に戻り、『Instances』タブを開きます。
作成した固定IPアドレスが設定対象のLightsailインスタンスに割り当てられていることを確認します。

11.

Microsoft EdgeやGoogle Chromeのブラウザにて

http://{設定したドメイン名}

を入力してアクセスします。以下の通りページがでれば成功です。お疲れさまでした!
次回はSSLの有効化と、それに伴うLightsail用のCDN(Content Derivery Network)の設定を行います。

AWS Route53でドメイン取得

 本記事では、AWS Route53にて新規の.comドメインを取得します。

 AWS Route53はAWSが提供するDNSサービスです。ドメインの取得からルーティングの設定、ルーティング先のサービスの正常性確認を行うことができるサービスです。

 こちらの記事にてAWS LightsailでWordPressを公開し、IPアドレスによるアクセスを行っています。このWordPressに対してドメイン名を割り当てる目的で取得しています。


◆ AWS Route53でのドメイン取得手順 (2023年2月時点)

1.
AWSマネジメントコンソールの検索ボックスで「route 53」と検索し、表示される「Route 53」をクリックします。

2.
「ドメインの登録」をクリックします。

3.
取得したいドメイン名を入力、トップレベルドメインを選択し、「チェック」をクリックします。

4.
希望したドメインが取得可能であれば、ステータス欄に利用可能と表示されます。また1年あたりの料金も表示されます。料金はトップレベルドメインによって変わります。取得したい文字列によっても変わるかもしれません。取得したいドメインについて「カートに入れる」をクリックします。

5.
画面右側にカートの内容が表示されます。年数を伸ばしたい場合はこちらで変更できますが、のちの画面で自動更新の有効化もできるので、ここでは1年としました。

6.
画面を下にスクロールし、「続行」をクリックします。

7.
ドメイン登録者の連絡先を入力します。最下部の『プライバシーの保護』については、個人でドメインを取得する場合は「有効化」をした方が良いでしょう。これを行わないとこちらの画面で入力した連絡先や住所がWhois(IPアドレスやドメインの登録者の情報を参照できるサービス)で公開されてしまいます。「有効化」をすることで、Whoisで公開される情報がAWSの情報となり、登録者の住所や電話番号などを晒すことはなくなります。
入力後、「続行」をクリックします。

8.
3つの連絡先について「プライバシー保護済み」となっていることを確認します。

9.
画面を下にスクロールし、ドメインの自動更新について「有効化」または「無効化」を選択します。ここでは「有効化」を選択しました。

10.
『AWSドメイン名の登録契約を読んで同意します』のチェックを入れ、「注文を完了」をクリックします。

11.
『注文が正常に送信されました』のメッセージが表示されたら「閉じる」をクリックします。

12.
「ドメインに移動」をクリックします。

13.
ドメインの登録の最中は以下のような画面になります。しばらくすると画面が切り替わります。

14.
登録が完了するとドメイン名欄がリンクになるので、リンクをクリックします。

15.
ドメイン登録者のメールアドレスが正常であるかの確認が未確認である場合は「ドメインは停止している可能性があります」のメッセージが表示されます。この場合はドメイン登録者の連絡先で指定したメールアドレスに確認メールが届いているはずなので確認します。

16.
以下のような内容のメールが届きます。記載されている確認用URLをクリックします。

17.
確認URLを開いて以下のような画面が表示されれば確認は成功です。

18.
再度手順No.15の画面を開くと、ドメインは停止している旨のメッセージは表示されなくなっているはずです。こちらの画面で『移管のロック』の「有効化」をクリックします。

19.
移管のロックのリクエストが送信された旨のメッセージが表示されれば成功です。

20.
『移管のロック』欄が「有効」となっていれば、ドメイン移管ができないようにロックされた状態となっています。

21.
Whoisでドメイン登録者の連絡先がAWSの情報で秘匿されているか確認します。
ドメイン/IPアドレス サーチ 【whois情報検索】 (cman.jp) にアクセスします。
『グローバルIPアドレスまたはドメイン』に取得したドメインを入力し、制約事項の確認チェックを入れ「管理情報照会実行」をクリックします。

22.
確認結果内の『情報公開URL(Whois)』をクリックします。こちらは取得したドメインのトップレベルドメインによって変わりますので、この場合は「.com」ドメインの例となります。

23.
移動した情報公開URLにて再度ドメイン名を入力して検索を行います。

24.
検索結果で表示されるドメイン登録者の連絡先等の情報として、AWSの情報が表示されていることを確認します。これでドメインの取得・確認は完了です。お疲れさまでした!
次回は取得したドメインをAWS Lightsailに紐づける手順を投稿予定です。

AWS LightsailでWordPress起動 (1:Lightsail起動からIPアドレスでのアクセスまで)

 本記事では、あらかじめWordPressが設定されたAWS Lightsailを起動して、IPアドレス指定によるアクセスまでを行います。

 AWS LightsailはAWSが提供する仮想のプライベートサーバー(VPS)です。仮想サーバーサービスのEC2とは異なり、従量課金ではなく月額固定の料金で利用できます。WordPressやLAMP、Redmineなどがあらかじめ設定されたインスタンスを利用することもできます。
 今回はAWSの東京リージョン・アベイラビリティゾーンA上に、WordPressがあらかじめ設定されたLightsailを起動し、IPアドレスを指定してアクセスするところまでを行います。図示すると以下のような構成になると思います。


◆ AWS LightsailでのWordPress起動手順 (2023年1月時点)

1.
① AWSマネジメントコンソールの右上でリージョンを選択します。
② 検索ボックスで「lightsail」と検索します。
③ 表示されるサービス「Lightsail」をクリックします。

2.
「Let’s get started」をクリックします。

3.
右下でLightsail用コンソールの表示言語を変更できます。
※ 以降の手順も参考画像はEnglishのままでした、ご了承ください。

4.
画面を下にスクロールし、Select a platform欄にて利用するOSを選択します。今回は「Linux/Unix」を選択しました。

5.
画面を下にスクロールし、Select a blueprint欄にて「Apps + OS」を選択し、アプリについては「WordPress」を選択します。

6.
黄緑色背景の部分の文章はWordPressを構成するBitnami・Automatticのライセンスに関する説明書きのようです。
Optional欄の「+ Add launch script」を開いてみます。

7.
先の「+ Add launch script」をクリックして展開された① 欄にシェルスクリプトを記載することで、インスタンスの初回起動時にシェルスクリプトが実行されるようです。インスタンス起動時に必ず入れる設定があるようなプロジェクトでは、インスタンス複製時に役に立つと思われます。今回は特に何も入れないこととします。
② 「Change SSH key pair」をクリックしてみます。

8.
① インスタンスに接続する際のSSH Keyをデフォルトのものから本画面で新たに作成するもの、または自分であらかじめ用意したものへ変更できるようです。今回はDefault keyのままとします。
② 「Enable Automatic Snapshots」のチェックを入れてみます。

9.
スナップショットの取得時間とタイムゾーンを選択します。毎日指定した時刻にスナップショットが取得され、最大7日間保存されます。

10.
金額とスペックを参考に、インスタンスプランを選択します。今回は最も安い「$3.5」のプランを選択します。

11.
① インスタンスの名前を設定し、作成するインスタンス数を入力します。
② 「+ Add key-only tags」をクリックすることで、マネジメントコンソール上でのソートに利用可能なキー値のみのタグを追加できます。また「+ Add key-value tag」をクリックすることで、金額請求にてプロジェクトごとの金額を出したり、アクセス制御に利用可能なキーと値のタグを追加できます。

12.
① Key-only tagsの入力欄、Key-value tagsの入力欄は以下のようになります。Key-value tags の方は複数のKey-valueタグを追加できます。
② 「Create instance」ボタンをクリックします。

13.
インスタンスが作成されます。「Pending」となっている間は起動中ですのでしばらく待ちます。

14.
① 「Running」となれば起動しており、インスタンスにアクセス可能な状態となります。
② コンソールアイコンをクリックするとコンソールが開き、インスタンスを操作できます。
③ グローバルIPアドレスが表示されます。本アドレスでインスタンス(今回はWordPress)にアクセスができます。なおこのIPアドレスは動的IPアドレスとなり、Lightsailインスタンスを再起動するたびにアドレスが変わります。固定IPアドレスの割り当ては、こちらの記事にて行います。

15.
WordPressの管理ページにアクセスするための初期パスワードを確認します。手順No.14の②でコンソールアイコンをクリックすると以下のコンソール画面が開きます。こちらにて以下コマンドを実行します。

cat $HOME/bitnami_application_password

実行して表示される文字列がWordPress管理ページのパスワードとなります。

16.
Microsoft EdgeやGoogle Chromeのブラウザにて

http://{LightsailのグローバルIPアドレス}

を入力してアクセスします。以下のようなページが表示されるはずです。

17.
Microsoft EdgeやGoogle Chromeのブラウザにて

http://{LightsailのグローバルIPアドレス}/wp-login.php

を入力してアクセスします。以下のようなページがでれば成功です。Username of Email Address欄に「user」、Password欄に手順No.15で確認したパスワードを入力し、「Log In」ボタンをクリックします。

18.
以下の通り管理ページが表示されれば成功です、お疲れさまでした!
次回はドメインを取得、DNS設定を行いドメイン名でWordPressにアクセスできるように設定を実施していきましょう。