現在、Spring Bootを使ってバックエンドの学習をしています。
せっかくなので作ったアプリを公開してみたいと思い、それならAWSを使おうと思って並行して学習をしているのですが、まぁ分からないことだらけです。
自身の学習の備忘録も兼ねて、学習をしていくなかでぶつかった単語や概念を整理するために記事を執筆します。
AWSって何??
AWSとは、クラウドコンピューティングシステムのことである。
インターネットから、サーバーやデーターベースの作成や利用ができるサービスのこと。
2020年にはAmazonの売上のうちの約10%がAWSの売上のようです。しかも毎年売上を伸ばしているサービス。
Amazonでよく買い物するのですが、毎回箱大きすぎないですか?w
それでは、ここから僕が学んだことをまとめていきます。
VPCとは
VPC(Amazon Virtual Private Cloud)とは、AWS上に構築することができる仮想ネットワーク。
仮想サーバーやデータベースに任意のネットワーク接続を可能にしてくれます。
VPCの構築のあたって関係してくる要素のついても見ていきます。
Subnet(サブネット)
VPCという大きなネットワークの中に小さなネットワークの集まるを作ることができる。
作ったサブネットのなかに、 EC2やRDSを配備していきます。
VPCのアドレス範囲を10.0.0.0/16で指定したときにインターネットと接続できるパブリックなネットワークと、外部とは接続させないプライベートなネットワークを配置したいときには下記のように行うことができます。
パブリックサブネット・・・10.0.0.0/24
プライベートサブネット・・・10.0.1.0/24
ネットワークの範囲を限定することでセキュリティ面も向上させることができます。
EC2は外部との接続をさせたいので、パブリックサブネット内に配置して、RDSは外部との接続はさせたくないのでプライベートサブネット配置すると。
Internet Gateway(インターネットゲートウェイ)
VPC内部とインターネットを通信させるためのもの。
Route Table(ルートテーブル)
デフォルトだと同じVPC内のものしかアクセスができないので、インターネットゲートウェイとサブネットと紐付けを行いサブネット内からどこに通信するかの宛先を決めるためのものです。
セキュリティグループ
TCP/IPを元にしたアクセス制限を行うための設定です。
なんでもかんでもEC2やRDSにアクセスできるようにしたくないということです。
EC2とは
EC2とはAWS上に仮想サーバーを簡単に構築することができるサービスです。
インスタンスという単位でサーバー環境を構築することができます。
EC2は入れたただけだと中身にはほぼ空なので、開発に必要なものをインストールしてくて必要があります。
また、EC2を作成したあとにはEC2にログインするためにキーペアを作成します。
EC2作成時に作成されたhogehoge.pem
ファイルを自身のPCの./ssh
に格納してアクセスする際にはpem
ファイルを用いて認証を行うことで、EC2にアクセスすることができるようになります。
RDSとは
リレーショナルデータベースを構築・運用できるサービスのことです。
まとめ
知らない単語だらけで、その単語を調べてもまた知らない単語がでてくるループ。それがAWSです。
ただ、ネットワーク・インフラの知識は深いところまでは現段階で知る必要はないかなと思ってますが、どのように接続しているのかとか基本的な単語とかは抑えておかないといけないなぁと現場で仕事をしていて感じたので自身でも勉強をしていこうと思います。
AWS上にEC2とRDSの構築や、EC2からRDSへの接続なども行ったのでまた、記事にまとめることができればと思います。