VPCやサブネットについて理解が深まった

午前中は朝活で作業していました。

冗長化サーバーでWordPressの構築やりました。

デプロイまでこぎつけた!

DBの設定方法などがすっぽり抜けいていて

EC2でWordPressがインストールされているAMIを使ったのだけれども

デフォルトでtestDB(MySQL)があって

EC2の中に入ってDB見てみたら「あるじゃん!」ってかんじでした。

VPCやサブネットについて理解が深まった。

インフラのお仕事をはじめて

今まで技術blogとして書いてきたけれども

なかなかお仕事の内容は書けないので

趣味サーバーで試してみたことや

覚えた便利コマンドなど

気をつけて書きたいなあと思いました。

DATADOG/LAMP

麻生区にある王禅寺ふるさと公園で行われていたイベントに行ってきました。

動物のふれあいコーナー目当てです。

ヤギが可愛かったあ🐑


どんすわにDATADOG導入しました。

ひとつのサーバーなら無料プランで入れられるとのことで試してみました。

GUIでメモリ容量やCPU稼働率をパッと見られるの便利ねえ。

CPUやばい。


あとはAWSでLAMP構成の構築やりました。

VPC、サブネットの設定です。

チョコミントココア的なもの

タピオカが入っていたあ。

以前は些細なコマンドを打つのにも怖くてなかなか下調べに時間がかかったのだけれども

最近とりあえずやってみて

うまく行かなければerrorになるし

どんどんやってみようみたいな感じになってきた。

特に趣味サーバーなら、ガンガン遊び倒そうとおもいました。

RDS作成時ポイント、お引っ越し

RDSとは:AWSのDBマネジメントサービスです。

作成時のポイント

  • 作成時になるべく既存のMySQLと近いversionを選ぶようにします。
  • 作成後エンドポイントを控えておくと作業がスムーズです。


EC2インスタンス内でdumpファイルのある

/tmp下に移動し、下記コマンドを実行してインポート。

$ mysql -u [ユーザー名] -p --host [エンドポイント] < backup20191004.sql

オプション解説

--host [エンドポイントなどのホスト名]

RDSの場合はAmazon RDS DBインスタンスのエンドポイント

エンドポイントは、RDSマネジメントコンソールのインスタンス詳細で確認できます。

MySQL DB または MariaDB DB から Amazon RDS MySQL または MariaDB DB インスタンスへのデータのインポート


インポートが完了したらRDSにログインしてみます。

 $ mysql -u [ユーザー名] -p --host [エンドポイント]

DBの一覧を確認して、引っ越しができているか見ます。

mysql> show databases; 


RDSが完成したら向きの指定を変えます。

EC2インスタンス内に入り下記に移動(Apacheなどの設定により違う)

/var/www/html/wp-config.php
 
// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** // 
/** WordPress のためのデータベース名 */ 
define('DB_NAME', '[DB名]'); 


/** MySQL データベースのユーザー名 */ 
define('DB_USER', '[ユーザー名]'); 


/** MySQL データベースのパスワード */ 
define('DB_PASSWORD', '[パスワード]'); 


/** MySQL のホスト名 */ 
define('DB_HOST', '[エンドポイント]'); 

DB名、ユーザー名、パスワード、エンドポイントを書き換えます。

設定をしたら、ブラウザからtest記事を投稿し

反映されているかを試します。

反映されていたらやったあ😃

WordPressのEC2インスタンス内MySQLバックアップ

WordPressのEC2インスタンス内にあるMySQLデータをバックアップします。

MySQLのデータベースをmysqldumpでバックアップ/復元する方法

上記を参考にして進めました。


まずはEC2内に入りエクスポート

$ mysqldump --single-transaction --databases [DB名] -u [ユーザー名] -p > /tmp/backup20191004.sql

オプション解説

--single-transaction

データの整合性を維持する。ワントランザクションで作業を行う設定する

--databases [DB名] 

DB名の指定

-u [ユーザー名] 

ユーザー名の指定

-p

上で指定したユーザー名のパスワードを使用するオプション


dumpファイルを取ることに成功しました!

Next Step

RDSを作成します。

