VPCはAWSネットワークを論理的に切り出してユーザが定義した仮想的なネットワークを提供するサービスです。 ユーザは自ら定義したネットワーク内にサブネットを切り、そのサブネット内にAWSリソースを配置して利用します。
サブネットを切ることにより、あるネットワーク帯を用途別に分離することができます。例えばインターネットと通信できるネットワーク帯、インターネットと通信できないネットワーク帯などの分け方や部署ごとにネットワーク帯を設定するなどが考えられます。

サブネットにはインターネットと接続されているパブリックサブネットとインターネットとは直接接続しないプライベートサブネットがあります。 この違いは、サブネットがインターネットゲートウェイへのルーティングを行っているかどうかです。パブリックサブネットでは、インターネットゲートウェイへのルーティングを行い、インターネットとの接続を可能とします。

データベースなど、インターネットに直接接続するとセキュリティ的によくない場合は、プライベートサブネットを活用し、インターネットから直接アクセスを来ないようにできます。
プライベートサブネットへのアクセス方法としては、パブリックサブネットの踏み台サーバを利用します。ただし、プライベートサブネットからのインターネットへの通信ができないため、インターネットと通信をしたい場合は、NATゲートウェイをパブリックネットワークに設置し、インターネットとの通信ができるようにする必要があります。NATとはプライベートIPアドレスをグローバルIPアドレスに変換する仕組みです。
NATゲートウェイにはElastic IPという静的なIPアドレスを付与する必要があり、プライベートIPをNat Gatewayに付与してあるElastic IPに変換することにより、インターネットとの通信を実現しています。
感想
VPCはIAMと同じく、AWSを利用する際の基礎となる部分なので、Public/Private subnetの違い、ネットワークアクセス周りの理解はしっかり押さえておきたい