AWSについて自分の勉強もかねて初歩をまとめてみました。
AWSとはクラウドコンピューティングサービス
AWSはAmazon Web Serviceの略です。
あのアマゾンが提供しているサービスです。
AWSはクラウドコンピューティングサービスの1つです。
クラウドコンピューティングサービスではインターネットを介して、コンピューターやストレージを提供してくれるサービスです。
要するに、物理的なpcなどを用意しなくてもデータを保存してくれたりとかしてくれるサービスみたいな感じです。
このようなサービスはマイクロソフトのAzureやグーグルのGoogle Cloudなどもあります。
補足
IaaS、PaaS、SaaS
クラウドサービスがどこまでサービスを提供しているのかがこの言葉でわかります。
- IaaS:インフラ(サーバー、ネットワーク)を提供
- PaaS:OS、ミドルウェア+IaaS
- SaaS:アプリケーション+PaaS(例GmailやMicrosoft365)
こんな感じです。
AWSはIaaSとPaaSを提供しているサービスとなります。
オンプレミス
クラウドコンピューティングサービスができる前は、オンプレミスを用いていました。
これは自前でコンピュータなどを用意し運用する方法です。
つまりすべて自分たちで行うということですね。
現在のこちらを選ぶメリットとしてはカスタマイズ性が優れている(すべて自分の好きな設定、機械を使える)点が挙げられます。
AWSのサービスのメリット
200を超えるサービスがあり、それらを組み合わせたりなどもできます。
またサーバーを増やしたり減らしたりなども簡単に行えます。
物理的な管理はすべて行ってくれます。
世界中にデータセンターがあるためサービスを届けたいユーザーの近くにサーバーを置くことができます。これによりレイテンシ(遅延や待ち時間)を減らすことができます。さらにリージョン(地域 例:東京、オレゴンなど)ごとにさらにAZ(アベイラビリティゾーン)があり、これはその地域に複数のサーバー用意されているということで、どこかのサーバーが障害がおきてもほかのAZで維持ができます。マルチAZとよびます。ちなみにマルチリージョンもできます。
AWSの料金
基本従量課金制です。
使った分だけ支払う形になります。
動画配信サービスなどはいわゆる定額料金制(月に定額支払う)形ですね。
従量課金制だと請求が来るまで額がわからないということが発生しますが、AWS Budgetsでは予算を超えたら通知するなどの設定を行ったり、AWS Cost Explorerを使えば、利用状況や料金を一覧できます。
ほかにもAWS Pricing Calculatorでは料金の予測を行ってくれます。
なにを作れるか?
WebサイトやECサイトなどを作れます。
公式が様々な例を紹介しているのでこちらもチェックhttps://aws.amazon.com/jp/cdp/
どうやって始めるか?
AWSの公式サイトに行ってコンソールにサインインを押してそこで新しいアカウントを作るで作る感じではじめられます。
クレカの登録などがありますが、登録だけでは支払いは発生しません。
最初は無料利用枠なども活用しながら触ってみましょう。
AWSではルートユーザーとIAMユーザーでログインできますが、基本IAMユーザーで操作することが推奨されています。
ルートユーザーあらゆる操作権限をもっているユーザーです。
IAMユーザーは各種サービスを操作したりできるユーザーです。
IAMユーザーを使う場合は作成しておく必要があります。
権限の管理はAWS Identity and Access Management(IAM)というサービスで行います。
権限の補足
アクセス権限を管理することで「誰がAWS上の何かに対して何の操作ができるか」を管理できます。
権限への考え方として最小権限の原則があり、これは必要な権限だけを最小限で付与するという考え方です。
これはむやみに権限があると必要のないミスなどにもつながってしまうためです。
主要なサービスの概要
Amazon EC2
これはサーバーを作ることができるサービスです。つまりIaaSにあたります。そのためOSやソフトウェアは自分たちで管理します。
サーバーという言葉は何らかのサービスを提供しているものを指しています。
このブログもサーバーから送られてきたデータが画面に映し出されています。
サーバーといっても自分たちが触っているコンピューターと大きくかわるわけではありません。
ハードウェアとソフトウェアから構成されています。
ハードウェアは簡単にCPU(頭脳)、メモリ(一時記憶)、ストレージ(データ保存)から構成されます。
ソフトウェアはOSとソフトウェアから構成されます。
EC2は仮想サーバーになります。そのため簡単にサーバーをつくったり消したりなどができます。サーバーを増やしたり減らしたりするときも物理的なものは必要ありません。
料金はサーバーを起動している時間に応じて発生します。サーバーの状態を詳しく知りたい方は公式サイトをチェックです。インスタンスを終了(削除)すると復旧できないので注意です。
作成の手順の概要
ここからはサーバーの作る手順を解説します。
- OSを選ぶ
- 性能を選ぶ
- ストレージを選ぶ
- ネットワークを設定
- キーペアを設定
OSはAMIというテンプレート構成で選択できます。
性能の見方はこちらのブログが参考になると思います。
ストレージはAmazon EBSを使います。
ネットワークはデフォルトVPCが最初から設定されています。セキュリティグループを設定することで特定の人しか接続できないといった設定ができます(ファイアウォール的な?)。
キーペアは鍵同士が正しいものだけがインスタンスに接続できるようにする仕組みです。インスタンス側(稼働している仮想サーバーのこと)が公開鍵、クライアント側は秘密鍵を持ちます。
おまけ
自分用メモ程度に
ここはとくに読まなくていいと思います。
IPアドレス
インスタンスでのIPアドレスの扱い
- プライベートIPアドレス:インターネットから接続不可、同じVPCネットワークのインスタンス間で使用
- パブリックIPアドレス:インターネットから接続可、IPアドレスは可変
- Elastic IPアドレス:インターネットから接続可、IPアド可レスは固定
システムの信頼性
スケーリング(サーバーを一時的に増やしたり、減らしたりする)できるサービス→Amazon EC2 Auto Scalingがある。デメリットとして料金がかかること、スケーリングができるように作る(設計)必要がある。
ロードバランサー(負荷分散装置)のサービス→Elastic Load Balancing。複数のインスタンスに通信を分けられる。
Amazonのデータベースサービス
このサービスはデータベースを作ることができます。
まずはデータベースとは何かについて確認します。
データベース
あるデータの集まりのことを指しています。
例えば商品名、値段、数などをまとめて保存されているものといった感じです。
データベースを作るときはDBMSというソフトウェアが必要です。MySQLなどがあります。
データベースはこんなふうに区分されています。
- リレーショナルデータベース:表形式のデータ形式(Excelみたいな感じ)
- NoSQL:リレーショナルデータベース以外
Amazonでのサービス:RDS
Amazon RDS:リレーショナルデータベースを作れる
EC2でもできるけど違いは?
RDSは細かいところは任せて運用できるが制限(OSに触れない、バージョンが決まっている)がある。
EC2は細かい設定を作れるが運用が大変。
RDSでデータベースを作る
作る際には推奨されているものを作ってくれる簡単に作成があるので最初はそれでいいのではないのかと思います。
何か目的があって設定したいのであれば手順は
- DBMSを選ぶ
- ユーザー名、パスワード設定
- インスタンス設定
- ストレージ選択
- 可用性、耐久性を設定
- ネットワーク設定(基本ネットにつなぐ必要がないのでプライベートサブネットに配置する?)
料金はEC2と同じで起動している時間で発生します。またデータ量に応じて料金が発生します。
ストレージサービス:Amazon S3
データの保存、取り出しができるサービス。
イレブンナインという高い耐久性と、容量が実質無制限などの特徴があります。
ストレージとデータベースの違い
データベースは数字、文字列のデータ
ストレージはテキストファイルや画像、動画といったファイル
だいたいこのように使い分けられているようです。
ファイル単位ならストレージ、早い処理(挿入、更新、検索などで)を求めるならデータベースが適しています。
S3サービス概要
- オブジェクト=ファイルに相当
- バケット=フォルダに相当
といった名前でS3ではストレージに保存するようです。
バケットの名前は規則があるようです。以下公式サイトの説明記事です。
ストレージにはクラスがありアクセス頻度で自動的に切り替えることができます(ライフサイクル機能)。
アクセスがすくないものはだんだんアクセスに時間がかかるところに移動するみたいな感じです。
料金もこの移動に合わせて最適化が自動で行われます。
使う流れは
- パケット作成
- アップロード
料金はデータ量とクラスで決まります。
概要補足
・バージョニングという機能があり、有効にした状態で上書きすれば、上書き前のバージョンを復元できる。
ただし料金は増える。
・デフォルトでは自分しか閲覧することができない(ブロックパブリックアクセスが有効)が、アクセス制御(バケットポリシーの設定)でほかの人も閲覧できるようにできる。
パケットポリシーについて公式リンク
・静的Webサイトを作れる。
HTMLや画像を入れておき、機能を有効化するだけでOK。動的なものはS3だけでは現在作れません。
HTTPからHTTPSに変えたい場合は、Amazon CloudFrontというサービスを利用するようです。
ネットワークサービス:Amazon VPC
サーバーとの接続にはネットワークが必要になります。
それを用意するサービスになります。
サービス紹介の前にネットワークについて確認します。
ネットワークとは?
網目状に作られたものを指しており、様々なものが繋がっている状態なんだなくらいの感じです。
コンピューター同士もケーブルや電波でつながっています。
このネットワークは分割することができ、分割したネットワークをサブネットと呼びます。
メリットは
- サブネットごとに通信制御が行える
- 細かく分割されることで障害の特定がしやすい
- 必要のないネットワークを通らずに効率よく通信できる
サブネットの設定の際はCIDRという表記を使って行う。
CIDRとかIPアドレスとかの解説はこちらの記事が分かりやすいと思います。
VPCサービス概要
EC2やRDS作成の際に、ネットワーク設定を行う工程があったがそのネットワークはこのサービスを利用して作られている。
VPCは仮想ネットワークを作るサービスです。仮想ネットワークについては以下記事など参考に
物理的な機器をつないだり、きったりするのではなくてソフトウェアで制御(つないだり、きったり)しているって感じでしょうか。
Amazon VPCでは可用性の確保の観点から、サブネットごとに別のアベイラリティゾーンを指定できます。
VPCはデフォルトではインターネットにはつながっていないため、ゲートウェイを作って取り付ける必要があります。ここでサブネットは
- パブリックサブネット:インターネットからアクセス可
- プライベートサブネット:インターネットからアクセス不可
というふうに呼ばれます。
料金についてはインターネットからVPCの通信(インバウンド:外から内へ)は無料ですが、VPCからインターネットの通信(アウトバウンド:内から外へ)は有料です。ほかにもオプション(NATゲートウェイなど)が有料になります。
サーバーレスサービス
アプリ開発に集中したいという人向けにインフラやOS、ミドルウェアなどをすべてAmazonがやってくれるサービスがあります。
それがサーバーレスサービスです。
詳しく知りたい方(PaaSとの違いなど)は調べるか以下を参考に
AWS Lambda
Lambda(ラムダ)はAWSの代表的なサーバーレスサービスです。
このサービスはソースコードをアップロードするだけで実行してくれるサービスです。
特徴はイベント駆動型の処理ができる点です。これはトリガーが発生した際に、プログラムを実行してくれる機能です。
流れは
- Lambda関数作成
- トリガー選択
- ソースコードアップロード
- デプロイ(コードを実行可能な状態にする)
料金は関数の実行時間に応じて発生します。
参考書籍、教材
AWS1年生クラウドのしくみ
図解があることで理解が進みやすいです。かわいらしいキャラクターのやりとりと分かりやすい言葉でかかれており、何にも知らない人が読んでも大丈夫だと思います。文章だけがしんどい方はぜひ。
公式サイトの初心者向け教材
ハンズオンで学べる公式サイトの教材
どれからやればいいかわからない場合は以下には指針もあるので参考に
コメント