SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
Google App Engine 入門
 -2009年のGoogle App Engine Javaをふりかえる-




                     tantack@名古屋Scala勉強会
自己紹介
id: tantack(hatena,twitter,etc…)
お仕事はJavaPG兼SEもどきの2年生
こんなワードに喰いつきます
  – Java
  – Scala
  – Google App Engine Java
  – Android
  – 集合知
  – 日本酒
勉強会のご紹介
名古屋Scala勉強会
 – 毎月第3金曜日あたりに
   『Scalaスケーラブル
    プログラミング』の
    読書会をやっています。
            通称コップ本→


名古屋アジャイル勉強会
 – 毎月月末の金曜日に、アジャイルをテーマとし
   たワークショップ形式の勉強会をやっています。
今年、2009年も色々ありましたが・・・
1年間お疲れ様でした!!
だが、休暇モードに
入るのはまだ早い!
・・・ということで、
2009年の締めくくりとして
 本日はGAE/Jについて
一緒に勉強していきましょう
今日のお話
ざっくりクラウドサービス
Google App Engine Java?
2009年のGoogle App Engine
 Javaをふりかえる
ざっくりクラウドサービス
ざっくりクラウドサービス
                      明確な定義はない!
クラウド
って?         ・・・けれども、
            『パソコン中心だったデータの保存や
            処理を、インターネット上の
            サーバ群へと移行する流れ』
            のことを、今回の発表ではクラウドと呼ぶ。




                         WEBアプリ
          PC・モバイル端末
                          +データ
       利用者は場所・アクセスする端末
       を選ばず、インターネット上に浮
       かぶ雲のような『どこか』にある
       サーバ群を利用する。
ざっくりクラウドサービス


 SaaS
        開発者側の視点からク
        ラウドサービスを見た場
 PaaS   合、3種類のサービ
        スに分類される

 IaaS
ざっくりクラウドサービス


 SaaS     Software as a Service
         (ソフトウェア提供サービス)

         提供されるソフトウェアのみを
         利用できる。

 PaaS    Gmail
         twitter
         Salesforce.com
         Evernote

  IaaS
ざっくりクラウドサービス


 SaaS     Infrastructure as a
                Service
           (インフラ提供サービス)

        仮想マシンやストレージの提供。
 PaaS   開発者側でOSからミドルウェア
        まで選択できる。

        Amazon EC2/S3


 IaaS
ざっくりクラウドサービス


          Platform as a Service
  SaaS   (プラットフォーム提供サービス)

         ミドルウェア(実行環境、DB等)
         含む提供。開発言語は限定され

 PaaS    る。

         Google App Engine
         Windows Azure
         Force.com

  IaaS
Google App Engine Java?
Google App Engine Java?
GAE/Jを使うメリット
 無料で試せる
 サーバの維持コストはゼロ
 アプリケーション開発に専念できる
Google App Engine Java?
無料で試せる
 一定のリソース使用量(Quota)までなら無料
 リソース使用の少ないアプリケーションな
  ら、完全に無料での運用も可能
 利用者が増え、Quota制限を超えた(*1)ときだ
  け、お金を払えばよい(*2)
 *1 Quota制限を超えたら、無料利用の場合、アプリケーションは停止する。
 *2 自動で課金されるわけではない。
    予めいくらまでなら払うか、明示的に指定しておく。
Google App Engine Java?
サーバの維持コストはゼロ
 サーバはどうしよう?OSはどうする?DB
  は?・・・といった検討が不要
 利用者の増加等によって負荷が増えた場合
  にも、自動的にスケールするため、サーバ
  増設の心配をする必要がない
 サーバの保守はGoogleが行っているため、
  故障の心配する必要もない(*1)
 *1 最近は少なくなったと思うが、GAE自体止まることがある。
Google App Engine Java?
アプリケーション開発に専念できる
 必要なものは携帯電話(*1)、EclipseとGoogle
  Plugin for Eclipseのみ
 開発者はアプリケーションを書くだけで、
  すぐにサービスが公開できる
 *1 アカウント登録に携帯電話会社のメールアドレスが必要。
    (iPhoneやAndroidだと死亡?)
Google App Engine Java?
実行環境の特徴
 自動スケーリング
 Java APIの制限
 データストア
 各種サービス
Google App Engine Java?
自動スケーリング
 アプリケーションに負荷が掛かると、負荷
  に応じて自動的にスケーリングし、負荷分
  散が行われる
 アプリケーション側で意識して負荷対策を
  とる必要はないが、リソース使用=利用料
  金に直結する
 リソースの使用をいかに抑えるかが、運用
  上は重要になってくる
Google App Engine Java?
データストア
 Datastore APIはGoogleのBigtableを利用し
  たKey-Valueストア
 JDO, JPA, Low-Level APIによりCRUD操作を
  行う
 JDOはLow-Level APIに比べると、データ量
  が増えるほどパフォーマンスが落ちていく
 Datastoreに近いLow-Level API、もしくは
  それをラップしたslim3 Datastoreがオスス
  メ
