はじめに
これまでC#やASP.NETなどを使用したWebアプリケーション開発を経験してきましたが、AWSについては初心者です。
今回、AWS Certified Solutions Architect – Associate(SAA)の取得を目標に、AWSの学習を始めました。
第1回では、AWSの基本概念やネットワークの仕組みを学習し、実際にVPCとサブネットを作成した内容をまとめます。
1. AWSとは
AWS(Amazon Web Services)は、Amazonが提供するクラウドサービスです。
サーバーやデータベース、ネットワークなど、さまざまなITリソースをインターネット経由で利用できます。
AWSの主な特徴は以下のとおりです。
- 物理サーバーなどを自分で購入しなくても利用できる
- 必要なときに必要な分だけリソースを利用できる
- 基本的に利用量に応じた従量課金制
- 必要に応じてリソースを増減できる
AWSを操作する方法の1つに、ブラウザから利用できる「AWSマネジメントコンソール」があります。
今回はこのマネジメントコンソールを使用して、AWS環境を作成しました。
2. IAMとは
IAM(Identity and Access Management)は、AWSのリソースに対するアクセス権限を管理するサービスです。
AWSアカウントを作成すると、ルートユーザーを使用できるようになります。
ルートユーザーとIAMユーザーの違い
| 種類 | 特徴 |
|---|---|
| ルートユーザー | AWSアカウント全体に対して強い権限を持つユーザー |
| IAMユーザー | 必要に応じてアクセス権限を個別に設定できるユーザー |
ルートユーザーは非常に強い権限を持つため、普段の作業では使用しないことが推奨されています。
今回の学習では、作業用のIAMユーザーを作成しました。
ただし、AWSでは現在、人間の利用者によるアクセスには、IAM Identity Centerなどを利用した一時的な認証情報の使用が推奨されています。
セキュリティのため、MFA(多要素認証)や最小権限の考え方も重要だと学びました。
3. AWSのネットワーク基礎概念
3.1 リージョン
リージョンとは、AWSがサービスを提供している地理的な地域です。
日本には東京リージョンと大阪リージョンがあります。
リージョンによって、利用できるサービスや料金、通信の応答時間などが異なる場合があります。
今回は東京リージョン(ap-northeast-1)を使用しました。
3.2 アベイラビリティーゾーン(AZ)
アベイラビリティーゾーンとは、リージョン内にある独立したデータセンター群のことです。
1つのリージョンには複数のAZが存在します。
複数のAZにシステムを分散して構成することで、障害が発生した際の影響を減らせるように設計できます。
3.3 VPC
VPC(Virtual Private Cloud)とは、AWS上に仮想ネットワークを作成できるサービスです。
VPCはリージョン単位で作成し、その中にサブネットを配置します。
3.4 サブネット
サブネットとは、VPC内のIPアドレス範囲を分割したネットワークです。
サブネットは1つのAZに属します。
VPCとサブネットの関係を整理すると、以下のようになります。
- リージョン:AWSのリソースを配置する地域
- VPC:リージョン内に作成する仮想ネットワーク
- サブネット:VPC内のIPアドレス範囲を分割したネットワーク
- AZ:サブネットの配置先となる場所
4. VPCとサブネットを作成してみた
今回は、AWSマネジメントコンソールを使用してVPCとサブネットを作成しました。
4.1 VPCの作成
まず、VPCを作成します。
作成手順
- AWSマネジメントコンソールにログイン
- 東京リージョンを選択
- 「VPC」サービスを開く
- 「お使いのVPC」から「VPCを作成」をクリック
- 必要な項目を入力して作成
今回の設定内容は以下のとおりです。
| 設定項目 | 設定値 |
|---|---|
| 作成するリソース | VPCのみ |
| 名前タグ | qiita-study-vpc |
| IPv4 CIDR | 10.0.0.0/16 |
| IPv6 CIDR | なし |
| テナンシー | デフォルト |
CIDRは、ネットワークで使用するIPアドレスの範囲を指定するための表記です。
今回は 10.0.0.0/16 を指定してVPCを作成しました。
「VPCを作成」をクリックすると、VPCが正常に作成されました。
作成後の状態は「Available」になっていました。
4.2 サブネットの作成
次に、作成したVPCの中にサブネットを作成しました。
作成手順
- VPCの左側メニューから「サブネット」を開く
- 「サブネットを作成」をクリック
- 作成したVPCを選択
- サブネット名、AZ、CIDRを設定
- 「サブネットを作成」をクリック
今回の設定内容は以下のとおりです。
| 設定項目 | 設定値 |
|---|---|
| VPC | qiita-study-vpc |
| サブネット名 | qiita-study-subnet |
| アベイラビリティーゾーン | ap-northeast-1a |
| IPv4 VPC CIDR | 10.0.0.0/16 |
| IPv4 サブネット CIDR | 10.0.1.0/24 |
VPC全体のCIDRは 10.0.0.0/16 ですが、サブネットにはその範囲内の 10.0.1.0/24 を指定しました。
/16 と /24 では、使用できるIPアドレスの範囲が異なります。
このように、VPC内のIPアドレス範囲を分けることで、用途に応じたネットワークを構成できます。
作成後、サブネット一覧から qiita-study-subnet が「Available」になっていることを確認しました。
4.3 ルートテーブルの確認
最後に、ルートテーブルを確認しました。
ルートテーブルとは、ネットワーク通信の送信先に応じて、転送先を決めるための設定です。
今回作成したVPCには、メインルートテーブルが自動的に作成されていました。
実際に確認した内容は以下のとおりです。
| 送信先 | ターゲット | ステータス |
|---|---|---|
| 10.0.0.0/16 | local | アクティブ |
local は、同じVPC内の通信に使用するルートです。
今回はインターネットゲートウェイを作成しておらず、インターネット向けのルートも設定していません。
そのため、作成したサブネットはインターネットへ直接通信するための構成にはなっていません。
なお、今回はルートテーブルの設定を変更せず、自動作成された設定を確認しました。
5. 学習してわかったこと
今回の学習では、AWSの基本概念とネットワーク構成について学びました。
特に、以下のことが理解できました。
- AWSでは必要なITリソースをクラウド上で利用できる
- IAMではユーザーごとにアクセス権限を管理できる
- リージョンとAZは異なる役割を持つ
- VPCを作成することで仮想ネットワークを用意できる
- サブネットを作成することでVPC内のIPアドレス範囲を分割できる
- ルートテーブルによってネットワークの通信経路を制御できる
最初はVPCやサブネットの違いがよくわかっていませんでしたが、実際に作成することで、それぞれの役割を少し理解できました。
これまで主にWebアプリケーションの開発を行ってきましたが、AWSを利用するにはアプリケーションだけでなく、ネットワークなどのインフラの知識も必要だと感じました。
6. 今後の学習
次回はAmazon EC2について学習する予定です。
EC2は、AWS上で仮想サーバーを利用できるサービスです。
今回作成したVPCとサブネットの知識を活かして、EC2インスタンスを作成し、サーバーとネットワークの関係を理解していきたいと思います。