AWS WorkSpaces で急造テレワーク環境! 続き1

2020年5月12日

WorkSpacesでVDI環境を急造はできるんだよというのをこの前書いて書いてみた続きです。
というか、今回はかなり長い前置きとなります。

VDIでとりあえずプライベート上から接続できて現場持ち込み環境とほぼ同等の端末は利用可能としてみました。
ただしあくまでも端末で、プライベートな環境でもそれなりに業務を隔離できる作業環境にしかすぎないわけです。

 現場業務と言う視点だとお客の提示するルールにそってデータを扱うと言うことになるので、その範囲で使うえば良いだけです。
 これとは別に自社と言う要素も必要になるわけです。昨今、サイボウズなどのグループウェアなどは当たり前に利用されているわけですが基本的には社内の事務手続きに使われプロジェクトや現場間の情報連携は結局メールに頼るというのが相場なんじゃ無いかと思います。正直、想定外の在宅状態となるとこれかなりキツイんですわ。
 特に突然に前触れもなく経緯もわからず実行指示が飛んで来たり、緊急連絡網が連絡つかずに終了とかあるあるです。電話で伝書鳩してるうちに最後は内容がおかしくなるとか落語か昭和のコミックみたいな話が日本のIT業界ではいまだにあるわけですよ。

 メッセージツールもBYOD前提で有償でSlackやLINE WORKSを導入されていれば事足りるんですが、実際はメール以外は「何それ美味しいの?」とか、平時はデバイス認証やらトークン 配布で貸与端末が利用可能なことを前提にそれ以外はダメ!という環境下で「これからどうする?」という人たちは少なくないはずです。
 なんでそんなになるんだよとか思う人もおられるとは思いますがその辺はいろいろお察しください。

よって本日の前提は事務的なグループウェアとメールが自社インフラのすべてという会社環境の話です。

「安い」と「まずは形だけでも」はこれでOKかなと自己満足的に言ってみます。
では「早い」はの部分はどうするかと言うと、これらは公式からすべてDockerイメージが提供されています。構築は最低限にしたいです。仕組みはデリバリしたら使えると言うのが理想でしょう。
 あとはキモは公式からイメージが提供されていることです。流石に便利にカスタマイズされていても公式外から提供されてるイメージは使うのは好ましく無いです。
 dockerは提供を早く行うために使いますが「まずは形だけでも」なので、Kubernetesとかは使いません。あくまでも単体サーバ上で複数コンテナを稼働させて手早く利用環境を作る のが目的です。
 AWSとかクラウドで使うなら夜間にバックアップとって前日取得時点まで戻れば良いのです。とはいえ、「形だけ」とはいえファイルデータとかいざとなれば救いたいです。

とりあえず、そんな最低限な都合の良いことをAWS上を前提で考えると以下のような構成になるのなかぁと。VPC構成は前回の投稿に図示した物が前提と考えてください。

 接続導線を色分けしてありますが、EC2で稼働するコンテナは提供毎にALBの利用を想定しています。
 うちrocket.chatだけはモバイル端末でも利用することを前提にインターネット接続できるようにします。VPCとVPNすりゃいいとも思いますが極力金をケチる「安い』を考えると機能に応じて絞る方がスモールスタートしやすいと思います。
 プロジェクト共有とファイル共有はWorkSpacesからのみの利用とすることで利用証跡を追いやすくできます。
 SimpleADをWorkSpacesで利用しているので認証は極力、LDAP連携などの機能を利用して認証基盤として利用します。
 dockerのイメージとしてはPostgreSQLやMariaDBのイメージも提供されていますが最低限データ守りたいのでデータストアとしてAmazon RDSに格納するようにします。
 dockerはできうる限りインターフェイスとして利用したいです。一応、ステートレスを考えて、ステートフルは抽象化しないと言う思いです。
 ただしrocket.chartはそもMongoDB利用が前提となっているのと、リアルタイムの情報連携が目的なのでいざと言うときにはリセットされても良いと言う割り切りの元にアプリ/DBとセットでコンテナにします。(※容易じゃなければ難しいことは考えないとも言う)
 

Amazon RDSの利用と同じ考えですが、owncloudのファイル格納先としてはS3を利用します。owncloud自体に連携機能があるのでどうせなら、EBSはケチりましょう。
最初に言っときますけど動きはもっさりです。おせーよ!とか試して怒らないでくださいね。

一応、S3のサーバーアクセスのログ記録ぐらいは証跡としてとってはおきたいので別のバケットを用意してそちら側に出力されるようにしておくようにしようと言う絵です。

と言うことで長い前置きでございます。
とりあえず自分の備忘レベルにはなりますがどんな風に作ったかを紹介したいと思います。