2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

〜AWS初学者の資格日記〜 VPC編 (ソリューションアーキテクトレベル)

Last updated at Posted at 2024-10-17

こんにちは、つかさです
今回はVPCに関してです。特にVPCの接続に関係する部分を中心に記事を書いていこうと思います。
個人的にとても間違えやすく苦手なので、もし同じような境遇の方がいれば一緒に頑張ってきましょう!:grin:

VPC

Virtual Private Cloudの略でAWS上に作成できるプライベート仮想ネットワーク空間

基本構成

  • 問題文
  • 答え
  • なぜその答えなのか
  • その答えを理解するための周辺知識

問題

セキュリティ上の理由でオンプレミスからパブリックIPアドレスを使用せずにS3バケットへデータをアップロードします。どのような方法がありますか?

答え

VPCとVPN接続し、VPCにインターフェースエンドポイントを作成する。エンドポイントへS3バケットへのリクエストを作成する。

理由

パブリックIPアドレスを使用しないという要件からプライベート接続したいことがわかる。そしてS3へのプライベート接続にはゲートウェイエンドポイントインターフェースエンドポイントの2つがある。今回オンプレミスからの接続なのでインターフェースエンドポイントが適切な答えになります。

この問題ではオンプレミスからS3に対してどのようにプライベートアクセスするかをイメージし理解する事が大切です。

今回問題で挙げられているアクセスは大きく2つに分ける事ができます。
1 : オンプレミスからVPCへのプライベートアクセス
2 : VPC内リソースからS3へのプライベートアクセス

オンプレミスからVPCへのプライベートアクセス

オンプレミスからVPCに対してプライベート接続する方法は2つある。AWS Direct Connectによる専用線接またはAWS Site-to-Site VPNによるVPN接続です。

これらの違いについて見てみましょう!

AWS Direct Connect AWS Site-to-Site VPN
接続の方法と仕組み データセンターや通信事業者の施設を通じ、物理的な専用線を使用してAWSネットワークとオンプレミスネットワークを直接接続する。 インターネットを経由でのVPNゲートウェイを使用して、IPsec(インターネットプロトコルセキュリティ)に基づく暗号化接続をする。
接続速度と帯域 50 Mbps から 100 Gbps までの速度で高性能な専用線接続で低レイテンシー インターネットの品質に依存するため、速度が変動する。
接続の信頼性と可用性 高い信頼性と可用性 AWS Direct Connectほどの信頼性と可用性はない
コスト 高い 低い
導入の容易さ 時間と初期費用がかかる 迅速にかつ初期費用ほぼゼロ

IPsec
データの機密性と認証を提供するプロトコルスイート

プロトコルスイート
複数のプロトコルがセットになり、ネットワーク通信全体を実現するためのもの

VPC内リソースからS3へのプライベートアクセス

VPC内リソースからAWSサービス(例:S3、SNSなど)やサードパーティのサービスに、プライベートでアクセスしたい場合はVPCエンドポイントを使用します。

VPCエンドポイント

VPCエンドポイントはゲートウェイエンドポイントインターフェースエンドポイント(PrivateLink)の2種類あります。それぞれの違いについて見にいきましょう

privateLink
インターフェースエンドポイントを使用して、広範なAWSサービスに対してプライベートアクセスを提供する仕組み

ここで抑えときたいポイント:bulb:

  • ゲートウェイエンドポイントはAmazon S3とDynamoDB以外に利用できない
  • ゲートウェイエンドポイントはVPC外(例えばオンプレミス環境)からは直接利用できない

逆にインターフェースエンドポイントはこれらのゲートウェイエンドポイントに利用できないことができます。

ゲートウェイエンドポイント仕組み

  1. ゲートウェイエンドポイントをVPCにアタッチする
  2. サブネットのルートテーブルにゲートウェイエンドポイント対してのルート追加し指定する(ターゲット)
  3. プレフィックスリストを使用してS3やDynamoDBを指定する(送信先)
  4. プライベートなアクセスが可能になる

プレフィックスリスト
特定のAWSサービス(S3やDynamoDBなど)に対応するCIDRのリスト

CIDR(クラスレスドメイン間ルーティング)
IPアドレスの範囲を効率的に表現する方法

プレフィックスリストはAWS側で管理しており、あらかじめ多くのAWSサービスに対するCIDRを管理しています。同一リージョン内で作成された特定のサービスはプレフィックスリストで管理されているそのサービスのCIDR内のIPアドレスが割り振られます。よってプレフィックスリストを使用してS3やDynamoDBを送信先として指定することができます。

インターフェースエンドポイント仕組み

インターフェースエンドポイントは、AWSのさまざまなサービスに対して、VPC内のElastic Network Interface(ENI)を使用してプライベート接続を提供します。

  1. VPC内にインターフェースエンドポイントを作成する。この時、アクセス対象のサービスサブネットを指定します。すると自動的にそのサブネット内にENIが作成される
  2. ここで「プライベートDNS」オプションを有効にすること
  3. 指定したサブネット内で、指定したアクセス対象のサービスに対してリクエストが行われた時に、プライベートDNSがサービスのドメイン名を対応するENIのプライベートIPに解決し、ENIへのルーティングが行われる
  4. プライベートなアクセスが行える

ENI(Elastic Network Interface)
仮想ネットワークインターフェイスでインスタンスに複数の IP アドレスやセキュリティグループを持たせるために使われる

  • プライベートDNS
    通常、VPC内からAWSのサービスにアクセスする場合、そのサービスのドメイン名(例:s3.amazonaws.com)はパブリックDNSサーバーを使用して解決され、パブリックIPアドレスにルーティングされます。この場合、インターネットを経由してアクセスすることになります。しかし、プライベートDNSを有効にすることで、通常のAWSサービスのドメイン名を使ってリクエストを送るだけで、パブリックインターネットではなく、VPC内のプライベートネットワークを介してサービスにアクセスすることが可能になります。

オンプレミスからAWSサービスへのプライベートアクセス

・まず最初に大きく分けたアクセスの一つであるVPC内リソースからS3へのプライベートアクセスでは上記であるように、S3向けのインターフェースエンドポイントを作成します。

・そして大きく分けたアクセスの一つであるオンプレミスからVPCへのプライベートアクセスの内容にあるようにAWS Direct Connectによる専用線接またはAWS Site-to-Site VPNによるVPN接続でVPCにアクセスします。この際のポイントとしては、オンプレミスのルートテーブルのターゲットとして作成したインターフェースエンドポイントにルーティングするように設定します。

・あとはVPC内のリソースからAWSサービスにインターフェースエンドポイントを介してプライベートアクセスする流れと同じになります。


復習問題

問題 EC2インスタンスからDynamoDBへの項目を読み書きしているアプリケーションがあります。アプリケーションをよりセキュアにしたいのでインターネットを介さないようにしたいです。どの方法を使用しますか?
選択肢

1 : NATゲートウェイのみを利用してセキュアにアクセスする。
2 : VPCゲートウェイエンドポイントを作成してルートテーブルにルートを追加する
3 : VPCゲートウェイエンドポイントを作成する

答え 2
理由 まず、1はインターネットを介すので選択肢から排除できます。 2と3ですが、ゲートウェイエンドポイントはルートテーブルにルートを追加する必要があるので2が正解になります。

まとめ

読んでいただきありがとうございました!
これからも自分のペースで記事を更新したり、新たな記事を書いていこうと思うので是非見ていただけたらなと思います!:grin:

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?