AWS NATインスタンス,NATゲートウェイ,AWS Systems Manager

AWS NATインスタンス,NATゲートウェイ,AWS Systems Manager

NAT(Network Address Translation)インスタンスを使用して、プライベートサブネット上に存在するEC2インスタンスがインターネットにアクセスできるようにすることができます。

今までそんな構成を作っていました。「AWS VPC上のパブリックサブネット内にNATインスタンスを作成する

NATインスタンスの実体はEC2なので、料金が高いです。その変わりなのか知りませんがNATゲートウェイという機能が出てきました。

NATゲートウェイもNetwork Address Translationなので、NATインスタンスと役割は同じです。

役割が同じなのでEIPと紐づける必要があり、どちらが良いかはメリットデメリットがあると思います。

参考:NAT インスタンスと NAT ゲートウェイの比較

NATゲートウェイは使用有無に関わらず料金が発生するもので、実はこちらも意外と料金が高いのです。参考:Amazon VPC の料金

ssh以外でインターネットと通信する必要がなければ、NAT自体を削除してしまってssh接続を不要にすることができます。代わりにAWS Systems Manager(SSM)を使ってマネジメントコンソール上で接続することが可能になり、かつコスト削減になります。

プライベートサブネット上のEC2にSSMで接続するまで

ssh経由で接続せずにマネジメントコンソール上のセッションマネージャーから接続が可能になります。

その為、sshが不要になり、鍵管理の考慮なども不要になります。

SSMのセッションマネージャにEC2インスタンスが表示されるまでを設定してみます。

AWS NATインスタンス,NATゲートウェイ,AWS Systems Manager

「セッションの開始」をクリックするとシェルが表示されればOKです。

AWS NATインスタンス,NATゲートウェイ,AWS Systems Manager

EC2にアタッチするIAMロールを作成する

EC2作成時にアタッチするIAMロールを作成しておきます。ここではロール名は「AmazonEC2RoleforSSM」とします。

AWS NATインスタンス,NATゲートウェイ,AWS Systems Manager

信頼されたエンティティをEC2にします。

AWS NATインスタンス,NATゲートウェイ,AWS Systems Manager

AmazonEC2RoleforSSMポリシーをアタッチして、「AmazonEC2RoleforSSM」というロールを作成します。IAMロールの作成はこれで完了です。

プライベートサブネット上にEC2を作成する

プライベートサブネット上にEC2を作成します。

またAMIはSSMエージェントがプリインストールされているAMIにする必要があります。(Amazon Linux2ならOK)

EC2インスタンス作成時に、先ほど作成したIAMロール(AmazonEC2RoleforSSM)をアタッチします。

AWS NATインスタンス,NATゲートウェイ,AWS Systems Manager

EC2セキュリティグループのインバウンド設定はEC2作成時はSSHポート開放しておく必要がありますが、EC2作成後インバウンド設定はなしで大丈夫です。

AWS NATインスタンス,NATゲートウェイ,AWS Systems Manager

EC2の作成はこれで完了です。

VPCのPrivateLinkを作成する(インタフェース)

VPCのPrivateLinkを作成します。PrivateLinkはVPCとVPC外(S3,SecretsManagerなど)の通信を可能にするコンポーネントです。参考:VPC エンドポイント

PrivateLinkを作成することによってプライベートサブネット上のEC2にSSMからアクセスすることが可能になります。PrivateLinkは裏でENIが作成されます。

VPCエンドポイント サブネット
com.amazonaws.ap-southeast-2.ssm プライベート
com.amazonaws.a–southeast-2.ssmmessages プライベート
com.amazonaws.a–southeast-2.ec2message プライベート

AWS NATインスタンス,NATゲートウェイ,AWS Systems Manager

VPCセキュリティグループのインバウンドを以下の通り設定します。

項目
タイプ HTTPS
プロトコル TCP
ポート範囲 443
ソース プライベートサブネットのCIDR

ソースはプライベートサブネットのCIDRを指定するようにします。

AWS NATインスタンス,NATゲートウェイ,AWS Systems Manager

EC2の場合はアクティベーションの作成は不要なので、これでSSMから接続が出来るようになっているはずです。

Systems Manager を使用してインターネットアクセスなしでプライベート EC2 インスタンスを管理できるように、VPC エンドポイントを作成するにはどうすればよいですか?

VPCエンドポイント(ゲートウェイ)

VPCエンドポイントを作成します。VPCエンドポイントはPrivateLink同様VPCとVPC外(S3,SecretsManagerなど)の通信を可能にするコンポーネントです。

違いはENIが作成されない点になります。

コメント

タイトルとURLをコピーしました