VPCを構築して私が以下の記事を進めていく中でナニコレ??と思ったところの備忘録抜き出し記事
EC2インスタンスの生成に関して
EC2インスタンスにパブリックIPv4を割り当てられない
私が最初にVPC内にEC2インスタンスを生成した際、パブリックIPv4が割り当てられておらず、ローカルからのSSH接続ができない状態でした。
VPCやサブネットの設定をしないでもインスタンス生成時にパブリックIPv4の割り当てを設定できるっぽいですが、設定し忘れを防ぐためにVPCやサブネットの設定を見直します。
VPCの設定
VPCの一覧画面で、対象のVPCを選択しアクションを押下します。そこでDNSホスト名の編集を選択し有効化しましょう。
サブネットの設定
サブネットの一覧画面からEC2用に作成したサブネットを選択しアクションを押下。
「自動割り当てIP設定の変更」を選択します。
編集画面で、パブリック IPv4 アドレスの自動割り当てを有効にする にチェックを入れればOKです。
私が確認している範囲では、VPCの設定はEC2インスタンスを生成した後に設定を行っても起動したEC2インスタンスに設定が反映されたようですが、サブネット設定は確認できていません。再起動でなんとかなる?再生成するしかない??
私は結局再生成しました。
これでローカルのターミナルからSSH接続できるようになりました。
勿論セキュリティグループやルーティングテーブルが適切に設定されていることが前提ですので、これでも接続できない場合はその辺の設定も見直した方がよいでしょう。
RDSインスタンスの生成に関して
主に作成済みのRDSを別のVPCに移行する想定。
RDSインスタンスにサブネットが設定できない。
作成済みのRDSは別のVPCに移行することができますが、EC2とは少し勝手が違ってVPCでサブネットを作成しただけでは設定できず、DBのサブネットグループを作成する必要があります。
DBのサブネットグループを見直しましょう。
※新規作成するときも同様だと思います。
RDSのサブネットグループが作成できない。
私が最初にDBサブネットグループを作成しようとした際に以下のエラーが発生しました。
DB Subnet Group doesn't meet availability zone coverage requirement. Please add subnets to cover at least 2 availability zones. Current coverage: 1 (Service: AmazonRDS; Status Code: 400; Error Code: DBSubnetGroupDoesNotCoverEnoughAZs; Request ID: 3e87202c-e6b3-46dc-8396-47c64a2f0dd6)
事前にちゃんと調べている人なら回避できそうなエラーですが、要件として、「少なくとも2つのアベイラビリティーゾーンをカバーするサブネットが必要」であるみたいです。
私は単一のアベイラビリティーゾーン(しかも単一のサブネット)で作成しようとしていたためエラーになったようです。
複数のアベイラビリティーゾーンのサブネットを設定するようにしましょう。
そもそも複数のサブネットがない場合は作成しましょう。(私はそうでした。
サブネットを追加作成し、以下の二つにアベイラビリティーゾーンに属するサブネットを指定するようにしたら無事に作成できました。
・ap-northeast-1a
・ap-northeast-1c