Amazon WorkSpacesでアプリケーション開発

この記事は公開されてから半年以上経過しています。情報が古い可能性がありますので、ご注意ください。

概要

ここ数週間、Amazon WorkSpacesで開発も含め全ての業務を行っております。

最近、WorkSpacesをいろいろな会社が全社で導入というような話も聞いていたので、抵抗はなかったのですが、
WorkSpacesを使用しての開発事例があまりWebにないので、そこら辺が心配でした。

だがしかし、結論からいうと
めちゃくちゃ快適です!

使用しているスペックは以下です。

バンドル 月額料金 ハードウェア構成
スタンダード 47 USD 2 vCPU、4 GiB メモリ、80 GB ルートボリュームストレージ、50 GB ユーザーストレージ

社内システムにアクセスする都合上、IPアドレスがあると便利なのでNATゲートウェイを作成し、そこにEIPをつけました。
そうすることで、同じVPC内のWorkspacesは、社内システムにアクセスできるようになります。
下記を参考にNATゲートウェイをセットアップしました。
Simple AD ディレクトリの NAT ゲートウェイ

開発時は、EC2インスタンスとWorkspacesをマウントし、エディタはIntelliJ IDEAを使用し開発しています。
JetBrains系のIDE(IntelliJ, PhpStormなど)は、ネットワークマウントを推奨していません(おそらく速度が遅くなるため)。
主にSymfony2を使用して開発しています、Symfony2はそこそこヘビーなフレームワークだと思いますが、開発していて速度に問題は感じないです。

以下、注意事項やハマった部分を書いていきます。

注意事項

Workspacesを使用していて、絶対にやってはいけないことがあります。
それはイーサネット2を無効にすることです。
ネットワークに問題が生じた際、アダプタをリセットすると直ることがあるので、一回無効にしました。
次の瞬間、Workspacesが操作できなくなりました…
実はイーサネット2はクライアントがWorkspacesを操作するためのネットワークだったのです。
この後、コンソールからWorkspacesを再起動しても何をしてもログインできなくなってしまったので、
結局、Workspacesを作り直すことで対処しました。幸い、まだ何もセットアップしてなかったので助かりましたが…

ハマったところ

PHPでステップ実行でデバックしたい時、IntelliJでXdebugを使用しています。
Xdebugを使用するためには、PHPが動いているサーバーからIDEを開いているクライアントに通信しなければいけません。
以下の図がわかりやすいです。
PhpStorm から Vagrant VM の PHP アプリケーションをリモートデバッグする(Web & CLI)

私の場合、サーバーがEC2でクライアントがWorkspacesです。
Xdebugを設定した後、実際にXdebugを動かしてみると、EC2からWorkspacesに繋がらない。
逆方向はつながるので、WorkspacesのファイアーウォールでXdebugで使用するポートを明示的に開放しても全く繋がらないと
頭を抱えていたところに、最近ネットワーク周りでずっと助けてもらっている辻先輩が一言。
「WorkspacesのNICのセキュリティーグループってどうなってます?」

今までNICにセキュリティーグループがあることすら知らなかった私は、WorkspacesのNICのセキュリティーグループを見ました。
見たらなんとインバウンドに何も設定されていなかったのです!
インバウンドを設定したら無事Xdebugが動きました。

まとめ

今のところ、Amazon WorkSpacesを普通の物理マシンと遜色なく使用できています。
みなさんも是非使ってみてください!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.