Amazon Linux のインスタンス作成時に cloud-init でタイムゾーンを指定する
AWS 上に cloud-init 対応ディストリビューションのインスタンスを作成するのであれば、起動時にパラメータを指定することで初期設定を実施することが出来ます。インスタンス起動後に Chef や Ansible で設定しても良いですが、cloud-init でシンプルに設定してしまうのも簡易でお勧めです。今回は Amazon Linux のインスタンス時にタイムゾーンを指定してみます。
AWS 上に cloud-init 対応ディストリビューションのインスタンスを作成するのであれば、起動時にパラメータを指定することで初期設定を実施することが出来ます。インスタンス起動後に Chef や Ansible で設定しても良いですが、cloud-init でシンプルに設定してしまうのも簡易でお勧めです。今回は Amazon Linux のインスタンス時にタイムゾーンを指定してみます。
例えば EC2 インスタンスからバックアップを S3 に保存する為に AmazonS3FullAccess の Policy を付与すると、不必要な Bucket までフルアクセス出来てしまいます。操作ミス等があっても、意図しない Bucket には影響を与えないようにする為には『指定した Bucket にしかアクセスさせない Policy』を作成することで対応可能です。
S3 を静的 Web ホスティングしつつ、アドレス制限を行う場合は Bucket Policy を使って実装することが可能です。
あまり Amazon Linux 特有の部分は無いのですが、Amazon Linux でホスト名 / タイムゾーンを修正する際のポイントをメモしておきます。以下は「インスタンス起動後に設定修正する」手順を想定していますが、「インスタンス起動前に cloud-init でパラメータを指定する」方がより Amazon Linux らしい… かも知れません。
AWS のストレージサービスである「S3」は、設定することで静的 Web サイトのホスティングが可能です。S3 と Lambda を組み合わせて使用することで動的な機能を利用することも出来ますが、S3 単体ですと例えば「User-Agent を見分けて処理を変化させる」といった高度な処理は出来ないようです。但し、HTTP リダイレクトコード(301)を使った単純なリダイレクトであれば S3 単体でも利用することが出来ます。
例えば http://FQDN/REDIRECT/FROM/
へのアクセスを http://FQDN/REDIRECT/TO/
にリダイレクトするには S3 に以下のようなリダイレクトルールを設定します。
1 2 3 4 5 6 7 8 9 10 11 |
|
AWS のデフォルト状態で請求情報にアクセス出来るのは root アカウントのみ、です。IAM ユーザは請求情報にアクセスすることは出来ません。しかし、root アカウントで設定してしまえば以降は IAM ユーザでも請求情報にアクセス出来るようになります。
まず root ユーザでアカウントし、「アカウント」をクリックします。次に「請求情報に対する IAM ユーザ 〜」の右側にある『編集』ボタンをクリックします。
AWS のマネージメントコンソール(Web UI)で表示言語を変更するには、画面下にある現在の言語表示(日本語表示中なら「日本語」と表示されているはず。英語表示中なら「English」と表示されているはず)をクリックし、変更したい言語をクリックするだけです。
AWS の EC2 で CentOS7 の AMI からインスタンスを作成した場合、/etc/hostname を修正してホスト名を手動設定しても再起動する度に元に戻ってしまいます。具体的には以下のようなホスト名に戻ってしまうはずです。
1 |
|
これは CentOS7 の AMI イメージが cloud-init で制御されており、起動時にホスト名が再設定されるから、のようです。
EC2 インスタンスから S3 バケットをマウントする手順として、以前に EC2 上の CentOS7 から S3 をマウントする(API 利用編) というメモを書きました。この方法ではアクセスキー/シークレットキーを EC2 インスタンスの中に保存しましたが、IAM ロールを使えば EC2 インスタンス内に情報を保存する必要が無くなり、セキュリティが向上します。
goofys を使って AWS の EC2 上に作った CentOS7 から S3 をマウントするには以下のようにします。EC2 のインスタンスは「CentOS 7 (x86_64) - with Updates HVM (2016/02/26)」をベースにしました。今回は AWS の API を使ってマウントしていますが、IAM ロールを使ってマウントする方法 もあります。