CodeZine(コードジン)

特集ページ一覧

【デブサミ2015】19-A-5 レポート
プログラマに贈るクラウドとの上手な付き合い方 ~アプリ構築の鉄則とAWSの便利テクニックの紹介

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2015/04/17 14:00

 「クラウドサービス」の利用者比率は、実際に環境を構築し、運用を行う"インフラエンジニア"が高いのでは……と思う方々も多いと思いますが、実際はそんなことは無く、プログラマの方々にとっても数多くのメリットや使いどころがあります。2015年2月19日に行われた「Developers Summit 2015」ではアマゾン データ サービス ジャパン 西谷圭介氏が登壇、Webアプリケーションやモバイルアプリケーションの開発を行っているプログラマ向けに、クラウド利用のコツや各種プラクティスを紹介しました。当稿ではその発表内容についてレポートします。

目次
アマゾン データ サービス ジャパン 西谷圭介氏
アマゾン データ サービス ジャパン 西谷圭介氏

クラウドを採用することで得られるメリット

 まず初めに、西谷氏はクラウドのメリットとして「改善」と「改革」の2点を挙げました。「改善」とは、今までできていたことがより早く、簡単に、安く実現出来るようになることを指します。データベースの管理等は従来でも出来ていましたが、クラウドのマネージドサービスを用いることで管理そのもののコストや手間が軽減され、自動化も容易になりました。「革新」とは、今まで出来なかったことが出来るようになることを指します。

 クラウド全般に関する上記の概要紹介に続ける形で、西谷氏は「クラウドコンピューティングはインフラの文脈で語られることが多いですが、果たしてそれだけでしょうか? プログラマにとっても関連は深く、恩恵を得られる局面も多いのです」と当セッションの本題に切り込んで行きます。

 プログラマにとって、クラウドを活用することで何が嬉しいのでしょうか? この点について、西谷氏は2つのポイントに絞ってメリットを解説しました。

 1つは「リソース制約からの解放」。例えば、オンプレミス環境であればサーバを用意するとなると調達から構築まで実機を扱う必要があり、そこに引きずられる形で様々な制約がついて回りますが、クラウドの場合であればリソースを「必要な時に必要な分だけ、利用することが可能」であり、しかもそれらは「短時間で調達が可能」です。また、利用料金については使った分だけの「従量課金」であることも大きく異なる点でしょう。これらの特性を活かすことで、これまで出来なかったことがクラウド環境上で実現可能になるのです。

 2つめは「プログラマブルであること」。クラウドの場合だと、APIで諸要素をコントロールすることが当たり前であり、AWSの場合ほぼ全てのサービスにAPIが提供されています。このため、ネットワーク環境からプラットフォーム、各種要素で構成されるインフラ環境を、プログラミングするかの如く構築し、制御することが出来るのです。プログラマブルであることで、インフラ担当にお願いしていたような作業(テスト環境の準備等)もプログラマ自身の手で行えるようになります。

クラウドならではのメリットを活かす構成

 プログラマブルな点を活かしたクラウドならではのメリットとして思い浮かぶのは「ワンクリックで新しい環境を用意/破棄出来る」というところでしょう。オンプレ環境の場合は環境を自社内で持つ必要があり、必要に応じて調達を行いますが、この際の手順は複雑かつ遅くなりがちです。一方クラウドにおいては、ワンクリックで新しいインフラを用意することが可能です。一気に1000サーバを追加、または削除するという作業についても設定次第でもちろん可能です。

 クラウド上での継続的インテグレーションの一環として、スローテストを避けるためにサーバを並列起動・実行し、必要無くなった時点でそれらサーバを止める、というクラウドならではのアプローチも可能ですし、「ブルーグリーンデプロイ」(本番稼働環境と次期公開環境を並行で用意しておき、環境間の切り替えをルータやロードバランサーの切り替えによって本番環境のアップデートを行う)と呼ばれる手法もクラウドの特性を活かしたものと言えるでしょう。

 AWSにおいて最も基本的な構成とされている下記構成(2つのAZに分けてサブネットを作成、ELB配下にEC2を2台配置、RDSもMulti-AZで構成)も、実は様々な局面で柔軟な対応が行える構成となっています。下記の点にも言及しつつ、「この構成は本当にオススメです!」を西谷氏は解説を行いました。

  • トラフィックが増えてWebサーバのEC2が重くなる:AMIでEC2をコピー構築しておき、AutoScalingに組み込むことで自動的に拡大/縮小が可能
  • データベースが重くなる:スペックの強化、ストレージ容量の拡大も容易
  • データベースにアクシデント発生:データセンター間での冗長構成を取っておくことでスナップショット・ログからデータを復元可能

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • しんや(シンヤ)

    2010年末~2013年前半位までの期間で興味のある勉強会に頻繁に参加。参加してきた勉強会のレポートブログとTogetterをひたすらまとめ続け、まとめ職人(自称/他称含む)として暫く過ごしておりました。色々な縁あってDevelopers Summit 2013では『公募レポーター』も務めました。...

バックナンバー

連載:【デブサミ2015】セッションレポート

もっと読む

All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5