AWS NATインスタンス,NATゲートウェイ,AWS Systems Manager
NAT(Network Address Translation)インスタンスを使用して、プライベートサブネット上に存在するEC2インスタンスがインターネットにアクセスできるようにすることができます。
今までそんな構成を作っていました。「AWS VPC上のパブリックサブネット内にNATインスタンスを作成する 」
NATインスタンスの実体はEC2なので、料金が高いです。その変わりなのか知りませんがNATゲートウェイという機能が出てきました。
NATゲートウェイもNetwork Address Translationなので、NATインスタンスと役割は同じです。
役割が同じなのでEIPと紐づける必要があり、どちらが良いかはメリットデメリットがあると思います。
NATゲートウェイは使用有無に関わらず料金が発生するもので、実はこちらも意外と料金が高いのです。参考:Amazon VPC の料金
ssh以外でインターネットと通信する必要がなければ、NAT自体を削除してしまってssh接続を不要にすることができます。代わりにAWS Systems Manager(SSM)を使ってマネジメントコンソール上で接続することが可能になり、かつコスト削減になります。
プライベートサブネット上のEC2にSSMで接続するまで
ssh経由で接続せずにマネジメントコンソール上のセッションマネージャーから接続が可能になります。
その為、sshが不要になり、鍵管理の考慮なども不要になります。
SSMのセッションマネージャにEC2インスタンスが表示されるまでを設定してみます。
「セッションの開始」をクリックするとシェルが表示されればOKです。
EC2にアタッチするIAMロールを作成する
EC2作成時にアタッチするIAMロールを作成しておきます。ここではロール名は「AmazonEC2RoleforSSM」とします。
信頼されたエンティティをEC2にします。
AmazonEC2RoleforSSMポリシーをアタッチして、「AmazonEC2RoleforSSM」というロールを作成します。IAMロールの作成はこれで完了です。
プライベートサブネット上にEC2を作成する
プライベートサブネット上にEC2を作成します。
またAMIはSSMエージェントがプリインストールされているAMIにする必要があります。(Amazon Linux2ならOK)
EC2インスタンス作成時に、先ほど作成したIAMロール(AmazonEC2RoleforSSM)をアタッチします。
EC2セキュリティグループのインバウンド設定はEC2作成時はSSHポート開放しておく必要がありますが、EC2作成後インバウンド設定はなしで大丈夫です。
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 | プライベート |
VPCセキュリティグループのインバウンドを以下の通り設定します。
項目 | 値 |
---|---|
タイプ | HTTPS |
プロトコル | TCP |
ポート範囲 | 443 |
ソース | プライベートサブネットのCIDR |
ソースはプライベートサブネットのCIDRを指定するようにします。
EC2の場合はアクティベーションの作成は不要なので、これでSSMから接続が出来るようになっているはずです。
Systems Manager を使用してインターネットアクセスなしでプライベート EC2 インスタンスを管理できるように、VPC エンドポイントを作成するにはどうすればよいですか?
VPCエンドポイント(ゲートウェイ)
VPCエンドポイントを作成します。VPCエンドポイントはPrivateLink同様VPCとVPC外(S3,SecretsManagerなど)の通信を可能にするコンポーネントです。
違いはENIが作成されない点になります。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント