Python 100Days Challenge Day27
元々このチャレンジを始めたのも、Pythonを使ってAWS CDKを構築することが発端。
- Cloud Development Kitということは知ってる
- 環境構築をしたことはある
これくらい程度の知識だったので詳しく調べてみる。
AWS CDKの概要
- AWS CDK(Cloud Development Kit)はプログラミング言語をつかってクラウドのリソース管理・作成するためのツール
- プログラムを書いてAWS上に自分が作りたい環境を作れる仕組み
いわゆる、Terraform的なやつ。
AWS consoleをポチポチ操作しなくてもプログラムだけで環境構築できる。
AWS CDKを使う理由
- ラク
- コードでインフラを定義するので、同じ設定を何度も使える
- 安全
- バージョン管理ができるので、変更履歴を追うことができる
- 自動化できる
- 手動での設定ミスを減らし、自動でデプロイができる
使わない手はない。
EC2のセットアップ方法
とりあえず、小規模で動かしてみる。
AWS CDKはNode.jsで動いているので、まずはnode.jsをインストールする。
npmやnvmなど、バージョンを管理しやすいパッケージシステムを使うこと。
今回は省略。
AWS CDKをインストールする
npm install -g aws-cdk
プロジェクトを作成して言語をpythonに設定
mkdir my-first-cdk-project
cd my-first-cdk-project
cdk init app --language python
依存ライブラリをインストールする
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
これでひとまず準備完了。
コードを書いていく。
lib/my_first_cdk_project_stack.py
というファイルを編集する
from aws_cdk import core
from aws_cdk.aaws_ec2 as ec2
class MyFirstCdkProjectStack(core.Stack):
def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
super().__init__(scope, id, **kwargs)
# VPCの作成
vpc = ec2.Vpc(self, "MyVpc",
max_azs=2, # AZの数を指定する
)
# EC2インスタンスの作成
ec2_instance = ec2.Instance(seld, "MyInstance",
# インスタンスタイプを指定する
instance_type=ec2.InstanceType("t2.micro")
# Amazon Machine Imageを指定する
machine_image=ec2.AmazonLinuxImage(),
# 上記で作成したVPCを指定する
vpc=vpc
)
app = core.App()
MyFirstCdkAppStack(app, "MyFirstCdkAppStack")
app.synth()
デプロイする
cdk deploy
このように、AWS CDKを使うと、プログラムコードでクラウドのリソースを簡単に管理・作成できる。
EC2環境を破棄する
cdk destroy
使わないときは課金されないよう破棄してaws console上でも破棄されたことを確認すること。