dig

きょうはねえ、午前中ふがいなくて

お昼は泣きながらハンバーグ食べたの😢

でも大先輩のワザをいくつか盗めたので

嬉しくてニヤニヤしたよ。

これつかえるようになったの嬉しいなあ

ってきもち。

$ dig ドメイン名

IPアドレス見れる

$ dig -x IPアドレス

ドメイン名見れる

digれるようになったあ。

digったあとはブラウザのデベロッパーツールから、ネットワークでIPアドレスの確認だよ。


あと、 権限の指つかいかたを完全にマスターした。

「権限多すぎ!」と言われたら600なの。


システム関連ファイルは、デフォルトで設定された権限で実行するのが好ましい

なのでsudoする !


今日の学びはhostsファイルです。

ローカル専用のDNS代替ってかんじ。


Linuxのシステム関連ファイルについて

もっと知りたいなあ。


サーバーの冗長化やロードバランサー、DNSや踏み台についても

週末にLAMP構成で一瞬たててみるやつやりたい。


あれ?というかいま思ったのだけれども

冗長化しているサーバーそれぞれに踏み台経由で入るの

何か作業するにしても片方だけ編集することになってしまうのか。

もし踏み台を置くのならどういった構成が良いのかなあ。

寝ながら考えます。

気絶

sshのコマンドオプション調べていました。

帰宅直後、記憶がないので気絶していたとおもわれます!

まだ二日目だけれども

少しずつ内容や進め方がわかってきて

むむ、楽しいかもしれない

と、おもうようになってきたあ。

ランチで学食つかえるの地味に嬉しい。


Lispのホニャララって本、名前わすれた

Lispだったかな?古い言語だからLispだったはず(ググる)

あっこの気持ちわるい生き物はLispだ!

https://www.amazon.co.jp/計算機プログラムの構造と解釈-ジェラルド・ジェイ-サスマン/dp/489471163X/

ということで見つけました。

計算機プログラムの構造と解釈

いつか読みたいほんのひとつです😀

Dockerfileまとめ

Dockerfileは管理しているリポジトリの.gitと同じ階層につくる 。


Dockerfileを書いてみる – Qiita

(上記サイトから引用)

Dockerfileの具体的な書き方をふむふむした 。

Dockerを使ってLaravel開発環境構築 – Qiita

Laravel開発環境構築につかえそうなDockerfileを探したの 。

FROM php:7.2-fpm 
COPY php.ini /usr/local/etc/php/ 

RUN apt-get update \ 
  && apt-get install -y zlib1g-dev mysql-client \ 
  && docker-php-ext-install zip pdo_mysql 

#Composer install 
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" 
RUN php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" 
RUN php composer-setup.php 
RUN php -r "unlink('composer-setup.php');" 
RUN mv composer.phar /usr/local/bin/composer 

ENV COMPOSER_ALLOW_SUPERUSER 1 

ENV COMPOSER_HOME /composer 

ENV PATH $PATH:/composer/vendor/bin 


WORKDIR /var/www 

RUN composer global require "laravel/installer" 

実際にやってみた

$ mkdir testing 
$ cd testing 
$ vi Dockerfile   # viで上のDockerfileの中身をコピペ 
$ docker build -t [name]:[tag] .   # Docker imageのビルド
Sending build context to Docker daemon 3.072kB
Step 1/14 : FROM php:7.3-alpine
7.3-alpine: Pulling from library/php
9d48c3bd43c5: Pull complete
4bf02c0a37c8: Pull complete
9ce49f939c6f: Pull complete
2fa33c09831c: Pull complete
〜省略〜

※ タグを指定しないとlatestってタグがついちゃう

Docker ドキュメント

↑公式ドキュメントの日本語訳サイト


もうDockerをbuildしたの記憶の彼方で

K8Sのハンズオンも参加はしたけれども、なかなか構築厳しそうだなとおもうの。

AWSのEKSというK8Sのマネージドサービスも

最近までベータ版だったとのことなので、とりあえずDockerfileの復習していました。

初めて

[========> ]

って見たときは、矢印かわいい!って感動したなあ。

ちょっぴりなつかしいの