AWS re:Invent 2016感想

セクションナイン吉田真吾@yoshidashingo)です。

メモ程度に感想を記載しておきます。

トレンド

  1. 新サービスによりミッシングピースが埋まることで、クラウドのサービスはカバー範囲から、機能のディテールや質の時代になりはじめている
  2. サーバーレスは ストリームプロセッシングエッジコンピューティング なども含めたさまざまなアーキテクチャのコンポーネントに変化し始めている

個人的な体験の感想

  • 楽しむならワークショップ系に限る。とくにLDAPを使ったSAML認証のハンズオンは面白かった。
  • コミュニティパネルで話しきれないたくさんのことがあったが、なにより「次世代のヒーローを見つけて育てる」という自分の原動力について話せてよかった。
  • スピーカー懇親会では他のスピーカーの熱量の多さを非常に感じた。好きなことはどんどん掘っていこう。
  • イビサさんの部屋で話していた「恋に落ちるマーケティング論」について深掘りしていこうと思った。
  • 最近Tシャツやステッカーは厳選してもらうようにしているのでスーツケースは手荷物で持ち込める程度のサイズで十分。
  • 全体的にとてもタイトなので、お酒はこういう機会でしか会えない人とに限るよう心がけたが結果的にかなり時間に余裕を持ててよかった。
  • PollyやLex(Amazon Echoも含めて)もっと遊びたい。
  • MXNetはさっぱり分からなかった。Deep Learningについて基礎から学ぶ必要あり。
  • LINQはもうイヤなので来年は早いうちにVenetianか裏のコンドミニアムを手配しよう。
  • Beta試験を受け忘れた。日本語化されたらすぐ受けよう。
  • Cirque Du Soleil行き忘れた。来年は行く前に計画しておこう。特にKAとMystere。

AWS Serverless Application Model (SAM) と CircleCI を使ったサーバーレスアプリケーションのデプロイフロー

セクションナイン吉田真吾@yoshidashingo)です。

Serverless Advent Calendar 2016の5日目です。

今日はCircleCIを使って簡単にSAMの自動デプロイフローを作ってみましょう。

f:id:yoshidashingo:20161205131449p:plain

準備

準備の流れは以下のとおり

  1. GitHubリポジトリを作成してCircleCIのプロジェクトとひもづけておく
  2. ソースコード(index.js)を用意する
  3. IAM Userのクレデンシャルを用意する
  4. リリースステージ用のS3バケットを作成する
  5. app-spec.ymlを用意する
  6. circle.ymlを用意する
  7. CircleCIのプロジェクトにAWSのクレデンシャルと環境変数を設定する

1. GitHubリポジトリを作成してCircleCIのプロジェクトとひもづけておく

適当にGitHubリポジトリを作ってください。今回のサンプルは最終的に以下のような構成になります。

├── README.md
├── app-spec.yml
├── circle.yml
└── index.js

サンプルはここに置いておきます。

github.com

できたらCircleCI側でもこのリポジトリに紐づくプロジェクトを作っておきます。

※template.yaml = app-spec.yml

2. ソースコード(index.js)を用意する

今回作るのは以下のSAMのサンプルのAPI Backendを参考にします。

https://github.com/awslabs/serverless-application-model/tree/master/examples/2016-10-31/api_backendgithub.com

3. IAM Userのクレデンシャルを用意する

7でCircleCIのプロジェクト設定に追加するCloudFormation用のIAM Userのクレデンシャル(Access Key ID と Secret Access Key)を用意します。 権限は今回省略しますが適宜つけておいてください。

4. リリースステージ用のS3バケットを作成する

作成するAPIバックエンドと同一のリージョンにソースコードリリースステージ用のバケットを作成してください。

5. app-spec.ymlを用意する

SAMの定義ファイルを作成します。

6. circle.ymlを用意する

7. CircleCIのプロジェクトにAWSのクレデンシャルと環境変数を設定する

  • Project > AWS Permissions に Access Key ID と Secret Access Key を設定します。
  • Project > Environment Variables に以下の環境変数を設定します
    • REGION : スタックを作成するリージョン、ap-northeast-1 とか
    • S3_BUCKET_NAME : 4で作ったコードをステージするS3バケット名
    • STACK_NAME : CloudFormationのスタック名、適当につけて大丈夫です。

実行

GitHubにPushすれば

CircleCIが回って f:id:yoshidashingo:20161205022824p:plain

