AWS

簡単な言葉でAWSの主要なサービスを説明してみる

いつもご利用ありがとうございます。このブログは、広告費によって運営されています。

オススメ本
Web技術を勉強するなら、かなりオススメの雑誌です。毎月新しい発見があります。ついに最終号・・・、みなさん買いましょう!!
読んで損することはない名著。命名で悩むことが多い人はこの本がオススメです。

こんにちは。

2ヶ月間放置したブログなのですが、サービスリリースに合わせて触らざるを得なかった AWS について書いていきます。

この記事の対象は、

○AWS のサービスにイマイチピンときてない人 ○ 全く知らない人

かなと思います。

EC2 とは?

(仮想的に作られた)サーバーです。

仮想的っていうところがイマイチピンとこないと思うのですが、別に知らなくても良いです。

ようするに「何でも屋」です。

Laravel も Rails も使えるし、ファイルも置ける、データベースも、重い変換処理も、全部この中で実行させることができます。

大抵の場合、フロントマンとしてユーザーと直に繋がる部分(ユーザーが見てる部分)を担当することになると思います。

大事なことは、

○ CPU・メモリを後で増やすことが簡単
○ 複製が簡単

ということです。

ユーザーの同時接続が増えて、処理が遅いと感じたらすぐに強く出来る、サーバーを増やせるということです。

ハイパーミニマムスタートするなら、EC2+S3 でスタートすれば良いと思います。

S3 とは?

ファイル置き場です。

シンプルストレージサービス略して S3。

AWS を使うのであれば、とりあえずファイルは全てこの中に入れるように作れば良いと思います。

逆に特別な理由があるときに EC2 に保存して、溜めずに削除する仕組みにすべきだと思います。

RDS とは?

データベースです。

EC2 にもデータベースを置くことは出来ますが、その部分をこっちに担当させるということです。

データベースサーバーは別で用意した方が良い点があって

○ データベースの処理がボトルネックになっている場合ここを強くすれば良い

ってことです。

最小でも 2000 円かかる部分なので、ミニマムスタートであれば着けなくても良いかもです。

ロードバランサー(ALB)とは?

EC2 を複数台にして負荷分散させるやつです。

A さんは EC2(A)、B さんは EC2(B)に振り分けるのを自動でやってくれるやつです。

ターゲットグループで EC2 を指定すればすぐ反映されるので、増やすのも、一時的に外すのも簡単に出来ます。

Lambda とは?

呼ばれたときだけ起きる仮想サーバー

EC2 は常に働いているのに対して、lambda は呼ばれたときだけ起きて作業してまた眠ります。

「作業の時間に対して課金が発生」します。

EC2 の一部の処理をこっちで担当させたり、サーバーレスアプリで「サーバーがあったら楽なのに」部分を担当させたりできます。

RDS と連携するには RDS proxy を使わないと使い物にならないので別途約 1500 円かかります。

EBS とは?

外付けハードディスクのことです

AWS の場合、増やしたり減らしたりが簡単です。

EC2 や RDS で見かけると思います。

Route53 とは?

ドメインとか IP とか設定するやつ

住所みたいな感覚だと思います。

ドメインを ALB とか EC2 とかにくっつけたいときに使うやつです。

Certificate Manager とは?

SSL(Https 化)したいときに使うやつ

「証明書の発行」みたいな言い回しになるみたいですが、つまり Https 化したいときに使うやつです。

最初は ALB や CloudFront に使う可能性が高いかなと思います。

CloudFront とは?

データをキャッシュ化させて通信容量を減らすやつ。通信する方向を変えるやつ。

難しい。説明が難しい。

普段 ユーザー →EC2→S3  でファイルを取ってきたところを、

ファイルの情報をキャッシュ化して CloudFront においておくと、ユーザー →CloudFront っていう手順で持ってこられます。

強そうなエンジニアが「それ CDN 化したほうがよくない?」って言ってきたらコレです。

セキュリティグループとは?

この人は味方ですよ、と教えてあげるやつ

この EC2 とこの RDS は味方だから接続を許可するっていうのを設定する場所です。

基本的に全解放するのは、ユーザーが使える部分になります。つまり、ALB か(ALB を使わない場合は)EC2 か CloudFront になるのでは?と思います。

このセキュリティグループを「動いた!」と言って全解放しまくるのは良くないということです。

例えば、EC2 に接続する方法を ssh+IP に設定した方が良いとか。

接続エラーは大体この設定が間違っている感じになりますが、多分最初はみんな慣れるのが大変だと思います。

IAM(ロール)とは?

サービスを触って良い人を指定するやつ

EC2 担当官に対して、EC2 のどの機能を触って良いかを指定してログイン用の ID とパスワードを渡すのを指定する部分になります。

ムズイ。

他には、AWS と外部サービスを連携するときに使います。

外部サービスのシークレットに ID とパスワードを保存させて、それを参照して接続を許可するみたいな、そういう設定をする場所です。

ムズイです。

SES とは?

サーバーからメールを送信したい人が使うやつ

メール送信したいなら、使うことになると思います。

VPC とは?

セキュリティで頑張りたいやつ

仮想プライベートネットワークのことなのですが、「同じ VPC を指定してないサービスからは接続をしない」みたいなことをするところです。

CloudWatch とは?

ログを出すやつ

EC2 は EC2 内でログを出せるのですが、Lambda のようなサービスはこっちにログが出ます。

CodeDeploy とは?

デプロイの自動化で使うやつ

デプロイ作業を人がやるとミスる可能性があるので、自動化させるやつです。

ソースを書く → ビルドする → テストする → デプロイ → 監視 → 上手く稼動したら前のやつは削除

こんな感じのやつに使います。

この記事が分かりやすいです。

https://aws.amazon.com/jp/builders-flash/202005/awsgeek-ci-cd/

まとめ

ざっくりとした説明でした。

気になった部分はぜひ掘り下げてみてください!