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の復習していました。

初めて

[========> ]

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

ちょっぴりなつかしいの

PATH

午前中は転職に必要な書類や準備等のため

市役所、銀行、郵便局、年金事務所とコンプリートしました。

これらを午前中に回りきったの人生初だし、コンプリートと言って差し支えないと思う。

あとズボンの裾直しもしてもらった!


午後はAWSのLoftに行ったのですが

n回目の充電器わすれで

仕方ないので書類を書いたり、ノートのまとめをしたりしつつ軽食をとって離脱。

そのままApple Store渋谷に直行して、持ち運び用の充電器を購入しました。


実行環境のつくりかたを復習しておこうとおもい

PATHを理解して、コマンドの在りかを探してみよう (1/3):“応用力”をつけるためのLinux再入門(8) – @IT

ふむふむしていました。


必要なツールとインストーラを確認したら

そのツールが何でつくられているのか確認して

(だいたいドキュメントよめばわかる)

PATHを通す流れなのだけれども、なんだかイマイチ納得いかない。


たぶん

「サーバとは何か」

「仮想環境とは何か」

っていうのをひたすら調べても

腹の底から納得いかず

「命とは何か」

ってことをひたすら調べる行為なのでは…

って気持ちになったのと

心理構造としては似ているかもしれないとおもいました。


自作OSから自作コンピュータやったら解決できるかなあ。

errorしたら励ましてくれるような

優しいコンピュータを作りたいです。


そして、本日のツボはsleepコマンドです 。

$ sleep 1 

で、1秒コテンって寝てくれるの

素直でとても可愛い 。

未だかつてない完璧さ

午前中はネイルに行ってきました。

短さ、透明感、全てにおいて未だかつてない完璧さ!

やったねえ🙋‍♀️

午後は頭痛で眠っていましたあ。

スタートアップについて話していて

「これは知人の書いた記事だけれども、読んでみてほしい」

と言われ読んでみたの

ソフトウェアエンジニア社長として起業してから会社清算するまでの4年間の振り返り (前編)|池内 孝啓|note

ディティールを詰める技術者の視点と、風呂敷を広げる経営者の視点を単一の人格に同居させることに対する不和が大きかった。

ここ印象的でした。

現実的な二重思考は難しいのだなあと思いました。

あと印象的だったのが

とはいえ開発業務としてインフラからバックエンドとフロントエンドまで、バックオフィス業務としては経理や行政手続など、その他、名刺制作やブランドデザインなどを実際に手を動かして遂行できたことはとてもよい経験でした。

何でもやるのすごいなあ。

今後、どうしていきたいのかなあと考えるときに

技術面や働き方はもちろん

10年20年先の長期的な目標もあれば

見通しが立つなあとおもったの。


週末の勉強会は、様々な立場のエンジニア職の方と対等に話せるので

先人の成功談から失敗談までを聞けるのとても身になるなあと思いました。


正直なところ今は目先の不安が大きくて

エンジニア職として働くことにはなったけれども

働き出して急に辛くなってしまったらどうしようだとか

考えてもしかたない穴に落ちるので

健康第一でがんばろうとおもいます。

LT記念日

PORTのもくもく会に参加してきました。

ほぼランチからの参加でした。


お気に入りの変な人いました!やったねえ


みそぴ磁石のルービックキューブ触らせてくれた

動きの滑らかさに感動したあ。


超絶美女と仲良くなりました、笑 わーい


ランチタイムは

「どうやって就活したのか」

などについて話しました。

就活の流れや、それにともなった技術的な勉強の進め方も

まとめられたらいいなあ。


初めてLT(Lightning Talks)をしました。

簡単な発表なのだけれども

内容は昨日あげたスライドをそのまま使いました。

反応が良く、質問もたくさん出てくれたので嬉しかったです。

いくつか質問をピックアップしてまとめました。

本日のもくもく会では

主にAWS CLIの設定をしたので書きます。

$ aws --version 
-bash: aws: command not found 

AWSコマンドの設定しないと!

AWS CLI の設定

$ ls ~/Library/Python/3.7/bin
 $ vi ~/.bash_profile
 export PATH=~/Library/Python/3.7/bin:$PATH

↑を追記

設定ファイルと認証情報ファイル

頻繁に利用される構成設定および認証情報を AWS CLI が維持するファイルに保存することができます。

 $ vi ~/.aws/credentials
 
[default] 
aws_access_key_id=ひみつ 
aws_secret_access_key=ひみつ 
 $ vi ~/.aws/config
 
[default] 
region=us-west-2 
output=json 

awsコマンド使えるようになっているかなあ

$ aws --version 
aws-cli/1.16.248 Python/3.7.4 Darwin/17.7.0 botocore/1.12.238 

わーい、できた\( ˆoˆ )/

わすれずドヤ顔です。