LoginSignup
0
0

More than 3 years have passed since last update.

AWSVPCを試す

Last updated at Posted at 2021-01-29

ネットワーク

VPCの作成

IPv4CIDRブロック 192.168.0.0/16
IPv6CIDRブロック Amazon提供

サブネットの作成

IPv4CIDRブロック 192.168.1.0/24
IPv6CIDRブロック カスタム 01

EC2インスタンスの作成

作ったVPCネットワーク、使うサブネットを指定
自動割当パブリック、IPv6自動の有効化
タグにNameを指定
セキュリティグループ SSHの許可 マイIP(現在の自分のグローバルIP)
キーペア作成

SSH接続

VPCのサブネットからインターネットに出れるようにゲートウェイを作成
VPC - インターネットゲートウェイ作成 - VPCにアタッチ
サブネットにインターネット用のルートを作成
サブネット - ルート - ルートの編集 - 0.0.0.0/0(どこにもマッチしない)インターネットゲートウェイを選択
キーペアを使って接続
ssh -i "udemy-vpc-aws.pem" ec2-user@175.41.214.184

デフォルトVPC

インスタンス作成時に明示的に選ばなかった場合に作成される
インターネットゲートウェイも自動で作られる

セキュリティ

セキュリティグループ

インスタンスへのインバウンド(入ってくる)アウトバウンド(出ていく)を制御
Webなら80,443のインバウンドを許可
基本はアウトバウンドはすべて許可、インバウンドのほうを設定する

ステートフル=出ていった通信の戻りは許可される(インバウンド許可しなくてもアウトバウンドが許可されていれば)

Webが見れるようにしてみる

which amazon-linux-extras

sudo amazon-linux-extras list
sudo amazon-linux-extras install -y nginx1
sudo systemctl start nginx
sudo systemctl status nginx

EC2のパブリックIPにアクセスしてみる

VPC - セキュリティグループ - インバウンドのルールを編集 - HTTPでソース0.0.0.0/0を許可
ソースにセキュリティグループを指定した場合、そのグループに属するインスタンスからのアクセスを許可

ネットワークACL

インスタンスではなく、サブネットを出入りする通信を制御
こちらはステートレス=行きと戻りの通信も個別に指定する必要(インバウンドが許可でも、アウトバウンドが拒否であれば通信できない)

ルール番号の早いものから順に適用される、該当ない場合は拒否される

インバウンドのルールの編集 - 99 SSH DENY

パブリックIP

ElasticIP

EC2のパブリックIPは再起動で変わる。ElasticIPは予約しておけば同じIPを保持できる。別インスタンスへ付け替えも可能。
予約してるだけで使ってないと課金される。使えば一個まで無料。

ElasticIP - 割当て - 関連付け - インスタンスを選択 プライベートIPが一個しかない場合選ばなくてもいい

プライベートサブネット

プライベートサブネット

パブリックサブネット:Webサーバなどが動作し一般公開
プライベートサブネット:アプリなどが動作し一般非公開。同一VPC内からアクセス。インターネットゲートウェイに接続しない。メンテでネット接続する場合は別のゲートウェイを使う。

プライベートサブネットの作成

ipv4 192.168.2.0/24 ipv6 カスタム 02
既存のルートテーブルを使わず、新しく作成。関連付けの編集でプライベートサブネットを選択

インスタンスの作成

インスタンスを作成し、プライベートサブネットを選択
セキュリティグループで、ソースにパブリックのセキュリティグループを選択し、そこからのアクセスを許可する

パブリックサブネット経由でSSH接続

パブリックサーバを踏み台にSSH接続
175.41.214.184 -> 192.168.2.173
ssh -i "udemy-vpc-aws.pem" -oProxyCommand='ssh -i "udemy-vpc-aws.pem" -W %h:%p ec2-user@175.41.214.184' ec2-user@192.168.2.173

プライベートなのでそのままではインターネットに出られない
ping google.com

NATゲートウェイの設置(IPv4)

インターネットに出られるサブネットに紐付ける
プライベートからNATゲートウェイにルートする

NATゲートウェイの作成 - パブリックサブネットを選択、EIP割当て
プライベートサブネットのルートテーブル変更 - NATゲートウェイを選択、0.0.0.0/0

EgressOnlyインターネットゲートウェイ(IPv6)

ping 8.8.8.8
ping6 2001:4860:4860::8888

プライベートサーバにIPv6の割り当て
インスタンス - アクション - ネットワーキング - IPアドレス管理 - 新しいIPの割り当て(IPv6)- インスタンス再起動
EgressOnlyIGW - VPC選択
プライベートサーバのルート編集 - ::/0 egw選択

エンドポイント

他のAWSサービスと接続する際、インターネットに出ずにプライベートで接続する

S3へファイルをアップロードしてパブリック公開にする
プライベートサーバからダウンロードしてみる
wget http://~

エンドポイントの作成

プライベートのインターネットへのルート削除 - nat, egwを削除(確認のため)
エンドポイントの作成 - S3を選択、VPCを選択、プライベートルートを選択 - テーブルに新しいルートが追加される

エンドポイントサービス

他のAWSアカウントのサービスをエンドポイントとして利用できる。
PrivateLinkの料金や相手サービスへの申請が必要。

まとめ

EC2インスタンスはVPC、サブネットの中に作る
インスタンスにはセキュリティグループが紐付いていて通信を制御
ルートを通してセキュリティを許可する

VPCの中にサブネットを作る
ネットに出るにはインターネットゲートウェイをつくってVPCに関連付ける(サブネットでも許可)ルートにも追加
IPV6を使うにはEgress-Onlyインターネットゲートウェイをつくる
サブネットにはルートテーブルが紐付いている
サブネットにはネットワークACLが紐付いていて通信を制御

ネットにでるルートがないサブネットをプライベートサブネットという
インターネットゲートウェイがなくても踏み台を使えばSSH接続できる
プライベートサブネットから外に出るにはインターネットへのルートを持つサブネットにNATゲートウェイをつくって、ルートを通す

エンドポイントを使えばプライベートからAWSサービスに接続できる

VPCを作るときCIDRを決める必要がある
サブネットを作るときCIDRを決める必要がある
IPV6もある
CIDRの決め方がわかりません

参考

古いけど動作は最新環境で行いました。
Amazon Web Service マスターコース VPC編

0
0
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
0
0