Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ITエンジニア特化型Q&Aサイトteratailを 言語、DB、クラウドなど フルリプレイスした話

ITエンジニア特化型Q&Aサイトteratailを 言語、DB、クラウドなど フルリプレイスした話

Architect New World on AWS 2022にて発表したスライドです。

2022年1月に完了したteratailのリプレイスに関して、インフラ部分に焦点を当てて解説しています。

Tech Leverages

December 27, 2022
Tweet

More Decks by Tech Leverages

Other Decks in Programming

Transcript

  1. 自己紹介 レバレジーズ株式会社 テラテイルグループ リーダー 竹下義晃 経歴 2009/3 東京大学大学院 農学生命科学研究科 修了 2009/4

    芸者東京株式会社 入社 2020/6 レバレジーズ株式会社 入社 一般社団法人 Japan Scala Association 理事 兼任 現在Webフロント、バックエンド、インフラ、データ分析など フルスタックエンジニアとして teratail開発に関わっています 前職では、アプリマーケターとして Traffic Run!など全米1位を獲得したハイパーカジュアルゲー ムのUA/MOを担当したことも
  2. 目次 • teratailとは • リプレイス概要 ◦ リプレイスの目的 ◦ 技術スタックの比較 •

    AWS Fargateによるサーバーレス化 • AWS CDKによるIaC化 • AWS Cloud9を活用したデータ移行 • まとめ
  3. 説明する部分 • AWS Fargateによるサーバーレス化 ◦ コスト効率UP ◦ 運用効率UP • AWS

    CDKによるIaC ◦ インフラ構築の効率 UP ◦ インフラ構築のブラックボックス化を防ぐ • AWS Cloud9による旧DBから新DBへのデータ移行 ◦ 複雑かつ困難な作業を効率よく
  4. AWS CDKとは AWS Cloud Development Kit AWSのIaCを行える強力なサービス • プログラミング言語でインフラを定義できる ◦

    型による実行前の整合性チェック ◦ ライブラリ化によるノウハウの共有 • デフォルト設定が優秀なので記述量が減る • プログラミングの開発ノウハウを転用可能 ◦ 抽象化、一般化、インターフェイス化による整理 ◦ 自社ユースケースに合わせて宣言的なライブラリへの拡張 同様なツール • AWS CloudFormation(CDKはCloudFormationのJsonを出力します) • Terraform
  5. 解決策 AWS Cloud9の利用 VPC内に Amazon Elastic Compute Cloud(EC2)インスタンスが作られるので、DBへのアクセス が可能 基本的なプログラム実行のためのライブラリがインストール済み

    変換ルールベースのデータ移行ツールの開発 テーブル構造の変更、MySQL化を同時に行うことのできる移行ツールを開発
  6. AWSのサービス活用による運用の効率化 今回は主に • AWS Fargate • AWS CDK • AWS

    Cloud9 に焦点を当てましたが、それ以外にも • Amazon RDS - Amazon Aurora • Amazon ElastiCache for Redis Cluster • Amazon Opensearch Service Cluster • Amazon CloudFront など、数多くのフルマネージドのサービスを組み合わせて活用することで 構築、運用、保守すべてが効率化しています。