Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

自己紹介 名前:牧野 佑城雄(まきの ゆきお) (@mayuki12) 経歴: メーカーの情報子会社 (約4年) Web系のベンチャー企業 (約4年) 通信会社の情シス (約半年) 職務: オンプレ仮想化基盤の維持保守 → クラウドのインフラエンジニア クラウド環境上のWeb系システムのインフラ構築、運用を担当 苦手な言葉:現行踏襲 AWS利用歴 5年

Slide 3

Slide 3 text

今日話すこと  個人開発のAWS活用  Web系ベンチャー企業でのAWS活用  エンプラ企業でのAWS活用  まとめ

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

AWS AMPLIFY CONSOLE を利用  Amazon CloudFront と比較をすると必要な設定項目が少ない  特定の静的サイトジェネレータは個別のビルド設定もほぼ不要  GitHub連携で CI/CD も簡単に実現  サイトに対してBASIC 認証やカスタムドメインの利用可能 デフォルトで利用可能な ツールが多々ある

Slide 6

Slide 6 text

個人開発でのAWS利用 出来る事が限られていても簡単に設定する事が可能で、 人による運用が不要な方が平和

Slide 7

Slide 7 text

 サービス提供開始して約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

Slide 8

Slide 8 text

サーバの設定変更時の工夫  軽微な変更作業(設定ファイルの変更)は構成管理ツールの 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 リスクのある変更

Slide 9

Slide 9 text

検証用 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 テスト用 サーバ

Slide 10

Slide 10 text

ベンチャー期のクラウド活用 rm –rf / サービスの成長に合わせてインフラ構成の改善が必要で、 継続的に変更作業をする事の恐怖感を減らす事が大事

Slide 11

Slide 11 text

エンプラ期のクラウド利用  複数のシステム間連携がある事や、セキュリティ要件があるため数多のアクセス制御が必要  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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

他システム向けのAPI 利用の制御  複数システムが連携しているため、APIのアクセス制御のために Amazon API Gateway で制御  リソースポリシーでの制限  API Key の発行  スロットリング制限(流量制御) Public subnet Amazon CloudFront Elastic Load Balancing AWS WAF Amazon API Gateway AWS Cloud VPC API Key 流量制御 リソース ポリシー

Slide 14

Slide 14 text

エンプラ期のクラウド活用 安定したサービスを提供するためにも 複雑な構成でもセキュアなインフラを構築する必要がある

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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