LoginSignup
0
1

More than 1 year has passed since last update.

AWS CDK で他人が作った環境を自分の環境のスタックにデプロイする

Last updated at Posted at 2021-04-29

はじめに

  • もはやCFn(CloudFormation)に環境設定を直書きしてる方は絶滅危惧種のようです...(知りませんでした)
  • CFnのような面倒な記述なく、Pythonなどでゴリゴリ書けるCDKがトレンドみたいです。
  • CI/CDで自動デプロイできるかの検証はまだできてないです(ゴメンナサイ)
  • 【注意】あくまで他人が作ったAWS環境を自分のAWS環境に移行するための手順です。
  • 【注意】あらかじめ他人のAWS環境のCDK構築ファイル群をもらっておく必要があります。
  • Macユーザー向けです。
  • AWSを熟知している方、普段からCLIを触っている方、CloudFormationを書いたことある方向けです。
  • 環境に合わせた任意の変数は{}で表現しています。

動作確認済みの環境

バージョン
OS MacOS Catalina 10.15.6
Python 3.9.1
pip 20.1.1
Node.js 12.16.1
npm 6.14.8
aws-cdk 1.16.0
aws-cli 2.0.44

事前準備

  • Homebrewをインストール 👉https://brew.sh/index_ja

  • pyenvをインストール

    $ brew install pyenv
    
  • PATHを通す

    $ vim ~/.bash_profile
    //bashではなくzshを使っている場合は~/.zprofile
    // 下記の3行を追記する
    export PYENV_ROOT="$HOME/.pyenv"
    export PATH="$PYENV_ROOT/bin:$PATH"
    eval "$(pyenv init -)"
    // 3行追記して保存(:wq)したら下記コマンドで変更内容を反映する
    $ source ~/.bash_profile
    
  • python 3.8.5 をインストール

    $ pyenv install 3.8.5
    $ pyenv global 3.8.5
    $ python3 -V  //3.8.5であることを確認
    
  • aws-cliをインストール 👉https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2.html

  • aws-cliとAWSアカウントを紐付ける

    $ aws configure
    AWS Access Key ID : {自分のアカウントのアクセスキー}
    AWS Secret Access Key : {自分のアカウントのシークレットキー}
    Default region name : ap-northeast-1
    Default output format : json
    

CDKによるリソースデプロイ

  • CDKの準備を行う
$ mkdir {hoge}
$ cd {hoge}   //.envがある環境
// 他人が作った環境のCDK資源をhogeフォルダにコピペする
$ python3 -m venv .env //初回のみ実行
$ source .env/bin/activate //仮想環境を展開
// 仮想環境から出たい場合は、`$ deactivate`
// 仮想環境に入ると、$マークの前に(.env)が表示されます。
(.env)$ pip install -r requirements.txt //(初回実行のみ)ライブラリをインストール
// 下記のWARNINGは無視してOK。
// WARNING: You are using pip version xx.x.x; however, version xx.x is available.
(.env)$ cdk ls
  • 対象環境にCDK Appを作成する
(.env)$ cdk synth //CFnフォーマットに変換されてテンプレートが出力される
(.env)$ cdk diff //diffチェックをする
  • 対象環境にCDKでリソースをデプロイする
(.env)$ cdk deploy
// deployコマンドを流すと、実行するかどうか聞かれるのでyを入力する。
// failed creationエラーが出た場合はwebコンソールから対象スタックを一度削除して再度デプロイする。
  • デプロイ完了!!
Stack ARN: arn:aws:cloudformation:ap-northeast-1:{アカウント番号}:stack/{スタック名}/{スタックID}
//上記が出力されればデプロイ完了!
//CLIで全てデプロイできたら、webマネジメントコンソールからスタックが出来上がっていることを確認できます。

おわりに

  • CFnの面倒な作業から解放されるCDKなるものがあるとは知りませんでした。
  • IaCがこんなに簡単に実現できるとは、さすがAWSです👏
0
1
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
0
1