AWSってすげーなって思った話
インフラエンジニアとして、物理のサーバもクラウド上のサーバも触っている毎日なのですが、 訳あって最近AWSの勉強をいっぱいしてます。
要は試験勉強してるんですが、AWSのこと調べてるとすげーなって思うことが多々あって、そのことをちょっとだけ。
スタートは「自社のサービスをよくしたい」
AWSはご存知のとおりAmazon Web Service、つまりはAmazonのサービスなのですが、 このスタートは「自社のインフラ環境をどないかしたい」、というところから始まったものだそう。
AWSが最初に提供し始めたサービスは「Amazon Simple Queue Service(SQS)」。
キューを保存するサービスで、システムAがSQSにキューを投げたら、そのキューをシステムBが取りにきて処理を行っていく。。。というもの。
AWSではざっくりこんな流れでSQSを使っているみたいです。
- 注文が来たらその注文をキュー1にいれる
- 倉庫がキュー1を読み取り、商品が存在するか確認してその結果をキュー2にいれる
- 配送センターがキュー2を読み取り、配送状況を確認して…
SQSが出来る前は自前のプログラムで処理をしていたみたいですが、メモリがどうしてもボトルネックになったみたい。
こんな感じで自社のサービスフローを1つ1つ改善していったのがAWSのサービスなんですね。
フルマネージドサービスの提供
サーバとして使うEC2とか、データベースのRDSとかありますよね。 これってAWSが提供する部分(ハードの部分)は全てAWSの責任範囲になります。 (逆にOS部分は自己責任になります)
今まで物理サーバだと、ハードの部分もOS部分も自己責任だったところが、 OS部分だけ注力すればいいというのはかなりの違いですよね。
更に言うと、「フルマネージドサービス」として提供している「Amazon S3 (スケーラブルなクラウドストレージサービス ) | AWS」や「Amazon CloudFront CDN (コンテンツ配信とストリーミング) | AWS」は、ストレージやCDNに関しては全てAWSの責任範囲になります。(他にもフルマネージドサービスとして提供しているサービスはもちろんあります) いわば、OSの部分までAWSが担ってくれて、自分はデータを置くことやどのサイトをCDN上に置くのかということだけ考えればOKです。
これってすげーなっていうか、インフラエンジニアいらねーなっていう流れなのが怖いですが、 どういう動きでこうなっているのかってのはインフラエンジニアが得意とするところなので、日々勉強せーよってことか。。
オープンソースもマネージドサービスとして提供する
サービスの元はオープンソースで提供しているものをAWSがちょっと使いやすくカスタマイズしているものがあります。
例えば…
- 「Amazon ElastiCache (キャッシュ管理・操作サービス)|AWS」:EC2にインストールされてMemcachedやRedis
- 「AWS OpsWorks (DevOps アプリケーションの管理・自動化)|AWS」:Chef
こんな感じですね。
「実体がオープンソースなら自分でやれば無料やん!」って考える方もいるかもしれませんが、 AWSの場合はフルマネージドサービスなので、「サーバのことなどはAWSが全て面倒を見てくれる」です。 オープンソースを乗せたサーバのコストや運用コストは…残念ながら無料じゃない。
こうして勉強していると、他のクラウドと比較しても一歩も二歩も先をいってるなーと感じます。
インフラエンジニアとしては、こうしたサービスの最適解を提供していきたいですね。
おあとがよろしいようで。