■lightsailでredmineを使ってみる(awscli)。
lightsailはざっくり、VPSとしてパッケージ化された、他のAWSサービスからは独立したAWSサービス。
規定データ量の範囲内なら月額固定料金なので予算が立てやすい。
AWS CLI コマンドを使用して Lightsail インスタンスを管理する方法を教えてください。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/lightsail-aws-cli-commands/
■リージョンとAZを確認しておく。
$ aws ec2 describe-availability-zones --region us-east-1 | jq -r -c '.AvailabilityZones[] | { RegionName, ZoneName} | @text'
{"RegionName":"us-east-1","ZoneName":"us-east-1a"}
{"RegionName":"us-east-1","ZoneName":"us-east-1b"}
{"RegionName":"us-east-1","ZoneName":"us-east-1c"}
{"RegionName":"us-east-1","ZoneName":"us-east-1d"}
{"RegionName":"us-east-1","ZoneName":"us-east-1e"}
{"RegionName":"us-east-1","ZoneName":"us-east-1f"}
$ aws ec2 describe-availability-zones --region ap-northeast-1 | jq -r -c '.AvailabilityZones[] | { RegionName, ZoneName} | @text'
{"RegionName":"ap-northeast-1","ZoneName":"ap-northeast-1a"}
{"RegionName":"ap-northeast-1","ZoneName":"ap-northeast-1c"}
{"RegionName":"ap-northeast-1","ZoneName":"ap-northeast-1d"}
■バンドルIDを一覧
$ aws lightsail get-bundles --region us-east-1 | jq -r -c '.bundles[] | { bundleId, price, cpuCount, ramSizeInGb}'
{"bundleId":"nano_2_0","price":3.5,"cpuCount":1,"ramSizeInGb":0.5}
{"bundleId":"micro_2_0","price":5,"cpuCount":1,"ramSizeInGb":1}
{"bundleId":"small_2_0","price":10,"cpuCount":1,"ramSizeInGb":2}
{"bundleId":"medium_2_0","price":20,"cpuCount":2,"ramSizeInGb":4}
{"bundleId":"large_2_0","price":40,"cpuCount":2,"ramSizeInGb":8}
{"bundleId":"xlarge_2_0","price":80,"cpuCount":4,"ramSizeInGb":16}
{"bundleId":"2xlarge_2_0","price":160,"cpuCount":8,"ramSizeInGb":32}
{"bundleId":"nano_win_2_0","price":8,"cpuCount":1,"ramSizeInGb":0.5}
{"bundleId":"micro_win_2_0","price":12,"cpuCount":1,"ramSizeInGb":1}
{"bundleId":"small_win_2_0","price":20,"cpuCount":1,"ramSizeInGb":2}
{"bundleId":"medium_win_2_0","price":40,"cpuCount":2,"ramSizeInGb":4}
{"bundleId":"large_win_2_0","price":70,"cpuCount":2,"ramSizeInGb":8}
{"bundleId":"xlarge_win_2_0","price":120,"cpuCount":4,"ramSizeInGb":16}
{"bundleId":"2xlarge_win_2_0","price":240,"cpuCount":8,"ramSizeInGb":32}
■インスタンスタイプがnano(750時間の無料枠対象)のバンドル情報を検索
LinuxかWindowsが選べる。
$ aws lightsail get-bundles --region us-east-1 | jq -r '.bundles[]' | lsec -sep '{' nano
{
"price": 3.5,
"cpuCount": 1,
"diskSizeInGb": 20,
"bundleId": "nano_2_0",
"instanceType": "nano",
"isActive": true,
"name": "Nano",
"power": 300,
"ramSizeInGb": 0.5,
"transferPerMonthInGb": 1024,
"supportedPlatforms": [
"LINUX_UNIX"
]
}
{
"price": 8,
"cpuCount": 1,
"diskSizeInGb": 30,
"bundleId": "nano_win_2_0",
"instanceType": "nano",
"isActive": true,
"name": "Nano",
"power": 300,
"ramSizeInGb": 0.5,
"transferPerMonthInGb": 1024,
"supportedPlatforms": [
"WINDOWS"
]
}
■ブループリント(用意されたOS)の一覧
$ aws lightsail get-blueprints --region us-east-1 | jq -r -c '.blueprints[] | { blueprintId, version } | @text'
{"blueprintId":"windows_server_2019","version":"2021.04.14"}
{"blueprintId":"windows_server_2016","version":"2021.04.14"}
{"blueprintId":"windows_server_2012","version":"2021.04.14"}
{"blueprintId":"windows_server_2016_sql_2016_express","version":"2021.04.14"}
{"blueprintId":"amazon_linux_2","version":"2.0.20210421.0"}
{"blueprintId":"amazon_linux","version":"2018.03.0.20210408.0"}
{"blueprintId":"ubuntu_20_04","version":"20.04 LTS"}
{"blueprintId":"ubuntu_18_04","version":"18.04 LTS"}
{"blueprintId":"ubuntu_16_04_2","version":"16.04 LTS"}
{"blueprintId":"debian_10","version":"10.8"}
{"blueprintId":"debian_9_13","version":"9.13"}
{"blueprintId":"debian_8_7","version":"8.7"}
{"blueprintId":"freebsd_12","version":"12.2"}
{"blueprintId":"opensuse_15_2","version":"15.2"}
{"blueprintId":"centos_8","version":"8 2004-01"}
{"blueprintId":"centos_7_2009_01","version":"7 2009-01"}
{"blueprintId":"wordpress","version":"5.6.1-1"}
{"blueprintId":"wordpress_multisite","version":"5.6.1"}
{"blueprintId":"lamp_7","version":"7.4.15-3"}
{"blueprintId":"nodejs","version":"12.20.2"}
{"blueprintId":"joomla","version":"3.9.24-8"}
{"blueprintId":"magento","version":"2.4.1-12"}
{"blueprintId":"mean","version":"4.4.4"}
{"blueprintId":"drupal","version":"9.1.4-5"}
{"blueprintId":"gitlab","version":"12.5.0"}
{"blueprintId":"redmine","version":"4.1.1-7"}
{"blueprintId":"nginx","version":"1.18.0-42"}
{"blueprintId":"ghost_bitnami","version":"3.41.5"}
{"blueprintId":"django_bitnami","version":"3.1.6-4"}
{"blueprintId":"prestashop_bitnami","version":"1.7.7-2-7"}
{"blueprintId":"plesk_ubuntu_18_0_34","version":"18.0.34"}
{"blueprintId":"cpanel_whm_linux","version":"11.92.0.9"}
■Redmineのブループリント情報を検索
$ aws lightsail get-blueprints --region us-east-1 | jq -r '.blueprints[]' | lsec -sep '{' Redmine
{
"blueprintId": "redmine",
"name": "Redmine",
"group": "redmine",
"type": "app",
"description": "Redmine certified by Bitnami is a flexible project management web application. It includes support for multiple projects, role-based access control, Gantt chart and calendar, management of news, documents and files, per-project wikis and forums and more. Redmine integrates with popular version control software such as Git and Mercurial and includes LDAP user access management, multiple database support, and multi-language capability.This image is certified by Bitnami as secure, up-to-date, and packaged using industry best practices.",
"isActive": true,
"minPower": 0,
"version": "4.1.1-7",
"versionCode": "1",
"productUrl": "https://aws.amazon.com/marketplace/pp/B00NNZUVHQ",
"licenseUrl": "https://d7umqicpi7263.cloudfront.net/eula/product/ee6977a6-d6da-4671-885e-dd9c02ec5def/e46b414e-6323-4647-952f-d456846302da.txt",
"platform": "LINUX_UNIX"
}
■リージョンとAZを選んで作成。
$ cat aws_lihghtsail_redmine
aws lightsail create-instances \
--region us-east-1 \
--instance-names lightsail-redmine \
--availability-zone us-east-1a \
--blueprint-id redmine \
--bundle-id micro_2_0
$ bash aws_lihghtsail_redmine
{
"operations": [
{
"id": "XXXXXXXX-XXX-XXXXX-XXXX-XXXXXXXXXXX",
"resourceName": "lightsail-redmine",
"resourceType": "Instance",
"createdAt": "2021-05-01T03:02:16.124000+09:00",
"location": {
"availabilityZone": "us-east-1a",
"regionName": "us-east-1"
},
"isTerminal": false,
"operationType": "CreateInstance",
"status": "Started",
"statusChangedAt": "2021-05-01T03:02:16.124000+09:00"
}
]
}
■アクセス方法
※httpsは自己署名証明書。
$ PublicIP=$(aws lightsail get-instance --instance-name lightsail-redmine --region us-east-1 | jq -r '.[].publicIpAddress')
$ chromium http://${PublicIP}
■80,22,443ポートが開いてる、月2048GBの転送量が許可されている。
$ aws lightsail get-instance --instance-name lightsail-redmine --region us-east-1 | jq -r '.instance.networking'
{
"monthlyTransfer": {
"gbPerMonthAllocated": 2048
},
"ports": [
{
"fromPort": 80,
"toPort": 80,
"protocol": "tcp",
"accessFrom": "Anywhere (0.0.0.0/0 and ::/0)",
"accessType": "public",
"commonName": "",
"accessDirection": "inbound",
"cidrs": [
"0.0.0.0/0"
],
"cidrListAliases": []
},
{
"fromPort": 22,
"toPort": 22,
"protocol": "tcp",
"accessFrom": "Anywhere (0.0.0.0/0 and ::/0)",
"accessType": "public",
"commonName": "",
"accessDirection": "inbound",
"cidrs": [
"0.0.0.0/0"
],
"cidrListAliases": []
},
{
"fromPort": 443,
"toPort": 443,
"protocol": "tcp",
"accessFrom": "Anywhere (0.0.0.0/0 and ::/0)",
"accessType": "public",
"commonName": "",
"accessDirection": "inbound",
"cidrs": [
"0.0.0.0/0"
],
"cidrListAliases": []
}
]
}
■ログイン情報はLightsailコンソールからターミナルに接続して確認。
$ aws lightsail get-instance --instance-name lightsail-redmine --region us-east-1 | jq -r '.[].username'
bitnami
$ cat bitnami_credentials
Welcome to the Bitnami Redmine Stack
******************************************************************************
The default username and password is 'user' and 'XXXXXXXX'.
******************************************************************************
You can also use this password to access the databases and any other component the stack i
ncludes.
Please refer to https://docs.bitnami.com/ for more details.
$ cat bitnami_application_password
XXXXXXXX
■SSHキーはLightsailコンソールからダウンロードして接続。
アカウント -> アカウント
https://lightsail.aws.amazon.com/ls/webapp/account/keys
$ ssh -i LightsailDefaultKey-us-east-1.pem bitnami@${PublicIP}
■削除。
※SSHキーは消えないので、Lightsailコンソールから個別に削除する。
$ aws lightsail delete-instance --instance-name lightsail-redmine
{
"operations": [
{
"id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"resourceName": "lightsail-redmine",
"resourceType": "Instance",
"createdAt": "2021-05-01T04:58:19.629000+09:00",
"location": {
"availabilityZone": "us-east-1a",
"regionName": "us-east-1"
},
"isTerminal": true,
"operationDetails": "",
"operationType": "DeleteInstance",
"status": "Succeeded",
"statusChangedAt": "2021-05-01T04:58:19.629000+09:00"
}
]
}