Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

AWS Summit Tokyoに参加しました!

4月20,21日に幕張メッセで開催されたAWS Summit Tokyoに参加しました。幕張メッセに行くのはコロナ禍前の乃木坂ちゃん握手会以来です。懐かしい...。

AWS Summit Tokyo at 幕張メッセ
大賑わい

AWS Summitの参加は多分2回目。1回目はSendGridとしてのスポンサー参加でブース対応でした。

sendgrid.kke.co.jp

当時はAWSを触ってなくてセッションを聞いても全然わからないという感じ...。そこから月日は流れて先日SAAを取得したこともあって、今回は楽しむぞーという感じで参加しました。

zenn.dev

参加したセッション等を簡単にまとめます。

これから始めるAWSクラウド、最初の一歩はAWS Cloud Essentialsでスタート

SAAの勉強を始めた最初の時に聞きたかったなぁという感じのセッション。クラウドとは?という所から始まって、コンピューティング、ストレージ、データベース、ネットワーク、セキュリティに絞ったAWSの基本的なお話でした。

AmazonのプライムデーでDynamoDBに1秒で1億アクセスあったという話を聞いてびっくり。

通信業界におけるリファレンスアーキテクチャ

通信業界の人間ではないのですが、会社で所属してるグループに関係するかも?と思って聴講。AWSを通信業界で使うときの通信業界ならではの課題と6つのリファレンスアーキテクチャの紹介。自分にとってはわからないことだらけだったけど、とりあえず社内で共有してみよう。

クレディセゾンのDX戦略とクラウド活用

AWS Summit二日間を通して一番面白いセッションでした。登壇者の小野さんはサン・マイクロシステムズ出身でアプレッソ(DataSpider出してるところ)を起業された方とのこと。話がとても面白くて惹き込まれました。あんなCTOいたら絶対惚れてまうやろー...。

クレディセゾンさんのDX取り組みの紹介でIT部門とは別に新しくデジタル組織を立ち上げた話や組織間の連携を高めて推進していく話などとても現実的な進め方に共感することばかりでした。

プロトタイピングのススメー手早くサービスを作って検証するための実践的ノウハウ

AWSにはプロトタイピングチームがあるそうで、その中の方からのお話。Fail fastが大切で、早めに失敗して問題を見出す、プロトタイプを作ることの目的をチームで合意する、検証したいことは何か明確に定義する...などなど、個人的には、プロトタイプに限らず仕事の進め方で通じる話だよなぁと思ってうなづきながら聞いていました。

プロトタイピングチームのブログができたそうです。
prototyping-blog.com

パッケージビジネスからSaaSビジネスへ事業変革!~お客様に安心してSaaSを採用頂くための取り組みを紹介~

株式会社Works Human Intelligenceさんのお話。セッションタイトルだけで選んでいたのですが、あのワークスアプリケーションズさんのCOMPANYを継いだ会社さんだったのですね...。

パッケージのCOMPANYをSaaSに舵を切ったお話で、その課題と解決への取り組み紹介でした。話に出てきた課題は利益性、クラウド導入が難しいお客様対応、サポート品質、開発者教育の4つに整理されていて、それぞれ共感する内容でした。自社でもパッケージのSaaS化話を最近よく耳にするけど、こういった点を整理して考えてる所はどれくらいあるのだろうか。

他、話の中で出てきたAWS Migration Acceleration ProgramAWS Foundational Technical Reviewは初耳だったので学びになりました。

Java on Lambdaのコールドスタートを乗り越えるこれからのサーバーレスアプリケーション

結構ニッチな話かなと思って参加したのですが満席コミコミ状態でびっくり。AWS LambdaでJavaを使うときに問題になるコールドスタートをどう解決するか、というお話でした。

コールドスタートが長くなる原因はサーバーレスのライフサイクルとJavaの起動プロセスの組み合わせで起きるので、起動速度の短縮と既存資産の活用の2つで解決しようという内容。それぞれ紹介されていたのはAWS Lambda SnapStartとJITの階層型コンパイルレベル指定。SnapStartは裏でスナップショットの作成と復元が行われるので、そのサイクルを意識して使わないとハマることがあるので注意が必要とのこと。作成前と復元後にHookが用意されているんですね、知らなんだ。

設定は簡単なので今度試してみよう。

Java屋さん以外からみればなぜLambdaでわざわざJavaを使いたいのかって思うかもしれないけれど、個人的には書きなれた言語というか使い慣れたライブラリなどを使いたいというのが大きい。

アーキテクチャ道場 2023!

最後は上級者セッションを体感してみたくてアーキテクチャ道場に参加。以下スライドのようなお題が出てAWSのアーキテクトの方がそれぞれ回答して司会の方が評価するもの。

細かい部分の設計(耐障害性など)までさらりと触れられていて、普段からこういうコンサル経験が豊富じゃないとできないだろうなー...今の自分には無理だなー...と思いながら聞いていました。解説のAWS用語はわかるものの、クラウドアーキテクチャ的な所はストラングラー フィグ パターン、レガシーミミックパターン、アーキテクチャ決定レコードなどなど、知らない用語ばかりだったので今後学んでいかねばなぁと思いました。

