我が家の開発環境公開

# 概要
　人に説明する時に口で説明するのが面倒になったので、書きます。

# 開発環境概要
　思ってたよりひどかった・・・(;^_^A
　セキュリティは、たぶん普通の会社より高いと思います。

　今後は、信用できる人にも証明書を配って、一緒に勉強や開発していけたらな・・・と思っています(予定)。

## 全体概要
![AWS Design (updated) (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/0f7ad988-9c5d-708e-72f7-e9851267638f.png)

　勉強と検証用の環境で、外に公開はしていませんが、今後はそういう環境も作っていこうかなと思っています。
　というか、今まで主に家のVMの中でやってきたので、これまではあまり考えていませんでした。

　最近はAWSの勉強中なので、AWS環境があります。
　とはいえ、主な開発環境は家の「VMware Workstation Pro15」です。
　起動するVMはその時々で変わります。

　AWSやVPSとつなぐ際は、OpenVPN個別もしくはルーターとつなぎます。
　書ききれないので、表現できていませんが、VPN環境は複数あります。

## AWS環境
![AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/2fbb401d-6b66-92e7-4175-a816639d45eb.png)
　AWSはリファレンス通りAvailavblity Zoneを分け、EFSの中にコンフィグなどの共用ファイルを置いて、各インスタンスからはシンボリックリンクでアクセスしています。
　VPCのアクセスリストと各セキュリティグループで外とはOpenVPNのインスタンスとのVPN通信しか許可していないので、セキュアに開発できます。

### VPN
　Ubuntu18.0.4にOpenVPNをインストールしてサーバ兼ルータになっています。
　インスタンスは2つ書いてありますが、実は片方は節約の為、1台は常に落としています。
　いわゆるACt/Stb構成ですね。
　ヘルスチェックとLambdaを使って、一方のステータスが「stopped」になるともう一台が立ち上がるようになっています。

　VPCから外に出るすべての通信は、OpenVPNインスタンスのEth1を通ります。

　NAT Gatewayは高いので、最初しか使っていません。
　・・・貧乏なので(;^ω^)
　メリットもあって、こうするとVPNで割り当てられたプライベートIPアドレスを使ってPrivate subnet内のインスタンスへも直接SSH接続もできるし、ApacheやNginxも外に公開することなく動作確認できます。

　構築方法はこちら↓
　https://qiita.com/SSMU3/items/d7313eac99bb76fda047

### DNS
　Public host zoneとPrivate host zoneに同じドメイン、同じホスト名を割り当てることで、VPCの中と外で同じホスト名を使いつつ、Private IPとPubulic IPの使い分けが可能です。
　やり方はこちらに書いてあります。
　https://qiita.com/SSMU3/items/54e6ec483626c0cbb1a9

### LightSail
　データ転送料金がEC2より安いので、気になるものはここで構築してAMIをEC2に移設したりします。

## 自宅環境
![MyHome.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/400941/91898c26-9f11-81af-0fa7-63def19a2df8.png)

### VMWare
　主にここにいろいろインストールして、いろいろ開発・検証します。
　で、めどがついたものをAWSに移設して、実際に構築します。
　Qiitaに載せるのは、この段階の作業ですね。

### VPN Router
　個別にOpenVPNをインストールしてアドレスを割り当てて使うこともありますが、通常はVPNルーターごしにAWSや他のVPSと接続し、その中でSSHなどでログインします。
　こういう↓安いの使っています。
　https://qiita.com/SSMU3/items/d7313eac99bb76fda047

### Sophos
　Sophosのライセンスは個人無料ということで、工業用ベアボーンにインストールして自宅ルータにしています。
　高機能すぎて使いこなせていません。

　家のIOT機器はここのF/Wで変な通信をしていないか監視していますが・・・
　明らかにオーバースペックです(;^_^A

↓ここから買えます。
　https://www.amazon.co.jp/XCY-Celeron-J1900%E3%83%99%E3%82%A2%E3%83%9C%E3%83%BC%E3%83%B3%EF%BC%882Ghz-%E3%82%AF%E3%82%A2%E3%83%83%E3%83%89%E3%82%B3%E3%82%A2-%E3%82%AE%E3%82%AC%E3%83%93%E3%83%83%E3%83%88LAN/dp/B06X16NPVQ/ref=pd_sbs_147_2/356-0087953-2350210?_encoding=UTF8&pd_rd_i=B06X16NPVQ&pd_rd_r=b3a0d0dd-c830-4f43-8b82-5804f4f2b208&pd_rd_w=8gCOv&pd_rd_wg=3fUjs&pf_rd_p=ad2ea29d-ea11-483c-9db2-6b5875bb9b73&pf_rd_r=KA4H30Y9KAM4AFW4NYSG&psc=1&refRID=KA4H30Y9KAM4AFW4NYSG

### Amazon Echo
　説明はいらないかと思いますが。
　書いてはいませんが、Echo Spotもあって、実家や親戚の家にも同じものを置いてあります。

　普段はテレビ電話をする用途ですが、いざとなれば病気などで倒れて立ち上がれないような状況になっても、「〇〇さんを呼んで」と呼びかけるだけでかけるだけでヘルプを求めることができます。

### IKEA Tradfri/Philips hue hub
　説明不要ですね。Echoで家の照明を操作します。
　他にも、家のVMwareの入ったワークステーションの電源を遠隔で操作する為のスマートプラグや、エアコンを操作する赤外線ホームハブなんかもありますが、割愛します。

### Raspberry pi
　IOT勉強用です。

### NotePC
　外から作業する場合は、データ転送量のかからない別のVPS上に構築したVPNから自宅にアクセスします。
　その場合は、VMwareへはSophos経由になります。
　これで安心してリモートワークできますね(^^♪

　・・・ここが自宅なんですが(;^ω^)

# 雑記
　よく、個人の環境じゃない、と言われますが、書いてみると・・・
　うん、確かに('◇')ゞ

　人がこんな環境作ってたら、馬鹿じゃないの？て思いますよね・・・はい、馬鹿です(;'∀')

# 気が付いたこと
　私は、
　・Amazon定期おとく便で食料や洗剤を買っています。
　・Amazon Echoを活用して、家の操作しまくっています。
　・本や参考書はkindleを利用しています。
　・AWSの勉強をしています。
　・仕事はオンプレからAWSへの移行作業をしています。
　※2019年9月末時点

　どんだけ、Amazon様に依存しているんだか(;'∀')
　ジェフ・ベゾスの肖像画かなんか、家の目立つところに飾っておけば完璧なAmazon信者ですね。
　試される忠誠心！！北●鮮なんか目じゃない！