MIDNIGHT JAWS 真夏のクラウド運動会(2020) に飛び入り参加してきた #jawsug #jawssonic2020

AWS環境を構築するクラウド運動会、S3とCloudFrontの課題で優勝してきました。
2020.09.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWSチームのすずきです。

JAWS SONIC 2020 & MIDNIGHT JAWS、深夜に開催された、 真夏のクラウド運動会に参加する機会がありましたので、紹介させていただきます。

公式ページ

ガヤ枠の当日募集、最終締め切り10分前に空きがあったのでエントリしました。

競技内容

指定されたAWSリソースを設置、その動作確認までの所要時間を競うものでした。

1: S3 + CloudFront

お題

  • S3 と CloudFront を新規に作成。
  • S3 に保存したコンテンツを CloudFront 経由で参照できる事。

手順

以下の手順で環境構築を実施しました。

  • 新規S3バケット、パブリックアクセスの禁止を解除して作成
  • S3バケット設定で、静的Webホスティングを有効化
  • 新規CloudFrontを作成、オリジンはカスタムオリジンとし、S3の静的Webホスティングのエンドポイントを指定
  • S3 に画像ファイルを転送
  • S3に転送したオブジェクトのACL設定を行い、公開するファイルをパブリックに設定
  • CloudFrontのデフォルトDNS名 と、S3に転送したファイル名で表示できる事を確認

との手順を取りました。

確認画面

所要時間は約4分半でした。

参考リンク

2020年3月のCloudFrontのアップデートにより、作成と設定変更が大幅に高速化された事が確認できる課題でした。

今回、下記の事象に遭遇した参加者が多かったと推測されます。

オリジンまでエンドツーエンドの完全HTTPSが必須な場合を除き、Webサーバとして多機能で、制約も少ない利用が可能なS3の静的Webホスティングがおすすめです。

イベントの規定により CloudFormationの利用は禁止されていましたが、以下のテンプレートが利用できれば更に時短可能な課題でした。

2: VPC + RDS + EC2

お題

  • 新規 VPC、RDS、EC2を設置。
  • EC2から RDSに接続できて、Insert、Select操作が出来ること

手順

  • VPCウィザードを利用、新規VPC(1サブネット)を作成
  • RDS用のサブネットを、1つ目のAZと別のAZに追加
  • RDSダッシュボードを利用して、サブネットグループを設定
  • ElasticBeanstalk のウィザードで、RDS (MySQL)を追加した環境を作成
  • EC2のリモート操作をSSMで行うため、ElasticBeanstalk の EC2ロールに 「SSM Core」管理ポリシーを追加
  • EC2にSSMでリモート接続、RDSに接続

との手順をとりました。

VPCのリージョンあたりの設置上限(5)に抵触し 不要VPCの撤去や、 ウィザードで設定される内容の把握に手間取るなどして、時間内での完遂ができませんでした。

API Gateway + Lambda + DynamoDB

お題

  • API Gateway の「POST」で 任意のデータを受け取り、任意のDynamoDBのテーブルに書き込める事
  • 登録した内容を DynamoDBのコンソールで確認出来ること

手順

Using Amazon API Gateway as a proxy for DynamoDB の手順で着手しました。

Lambdaを利用しない事で要件を満たさない事に途中で気づき、 AWS Amplify、AppSync のハンズオン資料の設置を試みましたが DNFとなりました。

まとめ

当日エントリでのガヤ枠参加でしたが、S3とCloudFrontの課題、参考記録扱いとならずに優勝景品をいただける事になりました。

共有画面や進捗の解説からプレッシャーを感じながらの作業は貴重な体験でした。 完遂できなかった課題についても復習するいい機会となったと思います。

主催、及び参加者の方々、ありがとうございました。