その他

ブースや展示を回るのも久々で楽しかったです。AWS OutpostsやSnowball Edgeの実物をみて、おぉーこんなサイズなのかと実感したり、ノベルティをもらったり。

AWS Outposts

やっぱりイベントはオフラインがいいなーと感じる2日間でした。

JJUGナイトセミナー Javaクラウドプラットフォーム大特集に参加しました!

今日のJJUGナイトセミナーは超豪華でした!仕事を置いてきてでも参加してホント正解(^^)!会社後輩は1人しか来なかった…のですが、ホントもったいないと思う…。

jjug.doorkeeper.jp

発表は以下順番でした。

  1. Heroku
  2. Amazon Web Service
  3. Microsoft Azure
  4. Oracle Java Cloud Service
  5. Cloud Foundry
  6. Google Cloud Platform
  7. OpenShift
  8. IBM Bluemix

当日のつぶやきは既に@yamadamnさんにてまとめられています!

以下、発表者の方のスライドと、過去に自分が触ったときの記事とか合わせて簡単に。

Heroku

Herokuは前にSalesforce Summer(だったかな?)に参加したときに、セッションを聞いて触ってみてました。当時の自分は、Heroku = Ruby on Railsのイメージが凄く強かったのですが、実際に触ってみると、Javaも簡単に動かせて驚いた記憶があります。

今日の発表でも「Spark」に少しだけ触れられてましたが、Sparkのひな形が用意されていて、そこからPayara Microいけるんじゃ?って思った記憶が。

ということで、以前試したHeroku

kikutaro777.hatenablog.com

とPayara Microについて

なお、タイトルにある「12-Factor App」は以下。

12factor.net

日本語訳もあるですね。

12factor.net

AWS

自己紹介の話を聞いてJavaFXの話が聞きたくなりました(^^)w

AWSのBeanstalkは、Docker + GlassFishが使えると聞いて、前に試してました。これも手軽なんですよねー。

kikutaro777.hatenablog.com

他のPaaSに比べて中身の透明性がある(AWSの仕組みで構成されているという意味で)、というのはなるほどーという感じでした。

Azure

