見出し画像

AWS初学者が学ぶ内容総まとめ

はじめに

最近AIArt作成にハマっているなべくらです。最近AWSについての学習を開始したので、ほぼ自分用にnoteの記事にしてみました。
学習内訳は、初学者向けAWS本2冊+2日間のAWS公式ワークショップになります。こちらの記事ではそれぞれの学習教材で繰り返し触れられて大事だと思った学習内容をまとめています。これからAWSを学習される方や、今後初学者向けに説明する予定のある方はこちらを読むと、ガチガチの初心者がまずAWSのどういった内容を学ぶのか概要をつかむことができると思います。

AWSとは

インターネット通販で有名なAmazon.comが運営するクラウドサービス(インターネット経由でコンピューターやDBの機能を利用できるサービスのこと)のこと。

AWSの利点

  • 責任の分散ができる…AWSを使ってつくったサービスでは、AWS側が責任を持つ部分がある(責任共有モデル)

  • グローバルなシステムを構築できる…リージョンという単位の分路が世界中にあり、その中にさらにアベイラビリティゾーン(AZ)というエリアが複数存在する。これにより地域的な障害に強くなる。

  • 利用料は使った分だけ…従量課金なので、小規模から始めることができる

  • システムの増減が自由にできる…小規模から始められ、規模が大きくなった時も柔軟にシステムを変更できる。

  • 障害を前提に考えている…障害が発生してもサービスを提供できるよう、可用性(システムが継続して稼働できる能力のこと)を常に考えている。

  • 設計のお手本となるフレームワークがある…それぞれのサービスやそれらの連携でお手本となるフレームワークがあるので、うまく使いやすい。

AWSの主要サービス概要

主要なAWSのサービスを見ていく。まずはWebサーバーから。

Amazon EC2 (Elastic Compute Cloud)

仮想サーバーを数分で作成できるサービス。簡単に言うと、サーバー、OS、ソフトウェアなどを一式レンタルすることができるサービス。AWSの大規模なサーバーで仮想化が行われており、OSの種類やCPU、メモリの大きさなどを自由に選択して、インスタンス(仮想サーバーの単位)を作成する。
インスタンス
実態という意味で実際に稼働している、仮想化されたコンピュータのこと。またはその1単位の意味で使う。サーバーという時は機能なのか物理なのか曖昧だが、インスタンスというとサーバーとして稼働している仮想サーバのことを言う。
AMI
Amazon マシンイメージ、ソフトウェア構成を記録したテンプレート。インスタンスの金型のようなもので、これがあれば同じ設定のサーバーを簡単に作ることができる。
Auto Scaling
サーバーへのアクセス状況によって、サーバーの台数を減らしたり、増やしたり調整する機能。

AWS Lambda

サーバーレスコンピューティングサービス。OSなどのインフラストラクチャの管理が不要で、プログラミングコードをアップロードするだけで実行できる。実行時間で課金される。
サーバーレス
サーバーが無いわけではなく、利用者の管理するサーバーが無いという意味。利用者はインフラ部分を気にせずビジネスロジックに関わる部分のみのコード開発に集中できる。

Amazon API Gateway

Lamdaと組み合わせることで、ユーザーのHTTPリクエストをトリガーに、Lamda関数を実行できる。これにより簡単なWebアプリケーションが作成できる。

次はデータを保存するストレージサービスについて。

Amazon S3 (Simple Storage Service)

AWSが提供するオブジェクトストレージサービス。Webサーバーやデータの保管場所(ストレージ)として使用できる。オブジェクトストレージとは従来のファイルストレージのようなフォルダ構成ではなく、オブジェクト(データ)に対応する一意のキーを設定することによってデータの出し入れを行うストレージ。キーのみでデータを管理できるので大容量のデータを保存管理できる。標準で3つ以上のAZにコピーされ高い耐久性を持つ。オブジェクトを保存する場所のことをバケットと呼ぶ。
Lamdaと組み合わせることで、S3にデータが格納されたら、データに対して自動処理を行う、のような設定も可能。
バゲット
ドライブのようなもの。データを溜めるところ。アクセス制限をバケットポリシーやユーザーポリシーとしてつけることができる。
オブジェクト
ファイルのようなもの。データそのもの

次はDBサービス。

Amazon RDS (Relational Database Service)

