Amazon AWSでEC2とS3を作ってみました。
EC2のインスタンスを作成
・https://urashita.com/archives/32856
S3のバケットを作成
・https://urashita.com/archives/32858
このあと、EC2からS3にファイルをコピーする方法をまとめました。
VPC エンドポイントを作成
EC2とS3の間でファイルの転送を行いたいのですが、S3はEC2が設置されているネットワーク(VPC)の外側にあるサービスです。
そこで、エンドポイントと呼ばれるコンポーネントをVPCにアタッチして、S3との通信ができるように設定する必要があります。
VPCダッシュボードを開きます。
「エンドポイントの作成」を押します。
「エンドポイントの作成」にて
サービスカテゴリとして「AWSサービス」
サービス名「com.amazonaws.ap-northeast-1.s3」
を選びます。
「エンドポイント作成」を押します。
エンドポイントが作成されました。
IAM ユーザーを作成
IAMとは、AWSのアイデンティティとアクセス管理です。
これを使って、EC2からS3へのアクセス制御を行います。
Identity and Access Management (IAM)ダッシュボードを開きます。
「ユーザーを追加」を押します。
「ユーザー名」を入力します。
「アクセス権の種類」は「プログラムによるアクセス」を選択します。
「次のステップ」を押します。
アクセス許可の設定として「既存のポリシーを直接アッタッチ」
ポリシー名「AmazonS3FullAccess」を選択します。
「次のステップ」を押します。
タグの追加は何もしません。
「次のステップ」を押します。
確認してから「ユーザーの作成」を押します。
アクセスキーIDとシークレットアクセスキーが作成されました。
「.csvのダウンロード」を押して、アクセスキーIDとシークレットアクセスキーが書かれたファイルをダウンロードします。
「閉じる」を押します。
AWS CLIを使ってEC2からS3へファイルを送信
AWS EC2にec2-userでログインします。
「aws configure」と入力してから Enter キーを押します。プロンプトに従って、以下の内容を入力します。
アクセスキーIDとシークレットアクセスキーはIAMユーザーで作成したものを使います。
1 2 3 4 5 |
$ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: ap-northeast-1 Default output format [None]: json |
確認
1 |
$ aws configure list |
バケットの一覧表示
1 |
$ aws s3 ls |
EC2からS3バケットへファイルのコピー
1 |
$ aws s3 cp file.txt s3://my-bucket/ |
バケット内のすべてのオブジェクトとフォルダの一覧表示
1 |
$ aws s3 ls s3://my-bucket/ |
コメント