OracleでMicrosoftのてらださんがお話をされるという、聞いてる側もまだ何だか不慣れな感じでした(^^;笑

今のMicrosoftはすごくオープン、と強調されてましたが、色んなニュースが続きますよね。

MSがEclipse Foundationに参画したり
www.publickey1.jp

ASP.NETがLinuxで動くとか、先日なんてMS SQL Server on Linuxとか、「は!?」って感じですよね(^^;

jp.techcrunch.com

Azureは自分も一時期いろいろ触ってました。記事としては古いので注意ですが。

kikutaro777.hatenablog.com

Oracle Java Cloud Service

OracleさんのPaaSはまだ触ったことがないのですが、Java Cloud ServiceとApplication Container Serviceの2種類があるとのこと。両方ともFlight Recorderが使える辺りは便利そうですよね。
無料お試しとかあるのかな…。なんとなく気軽に触ってみることができるのか、気になりました。

あと、Java Cloud ServiceはWebLogicだけなのがちょっと残念。GlassFishがあれば…。

Cloud Foundry

Cloud Foundry、よく名前は聞くのですが、全然触ったことないのと、前提知識が薄かったので、今日の@makingさんの発表で勉強になりました!

個人的には「.NETが動く」というのに驚きました。Azure以外でそんなのあるのか!と

3/31にCloud Foundry Tokyo Meetupイベントがあるとのことです!
www.meetup.com

あと、発表者の@makingさんから教えて頂きましたが.NETまわりの仕組みとか聞けるかもです(^^)これはいってみたい。

ハンズオン形式のワークショップもあるそうです。

connpass.com

connpass.com

Google Cloud Platform

やっぱりGoogleの基盤はすごそうだなーと。そして日本にデータセンターという話もホットだったんですね。

www.nikkei.com

OpenShift

Red HatのOpenShiftは、今、自分の中では一番良く利用するPaaSです。発表にもありましたが、無料で使えるPaaSが減ってる中、Java EEのAPサーバ含めて無償枠があるのが嬉しいです。

OpenShift Onlineは現在v2で、v3からはDockerを主軸としたアーキテクチャでガラっと中身を変えたとのこと。

もうすぐv3版のOnlineもでるとのことで、個人的に超たのしみです。

@nekopさんがブログ書かれていました。

nekop.hatenablog.com

OpenShiftを初めて触ったときのエントリもありました(^^;

kikutaro777.hatenablog.com

ちなみに、最近乃木坂46にどハマりしてる自分なのですが、OpenShift上のWildFly + Twitter4Jで以下アプリのっけてます。

Sakamichi46 Collection

作成動機などは以下(^^;;

nogizaka46.hatenablog.jp

脱線しすぎました。

IBM Bluemix

資料はまだでしたが、Blumixも色々面白そうですよね。話題のWatson君とか、IoT関係なども。


ということで、ホントすごく豪華でした!どのPaaSにするか、やっぱり色々触ってみるのがいいですよね(^^)自分の場合は8個中4個は触ったことありますが、少し前なので、それぞれ色々変わってる気がします。触ったことがない中では、やっぱりCloud Foundryが一番気になりました。

触ってみよー。

AWS Elastic BeanstalkでJava 8 & GlassFish 4.1!

この記事は GlassFish Advent Calendar 2014 の 22 日目です。

昨日はhasunumaさん(@btnrouge)による「HK2 の使い方(後編) - Programming Studio」でした。

昨今GlassFishの勢いがなくなった、といった噂を一部国内で耳にしますが、果たして本当にそうなんでしょうか?海外での状況など色々と幅広く調べた上でそういった認識を持たれるならばいいのですが、、、

今年のJavaDay Tokyoで、US OracleのJava EE EvangelistであるRezaさんがGlassFishの開発は継続していくよ、というお話をされていました。そして、その時に宣言されていた通り、JavaOne前にGlassFish 4.1も出ました。

また、先月11月に、AWSのElastic BeanstalkでJava 8 + GlassFish 4.1をサポートしたよ、というニュースがありました。

AWS Elastic Beanstalk Supports Python 3.4, Java 7 GlassFish 4.0, and Java 8 GlassFish 4.1

勢いがないなら、本当にAWSがサポートしたりするんでしょうか…?
Tomcatだけのまま、あるいはWildFlyなどのサポートを先にしてもいいのでは、とも。

そんなわけで、個人的にはWildFlyも当然ウォッチしつつ、GlassFishは普通に使っていく予定です。

ということで、今日はAWSのElastic BeanstalkにJava 8 + Java EE 7のアプリをデプロイしてみました。

Elastic BeanstalkはAmazon Web Services(AWS)が提供するPaaSのサービスです。英語のWikipediaがシンプルでわかりやすい説明でした。
AWS Elastic Beanstalk - Wikipedia, the free encyclopedia

では早速開始。まずはAWSのメニューで真ん中らへんにあるElastic Beanstalkを選択します。
f:id:kikutaro777:20141219172544j:plain

私の場合、初めてElastic Beansktalkを利用したので以下の画面となりました(2回目以降は少し違う画面に)
f:id:kikutaro777:20141219172604j:plain

Launch Nowボタンの上にあるプルダウンをみてみると…GlassFishがあります!
しかもDockerなのか。
f:id:kikutaro777:20141219172611j:plain

GlassFishを選んで、Launch Nowボタンを押す。それだけです(^^;
(ちなみに2回目以降は、メニューが色々出てきました。Load balancingにするか、など。もちろん、ここでも以下画面にあるChange Defaultsを選べば変えられます。)
f:id:kikutaro777:20141219172623j:plain

あとはグルグルLaunching処理を待って
f:id:kikutaro777:20141219172635j:plain

グリーンになったら環境構築完了です。Upload and Deployボタンを押します。
f:id:kikutaro777:20141219172642j:plain

あとはデプロイするwarファイルを選ぶだけです。簡単!
f:id:kikutaro777:20141219172705j:plain

今回、アプリケーションは次のような非常に簡易なものを用意しました。
Java EE 7(JSF + CDI)で、JSFのリッチUIサードパーティ「PrimeFaces」のAutoCompleteを使ったサンプルです。

Java 8のstreamを利用して、あらかじめ用意したリストの中から、テキストに入力された文字を含む選択肢のみをフィルタして表示するものです。

CDIの管理Beanは次のコード。

package jp.co.kke.autocomp;

import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
import javax.inject.Named;
import javax.faces.view.ViewScoped;
import lombok.Getter;
import lombok.Setter;

/**
 *
 * @author kikuta
 */
@Named(value = "autoCompBean")
@ViewScoped
public class AutoCompBean implements Serializable{

    @Getter
    private List<String> listActress;
    
    @Getter @Setter
    private String selectedActress;
    
    @PostConstruct
    public void init(){
        listActress = Arrays.asList("MakiHorikita", "MaiShiraishi", "KannaHashimoto","TsubasaHonda");
    }
    
    public List<String> filter(String word){
        return listActress.stream()
                .filter(a -> a.contains(word))
                .collect(Collectors.toList());
    }
}

ビューのfaceletsのbodyはこんな感じです。

<h:body>
    <h:form>
         <p:autoComplete value="#{autoCompBean.selectedActress}"
                            completeMethod="#{autoCompBean.filter}" />
    </h:form>
</h:body>

ローカルで動かすと…「ma」を含む選択肢だけが表示されて、ちゃんとフィルタされてますね。
f:id:kikutaro777:20141219172843j:plain

先のAWS Beanstalkにデプロイしたものは…全く同じです。ちゃんとJava 8で動いてる!
f:id:kikutaro777:20141219172854j:plain

ということで、ちょっとしたサンプルを公開したい場合でも非常に簡単に利用できそうです。
個人的にはCloudBeesで同様のことが出来ていたのが、今はPaaS提供がなくなってしまったので、AWSのBeanstalkいいなぁという感じです。

明日からはYumi Hiraokaさん(@yumix_h)です!!

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村