AWSが提供するリレーショナルデータベースを提供するサービス。Amazon Auroraを含む6種類の定番リレーショナルデータベースをクラウド上で利用できる。AWSが開発したAmazon Auroraも選択可能。EC2と同じく、RDSで稼働するサーバーのことをインスタンスと呼ぶ。

Amazon Aurora

Amazon Auroraはクラウド向けにAWSが構築したDB。MySQLとPostgreSQLに相互性があるので、アプリケーションからそれぞれと同様の方法で接続可能。DBクラスターという単位で管理され、処理を行うDBインスタンスとデータを管理するクラスターボリュームで構成される。他のリレーショナルDBにはない独自の機能を多く持っている。

最後に、その他よく使われるサービスについて、まとめて紹介しておく。

Amazon VPC (Virtual Private Cloud)

AWS上に作成できるプライベート仮想ネットワーク空間。このネットワーク内にEC2などのAWSリソースを配置して利用する。VPCの中にさらに細かいネットワーク単位であるサブネットを作成する必要がある。サブネットは一つAZに所属する必要がある。VPCにはルートテーブルやインタネットゲートウェイなどさまざまな機能がありそれらの機能が相互で連携を行う。

Amazon Route 53

AWSのDNS(ドメインネームサービス)サービス。アクセスされたアドレスを実際に使用しているAWSサービスのエンドポイント(接点)に結びつける。DNSの機能のみでなく、トラフィックが1箇所に集中しないように分散したり、サービスに障害が発生した際に繋げ先を切り替えたり、ルーティングを柔軟に管理することができる。

以下、AWSに関連する概念や言葉について説明を置いておく。

クラウドとオンプレミス、仮想化

クラウドとオンプレミス

クラウド=インターネット上にサーバーなどを用意すること。メリットはサイズ等の変更が後からしやすいこと。
オンプレミス=自社でサーバーなどを用意すること。メリットは設計や運用の自由度が高いこと。

仮想化

物理的に必要だったメモリやハードディスク、OSなどをソフトウェアで置き換える技術。複製したり、分散して処理ができるなどの利点がある。冗長化(何かトラブルがあっても稼働し続けられるようにしておくこと)にも役立つ。

AWSのツールとワード

rootユーザーとIAM

rootユーザー
全ての操作ができる管理者権限を持つ。AWSアカウント。
IAMユーザー
サービスを使用するためだけのユーザー。大事な設定部分などはいじれない箇所がある。

AWS IAM

AWSにおける認証機能。各種アクセスに関する管理を行う。管理されたユーザーはIAMユーザー、グループはIAMグループ。管理されたロールはIAMロールと呼ぶ。また、それぞれの決まりを設定をする機能のことをIAMポリシーと呼ぶ。

マネジメントコンソール

Web上でAWSを操作するための画面。サービスごとに固有の画面が存在する。

CloudWatch

各AWSサービスでのリソースのモニタリングと管理を行うサービス。さまざまなログを収集、記録して見せてくれる。基本料金は発生しない。

リージョンとAZ

サーバーとデータセンターを世界中の26の地域に置いていて、この地理的分類がリージョンと呼ばれる。簡単にいえばデータセンター。その中のさらに物理的に独立した設備があり、それをAZ(アベイラビリティゾーン)と呼ぶ。

ネットワーク

ロードバランサ

サーバーに集中するアクセスを複数のサーバーやネットワークに振り分けるしくみ。AWSはELB(Elastic load balancing)と呼ばれるロードバランサを提供しており、ALBなど3種類のELBがある。

デフォルトVPC

サブネットやインターネットゲートウェイがあらかじめ設定されているVPC。リージョンごとに用意されている。

サブネット

大きなネットワークを小さく分割したようなネットワーク。セキュリティの境界線を作る目的で使われる。どのAZに置くか選択する必要がある。公開非公開を各サブネットで分けることもできる。

いかがでしたでしょうか?
教材を変えても学習において大事な部分自体は変わらないので、前の教材でも出てきた部分が繰り返し触れられることで記憶に残りやすかった気がします。(といいつつ今回のまとめ記事作成時に、忘れている部分も多かったですが…)
まだ、業務で直接AWSを触ることはなさそうですが、基本概念をなめることができたので、他領域のメンバーとの会話画しやすくなった気がします。追加学習したらまた記事作成したいと思います。ではまた👋✨

この記事が気に入ったらサポートをしてみませんか?