■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" } ] }