CloudFormationが動いて f:id:yoshidashingo:20161205022942p:plain

APIバックエンドができました。 f:id:yoshidashingo:20161205022756p:plain

最後に

SAMに限らずサーバーレスアプリケーションを構築するフレームワークの多くが手元から簡単に使えますが、PR駆動なチーム開発をしようとした場合にはこういったCIのサービスと連携する必要が出てきます。当初このフローも先日リリースされたばかりのCodeBuildを利用してみようと思いましたが、7で設定したような環境変数が設定できなさそうだったので、使い慣れたCircleCIをベースにやってみましたが、日々ツールは進化するので、定期的に見直すことで開発フローをよりよくしていきたいですね。

AWS re:Invent 2016 Keynote Day1 早見

セクションナイン吉田真吾@yoshidashingo)です。

どれがいますぐ使えるのかわかりにくかったので早見置いておきます、ちょい前日も含みますが。

Service Overview Blog URL Status
AWS Organizations 複数AWSアカウントをグループとして束ねて管理できるサービス AWS Organizationsのプレビューが始まりました | Amazon Web Services ブログ Preview
Amazon Aurora for PostgreSQL PostgreSQL 互換のエンジンを搭載したAurora Amazon Aurora アップデート – PostgreSQL 互換のエンジン | Amazon Web Services ブログ preview(詳細情報なし)
Amazon Athena S3にためたデータに直接クエリできる Big Query ライクなサービス Amazon Athena – Amazon S3上のデータに対話的にSQLクエリを | Amazon Web Services ブログ GA(VirginiaとOregoonのみだがクエリ対象のバケットはどこでも可)
Amazon Rekognition Vision APIのような画像認識サービス Amazon Rekognition – 深層学習による画像検出と認識 | Amazon Web Services ブログ GA(Virginia/Oregon/Ireland)
Amazon Polly 日本語にも対応したText-to-Speech(文字読み上げ)サービス Amazon Polly – 文章から音声へ、47の声と24の言語 | Amazon Web Services ブログ GA(Virginia/Oregon/Ohio/Ireland)
Amazon Lex 音声やテキストを使ったbot基盤のサービス Amazon Lex – 対話的音声&テキストインターフェースを構築 | Amazon Web Services ブログ Limited Preview
AWS Greengrass 組込みLambda=Greengrass Core AWS Greengrass -ユビキタス, 現実世界におけるコンピューティング- | Amazon Web Services ブログ Limited Preview
AWS Snowball Edge 100TBストレージ、クラスタリングしたりLambdaを動かしたりNFSマウントできるSnowball AWS Snowball Edge – より多くのストレージ, ローカルエンドポイント, Lambdaファンクション | Amazon Web Services ブログ GA(東京をのぞく)
AWS Snowmobile 100PBのインポート用データコンテナサービス AWS Snowmobile – エクサバイトのデータを数週間でクラウドに移動 | Amazon Web Services ブログ GA(USのリージョンのみ)
Amazon EC2: T2.Xlarge, T2.2Xlarge バースタブルな汎用インスタンス 新しい T2.Xlarge および T2.2Xlarge インスタンス | Amazon Web Services ブログ GA
Amazon EC2: C5 次世代のコンピュート最適化インスタンス EC2インスタンスタイプのアップデート – T2, R4, F1, Elastic GPUs, I3, C5 | Amazon Web Services ブログ 未定
Amazon EC2: I3 次世代のストレージ最適化インスタンス EC2インスタンスタイプのアップデート – T2, R4, F1, Elastic GPUs, I3, C5 | Amazon Web Services ブログ 未定
Amazon EC2: R4 次世代のメモリ最適化インスタンス(r4.large - r4.16xlarge) 次世代のメモリ最適化EC2インスタンス(R4) | Amazon Web Services ブログ GA(東京をのぞく複数リージョン)
Amazon EC2 Elastic GPUs 1/2/4/8GiBでGPUをM4/C4/X1にアタッチできる 進行中 ー Amazon EC2 Elastic GPUs | Amazon Web Services ブログ 未定
Amazon EC2: F1 FPGAインスタンス 開発者プレビュー ー EC2 Instances (F1) with Programmable Hardware | Amazon Web Services ブログ 開発者プレビュー(バージニアのみ)
Amazon Lightsail ミドルウェアを選択して構築済みで使えるお手軽VPSサーバー Amazon Lightsail – AWSの力、VPSの簡単さ | Amazon Web Services ブログ GA(Virginiaのみ)