Site icon imageTomoMemo.dev

Memo on programming. Provided by Tomo with passion.

AWS CDKでEC2をセットアップする【技術調査】

Icon in a callout block
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上でも破棄されたことを確認すること。

Powered by Tomo with passion.