僕はスピンサーブが打てない

 僕がスピンサーブを打てるまでの記録,あとその他のメモとか.

日報 - 2017 年 6 月 29 日

  • ホスト名 @ の DNS レコード

    • ホスト名を空白とした場合と同じレコード
    • いわゆる Zone Apex (ネイキッド・ドメイン) と同じレコードと見なせる、と思う。ちなみに apex は頂点という意味。
    • A, MX, TXT, SRV レコードのみ、@ やホスト名空白のレコードが作成可能
    • CNAME, NS レコードについては、@ やホスト名空白のレコードは作成できない。
  • IAM (ユーザーとかグループとかロールとか) は、リージョンを超えてグローバルに効く。

だから profile foo のデフォルトリージョンが ap-northeast-1 で、ソウルリージョンに対して作業したいときは、

--profile foo --region ap-northeast-2

とやればよい。

CloudFormation の Properties と Parameters

- Properties
    - 必須。AWS リソースの名前とか。
- Parameters
    - 必須ではない。オプション。aws cloudformation コマンドのオプションで変数的に渡し、上記 Properties を動的に決めることができる。

ACM の発行リクエストを行う CFn の yaml と、aws cli での実行テスト

acm-certificate.yaml
AWSTemplateFormatVersion: '2010-09-09'
Description: ACM Test
Parameters:
  DomainName:
    Description: FQDN of the certificate being requested.
    Type: String
    Default: ''
  ValidationDomain:
    Description: The domain to which validation email is sent.
    Type: String
    Default: ''
  CertificateName:
    Description: Name Tag of Certificate requested.
    Type: String
    Default: ''
Resources:
  ACMCertificate:
    Type: AWS::CertificateManager::Certificate
    Properties:
      DomainName:
        Fn::Join:
        - ''
        - - '*.'
          - Ref: DomainName
      SubjectAlternativeNames:
      - Ref: DomainName
      DomainValidationOptions:
      - DomainName:
          Fn::Join:
          - ''
          - - '*.'
            - Ref: DomainName
        ValidationDomain:
          Ref: ValidationDomain
      Tags:
        - Key: Name
          Value:
            Ref: CertificateName
aws cli コマンド

上記 YAML 内で定義している以下の Parameters を aws cli コマンドの引数で渡すことができる。

  • DomainName
  • ValidationDomain
  • CertificateName

また、各パラメーターにはデフォルト値も設定できる。引数でのパラメーター指定を省略した場合、デフォルト値が採用される。

aws cloudformation create-stack \
  --stack-name acm-test \
  --template-body file://acm-certificate.yaml \
  --parameters \
    ParameterKey=DomainName,ParameterValue='example.jp' \
    ParameterKey=ValidationDomain,ParameterValue='example.jp' \
    ParameterKey=CertificateName,ParameterValue='wildcard.example.jp'