試すこと
今回試してみたいのは、AWSのディレクトリサービスの1つ、AD ConnectorをなんちゃってVPN接続で利用できるのかを試してみたいと思います。
一部調査中
コスト
いままで同じように極力コストをかけずに、試してみたいと思います。目指せ1ヶ月1$以内。
1月はNATやらVPNやらでEC2インスタンスやVPCから外向きの通信が発生したため、若干料金があがってきていますが、まだ1$以内をキープできています。
AD Connectorの料金は、公式より、東京リージョンでスモールを利用する場合、1時間あたり0.08USDとなっています。(https://aws.amazon.com/jp/directoryservice/other-directories-pricing/)
1ヶ月あたり13時間使用してしまうと、私の予算を超過します。
ある程度方針を決めてから設定をすることにします。
どんな設定が必要か
マネジメントコンソールで、Directory Service > ディレクトリ > ディレクトリセットアップと先に設定画面を確認してみます。
VPCとサブネットが2つ必要なようです。サブネットは指定しない場合、AD Connector作成時にAWSが自動的に作成するようです。
こちらはActiveDirectoryの情報を入力すれば良さそうです。
構成
- ローカルとAWSの接続部分は以前に使用したSoftetherによるVPN接続を利用します
- Private subnet3を新たに追加しますが、ローカルへのルートは設定しません
- Private subnet3にWindowsのEC2インスタンスを起動し、AD connector経由でドメインに参加をトライします
実際に設定
やってみます。
EC2のWindows Server用のロールを作成します。以下のポリシーをアタッチします。
ポリシー | 理由 |
---|---|
AmazonSSMManagedInstanceCore | セッションマネージャを使用するため |
AmazonSSMDirectoryServiceAccess | ディレクトリサービスにアクセスするため |
VPNServerを有効化します。ローカルとAWSを接続します。
あれ? 無料枠あるの?
どうやら初めてDirectoryサービスを利用する場合30日間の無料枠が適用されるみたいです。
では安心して作成できますね。
ActiveDirectoryサーバのDNSへの通信ができていないようです。
原因判明、再設定
あれこれ調べました。
原因わかりました。セキュリティグループの設定が正しくなかったため、AD Connectorからローカル側へ通信ができない状態でした。単純なミスです。。。
気を取り直して再開したところ、無事「アクティブ」になりました。
詳細情報を確認すると、AD Connectorに設定した2つのサブネットにIPアドレスが割り振られています。
EC2サーバでドメイン参加
では、EC2サーバ(Windows)をドメインに参加させてみます。
マネジメントコンソールからEC2インスタンスを起動していきます。
予定どおりprivate subnet 3のネットワークに配置します。
AD Connectorで接続したドメインが選択できるようになっています!
IAMインスタンスプロファイルをWindowsサーバ用に準備したロールに設定します。
起動前に、どうせ一瞬しか起動しないので、より安価なスポットインスタンにしておこうとしましたが、スポットインスタンスはドメイン統合には対応していないというエラーになりました。
通常インスタンスで起動しました。
さっそく、ローカルのADのユーザーとコンピュータで、「Computers」を見てみたのですが、EC2サーバがドメイン参加した形跡はありません。
原因推測
* ドメイン参加はSSMによって自動実行される
* EC2のSSM AgentがSSMのサービスエンドポイントへ接続する必要がある
* 現状の構成では、private subnetからインターネットへの通信を許可していない
Cloudtrailのイベント履歴ではドメイン参加ドキュメントが関連づけられたところまで確認できたので、後はNATインスタンスを起動し、private subnet3内のEC2のSSM agentがインターネット上のエンドポイントに接続すれば、ドメイン参加処理が実行されると思います。
SSMエージェントを接続できる状態にして、SSMドキュメントを手動で実行してもエラー
at Amazon.EC2Services.Config.Plugins.DomainJoin.Ec2SDomainJoin.CreateComputer(DomainJoinDto domainJoinDto, String desiredComputerName, String accountCreationPassword)
Domain join failed with exception: Domain Join failed, ComputerName:EC2AMAZ-890IUOF; Message:Could not create computer. RequestId: d71fc500-dbbc-4451-98f9-de7a5af4075b : RequestId: d71fc500-dbbc-4451-98f9-de7a5af4075b; ErrorCode:InvalidParameterException; ErrorType:Amazon.DirectoryService.Model.InvalidParameterException; StatusCode:BadRequest
exit status 1
まとめ
なんちゃってのVPN環境でもネットワーク設定を正しく行えば、AD Connectorは利用可能であることが確認できました。初めての利用の場合は30日間の無料枠があるので、その間にドメイン参加や他のAWSのサービスでのディレクトリサービス利用を試してみようと思います。