はじめまして!Tamaです!
今回からレシピ記事を書いていきます!よろしくお願いいたします!
AWS CLIからのデプロイ
今回は一括デプロイサービスであるCroudFormationをAWS CLIでの構築と比較するため、まずはAWS CLIからVPCを作りその中にEC2インスタンスの立ち上げを行います。
AWS CLIの導入や使い方は こちら から
今回作成する環境は下の表になります。
| OS | Amazon Linux AMI 2015.03.0 x86_64 HVM GP2 |
| AMI | ami-cbf90ecb |
| Instance Type | t2.micro |
| Root Volume | 8GiB |
| VPC IP Range | 10.0.0.0/16 |
| Subnet IP Range | 10.0.0.0/24 |
| SecurityGroup | SSH(port:22) source:0.0.0.0/0 |
| New Key Pair | NO |
EC2インスタンスにSSHで接続し、コマンドを入力していきます。
1. VPCの作成
1# aws ec2 create-vpc --cidr-block 10.0.0.0/16[実行結果]
1{2 "Vpc": {3 "InstanceTenancy": "default",4 "State": "pending",5 "VpcId": "[VPC ID]",6 "CidrBlock": "10.0.0.0/16",7 "DhcpOptionsId": "XXXXXXXXXXXX"8 }9}2. Subnetの作成
1# aws ec2 create-subnet --vpc-id [VPC ID] --cidr-block 10.0.0.0/24[実行結果]
1{2 "Subnet": {3 "VpcId": "[VPC ID]",4 "CidrBlock": "10.0.0.0/24",5 "State": "pending",6 "AvailabilityZone": "ap-northeast-1a",7 "SubnetId": "[SubnetID]",8 "AvailableIpAddressCount": 2519 }10}3. インターネットゲートウェイの作成
1# aws ec2 create-internet-gateway[実行結果]
1{2 "InternetGateway": {3 "Tags": [],4 "InternetGatewayId": "[InternetGatewayID]",5 "Attachments": []6 }7}4. インターネットゲートウェイのアタッチ
1# aws ec2 attach-internet-gateway --internet-gateway-id [InternetGatewayID] --vpc-id [VPC ID]5. ルートテーブルの作成
1# aws ec2 create-route-table --vpc-id [VPC ID][実行結果]
1{2 "RouteTable": {3 "Associations": [],4 "RouteTableId": "[RootTableID]",5 "VpcId": "[VPC ID]",6 "PropagatingVgws": [],7 "Tags": [],8 "Routes": [9 {10 "GatewayId": "local",11 "DestinationCidrBlock": "10.0.0.0/16",12 "State": "active",13 "Origin": "CreateRouteTable"14 }15 ]16 }17}6. ルートの設定
1# aws ec2 create-route --route-table-id [RootTableID] --destination-cidr-block 0.0.0.0/0 --gateway-id [InternetGatewayID][実行結果]
1{2 "Return": true3}7. ルートテーブルの割り当て
1# aws ec2 associate-route-table --subnet-id [SubnetID] --route-table-id [RootTableID][実行結果]
1{2 "AssociationId": "[AssociationID]"3}8. セキュリティグループの作成
1# aws ec2 create-security-group --group-name EC2inVPC --description EC2inVPC --vpc-id [VPC ID][実行結果]
1{2 "GroupId": "[GroupID]"3}9. インバウンドルールの設定
1# aws ec2 authorize-security-group-ingress --group-id [GroupID] --protocol tcp --port 22 --cidr 0.0.0.0/010. EC2インスタンスの立ち上げ
1# aws ec2 run-instances --image-id ami-cbf90ecb --key-name [KeyName] --security-group-ids [GroupID] --instance-type t2.micro --block-device-mappings "[{\"DeviceName\":\"/dev/xvda\",\"Ebs\":{\"VolumeSize\":8}}]" --subnet-id [SubnetID] --count 1 --associate-public-ip-address[実行結果]
1{2 "OwnerId": "XXXXXXXXX",3 "ReservationId": "XXXXXXXXX",4 "Groups": [],5 "Instances": [6 {7 "Monitoring": {8 "State": "disabled"9 },10 "PublicDnsName": "",11 "RootDeviceType": "ebs",12 "State": {13 "Code": 0,14 "Name": "pending"15 },16 "EbsOptimized": false,17 "LaunchTime": "2015-XX-XXTXX:XX:XX.000Z",18 "PrivateIpAddress": "10.0.0.138",19 "ProductCodes": [],20 "VpcId": "[VPC ID]",21 "StateTransitionReason": "",22 "InstanceId": "[InstanceID]",23 "ImageId": "ami-cbf90ecb",24 "PrivateDnsName": "ip-10-0-0-138.ap-northeast-1.compute.internal",25 "KeyName": "[KeyName]",26 "SecurityGroups": [27 {28 "GroupName": "EC2inVPC",29 "GroupId": "[GroupID]"30 }31 ],32 "ClientToken": "",33 "SubnetId": "[SubnetID]",34 "InstanceType": "t2.micro",35 "NetworkInterfaces": [36 {37 "Status": "in-use",38 "MacAddress": "XX:XX:XX:XX:XX:XX",39 "SourceDestCheck": true,40 "VpcId": "[VPC ID]",41 "Description": "",42 "NetworkInterfaceId": "XXXXXXXXXX",43 "PrivateIpAddresses": [44 {45 "Primary": true,46 "PrivateIpAddress": "10.0.0.138"47 }48 ],49 "Attachment": {50 "Status": "attaching",51 "DeviceIndex": 0,52 "DeleteOnTermination": true,53 "AttachmentId": "XXXXXXXXXXX",54 "AttachTime": "2015-XX-XXTXX:XX:XX.000Z"55 },56 "Groups": [57 {58 "GroupName": "EC2inVPC",59 "GroupId": "[GroupID]"60 }61 ],62 "SubnetId": "[SubnetID]",63 "OwnerId": "XXXXXXXXXXXX",64 "PrivateIpAddress": "10.0.0.138"65 }66 ],67 "SourceDestCheck": true,68 "Placement": {69 "Tenancy": "default",70 "GroupName": "",71 "AvailabilityZone": "ap-northeast-1a"72 },73 "Hypervisor": "xen",74 "BlockDeviceMappings": [],75 "Architecture": "x86_64",76 "StateReason": {77 "Message": "pending",78 "Code": "pending"79 },80 "RootDeviceName": "/dev/xvda",81 "VirtualizationType": "hvm",82 "AmiLaunchIndex": 083 }84 ]85}コンソールからデプロイされたインスタンスを見てみます。
今回作成したVPC, Subnet内にデプロイされているのが確認できます。