実運用に即しているからこそ難しいIAMロール
続いて、AWSを使うにあたり、難しいと思ったこと、不安に思っていることが話題に上りました。
増井:今回のアプリ開発で難しかったところは?
池澤:使うサービスによって手順が違うところでしょうか。もう1つは「IAMロール」という権限管理サービスが難しかったです。
増井:AWS Identity and Access Management(IAM)は、ユーザーやリソースにアクセス制限を設定できるサービスです。非常に細かいアクセス制限をJSON形式のファイルで設定できますが、その分難しいと感じてしまいます。
池澤:でも、セキュリティ上細かくアクセス制限ができなければ困ってしまう。
増井:そうですね、本番運用ではセキュリティは外せません。IAMロール以外にも、そのまま本番に回せるような、実運用に即したサービスが数多くあるのがAWSの良いところです。
池澤:あと、実際に使っていて不安に思うのは課金ですね。
増井:個人では、最初の1年間に無料枠があるし、それほど問題にはならないと思います。企業の場合、実際に運用してみなければ分かりません。上限値に近づいたら警告を出す機能などもあります。また、ボリュームディスカウントもあるので、AWSに相談するといろいろサポートしてくれます。
増井さんはベンダーロックインについても言及。たとえば、動画を自動的にリサイズしてくれるAmazon Elastic Transcoderといった便利な独自サービスがあるために、AWSにロックインされる部分も確かにある。一方で、XenをベースにするAmazon EC2のように、オープンソースに由来するサービスも多く、自分でインスタンスを立ち上げて対応できる自由度もあると説明しています。
村瀬さんは「ベンダーロックインになるかもしれないが、AWSのサービスを全部自前で用意すると管理などが大変なので、最初に利用すると決めたらAWSに最適化して開発を行うのが工数的にも運用的にも楽」との意見を述べました。
Webデベロッパーにお勧めなAWSのサービスとは
最後に、AWSを使うなら、どこから始めればよいかを考えてみました。
増井:AWSはどこから使い始めればよいと思いますか。
池澤:とても魅力的なサービスだと思ったので、Amazon S3がお勧めです。
増井:Amazon S3を使うなら、併せてIAMロールも勉強すると理解しやすくなると思います。
村瀬:私は開発環境に関連する部分から始めるとよいと思います。開発用に仮想サーバーを立ち上げたり数を増減したりといったことです。AWSでは開発環境をそのまま本番運用に回せるので、運用に関する部分も押さえておきたいです。
増井:一部のサービスはローカルマシン上でも動作するので、AWSは開発環境としても利用できます。
池澤:ところで、Webデベロッパーにはどのサービスがお勧めですか?
増井:AWS Lambdaですね。Web開発ではJavaScriptを使うことが多いし、非同期処理やバックグラウンド処理を実装する際に便利だと思います。
村瀬:短期間でサーバーを立てずにプロトタイプを作りたいときに、AWS Lambdaと他のサービスを組み合わせるとさくっと作れそうです。
池澤:AWS Lambdaはどんどん発展していきそうですね。こんなに便利なサービスがあるのに、数が多くてどう使い分ければよいか分からなくなります。
増井:そのサービスを知っているかどうかで違ってくるので、AWSの製品ページをときどき検索してみてください。
AWSは、Amazon EC2やAmazon S3などのハードウェアに近いところから上位層へと徐々にサービスを追加してきました。今では、AWS Lambdaのようにデベロッパーが便利に使えるサービスが数多くあります。デベロッパーの視点でAWSに注目するとおもしろいでしょう。