Google App Engine Java?
Java APIの制限
 複数のスレッドを作成することができない
 ソケット通信は行えない
 ファイルへの書き込み禁止
 1回のリクエストは30秒以内で完了しないと
  例外を投げられる
Google App Engine Java?
各種サービス
 Cron…指定した時間・間隔で定時処理を行うことが
  できる
 Memchache API…メモリ上にデータをキャッシュし
  ておく
 Task Queue API…タスクをキューに登録し、同時に
  いくつもの処理を走らせることができる
 URLフェッチ API…HTTP,HTTPS通信
 Mail API…メールの送受信
 Quota API…Quotaの状況を取得する
 Blobstore API…50MBまでのデータを扱う
2009年のGoogle App
Engine Javaをふりかえる
Google App Engine Java SDK 1.2.0

1.2.0   1.2.1   1.2.2   1.2.5   1.2.6   1.2.8   1.3.0



          2009年04月07日 SDK 1.2.0リリース

        Google App Engineに待望のJava版登場!

        4日後の4月11日、ひがやすを氏が開発を続けていた
        フレームワークslim3がGAE/Jに対応。
        このバージョンからCronサポートも始まったため、
        Bot等に必要な定時処理が可能に。
Google App Engine Java SDK 1.2.1

1.2.0   1.2.1   1.2.2   1.2.5   1.2.6   1.2.8   1.3.0



         2009年05月13日 SDK 1.2.1リリース

        主にバグ修正のアップデート

        この修正で、JSPの日本語が文字化けしていた問題
        は解決!
Google App Engine Java SDK 1.2.2

1.2.0   1.2.1   1.2.2   1.2.5   1.2.6   1.2.8   1.3.0



         2009年07月13日 SDK 1.2.2リリース

        主にバグ修正のアップデート

        あんまり印象に残ってない・・・。
Google App Engine Java SDK 1.2.5

1.2.0   1.2.1   1.2.2   1.2.5   1.2.6   1.2.8   1.3.0



          2009年09月03日 SDK 1.2.5リリース

        Task Queue API for Javaの追加!
        XMPPのサポート開始

        複数のタスクをキューに登録し、バックグラウンド
        で並行処理ができるように。
Google App Engine Java SDK 1.2.6

1.2.0   1.2.1   1.2.2   1.2.5   1.2.6   1.2.8   1.3.0



         2009年10月13日 SDK 1.2.6リリース

        GAEドメインでのメール受信サポート開始
        アプリケーションの削除サポート開始

        GAE/J単体でメールの送受信が可能に。
        あと間違えてデプロイしてしまった、アプリケー
        ションの削除がようやくできるようになった。
Google App Engine Java SDK 1.2.8

1.2.0   1.2.1   1.2.2   1.2.5   1.2.6   1.2.8   1.3.0



          2009年12月03日 SDK 1.2.8リリース

        JAXBのサポート開始
        Quota APIのサポート開始

        一定量までQuotaを使用したら、アプリケーション
        を止める等の制御ができるように。
Google App Engine Java SDK 1.3.0

1.2.0   1.2.1   1.2.2   1.2.5   1.2.6   1.2.8   1.3.0



          2009年12月14日 SDK 1.3.0リリース

        Blobstore APIの追加
        リフレクションの動作最適化

        50MBまでの大きなデータを扱えるように。
        またGroovyやJRubyといった、リフレクションを多
        用する言語は、実行速度が最大10倍になるらしい。
参考資料
参考資料
クラウド大全<サービス詳細から基盤技術まで>
 – 日経BP社出版局編

    クラウドコンピューティング登場の
     背景から、Amazon EC2,GAEといった
     各クラウドサービスの技術入門、
     分散処理技術の紹介・検証まで
     手広くカバーされています。

    技術者がクラウドコンピューティング全体を俯瞰・把
     握するのに良い書籍です。
    ただ既に情報の古くなっている部分も多いです。
