2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【AWS】CodePipelineのチュートリアルをサクッとやる

Last updated at Posted at 2022-02-08

CodePipeline のチュートリアル

使うことになったので早速チュートリアルをやる
公式手順

チュートリアルの流れ

  1. CodeCommitのリポジトリのmasterブランチへのプッシュを行うと
  2. CodePipelineによってCodeDeployが実行されて
  3. EC2にデプロイを実行する
  4. デプロイ完了したら、Congratulationsのページが表示される

手順

1. IAM作成

  • name : CICDtest
  • role :
    • AWSCodePipeline_FullAccess
    • AWSCodeCommit_PoweUser

2. リポジトリ作成 & クローン

リポジトリ作成

  • name : myrepo

IAM設定

  • パブリックキー登録

CICDtestユーザの認証情報
ローカルサーバのSSH公開鍵を登録

  • アクセスキー発行

アクセスキーの作成でキー作成

$ aws configure コマンドでキー情報を指定

  • configファイル作成

ここが特殊で、.ssh/ディレクトリにconfigというファイルを作成して.
パーミッションを600にする必要があった

config
Host git-codecommit.*.amazonaws.com
User アクセスキーID
IdentityFile ~/.ssh/id_rsa(公開鍵と対になる秘密鍵)
[user@host .ssh]$ ls -lA
合計 20
-rw-------. 1 user user 1550 12月  6 10:14 authorized_keys
-rw-------. 1 user user   89  2月  8 16:08 config
-r--------. 1 user user 2602 12月  5 00:38 id_rsa
-rw-r--r--. 1 user user  570 12月  5 00:38 id_rsa.pub
-rw-r--r--. 1 user user 2886  2月  8 16:09 known_hosts

clone実行

$ git clone ssh://git-codecommit.us-west-2.amazonaws.com/v1/repos/myrepo

3. サンプルファイルDL & push

  • DL
$ cd myrepo
$ wget https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/samples/SampleApp_Linux.zip
$ unzip SampleApp_Linux.zip
$ mv SampleApp_linux.zip ../
  • push
$ git add -A
$ git commit -m "Add sample application files"
$ git push

4. EC2作成、CodeDeployエージェントインストール

ロール作成

作成するEC2インスタンスにインスタンスロールをアタッチして、
CodeDeployを実行できるようにしたいので、
まずインスタンスロールを作成する

  • name : EC2InstanceRole
  • policy : AmazonEC2RoleforCodeDeploy (CodeDeployで検索)

EC2インスタンス作成

  • name : EC2Instance
  • AMI : AmazonLinux
  • 自動割り当てパブリックIP : 有効
  • IAM : EC2InstanceRoleさっき作ったやつ
  • 高度
    • ユーザーデータ : ↓
#!/bin/bash
yum -y update
yum install -y ruby
yum install -y aws-cli
cd /home/ec2-user
wget https://aws-codedeploy-us-east-2.s3.us-east-2.amazonaws.com/latest/install
chmod +x ./install
./install auto
  • セキュリティグループ : HTTP(80)だけ開いてたらOK
  • タグ
    • name : EC2Instance

5. CodeDeploy設定

CodeDeploy用のロール作成

  • name : CodeDeployRole
  • policy : ユースケースでCodeDeployを選ぶと自動で選択されている

CodeDeploy Application の作成

  • name : demo-application
  • プラットフォーム : ec2/オンプレミス

CodeDeploy DeployGroup の作成

  • name : demo-deploy-group
  • role : さっき作ったやつ
  • type : インプレース
  • environment : EC2インスタンス
    • キー:
      • name:EC2Instance(EC2インスタンスの名前)
  • deploy : CodeDeployDefault.OneAtATime
  • LB : 無効化

6. Pipeline作成

  • name : MyPipeline
  • ロール : 新しい
    • name : MyPipelineRole
  • ソース : CodeCommit
    • reponame : myrepo
    • branch : master
  • ビルド : スキップ
  • デプロイ :
    • ソース : CodeDeploy
      • ロケーション : 東京
      • アプリケーション名 : demo-application (さっき作ったやつ)
      • デプロイグループ : demo-deploy-group (さっき作ったやつ)

実行するとデプロイ開始される
うまくいってたら成功表示が出る

7. 確認

作成したEC2のパブリックIPにHTTPアクセスすると、
アプリがデプロイされてCongraturationsのページが表示される

感想

一番難しかったのがCodeCommitのSSHを使ったリポジトリのクローンでした、、、
むしろそれくらいPipelineの構築が単純明快でよかった

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?