satococoa's blog

主にサーバーサイド、Web 系エンジニアのブログです。Go, Ruby, React, GCP, ...etc.

AWS始めました

遅ればせながら、興味は抱きつつもなかなか手を出さずにいたAmazon Web Servicesを始めました。
きっかけはきれいな表紙に惹かれてなんとなくこの本を手に取ったこと。

AWSの概念から活用例、プログラムから扱う方法まで載っていてかなり充実していました。
サンプルコードもPHPですが多数掲載されていますのでかなり参考になります。
シンプルでわかりやすいコードですので普段PHPを使っていない方や、プログラミングの経験が浅い方でも大丈夫だと思います。
(もっとも、SQSとかSDBのあたりになるとちょっと知識が必要ですが、S3くらいまでは十分いけると思います。)

AWSについては「Amazonのやっているクラウドのいろんなサービスの集まりだよね」とか「サーバーやストレージを貸してもらえるんだよね」、「herokuもこの上で動いてるんだよね」程度の知識しか持ち合わせていなかった僕ですが、本書を一通り読み終えた後で無性にAWSを使って何か作ってみたくなりました。

参考までに、僕が個人的にこの本で特に参考になったと思ったところを紹介します。

第4章 Amazon S3 を使ったデータの格納

S3(Simple Storage Service)の基本操作を学ぶことができます。PHPコードからバケット(ファイルを入れておく入れ物のようなもの)を作ったり、その中にあるオブジェクトの情報を取り出したりします。
GDを使ってサムネイルを作成しサムネイル用のバケットに保存する、なんてことも書いてありますのでPHP使いの人には特にうれしいのではないでしょうか。
最後にCloudFrontを使用してコンテンツを効率よく配信する方法も説明されています。(もちろんコード付き)
この章を読んでS3を十分に実践で使えそう、という感触を持てました。

第5章 Amazon EC2 を使った Web ホスティング

この章、非常に丁寧です。多数のスクリーンショットがあり、ややこしそうなキーペアの準備やSSHでのつなぎ方まで一つ一つしっかり解説があります。
IPアドレスを割り当て、EBSボリュームの作成・接続(mkfsし、mountするところも書いてくれています。)をした後、PHPの動作確認まで行っています。
オリジナルのAMIの作り方を説明した後、プログラムから以上の操作(EC2を立ち上げ、IPアドレスを割り当て、EBSを接続する)を行うコードを提示して本章は終わっています。

第6章 Amazon SQS によるスケーラブルなアーキテクチャの構築

SQS(Simple Queue Service)の説明と簡単なチュートリアルの後、イメージクローラを製作しています。
  1. URLを与えるHTMLをダウンロード
  2. ページ上の画像のダウンロード
  3. 画像のサイズ調整
  4. 画像の合成
以上の処理をキューを介してつなぎ、それぞれのステップが独立性の高い粗結合のアプリケーションが出来上がります。もちろん、それぞれのステップでデータの保存先としてS3を使っています。
今回は一通り流し読みしてしまったので、あとでちゃんと手を動かして身につけたいです。

第8章 Amazon SimpleDB: クラウドデータベース

GAEのDatastoreやNoSQLとはまたちょっと毛色が違いますが、スケーラビリティの高いシンプルなデータベースだそうです。
ほぼSQLの構文でデータを検索することができたりするので、SQLがわかる人にも取っ付きやすそうです。
データが文字列として格納されるため、数値や負の数を格納する際のうまい方法についても言及されています。
この章では最後にRSSフィードの処理と格納を行っています。さっそくSQSも使っています。

ざっと紹介してしまいましたが、他の章も丁寧でわかりやすかったです。
興味はあるけれども機会が無くてまだ触っていない、という僕のような人には特におすすめだと思います。