2018年6月29日金曜日

docker for mac(wordpress)

◾️Docker for Macを導入する
導入方法については、割愛。

◾️wordpress用のディレクトリを作成する。
$ mkdir my_wordpress

$ cd my_wordpress/$ touch docker-compose.yml$ vi docker-compose.yml

◾️ブラウザでhttp://localhost:8000にアクセスする。


◾️wordpress用のdockerファイルを作成する。

############  docker-compose.yml  ##############
version: '3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:
############################################



◾️$ docker-compose up -dを実行することにより
wordpressのコンテナ一式の作成が始まる。


◾️以後、wordpressの設定画面に推移するので
必要な設定を行うこと。

GCP(Memorystore)Redisの設定方法

GCPにて、Redisの設定方法を記述します。


1)Memorystoreを選択する。


2)インスタンス作成を選択。


(1)任意の名称を記載
(2)冗長構成の設定ができる(標準を選択すると冗長構成になる)
(3)ロケーションの指定(任意のロケーションを選択できるが、特に変更してない)
(4)全体のリソースの設定
(5)設定後、作成ボタンを押す。














2018年6月28日木曜日

通信速度を計測できるる6つのコマンド

インターネットの通信速度を計測するコマントどして、以下が取り上げられている。
  • wget - ダウンロードスピードテスト向け
  • wput - アップロードスピードテスト向け
  • axel - 軽量ダウンロードアクセラレータ
  • iperf - ネットワークスループット試験向け
  • speedtest-cli - インターネットスピードテスト
記事では、上記のコマンド以外にもlftpを使って通信速度を計測する方法が紹介されている。その0利用例は次のとおり。

lftpを使ったダウンロードスピードテスト

lftp -e 'pget ダウンロードファイルのURL; exit;'

wgetを使ったダウンロードスピードテスト

wget -O /dev/null ダウンロードファイルのURL

lftpを使ったアップロードスピードテスト

lftp -u ユーザ名 ホスト名 -e 'put ファイルパス; bye'

iperfを使った2ホスト間ネットワークスループットテスト

ホストA
    iperf -s -B ホストAのIPアドレス

ホストB
    iperf -c ホストAのIPアドレス -d -t 60 -i 10

GCP MySQL(冗長構成)の作成方法について

以下、GCPにてMySQL(冗長構成)の生成方法について記載する。


◾️SQLを選択する。


◾️インスタンス作成を選択。



◾️今回は、MySQLを選択する。



◾️今回は、MySQLの本番環境は選択。





◾️MySQLに関する詳細設定を記載していく。

(1)インスタンスID                  [任意の名前の記載]
(2)パスワードを入力する  [任意のパスワードを記載]






◾️MySQL 5.7を選択(基本的に、触る必要無し)

◾️変更ボタンを押すことにより、スペック変更可能となる。





◾️自動バックアップについて

(1)自動バックアップの時間を指定する
(2)デフォルトで名称が記載されているので、触る必要が無い。



◾️以降の項目については、現時点で触れてない。





◾️作成を押す。




◾️作成ボタンを押した後の様子。

(1)作成中の様子1



(2)作成中の様子2




これにて、完成。




2018年6月26日火曜日

GCP Kubernetesにてwordpressの構築を行ってみる。

CGPのkubernetesにてwordpressを構築する方法を記載します。


1)Kubernetes Engine 環境を設定します。

gcloud config set project PROJECT_ID
  ->該当するプロジェクトIDを入力すること!!

gcloud config set compute/zone us-central1-b
       ->対象のゾーンエリアを選ぶ。(今回は、”us-central1-b”を選択


2)クラスタの作成を行う。
大きな処理能力は必要ないので、1 つの g1-small ノードを使ってクラスタを作成します。

gcloud container clusters create hello-world \
    --num-nodes 1 \
    --machine-type g1-small


3)作成が成功したかコマンドで確認してみる。

gcloud compute instances list



4)ポッドの作成
ポッドは管理とネットワーキングを目的に結合されたコンテナのグループです。
ポッドには 1 つのコンテナを含めることも、多数のコンテナを含めることもできます。
この例で必要なコンテナは 1 つだけで、tutum/wordpress イメージを使用して作成します。
このコンテナはポート 80 でコンテンツを提供します。
kubectl run コマンドを使用してポッドを作成します。

kubectl run wordpress --image=tutum/wordpress --port=80


5)外部トラフィックの許可(ロードバランサー)
デフォルトでは、ポッドにはクラスタ内の内部IPからしかアクセスできません。Kubernetes 仮想ネットワークの外部から wordpress コンテナに
アクセスできるようにするには、ポッドをサービスとして公開する必要があります。
kubectl expose コマンドを使用してポッドを公開します。
--type=LoadBalancer フラグを指定して、ポッドがトラフィックを受け付ける
外部 IP を作成します。


