AWS 色々なGatewayを整理する

n-ozawan

皆さん、こんにちは。技術開発グループのn-ozawanです。
過酷な環境で生息するカンガルーなどの一部の有袋類は、十分な食料を得られないなどの状況に陥った場合、着床遅延という妊娠を遅らせる繁殖戦略を持っています。

本題です。
AWSでインフラストラクチャを構築するには適切にGatewayを配置することも重要です。ただ、AWSに登場するGatewayが多すぎて困惑されている人は私だけではないはず。ということで、今回はAWSの主なGatewayを整理したいと思います。

AWSのGateway

Gatewayとは?

そもそもGatewayとは何でしょうか?Gatewayとはプロトコルの異なるネットワークを繋ぐ機器のことです。例えば一般的にご家庭でインターネットをする場合、LANからWANへ接続するために、モデム(もしくはONU)などの機器を設置します。この設置した機器がGatewayです。他にはWifiルーターもGatewayであり、Gatewayは異なるネットワークを繋げることでスムーズな通信を実現します。

Gatewayは「入口」という意味を持ちます。同じプロトコルでも、異なるネットワークを繋ぐ役目もあります。AWSでは少なくとも以下のGatewayがあります。今回はその一部を取り上げます。

  • Internet Gateway
  • NAT Gateway
  • Egress-only Internet Gateway
  • Customer Gateway
  • Virtual Private Gateway
  • Transit Gateway
  • API Gateway
  • Storage Gateway

Internet Gateway

Internet Gatewayは、VPCとインターネットの間で双方向通信したい際に用いるGatewayです。Internet Gatewayを使用しないと外部への公開は出来ませんし、リクエスト送信も出来ません。なお、IPv6でインターネットに繋がりたい場合はEgress-only Internet Gatewayを使用します。

NAT Gateway

NAT Gatewayは、Private Subnetからインターネットへ通信したい際に用いるGatewayです。

Subnetとは、VPC内におけるIPアドレスの範囲です。IPアドレスでそのネットワークを区分けします。例えば、とあるSubnetのIPアドレスを192.168.1.0/24とした場合、そのSubnetは192.168.1.0~192.168.1.255の範囲を取ります。

Internet Gatewayと直接なルートを持つSubnetを「Public Subnet」と呼びます。Public Subnetはインターネットと双方向の通信が可能となります。一方で、Internet Gatewayと直接なルートを持たないSubnetを「Private Subnet」と呼びます。Private Subnetはインターネットとの通信が行えないため、Public Subnetと比べてより高いセキュリティが確保されています。

NAT Gatewayは、Private Subnetからインターネットへの通信を可能とします。一方で、インターネットからPrivate Subnetへの通信は行えません。高いセキュリティを確保しつつ、インターネットへの通信を可能とします。

API Gateway

API Gatewayは、RESTやHTTP、Websocket APIを作成して公開するためのAWSのサービスです。API Gatewayを利用すれば、インターネットにAPIを公開し、クライアントからのリクエストをAWS Lambdaなどの処理にルーティングしてくれます。

API Gatewayで良く使われる例としては、AWS Lambdaとの連携かと思います。AWS LambdaでAPIの処理を実装し、API Gatewayでルーティングさせることにより、サーバーレスでAPIを構築することが出来ます。

API Gatewayでは、AWS IAMやAmazon Cognitoなどと連携することにより、強力な認証を行うことも可能です。また、CloudWatchとの連携によりAPIに関するログを記録し、CloudTailとの連携によりAPIの使用状況をモニタリングすることも可能です。AWS X-Rayと連携すれば、パフォーマンスやレイテンシーを確認することも出来ます。これらすべてがサーバーレスで構築できるのがAPI Gatewayの強みです。

Transit Gateway

Transit Gatewayは、複数のVPCやオンプレミスを相互接続するための中継ハブです。VPCはリージョンを跨いで作成することは出来ません。よって、システムがグローバルに展開される際、VPCはリージョンごとに作成されるため、それらを効率よく相互接続するためにTransit Gatewayが利用されます。

Transit Gatewayを、AWS Resource Access Managerを使用してAWSアカウント間で共有することにより、異なるAWSアカウントのVPC同士を相互接続することも可能になります。

おわりに

Transit GatewayはAWS Direct Connectと接続することにより、オンプレミスとの相互接続を容易にします。AWSではオンプレミスとの接続に関して、いくつかの方法を提供していますので、別の機会に取り上げたいと思います。

AWSに限った話ではありませんが、システムが大きくなればなるほど、異なるネットワーク間をどう接続するのかも1つの課題になります。AWSが提供するGatewayの特性を理解して、適切にインフラ環境を構築したいですね。

ではまた。

関連サービス・製品

Recommendおすすめブログ