この記事は write-blog-every-week Advent Calendar 2018の12日目の記事です。
前日の記事は、こまど (id:ky_yk_d) さんの「Angularで「ネストされたルート」を実装する(シンプルな実装 / モジュール切り出し / 遅延ロード)」でした。
AWSのre:Inventダイジェストに参加してきたので簡単にまとめです。
[何で参加しようと思ったか]
こちらのイベントの、テクニカルセッション トラック2に参加してきた。
AWS re:Invent 2018については、キーノートセッションを深夜にライブで聞いたり、Classmethodさんのブログ読んだりして情報収集はしていた。
とはいうものの、1週間で100以上のアップデートが発表されており、DynamoDB On-demandやDynamoDB Transactions、CloudWatch Logs Insightsなど興味のある特定のアップデート中心のキャッチアップしかできておらず、一度腰を据えて網羅的に内容を攫う必要性を感じていたので、参加した。
トラック1は機械学習関連が多めだったので、あまり縁がないかと思って参加しなかった。こういう時こそ参加すべきだったかもしれないが、トラック2の内容を完全に理解しているわけではないので諦め。
[参加して何が分かったか]
全般的な感想
ネットで興味のある部分だけチェックするのとは違って、座って(一部立ち見で)じっくりセッションを聞くことで、見逃していたサービス、機能のアップデートを見つけることができた。
13:00-13:40 Compute/Networking セッション
A1インスタンス。Intel製のプロセッサが多かったが、数年前に買収した子会社から新しいプロセッサが登場した、と。命令セットが異なるので、C言語みたいなバイナリ作るやつは再コンパイルが必要になるが、JavaなどのVMがあるやつは移植が楽だとか。Amazon CorrettoのARM版もそのうち出るとのこと。
C系、P系インスタンス、EFAについての説明もあったがあまりピンと来ず……。
Outposts。RDSやEC2がオンプレミスで使えるようになる。意味がわからないヤバいサービス。キーノートでちらっと見て以来、どういう用途だろうと思っていたら、説明があった。専用線を利用しても5ミリ秒程度のレイテンシは避けられないが、1ミリ秒のレイテンシも許されないようなケース、例えば証券取引とか、工場のセンサー制御とか、コンテンツ配信とか、そういう場面での利用を見込んでいるとのこと。なるほど。
一部のニュースサイトでは、オンプレの拡張という表現があったが、「AWSリージョンの拡張」のイメージが正しいとのこと。来年の後半に登場予定とのことで待ち遠しいような気もするが、普通のWebアプリ作ってる身としてはあまり関係なさそう。
Global Accelerator。IP固定とかリージョン越えのフェイルオーバとか。AWSの内部ネットワークを使えるようになるので送受信経路が固定されレイテンシの安定化に繋がる、と。追加料金があるので要件との相談になりそうだけど、これは使い所ありそうな予感。
Transit Gateway。VPCピアリングが要らなくなる。これは便利そう!開発環境、ステージング環境、本番環境などで共有するサービスへのルーティングが楽になる。例として認証サービスとかロギングサービス、DevOpsツールなどが挙げられていた。マルチアカウントで1000アカウント以上を接続することもできるとか。インターネットゲートウェイも1箇所にまとめることができるので、セキュリティ管理者には朗報か。多対多でVPCを接続するケースにはこちら、一対多であればPrivate Linkという別の機能が。
12月中に東京リージョンにも来るとのことなので、これはぜひ試したい。
VPCシェアリング。Organizationで統合されているアカウント間でVPCをシェアすることが可能に。Transit Gatewayと、どちらか一方に限定して使っていくのではなく、利用シーンを見極めて、共存させていくべし、とのこと。コンプライアンス要件とかによってはシェアリングを利用しづらい/できない場面もある、と。
Amazon Virtual Private Clouds can now be shared with other AWS Accounts
13:55-14:35 Security セッション
Security Hub。Guard DutyやInspector、Macieなど各種サービスの情報を集約して一元的に可視化するサービスらしい。同一リージョン内に限り、他のアカウントの情報も集約可能とのこと。やはりOrganizationなどで統合されている必要があるのかな?
個人的に興味のあるやつ。KIBANAキラーとなるか?
サンプルのクエリが超便利そう。サンプルのクエリをベースに、クエリを修正していけるのも良い。
キーノートで盛り上がったやつ、 Control Tower。めっちゃ使えそう。管理部門と現場の相反する要求をうまく満たすためのセキュリティ面でのガードレール的役割を担う。早くGAにならないかな。
14:50-15:30 Storage セッション
トラック1のDatabaseセッションも出たかったが何となくこちらを選択。
Snowball Edgeなるサービスが出るらしい。データ運ぶだけじゃなくてコンピューティングまでついてくる……Outpostsといい、オンプレ寄りのサービスが目立つような。
S3の名前を冠したGlacierの各種アップデート。リストア通知とか、むしろ当然あるだろうと思ってたから、無かったのは意外。あるだろうと思うものが無かったり、ないだろうと思うものがあったり、難しい。
S3のオブジェクトロックの機能は発表の翌日にはチェックしていたが、適当に読んでいたので、コンプライアンス・モードでのロック時にはルートアカウントですらオブジェクトを削除できなくなる、という点は見逃していた。
FSx for Windows。容量とスループットは独立して設定できるが、セットアップ後の変更はできないので注意が必要とのこと。S3と比較して高価。あまり使う機会はなさそうなので、こういう機会にキャッチアップできて良かった。
同じくLustre版。こちらは容量とスループットが連動。コンピューティング集約型のワークロード向けでS3と連動する秒単位課金のサービス。使わないときはS3に、使うときだけFSxに、という感じらしい。
DataSync。オンプレ側にエージェントを仕込んであれこれするらしい。本体よりも、エージェントの自動更新機能がむしろ気になる。どうやってるんだろ。
15:45-16:25 Container セッション
トラック1のAnalyticsセッションに後ろ髪を引かれつつこちらに参加。
Cloud Map。ヘルスチェックとかもやってくれるらしい。便利。APIコール回数で課金なんで、アプリ側でキャッシュして回数減らすのも手です、と言っていたが(多分)、キャッシュ保持期間とかインスタンス死亡時のフォールバックとか考えるとどこまでやるべきか悩ましいところ。
App Mesh。Envoyがマネージドで使えます、と。EC2でも使えるらしい。
CodeDeployからのECS/FargateへのBlue/Greenデプロイメントが可能に。切り替え、ロールバックが素早いのが利点だが、現状100%トラフィックを振り分けることしかできないので注意、とのこと。
16:40-17:20 Serverless セッション
re:Invent前の発表のおさらいから。
LambdaのSLA。良い。
AWS Lambda がサービスレベルアグリーメント (SLA) を発表
SQS FIFOイン・東京。発表からしばらく気が付いてなかったやつorz
Lambdaの裏側の話が。Counting ServiceとかWorker Managerとか、なんとなく想像はしていた部分がさらっと説明されていた。re:Invent本編の動画見なきゃ。
Firecracker。これはこれまでのLambdaの基盤ではない、と。一部置き換わっているし、これから全ユーザの環境がこれに置き換わっていくが、ユーザが意識することは(多分)できないだろう、と。そう言われるとやってみたくなるなあ。Lambdaのコールドスタートが早くなるわけではなく、あくまでVMの起動が速いだけらしい。
PyCharmのAWS Toolkits。Lambda関数のテストコードのテンプレートまであるらしい。今度PythonでLambdaを実装する機会があったら使ってみたい。
LambdaのRuby対応からのカスタムランタイムの話。Lambdaでシェルスクリプトを動かす場合の実装例をベースに説明があった。楽しそう。ただし、自前実装の場合特に管理する対象が増えることになるので、テストなどやることが増えるから、よくよく考えて検討するように、とのこと。公式サポートのなくなった旧バージョンのランタイムを使いたい場合にはオススメしないが、正式にサポートされていない最新のランタイムを使いたい場合などに一時的に有効、と。
合わせてLambda Layersの話も。最大5つまでの関数を再利用できるが、非圧縮状態で250MBの制限は健在だったり、コールドスタートに影響して速度が遅くなるケースもあったりと、実運用前に検討すべき課題が色々ありそう。
ALB+Lambda。API Gatewayと組み合わせて似たようなことはできたが、HTTPSが必須だったりと制限もあった。API Gatewayの提供する認証やスロットリングが不要な場合、HTTPで十分な場合、既存のドメインと同じドメインにしたい場合などに有効。ただしヘルスチェックで定常的な呼び出しが発生しコストにも繋がるので要注意、と。この辺はヘルスチェック用に関数を早期リターンで終了させることで多少金額削減できそうだが。
Step FunctionsのAWS連携拡大。これまではLambdaを経由してDynamoDBなどを呼び出す必要があったが、直接呼び出しが可能に。これは便利そう。是非何か実戦投入したい。
API Gateway+WebSocket。プレアナウンスの時期未定案件。これまではALBを使うか、AppSyncを使うかだったが、AppSyncだとGraphQLが付いてきて邪魔だった、と。
資料はちょっと見つけられてないが、LambdaのENIアタッチ時の起動速度改善についても、DeepDiveセッションで改善予定がある旨のアナウンスがあったらしい。
[今後どう活かすか]
これ触ってみなきゃとか、ここ改善しなきゃ、みたいなのが見えすぎて辛い。楽しい。でも辛い……。
こういうのを計画立てて、きっちりこなしていけるようになりたい。加えて、一人でやれる量も限界はあるから、チームで協力してやれるようになりたい。
会場に向かう時点で、ベルサール汐留への道案内が新橋駅からだと全く見当たらなくて遅刻するかと思ったけど、無事開演にはギリギリ間に合ったのでよかった。次から初めての会場でのイベントに参加するときは、事前にちゃんと会場までの道順を確認しておくのと、時間に余裕を持って最寄駅に到着するようにしたい。
(この辺は前回AWS認定試験を受けた際にも、初めてのルートを利用して駅出口から会場に向かう道のりをしばし見失い、遅刻しそうになったので、反省してはいるのだが……)
[まとめ]
普段触らないサービスも触ってるサービスも含めて、学びの多い午後のひとときだった!
write-blog-every-week Advent Calendar 2018、明日の記事の担当は、 だら (@dala00)さんです!
[追記]
[追記ここまで]
今日のブログ執筆BGMはこちら。