AWS CLI バージョン 2 をMac OSXにインストールする手順です。
前提
- Mac OSX のPCを持っている
- インターネットに接続できる
- AWS のアカウントを持っている
- AWS CLI バージョン 2 がインストール対象です
事前準備
始める前に AWS CLI を操作するための IAMユーザを作っておきます。
- AWSコンソール
- IAM
- アクセス管理 > ユーザ
- ユーザを追加
- ユーザ名:(任意)
- アクセスの種類:プログラムによるアクセス
- アクセス許可の設定:(任意)
- ユーザを追加
- アクセス管理 > ユーザ
- IAM
ユーザを作成すると Access key ID
と Secret access key
が割り振られます。
後ほどconfigureする時に必要なので控えておいてください。
AWS CLI をインストール
AWSドキュメント の通りにコマンドを実行します。
最後のバックスラッシュが必要なのかは謎です。
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /
AWS CLI をインストールしたら次にconfigureします。ログインみたいなもんです。
任意のプロファイル名を付けられます。名前付きプロファイルを作っておくとユーザ切り替えが楽です。
(別のAWSアカウントを所有し、同じPCでaws-cliを利用したい場合など)
プロンプトで4つ質問されます。
{Access key ID}
と {Secret access key}
は適宜読み替えてください。
リージョンや出力フォーマットはお好みのものを指定しましょう。
なお、ユーザを切り替える必要がないなら --profile {プロファイル名}
の部分は不要です。
aws configure --profile {プロファイル名}
AWS Access Key ID [None]: {Access key ID}
AWS Secret Access Key [None]: {Secret access key}
Default region name [None]: us-west-2
Default output format [None]: json
動作確認
ためしにEC2インスタンスの情報を取得してみます。
名前付きプロファイルを作成していないなら --profile {プロファイル名}
の部分は不要です。
aws ec2 describe-instances --profile {プロファイル名}
実行結果は省略します。見たい人はこちらを開いてください。
{
"Reservations": [
{
"Groups": [],
"Instances": [
{
"AmiLaunchIndex": 0,
"ImageId": "ami-XXXXXXXX",
"InstanceId": "i-XXXXXXXXXXXXXXXXX",
"InstanceType": "t2.nano",
"LaunchTime": "2020-01-01T00:00:00+00:00",
"Monitoring": {
"State": "disabled"
},
"Placement": {
"AvailabilityZone": "us-west-2b",
"GroupName": "",
"Tenancy": "default"
},
"PrivateDnsName": "ip-XXX-XXX-XXX-XXX.us-west-2.compute.internal",
"PrivateIpAddress": "XXX.XXX.XXX.XXX",
"ProductCodes": [],
"PublicDnsName": "ec2-XXX-XXX-XXX-XXX.us-west-2.compute.amazonaws.com",
"PublicIpAddress": "XXX.XXX.XXX.XXX",
"State": {
"Code": 16,
"Name": "running"
},
"StateTransitionReason": "",
"SubnetId": "subnet-XXXXXXXX",
"VpcId": "vpc-XXXXXXXX",
"Architecture": "x86_64",
"BlockDeviceMappings": [
{
"DeviceName": "/dev/xvda",
"Ebs": {
"AttachTime": "2020-01-01T00:00:00+00:00",
"DeleteOnTermination": false,
"Status": "attached",
"VolumeId": "vol-XXXXXXXXXXXXXXXXX"
}
}
],
"ClientToken": "",
"EbsOptimized": false,
"EnaSupport": true,
"Hypervisor": "xen",
"NetworkInterfaces": [
{
"Association": {
"IpOwnerId": "XXXXXXXXXXXX",
"PublicDnsName": "ec2-XXX-XXX-XXX-XXX.us-west-2.compute.amazonaws.com",
"PublicIp": "XXX.XXX.XXX.XXX"
},
"Attachment": {
"AttachTime": "2020-01-01T00:00:00+00:00",
"AttachmentId": "eni-attach-XXXXXXXXXXXXXXXXX",
"DeleteOnTermination": true,
"DeviceIndex": 0,
"Status": "attached"
},
"Description": "",
"Groups": [
{
"GroupName": "XXXXXXXXXXXXXX",
"GroupId": "sg-XXXXXXXX"
}
],
"Ipv6Addresses": [],
"MacAddress": "XX:XX:XX:XX:XX:XX",
"NetworkInterfaceId": "eni-XXXXXXXXXXXXXXXXX",
"OwnerId": "XXXXXXXXXXXX",
"PrivateDnsName": "ip-XXX-XXX-XXX-XXX.us-west-2.compute.internal",
"PrivateIpAddress": "XXX.XXX.XXX.XXX",
"PrivateIpAddresses": [
{
"Association": {
"IpOwnerId": "XXXXXXXXXXXX",
"PublicDnsName": "ec2-XXX-XXX-XXX-XXX.us-west-2.compute.amazonaws.com",
"PublicIp": "XXX.XXX.XXX.XXX"
},
"Primary": true,
"PrivateDnsName": "ip-XXX-XXX-XXX-XXX.us-west-2.compute.internal",
"PrivateIpAddress": "XXX.XXX.XXX.XXX"
}
],
"SourceDestCheck": true,
"Status": "in-use",
"SubnetId": "subnet-XXXXXXXX",
"VpcId": "vpc-XXXXXXXX",
"InterfaceType": "interface"
}
],
"RootDeviceName": "/dev/xvda",
"RootDeviceType": "ebs",
"SecurityGroups": [
{
"GroupName": "XXXXXXXXXXXXXX",
"GroupId": "sg-XXXXXXXX"
}
],
"SourceDestCheck": true,
"VirtualizationType": "hvm",
"CpuOptions": {
"CoreCount": 1,
"ThreadsPerCore": 1
},
"CapacityReservationSpecification": {
"CapacityReservationPreference": "open"
},
"HibernationOptions": {
"Configured": false
},
"MetadataOptions": {
"State": "applied",
"HttpTokens": "optional",
"HttpPutResponseHopLimit": 1,
"HttpEndpoint": "enabled"
}
}
],
"OwnerId": "XXXXXXXXXXXX",
"ReservationId": "r-XXXXXXXXXXXXXXXXX"
}
]
}