$30 off During Our Annual Pro Sale. View Details »

個人開発・ベンチャー・エンプラと渡り歩いて
感心したAWS活用術の紹介

mayuki12
October 06, 2022

 個人開発・ベンチャー・エンプラと渡り歩いて
感心したAWS活用術の紹介

ベンチャー企業と大企業の双方で働きつつ、個人開発でもAWS利用をしてきて、良いと感じたAWS活用術の一例をまとめました。

mayuki12

October 06, 2022
Tweet

Other Decks in Technology

Transcript

  1. 個人開発・ベンチャー・エンプラと渡り歩いて 感心したAWS活用術の紹介 KDDI株式会社 牧野 佑城雄

  2. 自己紹介 名前:牧野 佑城雄(まきの ゆきお) (@mayuki12) 経歴: メーカーの情報子会社 (約4年) Web系のベンチャー企業 (約4年)

    通信会社の情シス (約半年) 職務: オンプレ仮想化基盤の維持保守 → クラウドのインフラエンジニア クラウド環境上のWeb系システムのインフラ構築、運用を担当 苦手な言葉:現行踏襲 AWS利用歴 5年
  3. 今日話すこと  個人開発のAWS活用  Web系ベンチャー企業でのAWS活用  エンプラ企業でのAWS活用  まとめ

  4. 個人開発のAWS活用  iOSのネイティブアプリ作っていて、サービスサイトをWeb上に公開中  静的サイトジェネレータの Hugo を利用してサイト作成  動的コンテンツなし 

    コンセプトはサーバレス インフラ管理 したくない
  5. AWS AMPLIFY CONSOLE を利用  Amazon CloudFront と比較をすると必要な設定項目が少ない  特定の静的サイトジェネレータは個別のビルド設定もほぼ不要

     GitHub連携で CI/CD も簡単に実現  サイトに対してBASIC 認証やカスタムドメインの利用可能 デフォルトで利用可能な ツールが多々ある
  6. 個人開発でのAWS利用 出来る事が限られていても簡単に設定する事が可能で、 人による運用が不要な方が平和

  7.  サービス提供開始して約5年以上で継続的に利用者数も増加し、サービス提供時間24/365 のプロダクト  約8人ほどの開発チームで一日数回デプロイするような開発速度  AWS の一般的?なインフラ構成(今はコンテナ環境に移行済)  IaC(InfraStructure

    as Code) でインフラの管理 Public subnet ベンチャー期のクラウド利用 Amazon CloudFront VPC DB subnet Amazon Aurora Private subnet Availability Zone 1 Availability Zone 2 Auto Scaling group Elastic Load Balancing コンピュートの クラウド活用 Instances Instances AWS Cloud
  8. サーバの設定変更時の工夫  軽微な変更作業(設定ファイルの変更)は構成管理ツールの Chef でサーバ上の設定を直接変更  リスクのある作業はブルーグリーンデプロイで構成変更  AutoScalingGroup を複数作る事で実現

     IaC 活用により必要な時にサーバを新規構築  ロードバランサでカナリアリリース  影響を最小限に  切り戻しも簡単に出来る Public subnet VPC Private subnet AZ 1 AZ 2 Auto Scaling group (BLUE) ELB Instances Instances Chef 軽微変更 Auto Scaling group (GREEN) 90 10 AZ 1 Instances AZ 2 Instances リスクのある変更
  9. 検証用 subnet 継続的なサーバテスト  継続的なサーバ設定のテストを実施 1. インフラの設定が更新される(IaC のコード) 2. EC2を起動する

    (Vagrant 利用) 3. サーバ設定を実施する(Chef 利用) 4. 設定のテストをする(Serverspec 利用) 5. テスト用サーバを削除  不測の事態に早めに気づくことが出来る  パッケージが latest 指定で最新版になると落ちる  パッケージのダウンロードURLが落ちている  設定変更箇所以外のデグレに気付ける  それなりに維持工数はかかる… Public subnet VPC Private subnet AZ 1 AZ 2 Auto Scaling group (BLUE) ELB Instances Instances Instance テスト用 サーバ
  10. ベンチャー期のクラウド活用 rm –rf / サービスの成長に合わせてインフラ構成の改善が必要で、 継続的に変更作業をする事の恐怖感を減らす事が大事

  11. エンプラ期のクラウド利用  複数のシステム間連携がある事や、セキュリティ要件があるため数多のアクセス制御が必要  AWS のマネジメントサービス(AWS WAF や Amazon API

    Gateway)を活用 Public subnet Amazon CloudFront VPC DB subnet Amazon Aurora Private subnet Elastic Load Balancing AWS WAF Amazon EKS Amazon API Gateway AWS Cloud
  12. 管理画面へのアクセス  特定場所からのみ接続できる管理画面の制御のための AWS WAF 活用  IPホワイトリストの制限 Public subnet

    Amazon CloudFront Elastic Load Balancing AWS WAF Amazon API Gateway AWS Cloud VPC IP White List 管理画面
  13. 他システム向けのAPI 利用の制御  複数システムが連携しているため、APIのアクセス制御のために Amazon API Gateway で制御  リソースポリシーでの制限

     API Key の発行  スロットリング制限(流量制御) Public subnet Amazon CloudFront Elastic Load Balancing AWS WAF Amazon API Gateway AWS Cloud VPC API Key 流量制御 リソース ポリシー
  14. エンプラ期のクラウド活用 安定したサービスを提供するためにも 複雑な構成でもセキュアなインフラを構築する必要がある

  15. まとめ  個人レベルでの利用から、厳しいセキュリティ要件を満たすための AWS 利用など活用方法は幅広い  クラウドで動かすサービスの特性によって、求められるインフラ構成や扱い方も異なる  アーキテクチャに正解はないので、継続的に改善する心意気が大事

  16. 仲間募集  私の所属するチームでメンバ募集してます。一緒にクラウド活用を促進しませんか!  やりたいことが多々あるので仲間が欲しい…