[AWS Black Belt Online Seminar] AWS Code Services レポート

2017.03.31

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

こんにちは、菊池です。

2017年3月22日(水)のAWS Black Belt Online Seminarを受講しましたので、レポートします。

今回は AWS Code Services ということで、Code 4兄弟とも呼ばれるCodeCommit/CodePipeline/CodeDeploy/CodeBuildのうち、CodeCommitCodeBuildを中心とした内容でした。講師はアマゾンウェブサービスジャパン、ソリューションアーキテクトの福井さんでした。

発表スライドは以下です。

レポート

アジェンダは以下の通りでした。

  • CI/CDとAWS Code Services
  • AWS CodeCommit
  • AWS CodeBuild
  • まとめ

CI/CDとAWS Code Services

  • ソフトウェアの動きは加速
    • かつてないほどのスピードが要求されている
    • スタートアップが巨大企業に対抗できる
    • ダウンロードで数百万のユーザにすぐに配布できる
    • 多くの要求に応えるためには機敏性が重要
  • ソフトウェア配布モデルは大き様変わり
    • 従来:店舗販売/媒体配布
    • 現在:ダウンロード中心
  • 必要なツール
    • リリースプロセスの流れを管理
    • 不具合や潜在的な問題を正しくテスト/検査
    • デプロイ
  • リリースプロセスの4つのフェーズ(CI/CDを実現)
    • ソース
    • ビルド
    • テスト
    • 運用
  • 継続的デリバリのメリット
    • リリースプロセスの自動化
    • 生成性改善
    • バグを素早く検出して改善
    • 配信の高速化
  • AWS Codeシリーズ
    • CodePipeline
    • CodeDeploy
    • CodeCommit
    • CodeBuild
  • 継続的デリバリ=開発者がより幸せに

AWS CodeCommit

  • AWS CodeCommit
    • フルマネージド
    • セキュア
    • 容易なスケール
    • ファイル制限なし
    • 他のサービスとの連携
    • 容易な移行
    • 既存のGitツールが利用可能
  • 自社でホストするバージョン管理ツールの課題
    • 高価なライセンス費用
    • ハードウェア保守
    • サポートスタッフ
    • データ量やファイルタイプの制限
    • ブランチ数やバージョン履歴の制限
  • AWS CodeCommitを利用するには
    • HTTPSでGit認証(IAMユーザ)/SSH/開発ツールから
  • HTTPSとGit認証
    • IAMユーザ作成
    • ユーザ名/パスワード生成
    • 生成した情報をGitで利用
  • コミット履歴表示
    • AWS CodeCommitでリポジトリのコミット履歴を表示
  • 他のサービスとの連携
    • CloudTrailでAPIコールログ取得
    • リポジトリトリガーでSNS通知/Lamnbda実行

制限事項

  • リポジトリ数:アカウントごとに1,000
  • 単一のPush参照数:最大4,000。リポジトリ内の全体の参照数は無制限
  • リポジトリ名:1〜100文字。.gitで終わらない。禁止記号あり
  • Git blobサイズ:ファイルの数や単一のコミットでのファイル合計サイズは無制限。メタデータは16MB以下。単一のblobファイルのサイズは2GBまで
  • Commit Visualizerのブランチ数:35ブランチ/ページ

価格

  • 最初の5アクティブユーザ:
    • 無料
    • 無制限のリポジトリ数
    • 50GB/月
    • 10,000Gitリクエスト/月
  • 5アクティブユーザを超えて一人当たり
    • $1/月
    • 10GB/月
    • 2,000Gitリクエスト/月
  • 上記を超えると
    • $0.06/GB/月
    • $0.001/Gitリクエスト

AWS CodeBuild

  • フルマネージド
  • オンデマンド
  • すぐ使える
  • 動作
    • ソースのダウンロード
    • 一時的なコンテナ内でbuildspecで構成されたコマンドを実行
    • 結果出力(コンソール/CloudWatch Logs)
    • 生成したアーティファクトをS3にアップロード
  • リリースプロセス自動化
    • CI/CDのためのAWS CodePipelineと統合
    • 容易な自動化
    • ビルド環境を持ち込み可能
    • オープンソースのJenkinsプラグイン
  • 実行
    • CodeBuildのコンソール
    • CodePipelineのコンソール
    • AWS CLI
    • AWS SDK
  • 実行の前に
    • ソースコードはどこから?
    • ビルドコマンドと順序は?
    • どのランタイムとツールが必要か?
  • buildspecはymlで記述
  • CodePipelineとの連携
    • CodePipelineのBuild/Testアクションに追加可能
    • CIの一部として利用

注意点

  • 前のフェーズで実行に失敗した場合は次のフェーズのコマンドは実行されない
  • コマンドは個別の環境で実行されるため、前のコマンドで設定した環境変数やディレクトリ変更は引き継がれない

コードのテスト

  • テストは科学であると同時に芸術でもある!

価格

  • 分単位で課金
  • メモリとCPUリソースによって3つのタイプ
  • build.general1.smallで100分/月の無料枠あり

まとめ

  • AWS CodeCommitプライベートで無制限のリポジトリを容易に構築
  • AWS CodeBuildはフルマネージドなビルド環境
  • 高品質なソフトウェアをインクリメンタルな開発手法で素早くリリース!

参考リンク

今後のオンラインセミナー

来月からは新年度ということで、EC2、VPC、S3といったAWSの基本サービスが主体となるようです。

最後に

以上です。ちょうど、セミナー開催当日にはCodeBuildが東京リージョンで利用可能になりました。

CI/CDサイクルを回し、高品質なサービスを早くユーザに届けられるよう、Code Servicesをうまく使っていきたいですね。