参考資料
Google App Engine for Java   [実践]クラウ
 ドシステム構築
  – (株)グルージェント

     GAE/Jにできないこと、『制約』に
      焦点を当て、『制約』のなかで
      GAE/Jを最大限活用するための
      技術入門書。

     ただ既に情報の古k(略
     最新情報はtwitterが最速、次いで個人のブログに詳細
      がアップされる、といった感じです。twitterでGAEに
      ついてつぶやいている方をフォローするのがオススメ
      です。
まとめ
まとめ
サーバの維持コストはゼロ
開発者はアプリケーション開発に専念
 できる
GAE/Jの登場から、まだ9ケ月弱
アレコレ模索する、夜明け前の段階
つまり・・・
GAE/Jを始めるなら今!
ご静聴ありがとう
 ございました!

Más contenido relacionado

La actualidad más candente

Jawsug chiba API Gateway
Jawsug chiba API GatewayJawsug chiba API Gateway
Jawsug chiba API GatewayTakuro Sasaki
 
[AWS初心者向けWebinar] AWSを活用したモバイルアプリの開発と運用
[AWS初心者向けWebinar] AWSを活用したモバイルアプリの開発と運用[AWS初心者向けWebinar] AWSを活用したモバイルアプリの開発と運用
[AWS初心者向けWebinar] AWSを活用したモバイルアプリの開発と運用Amazon Web Services Japan
 
appengine ja night #24 Google Cloud Endpoints and BigQuery
appengine ja night #24 Google Cloud Endpoints and BigQueryappengine ja night #24 Google Cloud Endpoints and BigQuery
appengine ja night #24 Google Cloud Endpoints and BigQueryRyo Yamasaki
 
SESとLambdaでメールをSlackに通知してみよう
SESとLambdaでメールをSlackに通知してみようSESとLambdaでメールをSlackに通知してみよう
SESとLambdaでメールをSlackに通知してみようKen'ichirou Kimura
 
ゼロから始めるモバイルアプリ開発 / 
 AWS Mobile Hubハンズオン 本編
ゼロから始めるモバイルアプリ開発 / 
 AWS Mobile Hubハンズオン 本編ゼロから始めるモバイルアプリ開発 / 
 AWS Mobile Hubハンズオン 本編
ゼロから始めるモバイルアプリ開発 / 
 AWS Mobile Hubハンズオン 本編Koichiro Nishijima
 
Amazon SESのメール受信対応でサーバー減らせた話 #nds44
Amazon SESのメール受信対応でサーバー減らせた話 #nds44Amazon SESのメール受信対応でサーバー減らせた話 #nds44
Amazon SESのメール受信対応でサーバー減らせた話 #nds44civicpg
 
Farmnoteの技術(AWS Cloud Roadshow 2014 札幌)
Farmnoteの技術(AWS Cloud Roadshow 2014 札幌)Farmnoteの技術(AWS Cloud Roadshow 2014 札幌)
Farmnoteの技術(AWS Cloud Roadshow 2014 札幌)Takehito Tanabe
 
AWS サービスアップデートまとめ 2014年5月
AWS サービスアップデートまとめ 2014年5月AWS サービスアップデートまとめ 2014年5月
AWS サービスアップデートまとめ 2014年5月Yasuhiro Horiuchi
 
プログラマブルクラウドの薦め
プログラマブルクラウドの薦めプログラマブルクラウドの薦め
プログラマブルクラウドの薦めShinpei Ohtani
 
SpringベースのCloud Native Application
SpringベースのCloud Native ApplicationSpringベースのCloud Native Application
SpringベースのCloud Native Application土岐 孝平
 
AWS クラウドで構築するスマホアプリ バックエンド
AWS クラウドで構築するスマホアプリ バックエンドAWS クラウドで構築するスマホアプリ バックエンド
AWS クラウドで構築するスマホアプリ バックエンドkaki_k
 
Java によるクラウドネイティブ の実現に向けて
Java によるクラウドネイティブ の実現に向けてJava によるクラウドネイティブ の実現に向けて
Java によるクラウドネイティブ の実現に向けてShigeru Tatsuta
 
Awsビギナー向け資料 ec2 20111124
Awsビギナー向け資料 ec2 20111124Awsビギナー向け資料 ec2 20111124
Awsビギナー向け資料 ec2 20111124satoshi
 
CDP Night #1 静的コンテンツ配信編
CDP Night #1 静的コンテンツ配信編CDP Night #1 静的コンテンツ配信編
CDP Night #1 静的コンテンツ配信編Akio Katayama
 
20191129 AWS CloudFormarion
20191129 AWS CloudFormarion20191129 AWS CloudFormarion
20191129 AWS CloudFormarionyamamotomsc
 
AWS Lambda / Amazon API Gateway Deep Dive
AWS Lambda / Amazon API Gateway Deep DiveAWS Lambda / Amazon API Gateway Deep Dive
AWS Lambda / Amazon API Gateway Deep DiveKeisuke Nishitani
 
AWSエンジニアが、 経理部門と仲良くなれるTips
AWSエンジニアが、 経理部門と仲良くなれるTipsAWSエンジニアが、 経理部門と仲良くなれるTips
AWSエンジニアが、 経理部門と仲良くなれるTipsTetsuya Ishibashi
 
Azure Service Fabric 概要
Azure Service Fabric 概要Azure Service Fabric 概要
Azure Service Fabric 概要Daiyu Hatakeyama
 

La actualidad más candente (19)

Jawsug chiba API Gateway
Jawsug chiba API GatewayJawsug chiba API Gateway
Jawsug chiba API Gateway
 
[AWS初心者向けWebinar] AWSを活用したモバイルアプリの開発と運用
[AWS初心者向けWebinar] AWSを活用したモバイルアプリの開発と運用[AWS初心者向けWebinar] AWSを活用したモバイルアプリの開発と運用
[AWS初心者向けWebinar] AWSを活用したモバイルアプリの開発と運用
 
appengine ja night #24 Google Cloud Endpoints and BigQuery
appengine ja night #24 Google Cloud Endpoints and BigQueryappengine ja night #24 Google Cloud Endpoints and BigQuery
appengine ja night #24 Google Cloud Endpoints and BigQuery
 
SESとLambdaでメールをSlackに通知してみよう
SESとLambdaでメールをSlackに通知してみようSESとLambdaでメールをSlackに通知してみよう
SESとLambdaでメールをSlackに通知してみよう
 
ゼロから始めるモバイルアプリ開発 / 
 AWS Mobile Hubハンズオン 本編
ゼロから始めるモバイルアプリ開発 / 
 AWS Mobile Hubハンズオン 本編ゼロから始めるモバイルアプリ開発 / 
 AWS Mobile Hubハンズオン 本編
ゼロから始めるモバイルアプリ開発 / 
 AWS Mobile Hubハンズオン 本編
 
Amazon SESのメール受信対応でサーバー減らせた話 #nds44
Amazon SESのメール受信対応でサーバー減らせた話 #nds44Amazon SESのメール受信対応でサーバー減らせた話 #nds44
Amazon SESのメール受信対応でサーバー減らせた話 #nds44
 
Krustlet101
Krustlet101Krustlet101
Krustlet101
 
Farmnoteの技術(AWS Cloud Roadshow 2014 札幌)
Farmnoteの技術(AWS Cloud Roadshow 2014 札幌)Farmnoteの技術(AWS Cloud Roadshow 2014 札幌)
Farmnoteの技術(AWS Cloud Roadshow 2014 札幌)
 
AWS サービスアップデートまとめ 2014年5月
AWS サービスアップデートまとめ 2014年5月AWS サービスアップデートまとめ 2014年5月
AWS サービスアップデートまとめ 2014年5月
 
プログラマブルクラウドの薦め
プログラマブルクラウドの薦めプログラマブルクラウドの薦め
プログラマブルクラウドの薦め
 
SpringベースのCloud Native Application
SpringベースのCloud Native ApplicationSpringベースのCloud Native Application
SpringベースのCloud Native Application
 
AWS クラウドで構築するスマホアプリ バックエンド
AWS クラウドで構築するスマホアプリ バックエンドAWS クラウドで構築するスマホアプリ バックエンド
AWS クラウドで構築するスマホアプリ バックエンド
 
Java によるクラウドネイティブ の実現に向けて
Java によるクラウドネイティブ の実現に向けてJava によるクラウドネイティブ の実現に向けて
Java によるクラウドネイティブ の実現に向けて
 
Awsビギナー向け資料 ec2 20111124
Awsビギナー向け資料 ec2 20111124Awsビギナー向け資料 ec2 20111124
Awsビギナー向け資料 ec2 20111124
 
CDP Night #1 静的コンテンツ配信編
CDP Night #1 静的コンテンツ配信編CDP Night #1 静的コンテンツ配信編
CDP Night #1 静的コンテンツ配信編
 
20191129 AWS CloudFormarion
20191129 AWS CloudFormarion20191129 AWS CloudFormarion
20191129 AWS CloudFormarion
 
AWS Lambda / Amazon API Gateway Deep Dive
AWS Lambda / Amazon API Gateway Deep DiveAWS Lambda / Amazon API Gateway Deep Dive
AWS Lambda / Amazon API Gateway Deep Dive
 
AWSエンジニアが、 経理部門と仲良くなれるTips
AWSエンジニアが、 経理部門と仲良くなれるTipsAWSエンジニアが、 経理部門と仲良くなれるTips
AWSエンジニアが、 経理部門と仲良くなれるTips
 
Azure Service Fabric 概要
Azure Service Fabric 概要Azure Service Fabric 概要
Azure Service Fabric 概要
 

Destacado

Aws elastic beanstalk-handson-summit2012
Aws elastic beanstalk-handson-summit2012Aws elastic beanstalk-handson-summit2012
Aws elastic beanstalk-handson-summit2012Akio Katayama
 
Google Cloud Platformスタートアップハンズオン SendGrid + Google App Engine
Google Cloud Platformスタートアップハンズオン SendGrid + Google App EngineGoogle Cloud Platformスタートアップハンズオン SendGrid + Google App Engine
Google Cloud Platformスタートアップハンズオン SendGrid + Google App EngineSendGrid JP
 
Googleクラウドサービスを利用したシステム構築
Googleクラウドサービスを利用したシステム構築Googleクラウドサービスを利用したシステム構築
Googleクラウドサービスを利用したシステム構築Naomichi Yamakita
 
プロ用CMSフレームワークテーマ「echo」のご紹介
プロ用CMSフレームワークテーマ「echo」のご紹介プロ用CMSフレームワークテーマ「echo」のご紹介
プロ用CMSフレームワークテーマ「echo」のご紹介Seiko Kuchida
 
Restful App Engine
Restful App EngineRestful App Engine
Restful App EngineRyan Morlok
 
GoCon 2015 Summer GoのASTをいじくって新しいツールを作る
GoCon 2015 Summer GoのASTをいじくって新しいツールを作るGoCon 2015 Summer GoのASTをいじくって新しいツールを作る
GoCon 2015 Summer GoのASTをいじくって新しいツールを作るMasahiro Wakame
 
リーンスタートアップにおける、実装やライブ配信基盤の共通化 村田紘司
リーンスタートアップにおける、実装やライブ配信基盤の共通化 村田紘司リーンスタートアップにおける、実装やライブ配信基盤の共通化 村田紘司
リーンスタートアップにおける、実装やライブ配信基盤の共通化 村田紘司紘司 村田
 
Jawsug elastic beanstalk_150207
Jawsug elastic beanstalk_150207Jawsug elastic beanstalk_150207
Jawsug elastic beanstalk_150207Yutaka Hiroyama
 
Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!
Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!
Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!Azure 相談センター
 
モバイル開発を支えるAWS Mobile Services
モバイル開発を支えるAWS Mobile Servicesモバイル開発を支えるAWS Mobile Services
モバイル開発を支えるAWS Mobile ServicesKeisuke Nishitani
 
お前なんかハッカーじゃない╭( ・ㅂ・)و ̑̑
お前なんかハッカーじゃない╭( ・ㅂ・)و ̑̑お前なんかハッカーじゃない╭( ・ㅂ・)و ̑̑
お前なんかハッカーじゃない╭( ・ㅂ・)و ̑̑Seiji Takahashi
 
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 SummerGoのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 SummerHirokazu Fukami
 
S94 Microsoft Azure セキュリティについて
S94 Microsoft Azure セキュリティについてS94 Microsoft Azure セキュリティについて
S94 Microsoft Azure セキュリティについてMicrosoft Azure Japan
 
[AWSマイスターシリーズ] AWS Elastic Beanstalk
[AWSマイスターシリーズ] AWS Elastic Beanstalk[AWSマイスターシリーズ] AWS Elastic Beanstalk
[AWSマイスターシリーズ] AWS Elastic BeanstalkAmazon Web Services Japan
 
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2Takuya Ueda
 
How to make GAE adapt the Great Firewall
How to make GAE adapt the Great FirewallHow to make GAE adapt the Great Firewall
How to make GAE adapt the Great FirewallHayato Yoshikawa
 
Ginとbindataで作るシングルバイナリWebApp
Ginとbindataで作るシングルバイナリWebAppGinとbindataで作るシングルバイナリWebApp
Ginとbindataで作るシングルバイナリWebAppAkihiko Horiuchi
 
[Golang] Go言語でサービス作ってる話
[Golang] Go言語でサービス作ってる話[Golang] Go言語でサービス作ってる話
[Golang] Go言語でサービス作ってる話株式会社YEBIS.XYZ
 
Java?ruby? そろそろgoで行ってみませんか?
Java?ruby? そろそろgoで行ってみませんか? Java?ruby? そろそろgoで行ってみませんか?
Java?ruby? そろそろgoで行ってみませんか? Kenichi Hoshi
 

Destacado (20)

Aws elastic beanstalk-handson-summit2012
Aws elastic beanstalk-handson-summit2012Aws elastic beanstalk-handson-summit2012
Aws elastic beanstalk-handson-summit2012
 
Google Cloud Platformスタートアップハンズオン SendGrid + Google App Engine
Google Cloud Platformスタートアップハンズオン SendGrid + Google App EngineGoogle Cloud Platformスタートアップハンズオン SendGrid + Google App Engine
Google Cloud Platformスタートアップハンズオン SendGrid + Google App Engine
 
Googleクラウドサービスを利用したシステム構築
Googleクラウドサービスを利用したシステム構築Googleクラウドサービスを利用したシステム構築
Googleクラウドサービスを利用したシステム構築
 
プロ用CMSフレームワークテーマ「echo」のご紹介
プロ用CMSフレームワークテーマ「echo」のご紹介プロ用CMSフレームワークテーマ「echo」のご紹介
プロ用CMSフレームワークテーマ「echo」のご紹介
 
Restful App Engine
Restful App EngineRestful App Engine
Restful App Engine
 
GoCon 2015 Summer GoのASTをいじくって新しいツールを作る
GoCon 2015 Summer GoのASTをいじくって新しいツールを作るGoCon 2015 Summer GoのASTをいじくって新しいツールを作る
GoCon 2015 Summer GoのASTをいじくって新しいツールを作る
 
リーンスタートアップにおける、実装やライブ配信基盤の共通化 村田紘司
リーンスタートアップにおける、実装やライブ配信基盤の共通化 村田紘司リーンスタートアップにおける、実装やライブ配信基盤の共通化 村田紘司
リーンスタートアップにおける、実装やライブ配信基盤の共通化 村田紘司
 
Jawsug elastic beanstalk_150207
Jawsug elastic beanstalk_150207Jawsug elastic beanstalk_150207
Jawsug elastic beanstalk_150207
 
minne の API 改善
minne の API 改善minne の API 改善
minne の API 改善
 
Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!
Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!
Web制作会社様向け 知って得するMicrosoft Azureの概要と使い方!
 
モバイル開発を支えるAWS Mobile Services
モバイル開発を支えるAWS Mobile Servicesモバイル開発を支えるAWS Mobile Services
モバイル開発を支えるAWS Mobile Services
 
お前なんかハッカーじゃない╭( ・ㅂ・)و ̑̑
お前なんかハッカーじゃない╭( ・ㅂ・)و ̑̑お前なんかハッカーじゃない╭( ・ㅂ・)و ̑̑
お前なんかハッカーじゃない╭( ・ㅂ・)و ̑̑
 
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 SummerGoのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
 
S94 Microsoft Azure セキュリティについて
S94 Microsoft Azure セキュリティについてS94 Microsoft Azure セキュリティについて
S94 Microsoft Azure セキュリティについて
 
[AWSマイスターシリーズ] AWS Elastic Beanstalk
[AWSマイスターシリーズ] AWS Elastic Beanstalk[AWSマイスターシリーズ] AWS Elastic Beanstalk
[AWSマイスターシリーズ] AWS Elastic Beanstalk
 
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2
 
How to make GAE adapt the Great Firewall
How to make GAE adapt the Great FirewallHow to make GAE adapt the Great Firewall
How to make GAE adapt the Great Firewall
 
Ginとbindataで作るシングルバイナリWebApp
Ginとbindataで作るシングルバイナリWebAppGinとbindataで作るシングルバイナリWebApp
Ginとbindataで作るシングルバイナリWebApp
 
[Golang] Go言語でサービス作ってる話
[Golang] Go言語でサービス作ってる話[Golang] Go言語でサービス作ってる話
[Golang] Go言語でサービス作ってる話
 
Java?ruby? そろそろgoで行ってみませんか?
Java?ruby? そろそろgoで行ってみませんか? Java?ruby? そろそろgoで行ってみませんか?
Java?ruby? そろそろgoで行ってみませんか?
 

Similar a Google App Engine Java 入門

Ignite 2021秋 recap - 開発者向け新機能紹介
Ignite 2021秋 recap - 開発者向け新機能紹介Ignite 2021秋 recap - 開発者向け新機能紹介
Ignite 2021秋 recap - 開発者向け新機能紹介Kazushi Kamegawa
 
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~normalian
 
Introduction to web development 1
Introduction to web development 1Introduction to web development 1
Introduction to web development 1hideaki honda
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれMasataka MIZUNO
 
ゆるふわAzure Functions
ゆるふわAzure FunctionsゆるふわAzure Functions
ゆるふわAzure FunctionsKeiji Kamebuchi
 
紹介 絵本レコメ 2014年_技術系02
紹介 絵本レコメ 2014年_技術系02紹介 絵本レコメ 2014年_技術系02
紹介 絵本レコメ 2014年_技術系02matsutomu
 
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013Takashi Someda
 
HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解Monaca
 
なるほどわかった!App Service on Linux
なるほどわかった!App Service on Linuxなるほどわかった!App Service on Linux
なるほどわかった!App Service on LinuxYasuaki Matsuda
 
キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐Kei Nakazawa
 
次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説kumo2010
 
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術Yu Nobuoka
 
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践真吾 吉田
 
CodelessDevelop using iPaas
CodelessDevelop using iPaasCodelessDevelop using iPaas
CodelessDevelop using iPaasTomoyuki Obi
 
Fluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoFluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoKyosuke Inoue
 
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発Takuro Sasaki
 

Similar a Google App Engine Java 入門 (20)

Ignite 2021秋 recap - 開発者向け新機能紹介
Ignite 2021秋 recap - 開発者向け新機能紹介Ignite 2021秋 recap - 開発者向け新機能紹介
Ignite 2021秋 recap - 開発者向け新機能紹介
 
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
 
Introduction to web development 1
Introduction to web development 1Introduction to web development 1
Introduction to web development 1
 
Azure <3 Openness
Azure <3 OpennessAzure <3 Openness
Azure <3 Openness
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
 
ゆるふわAzure Functions
ゆるふわAzure FunctionsゆるふわAzure Functions
ゆるふわAzure Functions
 
Azure Fundamental
Azure FundamentalAzure Fundamental
Azure Fundamental
 
紹介 絵本レコメ 2014年_技術系02
紹介 絵本レコメ 2014年_技術系02紹介 絵本レコメ 2014年_技術系02
紹介 絵本レコメ 2014年_技術系02
 
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
AWS を活用して小さなチームで 世界で使われるサービスを運用する方法 - JAWS Days 2013
 
Mvc conf session_5_isami
Mvc conf session_5_isamiMvc conf session_5_isami
Mvc conf session_5_isami
 
HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解
 
なるほどわかった!App Service on Linux
なるほどわかった!App Service on Linuxなるほどわかった!App Service on Linux
なるほどわかった!App Service on Linux
 
キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐
 
次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説
 
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
 
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
 
Askusa on AWS
Askusa on AWSAskusa on AWS
Askusa on AWS
 
CodelessDevelop using iPaas
CodelessDevelop using iPaasCodelessDevelop using iPaas
CodelessDevelop using iPaas
 
Fluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoFluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in Tokyo
 
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
 

Google App Engine Java 入門

  • 1. Google App Engine 入門 -2009年のGoogle App Engine Javaをふりかえる- tantack@名古屋Scala勉強会
  • 3. 勉強会のご紹介 名古屋Scala勉強会 – 毎月第3金曜日あたりに 『Scalaスケーラブル プログラミング』の 読書会をやっています。 通称コップ本→ 名古屋アジャイル勉強会 – 毎月月末の金曜日に、アジャイルをテーマとし たワークショップ形式の勉強会をやっています。
  • 8. 今日のお話 ざっくりクラウドサービス Google App Engine Java? 2009年のGoogle App Engine Javaをふりかえる
  • 10. ざっくりクラウドサービス 明確な定義はない! クラウド って? ・・・けれども、 『パソコン中心だったデータの保存や 処理を、インターネット上の サーバ群へと移行する流れ』 のことを、今回の発表ではクラウドと呼ぶ。 WEBアプリ PC・モバイル端末 +データ 利用者は場所・アクセスする端末 を選ばず、インターネット上に浮 かぶ雲のような『どこか』にある サーバ群を利用する。
  • 11. ざっくりクラウドサービス SaaS 開発者側の視点からク ラウドサービスを見た場 PaaS 合、3種類のサービ スに分類される IaaS
  • 12. ざっくりクラウドサービス SaaS Software as a Service (ソフトウェア提供サービス) 提供されるソフトウェアのみを 利用できる。 PaaS Gmail twitter Salesforce.com Evernote IaaS
  • 13. ざっくりクラウドサービス SaaS Infrastructure as a Service (インフラ提供サービス) 仮想マシンやストレージの提供。 PaaS 開発者側でOSからミドルウェア まで選択できる。 Amazon EC2/S3 IaaS
  • 14. ざっくりクラウドサービス Platform as a Service SaaS (プラットフォーム提供サービス) ミドルウェア(実行環境、DB等) 含む提供。開発言語は限定され PaaS る。 Google App Engine Windows Azure Force.com IaaS
  • 15. Google App Engine Java?
  • 16. Google App Engine Java? GAE/Jを使うメリット  無料で試せる  サーバの維持コストはゼロ  アプリケーション開発に専念できる
  • 17. Google App Engine Java? 無料で試せる  一定のリソース使用量(Quota)までなら無料  リソース使用の少ないアプリケーションな ら、完全に無料での運用も可能  利用者が増え、Quota制限を超えた(*1)ときだ け、お金を払えばよい(*2) *1 Quota制限を超えたら、無料利用の場合、アプリケーションは停止する。 *2 自動で課金されるわけではない。 予めいくらまでなら払うか、明示的に指定しておく。
  • 18. Google App Engine Java? サーバの維持コストはゼロ  サーバはどうしよう?OSはどうする?DB は?・・・といった検討が不要  利用者の増加等によって負荷が増えた場合 にも、自動的にスケールするため、サーバ 増設の心配をする必要がない  サーバの保守はGoogleが行っているため、 故障の心配する必要もない(*1) *1 最近は少なくなったと思うが、GAE自体止まることがある。
  • 19. Google App Engine Java? アプリケーション開発に専念できる  必要なものは携帯電話(*1)、EclipseとGoogle Plugin for Eclipseのみ  開発者はアプリケーションを書くだけで、 すぐにサービスが公開できる *1 アカウント登録に携帯電話会社のメールアドレスが必要。 (iPhoneやAndroidだと死亡?)
  • 20. Google App Engine Java? 実行環境の特徴  自動スケーリング  Java APIの制限  データストア  各種サービス
  • 21. Google App Engine Java? 自動スケーリング  アプリケーションに負荷が掛かると、負荷 に応じて自動的にスケーリングし、負荷分 散が行われる  アプリケーション側で意識して負荷対策を とる必要はないが、リソース使用=利用料 金に直結する  リソースの使用をいかに抑えるかが、運用 上は重要になってくる
  • 22. Google App Engine Java? データストア  Datastore APIはGoogleのBigtableを利用し たKey-Valueストア  JDO, JPA, Low-Level APIによりCRUD操作を 行う  JDOはLow-Level APIに比べると、データ量 が増えるほどパフォーマンスが落ちていく  Datastoreに近いLow-Level API、もしくは それをラップしたslim3 Datastoreがオスス メ
  • 23. Google App Engine Java? Java APIの制限  複数のスレッドを作成することができない  ソケット通信は行えない  ファイルへの書き込み禁止  1回のリクエストは30秒以内で完了しないと 例外を投げられる
  • 24. Google App Engine Java? 各種サービス  Cron…指定した時間・間隔で定時処理を行うことが できる  Memchache API…メモリ上にデータをキャッシュし ておく  Task Queue API…タスクをキューに登録し、同時に いくつもの処理を走らせることができる  URLフェッチ API…HTTP,HTTPS通信  Mail API…メールの送受信  Quota API…Quotaの状況を取得する  Blobstore API…50MBまでのデータを扱う
  • 26. Google App Engine Java SDK 1.2.0 1.2.0 1.2.1 1.2.2 1.2.5 1.2.6 1.2.8 1.3.0 2009年04月07日 SDK 1.2.0リリース Google App Engineに待望のJava版登場! 4日後の4月11日、ひがやすを氏が開発を続けていた フレームワークslim3がGAE/Jに対応。 このバージョンからCronサポートも始まったため、 Bot等に必要な定時処理が可能に。
  • 27. Google App Engine Java SDK 1.2.1 1.2.0 1.2.1 1.2.2 1.2.5 1.2.6 1.2.8 1.3.0 2009年05月13日 SDK 1.2.1リリース 主にバグ修正のアップデート この修正で、JSPの日本語が文字化けしていた問題 は解決!
  • 28. Google App Engine Java SDK 1.2.2 1.2.0 1.2.1 1.2.2 1.2.5 1.2.6 1.2.8 1.3.0 2009年07月13日 SDK 1.2.2リリース 主にバグ修正のアップデート あんまり印象に残ってない・・・。
  • 29. Google App Engine Java SDK 1.2.5 1.2.0 1.2.1 1.2.2 1.2.5 1.2.6 1.2.8 1.3.0 2009年09月03日 SDK 1.2.5リリース Task Queue API for Javaの追加! XMPPのサポート開始 複数のタスクをキューに登録し、バックグラウンド で並行処理ができるように。
  • 30. Google App Engine Java SDK 1.2.6 1.2.0 1.2.1 1.2.2 1.2.5 1.2.6 1.2.8 1.3.0 2009年10月13日 SDK 1.2.6リリース GAEドメインでのメール受信サポート開始 アプリケーションの削除サポート開始 GAE/J単体でメールの送受信が可能に。 あと間違えてデプロイしてしまった、アプリケー ションの削除がようやくできるようになった。
  • 31. Google App Engine Java SDK 1.2.8 1.2.0 1.2.1 1.2.2 1.2.5 1.2.6 1.2.8 1.3.0 2009年12月03日 SDK 1.2.8リリース JAXBのサポート開始 Quota APIのサポート開始 一定量までQuotaを使用したら、アプリケーション を止める等の制御ができるように。
  • 32. Google App Engine Java SDK 1.3.0 1.2.0 1.2.1 1.2.2 1.2.5 1.2.6 1.2.8 1.3.0 2009年12月14日 SDK 1.3.0リリース Blobstore APIの追加 リフレクションの動作最適化 50MBまでの大きなデータを扱えるように。 またGroovyやJRubyといった、リフレクションを多 用する言語は、実行速度が最大10倍になるらしい。
  • 34. 参考資料 クラウド大全<サービス詳細から基盤技術まで> – 日経BP社出版局編  クラウドコンピューティング登場の 背景から、Amazon EC2,GAEといった 各クラウドサービスの技術入門、 分散処理技術の紹介・検証まで 手広くカバーされています。  技術者がクラウドコンピューティング全体を俯瞰・把 握するのに良い書籍です。  ただ既に情報の古くなっている部分も多いです。
  • 35. 参考資料 Google App Engine for Java [実践]クラウ ドシステム構築 – (株)グルージェント  GAE/Jにできないこと、『制約』に 焦点を当て、『制約』のなかで GAE/Jを最大限活用するための 技術入門書。  ただ既に情報の古k(略  最新情報はtwitterが最速、次いで個人のブログに詳細 がアップされる、といった感じです。twitterでGAEに ついてつぶやいている方をフォローするのがオススメ です。