kubectl expose deployment wordpress --type=LoadBalancer


<メモ>
ロードバランサが作成されるまでに数分かかることがあります。
kubectl describe を実行すると進行状況を確認できます。

kubectl describe services wordpress


6)新しいウェブサイトの確認
実際の動作を確認するには、前のステップで作成した
外部 IP アドレスにアクセスします。
IP アドレスは、作成したサービスの EXTERNAL-IP 列に表示されます

kubectl get services wordpress





この例では http://EXTERNAL-IP:80 にアクセスします。


◾️作業内容のイメージショット

wordpress(一括管理方法)

1.メインで使用してるwordpressを管理用と位置ずけしてする。
2.管理用と監視対象のwordpressに以下のプラグインを導入する。

◾️管理用Wordpress
MainWPというプラグインを導入

◾️監視対象Wordpress
MainWPChildというプラグインを導入



2018年6月25日月曜日

kubernetes: コンテナイメージにログインする方法

kubernetes: コンテナイメージにログインする方法について記載をする。

1)pod名を確認する。

$ kubectl get pod


2)kubectl execコマンド実行

$ kubectl exec -it <Pod> /bin/bash

GCP Kubernetesクラスタの作成方法(nginx編)

GCPのコンテナオーケストレーションツール「Google Kubernetes Engine(GKE)」を使った
ネットワーク負荷分散のクラスターを作成を行う説明を記載する。


◾️利用リージョンの確認
最初にgcloudのデフォルト値・環境変数を設定を行なっていきます。

1)自分の [プロジェクト ID] を設定し、GCPの [ゾーン] と [リージョン] を選択する
必要があるので、利用可能なリージョン一覧を"Cloud Shell"より実行を行なってみる。

$ gcloud compute regions list



[プロジェクト名]
wordpress-204708
個人で、生成したプロジェクト名

[ゾーン名]
asia-northeast1-a 
”gcloud compute regions list”で、入力したゾーン一覧から選んだ:[a~c] のいずれか任意ゾーンを入力。

選択対象の各ゾーンについては、以下の表を参考にする。

[リージョン名]
asia-northeast1


◾️gcloudのデフォルト値を設定を行う。


$ gcloud config set project wordpress-204708 [プロジェクト名]
$ gcloud config set compute/zone asia-northeast1-a [ゾーン名]
$ gcloud config set compute/region asia-northeast1[リージョン名]
$ gcloud config list

◾️環境変数の設定

1)以下の手順で、環境変数の入力を行っていく。
$ export CLUSTER_NAME="httploadbalancer"

$ export ZONE="asia-northeast1-a" 
上記のデフォルト値で設定した同じゾーン

$ export REGION="asia-northeast1" 
上記のデフォルト値で設定した同じリージョン

[gcloud のデフォルト値] と [環境変数]で設定する値は
ゾーン と リージョンで同じ値にしないと Error になるので注意すること!!


◾️GKEでkubernetesクラスタの作成を行う。
1)例として、「5ノード(5インスタンス)」を起動してみる。

$ gcloud container clusters create networklb --num-nodes 5


Creating cluster networklb...done.という表示が出ると作成が成功になる。

2)kubernetes Engineからclustersを選択する。


3)以下、作成できていることを確認できる。



◾️Kubernetes に nginx をデプロイする

1)以下のコマンドを実行する。
$ kubectl run nginx --image=nginx --replicas=5
上記のように”created”が表示されていることを確認。

2)先ほど、5台のnginxをデプロイできたか確認を行ってみる。
$ kubectl get pods -owide

◾️nginx を 外部に公開する
1)負荷分散トラフィックを 5個のnginx インスタンスに送るネットワーク ロードバランサーを
作成を行います。

$ kubectl expose deployment nginx --port=80 --target-port=80 \
--type=LoadBalancer


◾️ネットワークロードバランサーのアドレスを確認

1)以下のコマンドで、ロードバランサのアドレスを確認してみる。
$ kubectl get service nginx


2)EXTERNAL-IPに表示されているIPアドレスをブラウザで叩いて
下記の表示になれば成功です。


◾️kubernetesの削除方法

以下、手順で上記に作成したkubernetesの削除方法の手順になる。
(同様にコントローパネルからも削除は可能。)
Cloud shellにて、以下のコマンドを実施すること!

1)サービスの削除を行う。
$ kubectl delete service nginx

2)レプリケーションコントローラの削除を行う。
$ kubectl delete deployment nginx

3)クラスターの削除を行う。
$ gcloud container clusters delete networklb

EFS(Dockerfile)の記載について注意

  Dockerfileにefsのマウントパス宛に、ファイルコピーを行うと ECSのサービス作成時に、コンテナのデプロイ失敗に(container run time error)になるので 別経由で、EFSにファイルをコピーした方が良い!! <Dockerfile> ...