DegasではApp Runnerを利用して数週間と短期間で本番運用環境を構築しました。アフリカからの特殊なアクセスを捌くグローバルサービスをどのように構築したのかについてApp Runnerの所感と共に発表します
2023©Degas Ltd.May 2023 / App Runner Night !!During harvesting, by Degas farmersアフリカに広がるサービスをすばやくApp Runnerで本番構築
View Slide
登壇者1998 年に独立。紆余曲折を経て2018年に AWS に入社。退職後再び個人事業主として独立。クラウドインフラストラクチャの構築からバックエンド、フロントエンドやデザインまでいろいろ興味がある赤魔導士タイプ現在はフロントエンドエンジニアとしての活動がメインDegas株式会社には 3月から参加フロントエンドやAPI設計を担当原 一浩 (Kazuhiro Hara)
本日の構成
Degas について1本日の構成DegasではApp Runnerを利用して数週間と短期間で本番運用環境を構築しました。アフリカから特殊なアクセスを捌くグローバルサービスをどのように構築したのかについてApp Runnerの所感と共に発表します特殊なアクセス環境とApp Runner 導入概要23 フロントエンジニア観点でのApp Runner 対応4 まとめ
Strictly confidential2021 © Degas Ltd.Strictly confidential2021 © Degas Ltd.アフリカの6億人の零細農家の生産性を向上させ、所得の大幅な改善を目指す地球温暖化の影響を最も大きく受けるアフリカで、カーボンクレジットの創出を通じてネットゼロ社会の実現に貢献
+100About Degas最先端のテクノロジーをアフリカ農家にData collection:Degas AppVisualization platform:Degas Metrics+6Data Analysis:Degas Credit ScoreField scoring RecoverySatelliteObservationAI credit-scoring model
ガーナってどこ?・
特殊なアクセス環境と導入概要
特殊なアクセス環境に対応するために• インターネットが通じていないエリアが多い• Androidでデータを収集して、インターネット環境に応じて非同期にDB更新• 現在 App Runner が対応しているリージョンのうち地理的に近いアイルランドを選択
Degas App の概略と App Runner 導入箇所• Webの管理画面とAPIサーバをApp Runner で構築• 農業データはアプリで収集• Webは Next.js で構築AWS CloudAPI ServerSageMakerAndroidWebManagerAgentS3RDSAmazon CloudWatchCloudFront Web AdminServicesEtc…
FE 観点での App Runner 対応
Next.js の利用スタイル• 今回は Next.js をBFF的なバックエンドとWeb UIなフロントエンドという構成で利用している• バックエンドでしか使わない環境変数とフロントエンドでしか使わない環境変数がある• App Runner でつかう Docker イメージはGitHub Actions 経由で Amazon ECR に保存している
環境変数の読み込みの分離• Next.js は、バックエンドとフロントエンドで環境変数を読み込む方法がかわる• バックエンドは App Runner にて Secret Manager 経由で環境変数を設定• フロントエンドは GitHub Actions でビルド時にsecrets より NEXT_PUBLIC_XXX を設定
Next.js ですぐにApp Runner 使いたい方へ• Next.js は with-docker というサンプルで Dockerfile のひな型を取得できる• $ npx create-next-app --example with-docker nextjs-docker• ある程度 Dockerfile が整ったらコンテナベースに移行できる
その他、気に入っているところ
状況に応じてサービスの立ち上げを選びやすい• まずはソースコードから App Runner サービスを作成• 初期はソースコードからサービスを作り、後々コンテナイメージ化というプロセスも使える• リソースを削除することなく設定変更が可能なのは助かる
まとめ
まとめ (1)• App Runner はソースコードからもコンテナリポジトリからもサービスを立ち上げることができて便利• 各種AWSサービスと連携できる• でもアプリケーションの性質によっては工夫が必要
まとめ (2)• ビルドタイムの環境変数のSecret Manager サポートもRoadmap にはある• https://github.com/aws/apprunner-roadmap/issues/48• 一緒に働けるエンジニアを募集してます!
Strictly confidential2021 © Degas Ltd.Strictly confidential2021 © Degas Ltd.ご清聴ありがとうございました!App Runner で素早くサービスを立ち上げて、海の向こうへもサービスを届けよう!